using NetLibrary.ReportPrint; using System; using System.Collections.Generic; using System.ComponentModel.Design; using System.Data; using System.Linq; using System.Text; using System.Web; using System.Web.Script.Serialization; using System.Web.Services; using System.Xml.Linq; using TradeData; using TradeManage; using TradeManageNew; using TradeModel; namespace ERPOMS { /// /// SysManageServiceNew 的摘要说明 /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 [System.Web.Script.Services.ScriptService] public class SysManageServiceNew : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } #region 登陆 [WebMethod(EnableSession = true)] public bool Login(string UserName, string PassWord, string ul, string LoginIp) { //HttpContext.Current.Request.UserHostAddress //HttpContext.Current.Request.ServerVariables.GetValues("REMOTE_ADDR")[0] //string LoginIp = HttpContext.Current.Request.ServerVariables.GetValues("REMOTE_ADDR")[0]; int IsNb = 1; //if (ul.Contains("192.168.")) // IsNb = 1; //if (ul.Contains("http://localhost:")) // IsNb = 1; var list = DataNew.Login(UserName, PassWord, LoginIp, IsNb); if (list == null) { return false; } UserModel model = new UserModel(); if (list.CompanyId > 0) model.CompanyID = list.CompanyId.Value; model.Name = list.Name; model.UserID = list.UserId.Value; model.UserType = list.UserType; model.UserName = UserName; model.PassWord = PassWord; model.CompanyName = list.CompanyName; if (list.DeptId != null) model.DeptId = list.DeptId.Value; else model.DeptId = 0; model.Duty = list.Duty; Session["CompanyId"] = model.CompanyID; Session["DeptId"] = model.DeptId; Session["Name"] = model.Name; Session["UserId"] = model.UserID; Session["UserName"] = model.UserName; Session["UserType"] = model.UserType; Session["CompanyName"] = model.CompanyName; Session["Duty"] = model.Duty; Session["AllShop"] = list.UserCard;//是否查询所有店铺 Session["Login_UserModel"] = model; return true; } #endregion #region 修改密码 [WebMethod(EnableSession = true)] public int UpdatePassWord(string UserName, string OldPassword, string NewPassWord) { PagesNew.Login(this.Session); int UserID = Convert.ToInt32(Session["UserId"]); return DataNew.UpdatePassWord(UserName, UserID, OldPassword, NewPassWord); } #endregion #region 读取菜单 [WebMethod(EnableSession = true)] public List GetListMenuErp() { PagesNew.Login(this.Session); string UserCode = Convert.ToString(Session["UserId"]); int UserID = Convert.ToInt32(Session["UserId"]); int CompanyId = Convert.ToInt32(Session["CompanyId"]); var slist = DataNew.GetListMenu_Oms(UserID, CompanyId); List list = new List(); if (slist != null) { foreach (var md in slist) { JC_Menu smd = new JC_Menu(); smd.parent_menu_no = md.ParentModuleNo; smd.menu_no = md.ModuleNo; smd.menu_url = md.ModuleUrl; smd.target = md.Target; smd.menu_name = md.ModuleName; smd.sort_no = md.SortNo; list.Add(smd); } } List mlist = new List(); if (list != null) { var pmd = list.FindAll(n => n.parent_menu_no == null); if (pmd != null) { foreach (var md in pmd) { md.layer = 1; mlist.Add(md); var ppmd = list.FindAll(n => n.parent_menu_no == md.menu_no); if (ppmd != null) { if (ppmd.Count > 0) md.has_child = 1; foreach (var mmd in ppmd) { mmd.layer = 2; mlist.Add(mmd); var ppmd2 = list.FindAll(n => n.parent_menu_no == mmd.menu_no); if (ppmd2 != null) { if (ppmd2.Count > 0) mmd.has_child = 1; foreach (var mmd2 in ppmd2) { mmd2.layer = 3; mlist.Add(mmd2); var ppmd3 = list.FindAll(n => n.parent_menu_no == mmd2.menu_no); if (ppmd3 != null) { if (ppmd3.Count > 0) mmd2.has_child = 1; foreach (var mmd3 in ppmd3) { mmd3.layer = 4; mlist.Add(mmd3); } } } } } } } } } if (mlist != null) { var umd = mlist.FindAll(n => n.menu_url != null && n.menu_url != ""); if (umd != null) { foreach (var md in umd) { md.use_state = 2; var pmd = mlist.Find(n => n.menu_no == md.parent_menu_no); if (pmd != null) { pmd.use_state = 2; var pmd2 = mlist.Find(n => n.menu_no == pmd.parent_menu_no); if (pmd2 != null) { pmd2.use_state = 2; var pmd3 = mlist.Find(n => n.menu_no == pmd2.parent_menu_no); if (pmd3 != null) pmd3.use_state = 2; } } } } } if (mlist != null) { List mmlist = mlist.FindAll(n => n.use_state == 2); return mmlist; } return mlist; } #endregion #region 普通查询列表 [WebMethod(EnableSession = true)] public List GetListUserInfoFromGroup2(int iscp) { PagesNew.Login(this.Session); int UserId = Convert.ToInt32(Session["UserId"]); var ListModel = DataNew.GetListUserInfoFromGroup2(UserId, iscp); return ListModel; } #endregion #region 查询部门列表 [WebMethod(EnableSession = true)] public List GetDepartList(string DeptType) { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); var list = DataNew.GetDepartList(CompanyId, DeptType); return list; } #endregion #region 读取平台 [WebMethod(EnableSession = true)] public List GetPlatBaseCode(int CompanyID, string KeyName) { PagesNew.Login(this.Session); if (CompanyID == 0) CompanyID = Convert.ToInt32(Session["CompanyId"]); return DataNew.GetPlatBaseCode(CompanyID, KeyName); } #endregion #region 查询物流 [WebMethod(EnableSession = true)] public List GetExpressTypeList() { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); var list = DataNew.GetExpressTypeList(); return list; } #endregion #region 查询开启仓库 [WebMethod(EnableSession = true)] public List GetUseStoreHouse() { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); var list = DataNew.GetUseStoreHouse(CompanyId); return list; } #endregion #region 平台店铺 [WebMethod(EnableSession = true)] public List GetShopListForTM(int PlatType) { PagesNew.Login(this.Session); int UserId = Convert.ToInt32(Session["UserId"]); string UserType = Convert.ToString(Session["UserType"]); string AllShop = Convert.ToString(Session["AllShop"]); var list = DataNew.GetShopListUser(UserId, PlatType, UserType, AllShop); return list; } #endregion #region 读取留言模板 [WebMethod(EnableSession = true)] public List GetTempleteList() { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); return DataNew.GetLY_TempleteList(CompanyId); } #endregion #region 读取货币 [WebMethod(EnableSession = true)] public List GetMoneyList() { Pages.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); return DataNew.GetMoneyList(CompanyId); } #endregion #region 读取物流渠道 [WebMethod(EnableSession = true)] public List GetExpressPostList(int LogisticsId) { Pages.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); var list = DataNew.GetExpressPostList(CompanyId, LogisticsId); return list; } #endregion #region 获取赔款 [WebMethod(EnableSession = true)] public DT_OrderBackMoneyApply GetOrderBackMoneyModel2(int OrderId) { Pages.Login(this.Session); DD_OrderData obj = new DD_OrderData(); var md = DataNew.GetOrderBackMoneyModel2(OrderId); if (md != null && md.ImageIds != null && md.ImageIds != "") { var list = DataNew.GetListJC_Resource(md.ImageIds.Trim(',')); md.imglist = list; } if (md != null) { if (md.CompanyDate1 != null) { string remark = ""; if (md.CompanyAgree1 != null && md.CompanyAgree1 != "") remark = md.CompanyAgree1; if (md.CompanyRemark != null && md.CompanyRemark != "") remark += md.CompanyRemark; md.CompanyContent = remark + "【" + md.CompanyName1 + " " + md.CompanyDate1.Value.ToString("yyyy-MM-dd HH:mm") + "】"; } if (md.CompanyDate2 != null) { string remark2 = ""; if (md.CompanyAgree2 != null && md.CompanyAgree2 != "") remark2 = md.CompanyAgree2; if (md.CompanyRemark2 != null && md.CompanyRemark2 != "") remark2 += md.CompanyRemark2; md.CompanyContent += "
" + remark2 + "【总经理" + md.CompanyDate2.Value.ToString("yyyy-MM-dd HH:mm") + "】"; } } return md; } #endregion #region 报表40 [WebMethod(EnableSession = true)] public string GetReportTable40(DateTime? SDate, DateTime? EDate, int UserId, string GoodsCode) { var obj = new BaseService(); int CompanyId = Convert.ToInt32(Session["CompanyId"]); string tj = ""; string tj2 = ""; if (SDate != null) { tj += " and OrderDate>='" + SDate.Value.ToString("yyyy-MM-dd") + "' "; // tj2 += " b.LastOrderDate>='" + SDate.Value.ToString("yyyy-MM-dd") + "' "; } if (EDate != null) { tj += " and OrderDate<'" + EDate.Value.AddDays(1).ToString("yyyy-MM-dd") + "' "; // tj2 += " and b.LastOrderDate<'" + EDate.Value.AddDays(1).ToString("yyyy-MM-dd") + "' "; } if (UserId > 0) { tj2 += " and a.UserId=" + UserId + " "; } if (GoodsCode != "") tj2 += " and e.GoodsCode='" + GoodsCode + "' "; string sql = @" select * into #DT_OrderInfoUser from DT_OrderInfo with(nolock) where CompanyId=1 and State>0 and State<3 " + tj + @" select a.UserId,Num=COUNT(distinct a.GoodsId) into #DT_OrderInfoUser3 from HW_GoodsUser a with(nolock) inner join HW_GoodsInfo b with(nolock) on a.GoodsId=b.GoodsId inner join HW_GoodsDetail e with(nolock) on b.GoodsId=e.GoodsId inner join DT_OrderGoods c with(nolock) on e.DetailId=c.DetailId inner join #DT_OrderInfoUser d with(nolock) on c.OrderId=d.OrderId and a.ShopId=d.ShopId where d.CompanyId=1 " + tj2 + @" group by a.UserId select b.UserId,b.Num,Price=dbo.MoneyUSDChange(a.TotalPrice,a.MoneyCode,a.CompanyId) into #DT_OrderInfoUser2 from #DT_OrderInfoUser a inner join ( select a.UserId,d.OrderId,Num=SUM(c.GoodsNum) from HW_GoodsUser a with(nolock) inner join HW_GoodsInfo b with(nolock) on a.GoodsId=b.GoodsId inner join HW_GoodsDetail e with(nolock) on b.GoodsId=e.GoodsId inner join DT_OrderGoods c with(nolock) on e.DetailId=c.DetailId inner join #DT_OrderInfoUser d on c.OrderId=d.OrderId and a.ShopId=d.ShopId where d.CompanyId=1 " + tj2 + @" group by a.UserId,d.OrderId)b on a.OrderId=b.OrderId select c.Name,c.UserName,a.*,GoodsNum=d.Num,OutGoods=isnull(e.Num,0),Rate=case when d.Num>0 then isnull(e.Num,0)*1.0/d.Num else 0 end,NoGoods=d.Num-isnull(e.Num,0) from ( select UserId,Num=sum(Num),OrderNum=COUNT(0),Price=SUM(Price) from #DT_OrderInfoUser2 group by UserId)a inner join JC_UserInfo c on a.UserId=c.UserId inner join (select UserId,Num=COUNT(distinct GoodsId) from HW_GoodsUser with(nolock) group by UserId)d on c.UserId=d.UserId left join #DT_OrderInfoUser3 e on c.UserId=e.UserId drop table #DT_OrderInfoUser, #DT_OrderInfoUser2, #DT_OrderInfoUser3 "; DataTable dt = obj.GetReportData(sql); return GetReport2(dt, 40); } #endregion #region 报表 public string GetReport2(DataTable dt, int ReportId) { PagesNew.Login(this.Session); var obj = new BaseService(); var rmd = BaseService.GetReportModel(ReportId); var rlist = obj.GetRepoartColsList(ReportId); if (rmd == null || rlist == null) return ""; StringBuilder html = new StringBuilder(); html.Append("序号"); foreach (var md in rlist) { html.Append("" + md.ColName + ""); } html.Append(""); if (dt != null) { DataRow row = null; for (int i = 0; i < dt.Rows.Count; i++) { html.Append("" + (i + 1).ToString() + ""); int rowindex = 1; foreach (var md in rlist) { if (dt.Columns.Contains(md.ColValue) == false) { html.Append(""); rowindex++; continue; } if (md.IsSum == 1 && i == 0) { if (row == null) row = dt.NewRow(); if (md.ColType == "int") { try { row[md.ColValue] = Convert.ToInt32(dt.Compute("sum(" + md.ColValue + ")", "" + md.ColValue + " is not null")); } catch { row[md.ColValue] = 0; } } else if (md.ColType == "dec") { try { row[md.ColValue] = Convert.ToDecimal(dt.Compute("sum(" + md.ColValue + ")", "" + md.ColValue + ">0")); } catch { row[md.ColValue] = 0; } } } if (dt.Rows[i][md.ColValue] != null && dt.Rows[i][md.ColValue].ToString() != "") { string csscolor = ""; if (md.ContionType == "=" && dt.Rows[i][md.ColValue].ToString() == md.SValue) { csscolor = md.ColColor; } else if (md.ContionType == ">" && Convert.ToDecimal(dt.Rows[i][md.ColValue]) > Convert.ToDecimal(md.SValue) && Convert.ToDecimal(dt.Rows[i][md.ColValue]) < Convert.ToDecimal(md.EValue)) { csscolor = md.ColColor; } else if (md.ContionType == ">=" && Convert.ToDecimal(dt.Rows[i][md.ColValue]) >= Convert.ToDecimal(md.SValue) && Convert.ToDecimal(dt.Rows[i][md.ColValue]) <= Convert.ToDecimal(md.EValue)) { csscolor = md.ColColor; } if (csscolor != "") csscolor = "style='color:" + csscolor + "'"; string datav = ""; if (md.ColType == "date1") datav = Convert.ToDateTime(dt.Rows[i][md.ColValue]).ToString("yyyy-MM-dd"); else if (md.ColType == "date2") datav = Convert.ToDateTime(dt.Rows[i][md.ColValue]).ToString("yyyy-MM-dd HH:mm"); else if (md.ColType == "dec") { datav = Convert.ToDecimal(dt.Rows[i][md.ColValue]).ToString("0.00"); } else datav = dt.Rows[i][md.ColValue].ToString(); html.Append("" + datav + ""); } else html.Append(""); rowindex++; } html.Append(""); } int hj = 0; if (row != null) { html.Append("合计:"); foreach (var md in rlist) { if (dt.Columns.Contains(md.ColValue) == false) { html.Append(""); continue; } if (md.IsSum == 1 && row[md.ColValue] != null) { if (hj == 0) { hj = 1; html.Append("" + row[md.ColValue] + ""); } else html.Append("" + row[md.ColValue] + ""); } else html.Append(""); } html.Append(""); } } return html.ToString(); } #endregion #region 报表18 每日利润 #region GetReportTable18 /// /// 报表18 每日利润 只展示自身的 最新需求 /// /// /// /// /// /// /// /// /// [WebMethod(EnableSession = true)] public string GetReportTable18Old(DateTime? InDate, int DeptId, int ShopId, int PlatId, string MoneyCode, string Sort, bool isyc) { string dd = ""; try { //测试数据 //InDate = DateTime.Parse("2024-07-14"); DateTime newInDate = new DateTime(InDate.Value.Year, InDate.Value.Month, 1); ; //判断登录者 var InUserId = Convert.ToInt32(Session["UserId"]); InUserId =243; string selectUserIdFirst = ""; string selectUserId = ""; string selectUserId1 = ""; string selectUserId2 = ""; string selectUserId3 = " "; string selectUserId31 = " "; string selectUserId32 = " "; string selectShopId1 = ""; string selectShopId2 = ""; string selectgk1 = ""; string selectgk2 = ""; string selectgk3 = ""; string selectgk4 = ""; if (InUserId != 1) { selectUserIdFirst = "DECLARE @skuUserId INT = " + InUserId + ";\r\n"; //selectUserIdFirst = "DECLARE @skuUserId INT = 190;\r\n"; selectUserId = " where \r\n(a.guserid_shopify = @skuUserId or\r\na.guserid_wayfair= @skuUserId or\r\na.guserid_sheIn = @skuUserId or\r\na.guserid_ebay = @skuUserId or\r\na.guserid_wlmart = @skuUserId or\r\na.muserid = @skuUserId or \r\na.guserid = @skuUserId)"; selectUserId1 = " \r\n left join DT_OrderGoods d with(nolock) on a.OrderId=d.OrderId\r\nleft join HW_GoodsDetail e with(nolock) on e.DetailId=d.DetailId\r\nleft JOIN HW_GoodsInfo f with(nolock) on e.GoodsId=f.GoodsId \r\n"; selectUserId2 = " and \r\n(f.guserid_shopify = @skuUserId or\r\nf.guserid_wayfair= @skuUserId or\r\nf.guserid_sheIn = @skuUserId or\r\nf.guserid_ebay = @skuUserId or\r\nf.guserid_wlmart = @skuUserId or\r\nf.muserid = @skuUserId or \r\nf.guserid = @skuUserId) \r\n"; selectUserId3 = " select DISTINCT a.ShopId into #ls3 from DT_OrderInfo a with(nolock)\r\ninner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId\r\nleft join DT_Fees c with(nolock) on a.OrderId=c.orderid\r\nleft join DT_OrderGoods d with(nolock) on a.OrderId=d.OrderId\r\nleft join HW_GoodsDetail e with(nolock) on e.DetailId=d.DetailId\r\nleft JOIN HW_GoodsInfo f with(nolock) on e.GoodsId=f.GoodsId\r\nwhere DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + "')=0 and a.State>0 and a.State<3 and \r\n(f.guserid_shopify = @skuUserId or\r\nf.guserid_wayfair= @skuUserId or\r\nf.guserid_sheIn = @skuUserId or\r\nf.guserid_ebay = @skuUserId or\r\nf.guserid_wlmart = @skuUserId or\r\nf.muserid = @skuUserId or \r\nf.guserid = @skuUserId) \r\n "; selectUserId31 = "INNER JOIN #ls3 ff on d.ShopId=ff.ShopId\r\n"; selectUserId32 = "INNER JOIN #ls3 ff on a.ShopId=ff.ShopId\r\n"; selectShopId1 = " and a.ShopId in (SELECT ShopId\r\nFROM JC_Shop\r\nWHERE ShopUser LIKE '%' + (\r\n SELECT TOP 1 Name\r\n FROM JC_UserInfo\r\n WHERE UserID = @skuUserId\r\n) + '%');\r\n"; selectShopId2 = @"and b.ShopId in (SELECT ShopId FROM JC_Shop WHERE ShopUser LIKE '%' + ( SELECT TOP 1 Name FROM JC_UserInfo WHERE UserID = @skuUserId ) +'%')"; //日广告 selectgk1 = "select a.shopid,\r\n SUM(ABS(isnull(adfee, 0))) Rate3 into #ls4\r\n from\r\n AD_FeeList a\r\n\t\t\t\t inner join (\r\n\t\t\t\t select DISTINCT a.ShopId, f.GoodsId from DT_OrderInfo a with(nolock)\r\n\r\nleft join DT_Fees c with(nolock) on a.OrderId=c.orderid\r\nleft join DT_OrderGoods d with(nolock) on a.OrderId=d.OrderId\r\nleft join HW_GoodsDetail e with(nolock) on e.DetailId=d.DetailId\r\nleft JOIN HW_GoodsInfo f with(nolock) on e.GoodsId=f.GoodsId\r\nwhere DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + "')=0 and a.State>0 and a.State<3 and \r\n(f.guserid_shopify = @skuUserId or\r\nf.guserid_wayfair= @skuUserId or\r\nf.guserid_sheIn = @skuUserId or\r\nf.guserid_ebay = @skuUserId or\r\nf.guserid_wlmart = @skuUserId or\r\nf.muserid = @skuUserId or \r\nf.guserid = @skuUserId) and a.ShopId in (SELECT ShopId\r\nFROM JC_Shop\r\nWHERE ShopUser LIKE '%' + (\r\n SELECT TOP 1 Name\r\n FROM JC_UserInfo\r\n WHERE UserID = @skuUserId\r\n) + '%'))b on a.GoodsId = b.GoodsId and a.shopid = b.shopid where addate = '" + InDate.Value.ToString("yyyy-MM-dd") + "' group by\r\n \r\n a.shopid \r\n "; //月广告 selectgk2 = "select a.shopid,\r\n SUM(ABS(isnull(adfee, 0))) Rate6 into #ls5\r\n from\r\n AD_FeeList a\r\n\t\t\t\t inner join (\r\n\t\t\t\t select DISTINCT a.ShopId, f.GoodsId from DT_OrderInfo a with(nolock)\r\n\r\nleft join DT_Fees c with(nolock) on a.OrderId=c.orderid\r\nleft join DT_OrderGoods d with(nolock) on a.OrderId=d.OrderId\r\nleft join HW_GoodsDetail e with(nolock) on e.DetailId=d.DetailId\r\nleft JOIN HW_GoodsInfo f with(nolock) on e.GoodsId=f.GoodsId\r\nwhere DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + "')=0 and a.State>0 and a.State<3 and \r\n(f.guserid_shopify = @skuUserId or\r\nf.guserid_wayfair= @skuUserId or\r\nf.guserid_sheIn = @skuUserId or\r\nf.guserid_ebay = @skuUserId or\r\nf.guserid_wlmart = @skuUserId or\r\nf.muserid = @skuUserId or \r\nf.guserid = @skuUserId) and a.ShopId in (SELECT ShopId\r\nFROM JC_Shop\r\nWHERE ShopUser LIKE '%' + (\r\n SELECT TOP 1 Name\r\n FROM JC_UserInfo\r\n WHERE UserID = @skuUserId\r\n) + '%'))b on a.GoodsId = b.GoodsId and a.shopid = b.shopid where addate >= '" + newInDate.ToString("yyyy-MM-dd") + "' and addate <= '" + InDate.Value.ToString("yyyy-MM-dd") + "'\r\n group by\r\n \r\n a.shopid \r\n "; selectgk3 = @"select a.ShopId,SUM(a1.AdFee) as Rate3 into #ls6 from DT_OrderInfo a with(nolock) left join DT_OrderGoods d with(nolock) on a.OrderId = d.OrderId left join HW_GoodsDetail e with(nolock) on e.DetailId = d.DetailId left JOIN HW_GoodsInfo f with(nolock) on e.GoodsId = f.GoodsId left JOIN ShopGoodsAdFee a1 with(nolock) on a1.GoodsId = e.GoodsId and a1.ShopId = a.ShopId where DATEDIFF(day, a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')= 0 and a.State > 0 and a.State < 3 and (f.guserid_shopify = @skuUserId or f.guserid_wayfair = @skuUserId or f.guserid_sheIn = @skuUserId or f.guserid_ebay = @skuUserId or f.guserid_wlmart = @skuUserId or f.muserid = @skuUserId or f.guserid = @skuUserId) and a.ShopId in (SELECT ShopId FROM JC_Shop WHERE ShopUser LIKE '%' + ( SELECT TOP 1 Name FROM JC_UserInfo WHERE UserID = @skuUserId ) +'%') and CONVERT(date, a1.AdDate)= '" + InDate.Value.ToString("yyyy-MM-dd") + @"' group by a.ShopId "; selectgk4 = @"select a.ShopId,SUM(a1.AdFee) as Rate6 into #ls7 from DT_OrderInfo a with(nolock) left join DT_OrderGoods d with(nolock) on a.OrderId = d.OrderId left join HW_GoodsDetail e with(nolock) on e.DetailId = d.DetailId left JOIN HW_GoodsInfo f with(nolock) on e.GoodsId = f.GoodsId left JOIN ShopGoodsAdFee a1 with(nolock) on a1.GoodsId = e.GoodsId and a1.ShopId = a.ShopId where DATEDIFF(day, a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')= 0 and a.State > 0 and a.State < 3 and (f.guserid_shopify = @skuUserId or f.guserid_wayfair = @skuUserId or f.guserid_sheIn = @skuUserId or f.guserid_ebay = @skuUserId or f.guserid_wlmart = @skuUserId or f.muserid = @skuUserId or f.guserid = @skuUserId) and a.ShopId in (SELECT ShopId FROM JC_Shop WHERE ShopUser LIKE '%' + ( SELECT TOP 1 Name FROM JC_UserInfo WHERE UserID = @skuUserId ) +'%') and CONVERT(date, a1.AdDate)>= '" + newInDate.ToString("yyyy-MM-dd") + @"' and CONVERT(date, a1.AdDate)<= '" + InDate.Value.ToString("yyyy-MM-dd") + @"' group by a.ShopId "; } var obj = new BaseService(); string tj = ""; string tj1 = ""; if (PlatId > 0) { tj += " and a.PlatId=" + PlatId + " "; tj1 += " and a.PlatId=" + PlatId + " "; } if (ShopId > 0) { tj += " and a.ShopId=" + ShopId + " "; tj1 += " and a.ShopId=" + ShopId + " "; } string sql = selectUserIdFirst + @" declare @moneyrate decimal(18,4) select @moneyrate=MRate from JC_Money where MCode='USD' and PlatId=2 select a.ShopId,a.TotalPrice,escrowFee=isnull(a.escrowFee,0),a.RMBPrice,c.yj,yf=c.yf,cb=c.cb,hwsf=c.hwsf,c.tc,c.ck,c.md,a.Ad_Fee,a.DR_BackFee,a.DR_PostFee,a.DR_SSFee,a.Other_Fee,moneyrate=isnull(c.moneyrate,@moneyrate),ISnull( c.SubsidyFee,0) SubsidyFee into #ls from DT_OrderInfo a with(nolock) inner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId left join DT_Fees c with(nolock) on a.OrderId=c.orderid " + selectUserId1 + @" where DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 " + tj + @" and a.State>0 and a.State<3 " + selectUserId2 + selectShopId1 + @" select a.*,Num2=isnull(b.Num2,0) into #ls2 from ( select b.ShopId,Num=COUNT(0) from HW_GoodsInfo a with(nolock) inner join HW_Shop b with(nolock) on a.GoodsId=b.GoodsId " + selectUserId + selectShopId2 + @" group by b.ShopId)a LEFT join ( select a.ShopId,Num2=COUNT(distinct c.GoodsId) from DT_OrderInfo a with(nolock) inner join DT_OrderGoods b with(nolock) on a.OrderId=b.OrderId inner join HW_GoodsDetail c with(nolock) on b.DetailId=c.DetailId inner join HW_GoodsInfo f with(nolock) on f.GoodsId = c.GoodsId where a.State>0 and a.State<3 and DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 and ( f.guserid_shopify = @skuUserId or f.guserid_wayfair = @skuUserId or f.guserid_sheIn = @skuUserId or f.guserid_ebay = @skuUserId or f.guserid_wlmart = @skuUserId or f.muserid = @skuUserId or f.guserid = @skuUserId ) and a.ShopId in ( SELECT ShopId FROM JC_Shop WHERE ShopUser LIKE '%' + ( SELECT TOP 1 Name FROM JC_UserInfo WHERE UserID = @skuUserId ) + '%' ) group by a.ShopId)b on a.ShopId=b.ShopId " + selectUserId3 + selectShopId1 + selectgk1 + selectgk2 + selectgk3 + selectgk4 + @" select * from ( select d.ShopName,a.OrderNum,a.RMBMoney,a.USDMoney,AvgPrice=case when a.OrderNum>0 then cast(a.USDMoney/a.OrderNum as decimal(18,2)) else 0 end,a.InPrice,LR=cast(b.ml as decimal(18,2)),MLL=case when b.TotalPrice>0 then cast(b.ml*100/b.TotalPrice as decimal(18,2)) else 0 end,ShopTJGoods=e.Num,ShopCDGoods=e.Num2,ckfee,a.mdfee,a.adfee,bz=case when a.InPrice>0 then CAST(a.RMBMoney/a.InPrice as decimal(18,2)) else 0 end,a.yf,c.GoodRate,c.ODR,t3.CVR DSRService,t3.user_sessions DSRGoods,c.USDUseMoney, n1.originalTotalCurrencyAmount as USDNoMoney,c.RMBUseMoney,c.RMBNoMoney,t2.orderDefectRate Rate1,t2.validTrackingRate Rate2,Case when d.PlatType=2 then f.Rate3 else c.Rate3 end Rate3,t4.RefundRate as Rate4,0 as PropertyViolate,t2.cancelRate Rate5,Case when d.PlatType=2 then g.Rate6 else (select SUM(ISNULL(Rate3,0)) from JC_ShopData where ShopId=d.ShopId and DATEDIFF(MONTH,InDate,'2023-10-18')=0) end Rate6,Rate7=isnull(c.Rate7,d.dayfee),JL=cast(b.ml as decimal(18,2))+isnull(ckfee,0)-isnull(f.Rate3,0) from JC_Shop d left join ( select ShopId,OrderNum=COUNT(0),RMBMoney=SUM(RMBPrice),escrowFee=sum(escrowFee),USDMoney=SUM(TotalPrice),InPrice=SUM(cb),ckfee=SUM(ck),mdfee=SUM(md),adfee=SUM(Ad_Fee),yf=SUM(yf) from #ls group by ShopId)a on d.ShopId=a.ShopId left join (select ShopId,TotalPrice=sum(TotalPrice),ml=sum(isnull(TotalPrice,0)-isnull(escrowFee,0)-isnull(yj,0)-isnull(yf,0)-((isnull(cb,0)+isnull(hwsf,0))/moneyrate)-isnull(tc,0)-isnull(ck,0)-isnull(md,0)-isnull(Ad_Fee,0)+SubsidyFee ) from #ls where yf>0 group by ShopId)b on a.ShopId=b.ShopId left join ( select GoodRate,ODR,DSRService,DSRGoods,DSRPost,USDUseMoney,USDNoMoney,RMBUseMoney, RMBNoMoney,Rate1,Rate2,Rate3,Rate4,PropertyViolate,Rate5,Rate6,Rate7,FeeDate,TXFee TXFee,ShopId from JC_ShopData where DATEDIFF(day,indate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 )c on a.ShopId=c.ShopId left Join #ls2 e on a.ShopId=e.ShopId left join [192.168.1.187].[UpGoods].dbo.LxERP_Amazon_Shop o on d.ShopName=o.name left join #ls4 f on f.ShopId = a.ShopId" + " \r\n left join #ls5 g on a.ShopId = g.ShopId " + " \r\n left join (select storename,CONVERT(decimal(12,2), SUM(ISNULL(originalTotalCurrencyAmount,0))) originalTotalCurrencyAmount from [192.168.1.187].[UpGoods].dbo.LxERP_SettlementSummaryData where processingStatus='Open' and accountType='Standard' group by storename) n1 on d.ShopName=n1.storeName " + "\r\n" + " left join (select sid, CAST( orderDefectRate *100 as decimal(12,2)) orderDefectRate,CAST( validTrackingRate *100 as decimal(12,2)) validTrackingRate,cast(CancelRate *100 as decimal(12,2)) cancelRate from (\r\nselect ROW_NUMBER() over(PARTITION BY sid ORDER BY requestDate DESC) row,sid, orderDefectRate,validTrackingRate,CancelRate from [192.168.1.187].[UpGoods].dbo.Amazon_V2_SELLER_PERFORMANCE_REPORT where CONVERT(date, RequestDate)='" + InDate.Value.AddDays(-1).Date.ToString("yyyy-MM-dd") + "') t where t.row=1)t2 on t2.sid=o.sid \r\nleft join (select sid, user_sessions,totalOrderItems, case when user_sessions=0 or totalOrderItems=0 then 0 else convert(decimal(12,2),(totalOrderItems*1.00/user_sessions)*100 ) end as CVR from [192.168.1.187].[UpGoods].dbo.Amazon_SALES_AND_TRAFFIC_REPORT where CONVERT(date, ReportDate)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "') t3 on t3.sid=o.sid\r\nleft join [192.168.1.187].[UpGoods].dbo.AmazonStoreRefundAmountAndRate t4 on t4.sid=o.sid and Convert(date, t4.ReportDate)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "'\r\n" + selectUserId31 + " where d.PlatType=2 union all\r\n select d.ShopName,a.OrderNum,a.RMBMoney,a.USDMoney,AvgPrice=case when a.OrderNum>0 then cast(a.USDMoney/a.OrderNum as decimal(18,2)) else 0 end,a.InPrice,LR=cast(b.ml as decimal(18,2)),MLL=case when b.TotalPrice>0 then cast(b.ml*100/b.TotalPrice as decimal(18,2)) else 0 end,ShopTJGoods=e.Num,ShopCDGoods=e.Num2,ckfee,a.mdfee,a.adfee,bz=case when a.InPrice>0 then CAST(a.RMBMoney/a.InPrice as decimal(18,2)) else 0 end,a.yf,c.GoodRate,c.ODR,c.DSRService,c.DSRGoods,c.USDUseMoney,c.USDNoMoney,c.RMBUseMoney,c.RMBNoMoney,c.Rate1,c.Rate2,newRate1.Rate3,c.Rate4,0 as PropertyViolate,c.Rate5,newRate2.Rate6,Rate7=isnull(c.Rate7,d.dayfee),JL=cast(b.ml as decimal(18,2))+isnull(ckfee,0)-isnull(newRate1.Rate3,0) from \r\nJC_Shop d left join (\r\nselect ShopId,OrderNum=COUNT(0),RMBMoney=SUM(RMBPrice),escrowFee=sum(escrowFee),USDMoney=SUM(TotalPrice),InPrice=SUM(cb),ckfee=SUM(ck),mdfee=SUM(md),adfee=SUM(Ad_Fee),yf=SUM(yf) from #ls\r\ngroup by ShopId)a on d.ShopId=a.ShopId\r\nleft join (select ShopId,TotalPrice=sum(TotalPrice),ml=sum(isnull(TotalPrice,0)-isnull(escrowFee,0)-isnull(yj,0)-isnull(yf,0)-((isnull(cb,0)+isnull(hwsf,0))/moneyrate)-isnull(tc,0)-isnull(ck,0)-isnull(md,0)-isnull(Ad_Fee,0)+ SubsidyFee) from #ls where yf>0\r\ngroup by ShopId)b on a.ShopId=b.ShopId\r\nleft join (\r\nselect GoodRate,ODR,DSRService,DSRGoods,DSRPost,USDUseMoney,USDNoMoney,RMBUseMoney, RMBNoMoney,Rate1,Rate2,Rate3,Rate4,PropertyViolate,Rate5,Rate6,Rate7,FeeDate,TXFee\r\nTXFee,ShopId from JC_ShopData\r\nwhere DATEDIFF(day,indate,'" + InDate.Value.ToString("yyyy-MM-dd") + "')=0 )c on a.ShopId=c.ShopId\r\nleft Join #ls6 newRate1 on a.ShopId=newRate1.ShopId\r\nleft Join #ls7 newRate2 on a.ShopId=newRate2.ShopId\r\n left Join #ls2 e on a.ShopId=e.ShopId " + selectUserId32 + "where d.PlatType!=2 " + (isyc ? " and d.Master!='东南亚专用'" : "") + "\r\n) a order by " + Sort; DataTable dt = obj.GetReportData(sql); return GetReport3(dt, 181); } catch (Exception ex) { string a = dd; return ""; } } #endregion #region GetReportTable18New /// /// 报表18 每日利润 只展示自身的 最新需求 /// /// /// /// /// /// /// /// /// [WebMethod(EnableSession = true)] public string GetReportTable18(DateTime? InDate) { string dd = ""; try { //int UserId = 243; var UserId = Convert.ToInt32(Session["UserId"]); var list = DataNew.MRJL_GetUserOderMsgByDay((DateTime)InDate, UserId); var goodsList = DataNew.MRJL_GetGoodsIdByDay((DateTime)InDate, UserId); if (list != null && list.Count() > 0) { foreach (var l in list) { //名称 l.ShopName = DataNew.MRJL_GetShopName(l.ShopId); //客单价 l.AvgPrice = Math.Round(l.USDMoney / l.OrderNum, 2); if (goodsList != null && goodsList.Count() > 0) { //获取广告 var plstId = goodsList.Where(t => t.ShopId == l.ShopId).Select(t => t.PlatId).FirstOrDefault(); var goods = goodsList.Where(t => t.ShopId == l.ShopId).Select(t => t.GoodsID.ToString()).ToList(); var adfeeModel1 = DataNew.MRJL_GetGKFeeByDay((DateTime)InDate, plstId, l.ShopId, goods); var adfeeModel2 = DataNew.MRJL_GetGKFeeByMouth((DateTime)InDate, plstId, l.ShopId, goods); l.Rate3 = adfeeModel1 != null ? adfeeModel1.Adfee : 0; l.Rate6 = adfeeModel2 != null ? adfeeModel2.Adfee : 0; var goodsMsgModel = DataNew.MRJL_GetGoodsMsgByMouth((DateTime)InDate, plstId, l.ShopId, UserId); l.ShopCDGoods = goodsMsgModel != null ? goodsMsgModel.Num2 : 0; l.ShopTJGoods = goodsMsgModel != null ? goodsMsgModel.Num : 0; // } //净利润 l.LR = Math.Round(l.LR, 2); l.JL = l.LR + l.ckfee - l.Rate3; } } var dt = DataNew.ListToDataTable(list.OrderByDescending(t => t.OrderNum).ToList()); //var list = DataNew.GetUserOderMsgByDay((DateTime)InDate, UserId); //DataTable dt = obj.GetReportData(sql); return GetReport3(dt, 181); //return ""; } catch (Exception ex) { string a = dd; return ""; } } #endregion #region GetReportTable18_Old1 [WebMethod(EnableSession = true)] public string GetReportTable18_Old1(DateTime? InDate, int DeptId, int ShopId, int PlatId, string MoneyCode, string Sort, bool isyc) { string dd = ""; try { //判断登录者 var InUserId = Convert.ToInt32(Session["UserId"]); string selectUserIdFirst = ""; string selectUserId = ""; string selectUserId1 = ""; string selectUserId2 = ""; if (InUserId != 1) { selectUserIdFirst = "DECLARE @skuUserId INT = " + InUserId + ";\r\n"; selectUserId = " where \r\n(a.guserid_shopify = @skuUserId or\r\na.guserid_wayfair= @skuUserId or\r\na.guserid_sheIn = @skuUserId or\r\na.guserid_ebay = @skuUserId or\r\na.guserid_wlmart = @skuUserId or\r\na.muserid = @skuUserId or \r\na.guserid = @skuUserId)"; selectUserId1 = " \r\n left join DT_OrderGoods d with(nolock) on a.OrderId=d.OrderId\r\nleft join HW_GoodsDetail e with(nolock) on e.DetailId=d.DetailId\r\nleft JOIN HW_GoodsInfo f with(nolock) on e.GoodsId=f.GoodsId \r\n"; selectUserId2 = " and \r\n(f.guserid_shopify = @skuUserId or\r\nf.guserid_wayfair= @skuUserId or\r\nf.guserid_sheIn = @skuUserId or\r\nf.guserid_ebay = @skuUserId or\r\nf.guserid_wlmart = @skuUserId or\r\nf.muserid = @skuUserId or \r\nf.guserid = @skuUserId) \r\n"; } var obj = new BaseService(); string tj = ""; string tj1 = ""; //if (DeptId > 0) //{ // tj += " and b.DeptId=" + DeptId + " "; // tj1 += " and a.DeptId=" + DeptId + " "; //} if (PlatId > 0) { tj += " and a.PlatId=" + PlatId + " "; tj1 += " and a.PlatId=" + PlatId + " "; } if (ShopId > 0) { tj += " and a.ShopId=" + ShopId + " "; tj1 += " and a.ShopId=" + ShopId + " "; } //if (MoneyCode != "0") // tj += " and a.MoneyCode='" + MoneyCode + "' "; // string sql = @" //declare @moneyrate decimal(18,4) //select @moneyrate=MRate from JC_Money where MCode='USD' and PlatId=2 //select a.ShopId,a.TotalPrice,escrowFee=isnull(a.escrowFee,0),a.RMBPrice,c.yj,yf=c.yf,cb=c.cb,hwsf=c.hwsf,c.tc,c.ck,c.md,a.Ad_Fee,a.DR_BackFee,a.DR_PostFee,a.DR_SSFee,a.Other_Fee,moneyrate=isnull(c.moneyrate,@moneyrate) into #ls from DT_OrderInfo a with(nolock) //inner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId //left join DT_Fees c with(nolock) on a.OrderId=c.orderid //where DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 " + tj + @" and a.State>0 and a.State<3 //select a.*,Num2=isnull(b.Num2,0) into #ls2 from ( //select b.ShopId,Num=COUNT(0) from HW_GoodsInfo a with(nolock) //inner join HW_Shop b with(nolock) on a.GoodsId=b.GoodsId //group by b.ShopId)a //left join ( //select a.ShopId,Num2=COUNT(distinct c.GoodsId) from DT_OrderInfo a with(nolock) //inner join DT_OrderGoods b with(nolock) on a.OrderId=b.OrderId //inner join HW_GoodsDetail c with(nolock) on b.DetailId=c.DetailId //where a.State>0 and a.State<3 and DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 group by a.ShopId)b on a.ShopId=b.ShopId //select d.ShopName,Master=case when d.Master=d.buyer then d.Master when d.buyer is not null and d.buyer<>'' then d.Master+'-'+d.buyer else d.Master end,a.OrderNum,a.RMBMoney,a.USDMoney,AvgPrice=case when a.OrderNum>0 then cast(a.USDMoney/a.OrderNum as decimal(18,2)) else 0 end,a.InPrice,LR=cast(b.ml as decimal(18,2)),MLL=case when b.TotalPrice>0 then cast(b.ml*100/b.TotalPrice as decimal(18,2)) else 0 end,ShopTJGoods=e.Num,ShopCDGoods=e.Num2,ckfee,a.mdfee,a.adfee,bz=case when a.InPrice>0 then CAST(a.RMBMoney/a.InPrice as decimal(18,2)) else 0 end,c.GoodRate,c.ODR,c.DSRService,c.DSRGoods,h.DSRPost,c.USDUseMoney,c.USDNoMoney,c.RMBUseMoney,c.RMBNoMoney,c.Rate1,c.Rate2,f.Rate3,c.Rate4,c.PropertyViolate,c.Rate5,g.Rate6,Rate7=isnull(c.Rate7,d.dayfee),JL=cast(b.ml as decimal(18,2))+isnull(ckfee,0)+isnull(mdfee,0)-isnull(c.Rate3,0)-isnull(c.Rate7,d.dayfee),FeeDate=isnull(c.FeeDate,d.FeeDate),TXFee=isnull(c.TXFee,d.TXFee) from //JC_Shop d left join ( //select ShopId,OrderNum=COUNT(0),RMBMoney=SUM(RMBPrice),escrowFee=sum(escrowFee),USDMoney=SUM(TotalPrice),InPrice=SUM(cb),ckfee=SUM(ck),mdfee=SUM(md),adfee=SUM(Ad_Fee) from #ls //group by ShopId)a on d.ShopId=a.ShopId //left join (select ShopId,TotalPrice=sum(TotalPrice),ml=sum(isnull(TotalPrice,0)-isnull(escrowFee,0)-isnull(yj,0)-isnull(yf,0)-((isnull(cb,0)+isnull(hwsf,0))/moneyrate)-isnull(tc,0)-isnull(ck,0)-isnull(md,0)-isnull(Ad_Fee,0)) from #ls where yf>0 //group by ShopId)b on a.ShopId=b.ShopId //left join ( //select GoodRate,ODR,DSRService,DSRGoods,DSRPost,USDUseMoney,USDNoMoney,RMBUseMoney, RMBNoMoney,Rate1,Rate2,Rate3,Rate4,PropertyViolate,Rate5,Rate6,Rate7,FeeDate,TXFee //TXFee,ShopId from JC_ShopData //where DATEDIFF(day,indate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 )c on a.ShopId=c.ShopId //left Join #ls2 e on a.ShopId=e.ShopId // left join (select shopid,SUM(ABS(adfee)) Rate3 from AD_FeeList where DATEDIFF(day,addate,'" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "')=0 group by shopid) f on d.ShopId=f.shopid "+ // " left join ( select shopid,SUM(ABS(adfee)) Rate6 from AD_FeeList where CONVERT(varchar(7), addate, 120)='"+ InDate.Value.ToString("yyyy-MM") + "' group by shopid) g on d.ShopId=g.shopid "+ // " left join(select b.name shopName,case when a.Spend=0 or a.ad_sale_amount=0 then 0 else cast((Spend/ad_sale_amount)*100 as decimal(12,2)) end DSRPost from ( select sid,SUM(ISNULL(ABS(spend),0)) Spend, SUM(ISNULL(ad_sales_amount,0)) ad_sale_amount from [192.168.1.187].[UpGoods].dbo.LxERP_ProductPerformance where summary_field='Asin' and RequestDate='" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "' group by sid) a left join [192.168.1.187].[UpGoods].dbo.LxERP_Amazon_Shop b on a.sid=b.sid) h on d.ShopName=h.shopName " // + " order by " + Sort; string sql = selectUserIdFirst + @" declare @moneyrate decimal(18,4) select @moneyrate=MRate from JC_Money where MCode='USD' and PlatId=2 select a.ShopId,a.TotalPrice,escrowFee=isnull(a.escrowFee,0),a.RMBPrice,c.yj,yf=c.yf,cb=c.cb,hwsf=c.hwsf,c.tc,c.ck,c.md,a.Ad_Fee,a.DR_BackFee,a.DR_PostFee,a.DR_SSFee,a.Other_Fee,moneyrate=isnull(c.moneyrate,@moneyrate),ISnull( c.SubsidyFee,0) SubsidyFee into #ls from DT_OrderInfo a with(nolock) inner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId left join DT_Fees c with(nolock) on a.OrderId=c.orderid " + selectUserId1 + @" where DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 " + tj + @" and a.State>0 and a.State<3 " + selectUserId2 + @" select a.*,Num2=isnull(b.Num2,0) into #ls2 from ( select b.ShopId,Num=COUNT(0) from HW_GoodsInfo a with(nolock) inner join HW_Shop b with(nolock) on a.GoodsId=b.GoodsId " + selectUserId + @" group by b.ShopId)a LEFT join ( select a.ShopId,Num2=COUNT(distinct c.GoodsId) from DT_OrderInfo a with(nolock) inner join DT_OrderGoods b with(nolock) on a.OrderId=b.OrderId inner join HW_GoodsDetail c with(nolock) on b.DetailId=c.DetailId where a.State>0 and a.State<3 and DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 group by a.ShopId)b on a.ShopId=b.ShopId select * from ( select d.ShopName,Master=case when d.Master=d.buyer then d.Master when d.buyer is not null and d.buyer<>'' then d.Master+'-'+d.buyer else d.Master end,a.OrderNum,a.RMBMoney,a.USDMoney,AvgPrice=case when a.OrderNum>0 then cast(a.USDMoney/a.OrderNum as decimal(18,2)) else 0 end,a.InPrice,LR=cast(b.ml as decimal(18,2)),MLL=case when b.TotalPrice>0 then cast(b.ml*100/b.TotalPrice as decimal(18,2)) else 0 end,ShopTJGoods=e.Num,ShopCDGoods=e.Num2,ckfee,a.mdfee,a.adfee,bz=case when a.InPrice>0 then CAST(a.RMBMoney/a.InPrice as decimal(18,2)) else 0 end,a.yf,c.GoodRate,c.ODR,t3.CVR DSRService,t3.user_sessions DSRGoods,c.USDUseMoney, n1.originalTotalCurrencyAmount as USDNoMoney,c.RMBUseMoney,c.RMBNoMoney,t2.orderDefectRate Rate1,t2.validTrackingRate Rate2,Case when d.PlatType=2 then f.Rate3 else c.Rate3 end Rate3,t4.RefundRate as Rate4, ABS( ISNULL( t4.RefundAmount,0) ) as PropertyViolate,t2.cancelRate Rate5,Case when d.PlatType=2 then g.Rate6 else (select SUM(ISNULL(Rate3,0)) from JC_ShopData where ShopId=d.ShopId and DATEDIFF(MONTH,InDate,'2023-10-18')=0) end Rate6,Rate7=isnull(c.Rate7,d.dayfee),JL=cast(b.ml as decimal(18,2))+isnull(ckfee,0)-isnull(c.Rate3,0)-isnull(c.Rate7,d.dayfee),t1.financialEventGroupEndLocale as FeeDate,t1.originalTotalCurrencyAmount as TXFee from JC_Shop d left join ( select ShopId,OrderNum=COUNT(0),RMBMoney=SUM(RMBPrice),escrowFee=sum(escrowFee),USDMoney=SUM(TotalPrice),InPrice=SUM(cb),ckfee=SUM(ck),mdfee=SUM(md),adfee=SUM(Ad_Fee),yf=SUM(yf) from #ls group by ShopId)a on d.ShopId=a.ShopId left join (select ShopId,TotalPrice=sum(TotalPrice),ml=sum(isnull(TotalPrice,0)-isnull(escrowFee,0)-isnull(yj,0)-isnull(yf,0)-((isnull(cb,0)+isnull(hwsf,0))/moneyrate)-isnull(tc,0)-isnull(ck,0)-isnull(md,0)-isnull(Ad_Fee,0)+SubsidyFee ) from #ls where yf>0 group by ShopId)b on a.ShopId=b.ShopId left join ( select GoodRate,ODR,DSRService,DSRGoods,DSRPost,USDUseMoney,USDNoMoney,RMBUseMoney, RMBNoMoney,Rate1,Rate2,Rate3,Rate4,PropertyViolate,Rate5,Rate6,Rate7,FeeDate,TXFee TXFee,ShopId from JC_ShopData where DATEDIFF(day,indate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 )c on a.ShopId=c.ShopId left Join #ls2 e on a.ShopId=e.ShopId left join [192.168.1.187].[UpGoods].dbo.LxERP_Amazon_Shop o on d.ShopName=o.name left join ( select sid, CONVERT(decimal(12,2), SUM(t.cost)) as Rate3,CONVERT(decimal(12,2), SUM(t.sales)) as ad_sales , case when CONVERT(decimal(12,2), SUM(t.sales))<=0 then '∞' else CONVERT(nvarchar(20), convert(decimal(12,2), (CONVERT(decimal(12,2), SUM(t.cost))/CONVERT(decimal(12,2), SUM(t.sales)))*100)) end DSRPost from( select sid, SUM( ISNULL(cost,0)) as cost,SUM(ISNULL(sales,0))sales from [192.168.1.187].[UpGoods].dbo.LxERP_SPAdGroupReports where CONVERT(date,report_date)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "' group by sid union all select sid, SUM( ISNULL(cost,0)) as cost,SUM(ISNULL(sales,0))sales from [192.168.1.187].[UpGoods].dbo.LxERP_SBCampaignReports where CONVERT(date,report_date)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "' group by sid union all select sid, SUM( ISNULL(cost,0)) as cost,SUM(ISNULL(sales,0))sales from [192.168.1.187].[UpGoods].dbo.LxERP_SDAdGroupReports where CONVERT(date,report_date)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "' group by sid) t group by sid ) f on f.sid=o.sid" + " \r\n left join (select sid, CONVERT(decimal(12,2), SUM(t.cost)) as Rate6 from( select sid, SUM( ISNULL(cost,0)) as cost from [192.168.1.187].[UpGoods].dbo.LxERP_SPAdGroupReports where CONVERT(date,report_date)<='" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "' and CONVERT(date,report_date)>='" + InDate.Value.AddDays(-31).ToString("yyyy-MM-dd") + "' group by sid union all select sid, SUM( ISNULL(cost,0)) as cost from [192.168.1.187].[UpGoods].dbo.LxERP_SBCampaignReports where CONVERT(date,report_date)<='" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "' and CONVERT(date,report_date)>='" + InDate.Value.AddDays(-31).ToString("yyyy-MM-dd") + "' group by sid union all select sid, SUM( ISNULL(cost,0)) as cost from [192.168.1.187].[UpGoods].dbo.LxERP_SDAdGroupReports where CONVERT(date,report_date)<='" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "' and CONVERT(date,report_date)>='" + InDate.Value.AddDays(-31).ToString("yyyy-MM-dd") + "' group by sid) t group by sid) g on o.sid=g.sid " + " \r\n left join(select t.row, t.storename,t.financialEventGroupEndLocale,t.originCurrencyIcon,CAST(ISNULL( t.originalTotalCurrencyAmount,0) as decimal(12,2)) as originalTotalCurrencyAmount from ( select ROW_NUMBER() over(PARTITION BY storename ORDER BY requestDate DESC) row,storename, financialEventGroupEndLocale,originCurrencyIcon,originalTotalCurrencyAmount from [192.168.1.187].[UpGoods].dbo.LxERP_SettlementSummaryData where accountType='Standard' and processingStatus='Closed ') t where t.row=1) t1 on d.ShopName=t1.storeName left join (select storename,CONVERT(decimal(12,2), SUM(ISNULL(originalTotalCurrencyAmount,0))) originalTotalCurrencyAmount from [192.168.1.187].[UpGoods].dbo.LxERP_SettlementSummaryData where processingStatus='Open' and accountType='Standard' group by storename) n1 on d.ShopName=n1.storeName " + "\r\n" + " left join (select sid, CAST( orderDefectRate *100 as decimal(12,2)) orderDefectRate,CAST( validTrackingRate *100 as decimal(12,2)) validTrackingRate,cast(CancelRate *100 as decimal(12,2)) cancelRate from (\r\nselect ROW_NUMBER() over(PARTITION BY sid ORDER BY requestDate DESC) row,sid, orderDefectRate,validTrackingRate,CancelRate from [192.168.1.187].[UpGoods].dbo.Amazon_V2_SELLER_PERFORMANCE_REPORT where CONVERT(date, RequestDate)='" + InDate.Value.AddDays(-1).Date.ToString("yyyy-MM-dd") + "') t where t.row=1)t2 on t2.sid=o.sid \r\nleft join (select sid, user_sessions,totalOrderItems, case when user_sessions=0 or totalOrderItems=0 then 0 else convert(decimal(12,2),(totalOrderItems*1.00/user_sessions)*100 ) end as CVR from [192.168.1.187].[UpGoods].dbo.Amazon_SALES_AND_TRAFFIC_REPORT where CONVERT(date, ReportDate)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "') t3 on t3.sid=o.sid\r\nleft join [192.168.1.187].[UpGoods].dbo.AmazonStoreRefundAmountAndRate t4 on t4.sid=o.sid and Convert(date, t4.ReportDate)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "'\r\n where d.PlatType=2 union all\r\n select d.ShopName,Master=case when d.Master=d.buyer then d.Master when d.buyer is not null and d.buyer<>'' then d.Master+'-'+d.buyer else d.Master end,a.OrderNum,a.RMBMoney,a.USDMoney,AvgPrice=case when a.OrderNum>0 then cast(a.USDMoney/a.OrderNum as decimal(18,2)) else 0 end,a.InPrice,LR=cast(b.ml as decimal(18,2)),MLL=case when b.TotalPrice>0 then cast(b.ml*100/b.TotalPrice as decimal(18,2)) else 0 end,ShopTJGoods=e.Num,ShopCDGoods=e.Num2,ckfee,a.mdfee,a.adfee,bz=case when a.InPrice>0 then CAST(a.RMBMoney/a.InPrice as decimal(18,2)) else 0 end,a.yf,c.GoodRate,c.ODR,c.DSRService,c.DSRGoods,case when ISNULL(c.DSRPost,0)=0 then '' else CONVERT(nvarchar(20),c.DSRPost) end DSRPost,c.USDUseMoney,c.USDNoMoney,c.RMBUseMoney,c.RMBNoMoney,c.Rate1,c.Rate2,c.Rate3,c.Rate4,c.PropertyViolate,c.Rate5,c.Rate6,Rate7=isnull(c.Rate7,d.dayfee),JL=cast(b.ml as decimal(18,2))+isnull(ckfee,0)-isnull(c.Rate3,0)-isnull(c.Rate7,d.dayfee),FeeDate=isnull(c.FeeDate,d.FeeDate),TXFee=isnull(c.TXFee,d.TXFee) from \r\nJC_Shop d left join (\r\nselect ShopId,OrderNum=COUNT(0),RMBMoney=SUM(RMBPrice),escrowFee=sum(escrowFee),USDMoney=SUM(TotalPrice),InPrice=SUM(cb),ckfee=SUM(ck),mdfee=SUM(md),adfee=SUM(Ad_Fee),yf=SUM(yf) from #ls\r\ngroup by ShopId)a on d.ShopId=a.ShopId\r\nleft join (select ShopId,TotalPrice=sum(TotalPrice),ml=sum(isnull(TotalPrice,0)-isnull(escrowFee,0)-isnull(yj,0)-isnull(yf,0)-((isnull(cb,0)+isnull(hwsf,0))/moneyrate)-isnull(tc,0)-isnull(ck,0)-isnull(md,0)-isnull(Ad_Fee,0)+ SubsidyFee) from #ls where yf>0\r\ngroup by ShopId)b on a.ShopId=b.ShopId\r\nleft join (\r\nselect GoodRate,ODR,DSRService,DSRGoods,DSRPost,USDUseMoney,USDNoMoney,RMBUseMoney, RMBNoMoney,Rate1,Rate2,Rate3,Rate4,PropertyViolate,Rate5,Rate6,Rate7,FeeDate,TXFee\r\nTXFee,ShopId from JC_ShopData\r\nwhere DATEDIFF(day,indate,'" + InDate.Value.ToString("yyyy-MM-dd") + "')=0 )c on a.ShopId=c.ShopId\r\nleft Join #ls2 e on a.ShopId=e.ShopId where d.PlatType!=2 " + (isyc ? " and d.Master!='东南亚专用'" : "") + "\r\n) a order by " + Sort; DataTable dt = obj.GetReportData(sql); return GetReport3(dt, 18); } catch (Exception ex) { string a = dd; return ""; } } #endregion #region GetReportTable18_Old2 /// /// 报表18 每日利润 只展示自身的 /// /// /// /// /// /// /// /// /// [WebMethod(EnableSession = true)] public string GetReportTable18_Old2(DateTime? InDate, int DeptId, int ShopId, int PlatId, string MoneyCode, string Sort, bool isyc) { string dd = ""; try { //判断登录者 var InUserId = Convert.ToInt32(Session["UserId"]); string selectUserIdFirst = ""; string selectUserId = ""; string selectUserId1 = ""; string selectUserId2 = ""; string selectUserId3 = " "; string selectUserId31 = " "; string selectUserId32 = " "; if (InUserId != 1) { selectUserIdFirst = "DECLARE @skuUserId INT = " + InUserId + ";\r\n"; selectUserId = " where \r\n(a.guserid_shopify = @skuUserId or\r\na.guserid_wayfair= @skuUserId or\r\na.guserid_sheIn = @skuUserId or\r\na.guserid_ebay = @skuUserId or\r\na.guserid_wlmart = @skuUserId or\r\na.muserid = @skuUserId or \r\na.guserid = @skuUserId)"; selectUserId1 = " \r\n left join DT_OrderGoods d with(nolock) on a.OrderId=d.OrderId\r\nleft join HW_GoodsDetail e with(nolock) on e.DetailId=d.DetailId\r\nleft JOIN HW_GoodsInfo f with(nolock) on e.GoodsId=f.GoodsId \r\n"; selectUserId2 = " and \r\n(f.guserid_shopify = @skuUserId or\r\nf.guserid_wayfair= @skuUserId or\r\nf.guserid_sheIn = @skuUserId or\r\nf.guserid_ebay = @skuUserId or\r\nf.guserid_wlmart = @skuUserId or\r\nf.muserid = @skuUserId or \r\nf.guserid = @skuUserId) \r\n"; selectUserId3 = " select DISTINCT a.ShopId into #ls3 from DT_OrderInfo a with(nolock)\r\ninner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId\r\nleft join DT_Fees c with(nolock) on a.OrderId=c.orderid\r\nleft join DT_OrderGoods d with(nolock) on a.OrderId=d.OrderId\r\nleft join HW_GoodsDetail e with(nolock) on e.DetailId=d.DetailId\r\nleft JOIN HW_GoodsInfo f with(nolock) on e.GoodsId=f.GoodsId\r\nwhere DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + "')=0 and a.State>0 and a.State<3 and \r\n(f.guserid_shopify = @skuUserId or\r\nf.guserid_wayfair= @skuUserId or\r\nf.guserid_sheIn = @skuUserId or\r\nf.guserid_ebay = @skuUserId or\r\nf.guserid_wlmart = @skuUserId or\r\nf.muserid = @skuUserId or \r\nf.guserid = @skuUserId); "; selectUserId31 = "INNER JOIN #ls3 ff on d.ShopId=ff.ShopId\r\n"; selectUserId32 = "INNER JOIN #ls3 ff on a.ShopId=ff.ShopId\r\n"; } var obj = new BaseService(); string tj = ""; string tj1 = ""; //if (DeptId > 0) //{ // tj += " and b.DeptId=" + DeptId + " "; // tj1 += " and a.DeptId=" + DeptId + " "; //} if (PlatId > 0) { tj += " and a.PlatId=" + PlatId + " "; tj1 += " and a.PlatId=" + PlatId + " "; } if (ShopId > 0) { tj += " and a.ShopId=" + ShopId + " "; tj1 += " and a.ShopId=" + ShopId + " "; } //if (MoneyCode != "0") // tj += " and a.MoneyCode='" + MoneyCode + "' "; // string sql = @" //declare @moneyrate decimal(18,4) //select @moneyrate=MRate from JC_Money where MCode='USD' and PlatId=2 //select a.ShopId,a.TotalPrice,escrowFee=isnull(a.escrowFee,0),a.RMBPrice,c.yj,yf=c.yf,cb=c.cb,hwsf=c.hwsf,c.tc,c.ck,c.md,a.Ad_Fee,a.DR_BackFee,a.DR_PostFee,a.DR_SSFee,a.Other_Fee,moneyrate=isnull(c.moneyrate,@moneyrate) into #ls from DT_OrderInfo a with(nolock) //inner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId //left join DT_Fees c with(nolock) on a.OrderId=c.orderid //where DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 " + tj + @" and a.State>0 and a.State<3 //select a.*,Num2=isnull(b.Num2,0) into #ls2 from ( //select b.ShopId,Num=COUNT(0) from HW_GoodsInfo a with(nolock) //inner join HW_Shop b with(nolock) on a.GoodsId=b.GoodsId //group by b.ShopId)a //left join ( //select a.ShopId,Num2=COUNT(distinct c.GoodsId) from DT_OrderInfo a with(nolock) //inner join DT_OrderGoods b with(nolock) on a.OrderId=b.OrderId //inner join HW_GoodsDetail c with(nolock) on b.DetailId=c.DetailId //where a.State>0 and a.State<3 and DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 group by a.ShopId)b on a.ShopId=b.ShopId //select d.ShopName,Master=case when d.Master=d.buyer then d.Master when d.buyer is not null and d.buyer<>'' then d.Master+'-'+d.buyer else d.Master end,a.OrderNum,a.RMBMoney,a.USDMoney,AvgPrice=case when a.OrderNum>0 then cast(a.USDMoney/a.OrderNum as decimal(18,2)) else 0 end,a.InPrice,LR=cast(b.ml as decimal(18,2)),MLL=case when b.TotalPrice>0 then cast(b.ml*100/b.TotalPrice as decimal(18,2)) else 0 end,ShopTJGoods=e.Num,ShopCDGoods=e.Num2,ckfee,a.mdfee,a.adfee,bz=case when a.InPrice>0 then CAST(a.RMBMoney/a.InPrice as decimal(18,2)) else 0 end,c.GoodRate,c.ODR,c.DSRService,c.DSRGoods,h.DSRPost,c.USDUseMoney,c.USDNoMoney,c.RMBUseMoney,c.RMBNoMoney,c.Rate1,c.Rate2,f.Rate3,c.Rate4,c.PropertyViolate,c.Rate5,g.Rate6,Rate7=isnull(c.Rate7,d.dayfee),JL=cast(b.ml as decimal(18,2))+isnull(ckfee,0)+isnull(mdfee,0)-isnull(c.Rate3,0)-isnull(c.Rate7,d.dayfee),FeeDate=isnull(c.FeeDate,d.FeeDate),TXFee=isnull(c.TXFee,d.TXFee) from //JC_Shop d left join ( //select ShopId,OrderNum=COUNT(0),RMBMoney=SUM(RMBPrice),escrowFee=sum(escrowFee),USDMoney=SUM(TotalPrice),InPrice=SUM(cb),ckfee=SUM(ck),mdfee=SUM(md),adfee=SUM(Ad_Fee) from #ls //group by ShopId)a on d.ShopId=a.ShopId //left join (select ShopId,TotalPrice=sum(TotalPrice),ml=sum(isnull(TotalPrice,0)-isnull(escrowFee,0)-isnull(yj,0)-isnull(yf,0)-((isnull(cb,0)+isnull(hwsf,0))/moneyrate)-isnull(tc,0)-isnull(ck,0)-isnull(md,0)-isnull(Ad_Fee,0)) from #ls where yf>0 //group by ShopId)b on a.ShopId=b.ShopId //left join ( //select GoodRate,ODR,DSRService,DSRGoods,DSRPost,USDUseMoney,USDNoMoney,RMBUseMoney, RMBNoMoney,Rate1,Rate2,Rate3,Rate4,PropertyViolate,Rate5,Rate6,Rate7,FeeDate,TXFee //TXFee,ShopId from JC_ShopData //where DATEDIFF(day,indate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 )c on a.ShopId=c.ShopId //left Join #ls2 e on a.ShopId=e.ShopId // left join (select shopid,SUM(ABS(adfee)) Rate3 from AD_FeeList where DATEDIFF(day,addate,'" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "')=0 group by shopid) f on d.ShopId=f.shopid "+ // " left join ( select shopid,SUM(ABS(adfee)) Rate6 from AD_FeeList where CONVERT(varchar(7), addate, 120)='"+ InDate.Value.ToString("yyyy-MM") + "' group by shopid) g on d.ShopId=g.shopid "+ // " left join(select b.name shopName,case when a.Spend=0 or a.ad_sale_amount=0 then 0 else cast((Spend/ad_sale_amount)*100 as decimal(12,2)) end DSRPost from ( select sid,SUM(ISNULL(ABS(spend),0)) Spend, SUM(ISNULL(ad_sales_amount,0)) ad_sale_amount from [192.168.1.187].[UpGoods].dbo.LxERP_ProductPerformance where summary_field='Asin' and RequestDate='" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "' group by sid) a left join [192.168.1.187].[UpGoods].dbo.LxERP_Amazon_Shop b on a.sid=b.sid) h on d.ShopName=h.shopName " // + " order by " + Sort; string sql = selectUserIdFirst + @" declare @moneyrate decimal(18,4) select @moneyrate=MRate from JC_Money where MCode='USD' and PlatId=2 select a.ShopId,a.TotalPrice,escrowFee=isnull(a.escrowFee,0),a.RMBPrice,c.yj,yf=c.yf,cb=c.cb,hwsf=c.hwsf,c.tc,c.ck,c.md,a.Ad_Fee,a.DR_BackFee,a.DR_PostFee,a.DR_SSFee,a.Other_Fee,moneyrate=isnull(c.moneyrate,@moneyrate),ISnull( c.SubsidyFee,0) SubsidyFee into #ls from DT_OrderInfo a with(nolock) inner join DT_OrderXXInfo b with(nolock) on a.OrderId=b.OrderId left join DT_Fees c with(nolock) on a.OrderId=c.orderid " + selectUserId1 + @" where DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 " + tj + @" and a.State>0 and a.State<3 " + selectUserId2 + @" select a.*,Num2=isnull(b.Num2,0) into #ls2 from ( select b.ShopId,Num=COUNT(0) from HW_GoodsInfo a with(nolock) inner join HW_Shop b with(nolock) on a.GoodsId=b.GoodsId " + selectUserId + @" group by b.ShopId)a LEFT join ( select a.ShopId,Num2=COUNT(distinct c.GoodsId) from DT_OrderInfo a with(nolock) inner join DT_OrderGoods b with(nolock) on a.OrderId=b.OrderId inner join HW_GoodsDetail c with(nolock) on b.DetailId=c.DetailId where a.State>0 and a.State<3 and DATEDIFF(day,a.OrderDate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 group by a.ShopId)b on a.ShopId=b.ShopId " + selectUserId3 + @" select * from ( select d.ShopName,Master=case when d.Master=d.buyer then d.Master when d.buyer is not null and d.buyer<>'' then d.Master+'-'+d.buyer else d.Master end,a.OrderNum,a.RMBMoney,a.USDMoney,AvgPrice=case when a.OrderNum>0 then cast(a.USDMoney/a.OrderNum as decimal(18,2)) else 0 end,a.InPrice,LR=cast(b.ml as decimal(18,2)),MLL=case when b.TotalPrice>0 then cast(b.ml*100/b.TotalPrice as decimal(18,2)) else 0 end,ShopTJGoods=e.Num,ShopCDGoods=e.Num2,ckfee,a.mdfee,a.adfee,bz=case when a.InPrice>0 then CAST(a.RMBMoney/a.InPrice as decimal(18,2)) else 0 end,a.yf,c.GoodRate,c.ODR,t3.CVR DSRService,t3.user_sessions DSRGoods,f.DSRPost,c.USDUseMoney, n1.originalTotalCurrencyAmount as USDNoMoney,c.RMBUseMoney,c.RMBNoMoney,t2.orderDefectRate Rate1,t2.validTrackingRate Rate2,Case when d.PlatType=2 then f.Rate3 else c.Rate3 end Rate3,t4.RefundRate as Rate4, ABS( ISNULL( t4.RefundAmount,0) ) as PropertyViolate,t2.cancelRate Rate5,Case when d.PlatType=2 then g.Rate6 else (select SUM(ISNULL(Rate3,0)) from JC_ShopData where ShopId=d.ShopId and DATEDIFF(MONTH,InDate,'2023-10-18')=0) end Rate6,Rate7=isnull(c.Rate7,d.dayfee),JL=cast(b.ml as decimal(18,2))+isnull(ckfee,0)-isnull(c.Rate3,0)-isnull(c.Rate7,d.dayfee),t1.financialEventGroupEndLocale as FeeDate,t1.originalTotalCurrencyAmount as TXFee from JC_Shop d left join ( select ShopId,OrderNum=COUNT(0),RMBMoney=SUM(RMBPrice),escrowFee=sum(escrowFee),USDMoney=SUM(TotalPrice),InPrice=SUM(cb),ckfee=SUM(ck),mdfee=SUM(md),adfee=SUM(Ad_Fee),yf=SUM(yf) from #ls group by ShopId)a on d.ShopId=a.ShopId left join (select ShopId,TotalPrice=sum(TotalPrice),ml=sum(isnull(TotalPrice,0)-isnull(escrowFee,0)-isnull(yj,0)-isnull(yf,0)-((isnull(cb,0)+isnull(hwsf,0))/moneyrate)-isnull(tc,0)-isnull(ck,0)-isnull(md,0)-isnull(Ad_Fee,0)+SubsidyFee ) from #ls where yf>0 group by ShopId)b on a.ShopId=b.ShopId left join ( select GoodRate,ODR,DSRService,DSRGoods,DSRPost,USDUseMoney,USDNoMoney,RMBUseMoney, RMBNoMoney,Rate1,Rate2,Rate3,Rate4,PropertyViolate,Rate5,Rate6,Rate7,FeeDate,TXFee TXFee,ShopId from JC_ShopData where DATEDIFF(day,indate,'" + InDate.Value.ToString("yyyy-MM-dd") + @"')=0 )c on a.ShopId=c.ShopId left Join #ls2 e on a.ShopId=e.ShopId left join [192.168.1.187].[UpGoods].dbo.LxERP_Amazon_Shop o on d.ShopName=o.name left join ( select sid, CONVERT(decimal(12,2), SUM(t.cost)) as Rate3,CONVERT(decimal(12,2), SUM(t.sales)) as ad_sales , case when CONVERT(decimal(12,2), SUM(t.sales))<=0 then '∞' else CONVERT(nvarchar(20), convert(decimal(12,2), (CONVERT(decimal(12,2), SUM(t.cost))/CONVERT(decimal(12,2), SUM(t.sales)))*100)) end DSRPost from( select sid, SUM( ISNULL(cost,0)) as cost,SUM(ISNULL(sales,0))sales from [192.168.1.187].[UpGoods].dbo.LxERP_SPAdGroupReports where CONVERT(date,report_date)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "' group by sid union all select sid, SUM( ISNULL(cost,0)) as cost,SUM(ISNULL(sales,0))sales from [192.168.1.187].[UpGoods].dbo.LxERP_SBCampaignReports where CONVERT(date,report_date)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "' group by sid union all select sid, SUM( ISNULL(cost,0)) as cost,SUM(ISNULL(sales,0))sales from [192.168.1.187].[UpGoods].dbo.LxERP_SDAdGroupReports where CONVERT(date,report_date)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "' group by sid) t group by sid ) f on f.sid=o.sid" + " \r\n left join (select sid, CONVERT(decimal(12,2), SUM(t.cost)) as Rate6 from( select sid, SUM( ISNULL(cost,0)) as cost from [192.168.1.187].[UpGoods].dbo.LxERP_SPAdGroupReports where CONVERT(date,report_date)<='" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "' and CONVERT(date,report_date)>='" + InDate.Value.AddDays(-31).ToString("yyyy-MM-dd") + "' group by sid union all select sid, SUM( ISNULL(cost,0)) as cost from [192.168.1.187].[UpGoods].dbo.LxERP_SBCampaignReports where CONVERT(date,report_date)<='" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "' and CONVERT(date,report_date)>='" + InDate.Value.AddDays(-31).ToString("yyyy-MM-dd") + "' group by sid union all select sid, SUM( ISNULL(cost,0)) as cost from [192.168.1.187].[UpGoods].dbo.LxERP_SDAdGroupReports where CONVERT(date,report_date)<='" + InDate.Value.AddDays(-2).ToString("yyyy-MM-dd") + "' and CONVERT(date,report_date)>='" + InDate.Value.AddDays(-31).ToString("yyyy-MM-dd") + "' group by sid) t group by sid) g on o.sid=g.sid " + " \r\n left join(select t.row, t.storename,t.financialEventGroupEndLocale,t.originCurrencyIcon,CAST(ISNULL( t.originalTotalCurrencyAmount,0) as decimal(12,2)) as originalTotalCurrencyAmount from ( select ROW_NUMBER() over(PARTITION BY storename ORDER BY requestDate DESC) row,storename, financialEventGroupEndLocale,originCurrencyIcon,originalTotalCurrencyAmount from [192.168.1.187].[UpGoods].dbo.LxERP_SettlementSummaryData where accountType='Standard' and processingStatus='Closed ') t where t.row=1) t1 on d.ShopName=t1.storeName left join (select storename,CONVERT(decimal(12,2), SUM(ISNULL(originalTotalCurrencyAmount,0))) originalTotalCurrencyAmount from [192.168.1.187].[UpGoods].dbo.LxERP_SettlementSummaryData where processingStatus='Open' and accountType='Standard' group by storename) n1 on d.ShopName=n1.storeName " + "\r\n" + " left join (select sid, CAST( orderDefectRate *100 as decimal(12,2)) orderDefectRate,CAST( validTrackingRate *100 as decimal(12,2)) validTrackingRate,cast(CancelRate *100 as decimal(12,2)) cancelRate from (\r\nselect ROW_NUMBER() over(PARTITION BY sid ORDER BY requestDate DESC) row,sid, orderDefectRate,validTrackingRate,CancelRate from [192.168.1.187].[UpGoods].dbo.Amazon_V2_SELLER_PERFORMANCE_REPORT where CONVERT(date, RequestDate)='" + InDate.Value.AddDays(-1).Date.ToString("yyyy-MM-dd") + "') t where t.row=1)t2 on t2.sid=o.sid \r\nleft join (select sid, user_sessions,totalOrderItems, case when user_sessions=0 or totalOrderItems=0 then 0 else convert(decimal(12,2),(totalOrderItems*1.00/user_sessions)*100 ) end as CVR from [192.168.1.187].[UpGoods].dbo.Amazon_SALES_AND_TRAFFIC_REPORT where CONVERT(date, ReportDate)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "') t3 on t3.sid=o.sid\r\nleft join [192.168.1.187].[UpGoods].dbo.AmazonStoreRefundAmountAndRate t4 on t4.sid=o.sid and Convert(date, t4.ReportDate)='" + InDate.Value.AddDays(-2).Date.ToString("yyyy-MM-dd") + "'\r\n" + selectUserId31 + " where d.PlatType=2 union all\r\n select d.ShopName,Master=case when d.Master=d.buyer then d.Master when d.buyer is not null and d.buyer<>'' then d.Master+'-'+d.buyer else d.Master end,a.OrderNum,a.RMBMoney,a.USDMoney,AvgPrice=case when a.OrderNum>0 then cast(a.USDMoney/a.OrderNum as decimal(18,2)) else 0 end,a.InPrice,LR=cast(b.ml as decimal(18,2)),MLL=case when b.TotalPrice>0 then cast(b.ml*100/b.TotalPrice as decimal(18,2)) else 0 end,ShopTJGoods=e.Num,ShopCDGoods=e.Num2,ckfee,a.mdfee,a.adfee,bz=case when a.InPrice>0 then CAST(a.RMBMoney/a.InPrice as decimal(18,2)) else 0 end,a.yf,c.GoodRate,c.ODR,c.DSRService,c.DSRGoods,case when ISNULL(c.DSRPost,0)=0 then '' else CONVERT(nvarchar(20),c.DSRPost) end DSRPost,c.USDUseMoney,c.USDNoMoney,c.RMBUseMoney,c.RMBNoMoney,c.Rate1,c.Rate2,c.Rate3,c.Rate4,c.PropertyViolate,c.Rate5,c.Rate6,Rate7=isnull(c.Rate7,d.dayfee),JL=cast(b.ml as decimal(18,2))+isnull(ckfee,0)-isnull(c.Rate3,0)-isnull(c.Rate7,d.dayfee),FeeDate=isnull(c.FeeDate,d.FeeDate),TXFee=isnull(c.TXFee,d.TXFee) from \r\nJC_Shop d left join (\r\nselect ShopId,OrderNum=COUNT(0),RMBMoney=SUM(RMBPrice),escrowFee=sum(escrowFee),USDMoney=SUM(TotalPrice),InPrice=SUM(cb),ckfee=SUM(ck),mdfee=SUM(md),adfee=SUM(Ad_Fee),yf=SUM(yf) from #ls\r\ngroup by ShopId)a on d.ShopId=a.ShopId\r\nleft join (select ShopId,TotalPrice=sum(TotalPrice),ml=sum(isnull(TotalPrice,0)-isnull(escrowFee,0)-isnull(yj,0)-isnull(yf,0)-((isnull(cb,0)+isnull(hwsf,0))/moneyrate)-isnull(tc,0)-isnull(ck,0)-isnull(md,0)-isnull(Ad_Fee,0)+ SubsidyFee) from #ls where yf>0\r\ngroup by ShopId)b on a.ShopId=b.ShopId\r\nleft join (\r\nselect GoodRate,ODR,DSRService,DSRGoods,DSRPost,USDUseMoney,USDNoMoney,RMBUseMoney, RMBNoMoney,Rate1,Rate2,Rate3,Rate4,PropertyViolate,Rate5,Rate6,Rate7,FeeDate,TXFee\r\nTXFee,ShopId from JC_ShopData\r\nwhere DATEDIFF(day,indate,'" + InDate.Value.ToString("yyyy-MM-dd") + "')=0 )c on a.ShopId=c.ShopId\r\nleft Join #ls2 e on a.ShopId=e.ShopId " + selectUserId32 + "where d.PlatType!=2 " + (isyc ? " and d.Master!='东南亚专用'" : "") + "\r\n) a order by " + Sort; DataTable dt = obj.GetReportData(sql); return GetReport3(dt, 18); } catch (Exception ex) { string a = dd; return ""; } } #endregion #region /// /// 报表18 每日利润 只展示自身的 最新需求 /// /// /// /// /// /// /// /// /// [WebMethod(EnableSession = true)] public string GetReportTable18Old5(DateTime? InDate) { string dd = ""; try { //int UserId = 243; var UserId = Convert.ToInt32(Session["UserId"]); var list = DataNew.MRJL_GetUserOderMsgByDay((DateTime)InDate, UserId); var goodsList = DataNew.MRJL_GetGoodsIdByDay((DateTime)InDate, UserId); if (list != null && list.Count() > 0) { foreach (var l in list) { //名称 l.ShopName = DataNew.MRJL_GetShopName(l.ShopId); //客单价 l.AvgPrice = Math.Round(l.USDMoney / l.OrderNum, 2); if (goodsList != null && goodsList.Count() > 0) { //获取广告 var plstId = goodsList.Where(t => t.ShopId == l.ShopId).Select(t => t.PlatId).FirstOrDefault(); var goods = goodsList.Where(t => t.ShopId == l.ShopId).Select(t => t.GoodsID.ToString()).ToList(); var adfeeModel1 = DataNew.MRJL_GetGKFeeByDay((DateTime)InDate, plstId, l.ShopId, goods); var adfeeModel2 = DataNew.MRJL_GetGKFeeByMouth((DateTime)InDate, plstId, l.ShopId, goods); l.Rate3 = adfeeModel1 != null ? adfeeModel1.Adfee : 0; l.Rate6 = adfeeModel2 != null ? adfeeModel2.Adfee : 0; // } //净利润 l.LR = Math.Round(l.LR, 2); l.JL = l.LR + l.ckfee - l.Rate3; } } var dt = DataNew.ListToDataTable(list.OrderByDescending(t => t.OrderNum).ToList()); //var list = DataNew.GetUserOderMsgByDay((DateTime)InDate, UserId); //DataTable dt = obj.GetReportData(sql); return GetReport3(dt, 181); return ""; } catch (Exception ex) { string a = dd; return ""; } } #endregion #endregion #region 报表 public string GetReport3(DataTable dt, int ReportId) { PagesNew.Login(this.Session); var obj = new BaseService(); var rmd = BaseService.GetReportModel(ReportId); var rlist = obj.GetRepoartColsList(ReportId); if (rmd == null || rlist == null) return ""; StringBuilder html = new StringBuilder(); html.Append("序号"); foreach (var md in rlist) { html.Append("" + md.ColName + ""); } html.Append(""); if (dt != null) { DataRow row = null; for (int i = 0; i < dt.Rows.Count; i++) { html.Append("" + (i + 1).ToString() + ""); int rowindex = 1; foreach (var md in rlist) { if (dt.Columns.Contains(md.ColValue) == false) { html.Append(""); rowindex++; continue; } if (md.IsSum == 1 && i == 0) { if (row == null) row = dt.NewRow(); if (md.ColType == "int") { try { row[md.ColValue] = Convert.ToInt32(dt.Compute("sum(" + md.ColValue + ")", "" + md.ColValue + " is not null")); } catch { row[md.ColValue] = 0; } } else if (md.ColType == "dec") { try { row[md.ColValue] = Convert.ToDecimal(dt.Compute("sum(" + md.ColValue + ")", "" + md.ColValue + ">0")); } catch { row[md.ColValue] = 0; } } } if (dt.Rows[i][md.ColValue] != null && dt.Rows[i][md.ColValue].ToString() != "") { string csscolor = ""; if (md.ContionType == "=" && dt.Rows[i][md.ColValue].ToString() == md.SValue) { csscolor = md.ColColor; } else if (md.ContionType == ">" && Convert.ToDecimal(dt.Rows[i][md.ColValue]) > Convert.ToDecimal(md.SValue) && Convert.ToDecimal(dt.Rows[i][md.ColValue]) < Convert.ToDecimal(md.EValue)) { csscolor = md.ColColor; } else if (md.ContionType == ">=" && Convert.ToDecimal(dt.Rows[i][md.ColValue]) >= Convert.ToDecimal(md.SValue) && Convert.ToDecimal(dt.Rows[i][md.ColValue]) <= Convert.ToDecimal(md.EValue)) { csscolor = md.ColColor; } if (csscolor != "") csscolor = "style='color:" + csscolor + "'"; string datav = ""; if (md.ColType == "date1") datav = Convert.ToDateTime(dt.Rows[i][md.ColValue]).ToString("yyyy-MM-dd"); else if (md.ColType == "date2") datav = Convert.ToDateTime(dt.Rows[i][md.ColValue]).ToString("yyyy-MM-dd HH:mm"); else datav = dt.Rows[i][md.ColValue].ToString(); html.Append("" + datav + ""); } else html.Append(""); rowindex++; } html.Append(""); } int hj = 0; if (row != null) { html.Append("合计:"); foreach (var md in rlist) { if (dt.Columns.Contains(md.ColValue) == false) { html.Append(""); continue; } if (md.IsSum == 1 && row[md.ColValue] != null) { if (hj == 0) { hj = 1; html.Append("" + row[md.ColValue] + ""); } else html.Append("" + row[md.ColValue] + ""); } else html.Append(""); } html.Append(""); } } return html.ToString(); } #endregion #region 首页订单数 [WebMethod(EnableSession = true)] public DT_DefaultDataNew GetDefaultDataForTM2(DateTime? st, Decimal MRate) { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); int userid = Convert.ToInt32(Session["UserId"]); BaseService obj = new BaseService(); DateTime sdate = Convert.ToDateTime(DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd")); DateTime edate = Convert.ToDateTime(DateTime.Today.ToString("yyyy-MM-dd")); var model = DataNew.GetDefaultDataForTM2(userid, CompanyId, st, st.Value.AddDays(-1), sdate, edate); return model; } #endregion #region 平台店铺主管 [WebMethod(EnableSession = true)] public List GetShopAllList(int PlatType) { PagesNew.Login(this.Session); int UserId = Convert.ToInt32(Session["UserId"]); var list = DataNew.GetShopListFPage(UserId, PlatType, "M"); return list; } #endregion [WebMethod(EnableSession = true)] public string GetListUSMap2() { DateTime Sdate = DateTime.Today.AddDays(-1); int UserId = Convert.ToInt32(Session["UserId"]); // BaseService.SetData(); List list = DataNew.GetListUSOrder(UserId,"", Sdate, Sdate.AddDays(1)); JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(list); } #region 首页订单统计 [WebMethod(EnableSession = true)] public DT_OrderNum GetDefaultOrderCount1(List listshop, int Type, int Days) { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); int UserId = Convert.ToInt32(Session["UserId"]); var obj = new DD_OrderData(); string Ids = ""; string[] categories = null; DT_OrderNum md = new DT_OrderNum(); var list = new List(); DateTime SDate = DateTime.Today.AddDays(-1 * Days); DateTime EDate = DateTime.Today; TimeSpan ts = EDate - SDate; int days = ts.Days + 1; List countlist = new List(); countlist = DataNew.GetDefaultCountListFromDay2(UserId, Type, Ids.Trim(','), SDate, EDate.AddDays(1), CompanyId); List countlist2 = new List(); List countlist3 = new List(); if (Type == 3) { countlist2 = DataNew.GetDefaultCountListFromDay2(UserId, 4, Ids.Trim(','), SDate, EDate.AddDays(1), CompanyId); //countlist3 = obj.GetDefaultCountListFromDay2(4, Ids.Trim(','), SDate.AddYears(-1), EDate.AddDays(1).AddYears(-1), CompanyId); countlist3 = DataNew.GetDefaultCountListFromDay2(UserId, 4, Ids.Trim(','), SDate.AddYears(-1), EDate.AddDays(1).AddYears(-1), CompanyId); } categories = new string[days]; if (days > 0) { for (int i = 0; i < days; i++) { categories[i] = (SDate.AddDays(i)).ToString("MM月dd日"); } } if (Type == 3) { var smd = new DT_OrderCountContent(); smd.Id = 0; smd.Name = "总销售额"; listshop.Insert(0, smd); var _smd = new DT_OrderCountContent(); _smd.Id = -1; _smd.Name = "去年总销售额"; listshop.Insert(0, _smd); } if (listshop != null && listshop.Count > 0) { for (int i = 0; i < listshop.Count; i++) { decimal[] data = new decimal[days]; if (days > 0) { for (int j = 0; j < days; j++) { if (listshop[i].Id == 0 && Type == 3) { if (countlist2 != null) { var countmd2 = countlist2.Find(n => n.OrderDate == SDate.AddDays(j).ToString("yyyy-MM-dd")); if (countmd2 != null) data[j] = countmd2.Price.Value; else data[j] = 0; } else data[j] = 0; } else if (listshop[i].Id == -1 && Type == 3) { if (countlist3 != null) { var countmd2 = countlist3.Find(n => n.OrderDate == SDate.AddYears(-1).AddDays(j).ToString("yyyy-MM-dd")); if (countmd2 != null) data[j] = countmd2.Price.Value; else data[j] = 0; } else data[j] = 0; } else { if (countlist != null) { var countmd = countlist.Find(n => n.PlatId == listshop[i].Id && n.OrderDate == SDate.AddDays(j).ToString("yyyy-MM-dd")); if (countmd != null && Type == 3) data[j] = countmd.Price.Value; else if (countmd != null) data[j] = countmd.Num.Value; else data[j] = 0; } else data[j] = 0; } } } var datamd = new DT_OrderCountData(); datamd.name = listshop[i].Name; datamd.data = data; list.Add(datamd); } } md.categories = categories; JavaScriptSerializer JsonConvert = new JavaScriptSerializer(); string postmessage = JsonConvert.Serialize(list); md.Data = postmessage; return md; } #endregion #region 首页订单统计 [WebMethod(EnableSession = true)] public DT_OrderNum GetDefaultOrderCountMonth(List listshop, int Type) { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); int userid = Convert.ToInt32(Session["UserId"]); var obj = new DD_OrderData(); string Ids = ""; string[] categories = null; DT_OrderNum md = new DT_OrderNum(); var list = new List(); DateTime SDate = Convert.ToDateTime(DateTime.Today.ToString("yyyy-MM-01")).AddMonths(-11); DateTime EDate = DateTime.Today; List countlist = new List(); if (Type == 1) countlist = DataNew.GetDefaultCountListFromMonth(userid, SDate, EDate.AddDays(1), CompanyId); else countlist = DataNew.GetDefaultCountListFromMonthPrice(userid, SDate, EDate.AddDays(1), CompanyId); List countlist2 = new List(); if (Type == 1) countlist2 = DataNew.GetDefaultCountListFromMonth2(userid, SDate, EDate.AddDays(1), CompanyId); else countlist2 = DataNew.GetDefaultCountListFromMonthPrice2(userid, SDate, EDate.AddDays(1), CompanyId); categories = new string[12]; int m = 11; for (int i = 0; i < 12; i++) { categories[i] = (DateTime.Today.AddMonths(-1 * m).Month).ToString() + "月"; m--; } if (Type == 1) { var smd = new DT_OrderCountContent(); smd.Id = 0; smd.Name = "总单量"; listshop.Insert(0, smd); } else if (Type == 2) { var smd = new DT_OrderCountContent(); smd.Id = 0; smd.Name = "总销售额"; listshop.Insert(0, smd); } if (listshop != null && listshop.Count > 0) { for (int i = 0; i < listshop.Count; i++) { decimal[] data = new decimal[12]; int m2 = 11; for (int j = 0; j < 12; j++) { if (listshop[i].Id == 0) { if (countlist2 != null) { var countmd2 = countlist2.Find(n => n.Month == DateTime.Today.AddMonths(-1 * m2).Month); if (countmd2 != null) { if (Type == 1) data[j] = countmd2.Num.Value; else data[j] = countmd2.Price.Value; } else data[j] = 0; } else data[j] = 0; } else { if (countlist != null) { var countmd = countlist.Find(n => n.ShopId == listshop[i].Id && n.Month == DateTime.Today.AddMonths(-1 * m2).Month); if (countmd != null) { if (Type == 1) data[j] = countmd.Num.Value; else data[j] = countmd.Price.Value; } else data[j] = 0; } else data[j] = 0; } m2--; } var datamd = new DT_OrderCountData(); datamd.name = listshop[i].Name; datamd.data = data; list.Add(datamd); } } md.categories = categories; JavaScriptSerializer JsonConvert = new JavaScriptSerializer(); string postmessage = JsonConvert.Serialize(list); md.Data = postmessage; return md; } #endregion #region 首页订单统计 [WebMethod(EnableSession = true)] public DT_OrderNum GetDefaultOrderCountMonth2(List listshop, int Type) { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); int userid = Convert.ToInt32(Session["UserId"]); var obj = new DD_OrderData(); string Ids = ""; string[] categories = null; DT_OrderNum md = new DT_OrderNum(); var list = new List(); DateTime SDate = Convert.ToDateTime(DateTime.Today.ToString("yyyy-MM-01")).AddMonths(-11); DateTime EDate = DateTime.Today; List countlist = new List(); if (Type == 1) countlist = DataNew.GetDefaultCountListFromMonthPT(userid, SDate, EDate.AddDays(1), CompanyId); else countlist = DataNew.GetDefaultCountListFromMonthPTPrice(userid, SDate, EDate.AddDays(1), CompanyId); List countlist2 = new List(); if (Type == 1) countlist2 = DataNew.GetDefaultCountListFromMonth2(userid, SDate, EDate.AddDays(1), CompanyId); else countlist2 = DataNew.GetDefaultCountListFromMonthPrice2(userid, SDate, EDate.AddDays(1), CompanyId); categories = new string[12]; int m = 11; for (int i = 0; i < 12; i++) { categories[i] = (DateTime.Today.AddMonths(-1 * m).Month).ToString() + "月"; m--; } if (Type == 1) { var smd = new DT_OrderCountContent(); smd.Id = 0; smd.Name = "总单量"; listshop.Insert(0, smd); } else if (Type == 2) { var smd = new DT_OrderCountContent(); smd.Id = 0; smd.Name = "总销售额"; listshop.Insert(0, smd); } if (listshop != null && listshop.Count > 0) { for (int i = 0; i < listshop.Count; i++) { decimal[] data = new decimal[12]; int m2 = 11; for (int j = 0; j < 12; j++) { if (listshop[i].Id == 0) { if (countlist2 != null) { var countmd2 = countlist2.Find(n => n.Month == DateTime.Today.AddMonths(-1 * m2).Month); if (countmd2 != null) { if (Type == 1) data[j] = countmd2.Num.Value; else data[j] = countmd2.Price.Value; } else data[j] = 0; } else data[j] = 0; } else { if (countlist != null) { var countmd = countlist.Find(n => n.PlatId == listshop[i].Id && n.Month == DateTime.Today.AddMonths(-1 * m2).Month); if (countmd != null) { if (Type == 1) data[j] = countmd.Num.Value; else data[j] = countmd.Price.Value; } else data[j] = 0; } else data[j] = 0; } m2--; } var datamd = new DT_OrderCountData(); datamd.name = listshop[i].Name; datamd.data = data; list.Add(datamd); } } md.categories = categories; JavaScriptSerializer JsonConvert = new JavaScriptSerializer(); string postmessage = JsonConvert.Serialize(list); md.Data = postmessage; return md; } #endregion #region 发货立方 [WebMethod(EnableSession = true)] public DT_OrderNum GetOrderCountGoodsSoildDay_New() { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); int userid = Convert.ToInt32(Session["UserId"]); var obj = new DD_OrderData(); string[] categories = null; DT_OrderNum md = new DT_OrderNum(); var list = new List(); string tj = string.Format(" and ( d.muserid={0} or d.guserid_ebay={0} or d.guserid_wlmart={0} or d.guserid_wayfair={0} or d.guserid_shopify={0} or d.guserid_sheIn={0} or d.guserid_tiktok={0} or d.guserid_temu={0}) ", userid); DateTime SDate = DateTime.Today.AddDays(-30); DateTime EDate = DateTime.Today.AddDays(1); if (SDate != null) tj += " and a.OrderDate>='" + SDate.ToString("yyyy-MM-dd") + "' "; if (EDate != null) tj += " and a.OrderDate<'" + EDate.AddDays(1).ToString("yyyy-MM-dd") + "' "; string sql = @"select OrderDate=CONVERT(varchar(10),a.OrderDate, 120),Solid=sum(isnull(d.Solid,0)*b.GoodsNum) from DT_OrderInfo a with(nolock) inner join DT_OrderGoods b with(nolock) on a.OrderId=b.OrderId inner join HW_GoodsDetail c with(nolock) on b.DetailId=c.DetailId inner join HW_GoodsInfo d with(nolock) on c.GoodsId=d.GoodsId where a.state>0 and a.State<3 " + tj + @" group by CONVERT(varchar(10),a.OrderDate, 120) select OrderDate=CONVERT(varchar(10),a.OrderDate, 120),Solid=sum(isnull(d.Solid,0)*b.GoodsNum) from DT_OrderInfo a with(nolock) inner join DT_OrderXXInfo e on a.OrderId = e.OrderId inner join DT_OrderGoods b with(nolock) on a.OrderId=b.OrderId inner join HW_GoodsDetail c with(nolock) on b.DetailId=c.DetailId inner join HW_GoodsInfo d with(nolock) on c.GoodsId=d.GoodsId where a.state>0 and a.State<3 and e.StoreId = 6 " + tj + @" group by CONVERT(varchar(10),a.OrderDate, 120) select OrderDate = CONVERT(varchar(10), a.OrderDate, 120), Solid = sum(isnull(d.Solid, 0) * b.GoodsNum) from DT_OrderInfo a with(nolock) inner join DT_OrderXXInfo e on a.OrderId = e.OrderId inner join DT_OrderGoods b with(nolock) on a.OrderId = b.OrderId inner join HW_GoodsDetail c with(nolock) on b.DetailId = c.DetailId inner join HW_GoodsInfo d with(nolock) on c.GoodsId = d.GoodsId where a.state > 0 and a.State < 3 and e.StoreId = 11 " + tj + @" group by CONVERT(varchar(10), a.OrderDate, 120) "; var obj2 = new BaseService(); DataSet ds = obj2.GetReportData2(sql); List countlist = new List(); List countlist2 = new List(); List countlist3 = new List(); if (ds != null) { if(ds.Tables[0]!=null && ds.Tables[0].Rows.Count > 0) { for(int i = 0; i < ds.Tables[0].Rows.Count; i++) { var cl = new OrderSoild() { OrderDate = ds.Tables[0].Rows[i]["OrderDate"].ToString(), Solid = string.IsNullOrEmpty(ds.Tables[0].Rows[i]["Solid"].ToString()) ? 0 : Convert.ToDecimal(ds.Tables[0].Rows[i]["Solid"]) }; countlist.Add(cl); } } } if (ds != null && ds.Tables.Count > 1) { if (ds.Tables[1] != null && ds.Tables[1].Rows.Count > 0) { for (int i = 0; i < ds.Tables[1].Rows.Count; i++) { var cl = new OrderSoild() { OrderDate = ds.Tables[1].Rows[i]["OrderDate"].ToString(), Solid = string.IsNullOrEmpty(ds.Tables[1].Rows[i]["Solid"].ToString()) ? 0 : Convert.ToDecimal(ds.Tables[1].Rows[i]["Solid"]) }; countlist2.Add(cl); } } } if (ds != null && ds.Tables.Count > 2) { if (ds.Tables[2] != null && ds.Tables[2].Rows.Count > 0) { for (int i = 0; i < ds.Tables[2].Rows.Count; i++) { var cl = new OrderSoild() { OrderDate = ds.Tables[2].Rows[i]["OrderDate"].ToString(), Solid = string.IsNullOrEmpty(ds.Tables[2].Rows[i]["Solid"].ToString()) ? 0 : Convert.ToDecimal(ds.Tables[2].Rows[i]["Solid"]) }; countlist3.Add(cl); } } } TimeSpan ts = EDate - SDate; int days = ts.Days + 1; categories = new string[days]; for (int i = 0; i < days; i++) { categories[i] = SDate.AddDays(i).ToString("MM月dd日"); } decimal[] data = new decimal[days]; decimal[] data2 = new decimal[days]; decimal[] data3 = new decimal[days]; for (int j = 0; j < days; j++) { if (countlist != null) { var glist = countlist.Find(n => n.OrderDate == SDate.AddDays(j).ToString("yyyy-MM-dd")); if (glist == null) { data[j] = 0; } else data[j] = glist.Solid.Value; } else data[j] = 0; if (countlist2 != null) { var glist2 = countlist2.Find(n => n.OrderDate == SDate.AddDays(j).ToString("yyyy-MM-dd")); if (glist2 == null) { data2[j] = 0; } else data2[j] = glist2.Solid.Value; } else data2[j] = 0; if (countlist3 != null) { var glist3 = countlist3.Find(n => n.OrderDate == SDate.AddDays(j).ToString("yyyy-MM-dd")); if (glist3 == null) { data3[j] = 0; } else data3[j] = glist3.Solid.Value; } else data3[j] = 0; } var datamd = new DT_OrderCountData(); datamd.name = "货物立方--合计"; datamd.data = data; list.Add(datamd); datamd = new DT_OrderCountData(); datamd.name = "货物立方--W仓"; datamd.data = data2; list.Add(datamd); datamd = new DT_OrderCountData(); datamd.name = "货物立方--E仓"; datamd.data = data3; list.Add(datamd); md.categories = categories; md.categories = categories; JavaScriptSerializer JsonConvert = new JavaScriptSerializer(); string postmessage = JsonConvert.Serialize(list); md.Data = postmessage; return md; } #endregion #region 发货立方 [WebMethod(EnableSession = true)] public DT_OrderNum GetOrderCountGoodsSoildMonth_New() { PagesNew.Login(this.Session); int CompanyId = Convert.ToInt32(Session["CompanyId"]); int userid = Convert.ToInt32(Session["UserId"]); var obj = new DD_OrderData(); string[] categories = null; DT_OrderNum md = new DT_OrderNum(); var list = new List(); string tj = string.Format(" and ( d.muserid={0} or d.guserid_ebay={0} or d.guserid_wlmart={0} or d.guserid_wayfair={0} or d.guserid_shopify={0} or d.guserid_sheIn={0} or d.guserid_tiktok={0} or d.guserid_temu={0}) ", userid); DateTime SDate = Convert.ToDateTime(DateTime.Today.ToString("yyyy-MM-01")).AddMonths(-11); DateTime EDate = DateTime.Today.AddDays(1); if (SDate != null) tj += " and a.OrderDate>='" + SDate.ToString("yyyy-MM-dd") + "' "; if (EDate != null) tj += " and a.OrderDate<'" + EDate.AddDays(1).ToString("yyyy-MM-dd") + "' "; string sql = @"select OrderDate=cast(DATEPART(month,OrderDate) as nvarchar(10)),Solid=sum(isnull(d.Solid,0)*b.GoodsNum) from DT_OrderInfo a inner join DT_OrderGoods b on a.OrderId=b.OrderId inner join HW_GoodsDetail c on b.DetailId=c.DetailId inner join HW_GoodsInfo d on c.GoodsId=d.GoodsId where a.state>0 and a.State<3 " + tj + @" group by DATEPART(month,OrderDate) --W仓 select OrderDate = cast(DATEPART(month, OrderDate) as nvarchar(10)),Solid = sum(isnull(d.Solid, 0) * b.GoodsNum) from DT_OrderInfo a inner join DT_OrderXXInfo e on a.OrderId = e.OrderId inner join DT_OrderGoods b on a.OrderId = b.OrderId inner join HW_GoodsDetail c on b.DetailId = c.DetailId inner join HW_GoodsInfo d on c.GoodsId = d.GoodsId where a.state > 0 and a.State < 3 and e.StoreId = 6 " + tj + @" group by DATEPART(month, OrderDate) --E仓 select OrderDate = cast(DATEPART(month, OrderDate) as nvarchar(10)),Solid = sum(isnull(d.Solid, 0) * b.GoodsNum) from DT_OrderInfo a inner join DT_OrderXXInfo e on a.OrderId = e.OrderId inner join DT_OrderGoods b on a.OrderId = b.OrderId inner join HW_GoodsDetail c on b.DetailId = c.DetailId inner join HW_GoodsInfo d on c.GoodsId = d.GoodsId where a.state > 0 and a.State < 3 and e.StoreId = 11 " + tj + @" group by DATEPART(month, OrderDate) "; var obj2 = new BaseService(); DataSet ds = obj2.GetReportData2(sql); List countlist = new List(); List countlist2 = new List(); List countlist3 = new List(); if (ds != null) { if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { var cl = new OrderSoild() { OrderDate = ds.Tables[0].Rows[i]["OrderDate"].ToString(), Solid = string.IsNullOrEmpty(ds.Tables[0].Rows[i]["Solid"].ToString()) ? 0 : Convert.ToDecimal(ds.Tables[0].Rows[i]["Solid"]) }; countlist.Add(cl); } } } if (ds != null && ds.Tables.Count > 1) { if (ds.Tables[1] != null && ds.Tables[1].Rows.Count > 0) { for (int i = 0; i < ds.Tables[1].Rows.Count; i++) { var cl = new OrderSoild() { OrderDate = ds.Tables[1].Rows[i]["OrderDate"].ToString(), Solid = string.IsNullOrEmpty(ds.Tables[1].Rows[i]["Solid"].ToString()) ? 0 : Convert.ToDecimal(ds.Tables[1].Rows[i]["Solid"]) }; countlist2.Add(cl); } } } if (ds != null && ds.Tables.Count > 2) { if (ds.Tables[2] != null && ds.Tables[2].Rows.Count > 0) { for (int i = 0; i < ds.Tables[2].Rows.Count; i++) { var cl = new OrderSoild() { OrderDate = ds.Tables[2].Rows[i]["OrderDate"].ToString(), Solid = string.IsNullOrEmpty(ds.Tables[2].Rows[i]["Solid"].ToString()) ? 0 : Convert.ToDecimal(ds.Tables[2].Rows[i]["Solid"]) }; countlist3.Add(cl); } } } int days = 12; categories = new string[days]; for (int i = 0; i < days; i++) { categories[i] = SDate.AddMonths(i).ToString("MM月"); } decimal[] data = new decimal[days]; decimal[] data2 = new decimal[days]; decimal[] data3 = new decimal[days]; for (int j = 0; j < days; j++) { var glist = countlist.Find(n => n.OrderDate == SDate.AddMonths(j).Month.ToString()); if (glist == null) { data[j] = 0; } else data[j] = glist.Solid.Value; if (countlist2 != null) { var glist2 = countlist2.Find(n => n.OrderDate == SDate.AddMonths(j).Month.ToString()); if (glist2 == null) { data2[j] = 0; } else data2[j] = glist2.Solid.Value; } else data2[j] = 0; if (countlist3 != null) { var glist3 = countlist3.Find(n => n.OrderDate == SDate.AddMonths(j).Month.ToString()); if (glist3 == null) { data3[j] = 0; } else data3[j] = glist3.Solid.Value; } else data3[j] = 0; } var datamd = new DT_OrderCountData(); datamd.name = "货物立方--合计"; datamd.data = data; list.Add(datamd); datamd = new DT_OrderCountData(); datamd.name = "货物立方--W仓"; datamd.data = data2; list.Add(datamd); datamd = new DT_OrderCountData(); datamd.name = "货物立方--E仓"; datamd.data = data3; list.Add(datamd); md.categories = categories; JavaScriptSerializer JsonConvert = new JavaScriptSerializer(); string postmessage = JsonConvert.Serialize(list); md.Data = postmessage; return md; } #endregion } }