/// <summary> /// 查询我的消息(仅1个月以内的消息) /// </summary> /// <param name="AuthKey"></param> /// <returns></returns> public static List<Message> GetMyMessageList(UserInfo User) { LogWriter.WriteLog("NoticeService.GetMyMessageList:UserName="******"SendTime > '" + DateTime.Today.AddMonths(-1).ToString("yyyy-MM-01") + "'"; List<Message> lists = new List<Message>(dt.DefaultView.Count); foreach (DataRowView row in dt.DefaultView) { Message m = new Message(); m.MsgID = (int)row["MsgID"]; m.Sender = (string)row["Sender"]; m.SenderRealName = (string)row["SenderRealName"]; m.Content = (string)row["Content"]; m.SendTime = (DateTime)row["SendTime"]; m.IsRead = (string)row["IsRead"]; m.KeyType = (string)row["KeyType"]; m.KeyValue = (string)row["KeyValue"]; lists.Add(m); } return lists; }
/// <summary> /// 获取所有行政城市 /// </summary> /// <param name="AuthKey"></param> /// <returns></returns> public static List<OfficialCity> GetAllOfficialCitys(UserInfo User) { LogWriter.WriteLog("OfficialCitySerice.GetAllOfficialCitys:UserName="******"MCS_SYS.dbo.Addr_OfficialCity", c.OfficialCity, 1); if (prov > 0) citys = Addr_OfficialCityBLL.GetModelList("Level<=3 AND Level1_SuperID=" + prov.ToString()); } } if (citys == null) citys = Addr_OfficialCityBLL.GetModelList("Level<=3"); List<OfficialCity> lists = new List<OfficialCity>(citys.Count); foreach (Addr_OfficialCity item in citys) { lists.Add(new OfficialCity(item)); } return lists; }
/// <summary> /// 结应收款_现金结 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="Retailer"></param> /// <param name="PayMode">支付方式:1现金、2POS</param> /// <param name="Amount">收款金额</param> /// <param name="Remark">备注</param> /// <param name="WorkList">拜访日志</param> /// <param name="ARIDs">应收单据ID,多个单据间以逗号间隔</param> /// <param name="ErrorInfo">输出:出错信息</param> /// <returns></returns> public static int BalanceRetailerAR_Receipt(UserInfo User, int TDP, int Retailer, int PayMode, decimal Amount, string Remark, int WorkList, string ARIDs, out string ErrorInfo) { ErrorInfo = ""; LogWriter.WriteLog("PBMIFService.BalanceRetailerAR_Receipt:UserName="******",TDP=" + TDP.ToString() + ",Retailer=" + Retailer.ToString() + ",PayMode=" + PayMode.ToString() + ",Amount=" + Amount.ToString() + ",Remark=" + Remark + ",WorkList=" + WorkList.ToString() + ",ARIDs=" + ARIDs); if (User.OwnerType == 3) TDP = User.ClientID; int ret = AC_CashFlowListBLL.Receipt_BalanceAR(TDP, Retailer, User.StaffID, PayMode, Math.Round(Amount, 2), Remark, User.StaffID, WorkList, ARIDs); if (ret < 0) { switch (ret) { case -10: ErrorInfo = "应收款ID为空"; break; case -11: ErrorInfo = "应收款金额与收款金额不匹配"; break; case -12: ErrorInfo = "统计应收款总额时出错"; break; default: ErrorInfo = "收款出错,Ret=" + ret.ToString(); break; } } return ret; }
/// <summary> /// 获取指定城市的全名 /// </summary> /// <param name="AuthKey">匿名用户登录后的认证码</param> /// <param name="CityID"></param> /// <returns></returns> public static string GetCityFullName(UserInfo User, int CityID) { LogWriter.WriteLog("OfficialCityService.GetCityFullName:UserName="******",CityID=" + CityID.ToString()); if (CityID <= 1) return "中国"; return TreeTableBLL.GetFullPathName("MCS_SYS.dbo.Addr_OfficialCity", CityID).Replace("->", " "); }
/// <summary> /// 追加评论 /// </summary> /// <param name="AuthKey"></param> /// <param name="NoticeID"></param> /// <param name="CommentContent"></param> /// <returns></returns> public static int AddComment(UserInfo User, int NoticeID, string CommentContent) { LogWriter.WriteLog("NoticeService.AddComment:UserName="******",NoticeID=" + NoticeID.ToString() + ",CommentContent=" + CommentContent); if (User.AccountType == 1) { PN_CommentBLL commentbll = new PN_CommentBLL(); commentbll.Model.Notice = NoticeID; commentbll.Model.Staff = User.StaffID; commentbll.Model.Content = CommentContent + "[" + User.UserName + "]"; commentbll.Model.CommentTime = DateTime.Now; commentbll.Add(); } return 0; }
/// <summary> /// 预售订单汇总 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="Vehicle"></param> /// <param name="BeginDate"></param> /// <param name="EndDate"></param> /// <param name="DisplayMode">1:按产品汇总 2:按客户汇总</param> /// <returns></returns> public static List<DicDataItem> GetOrderSummary(UserInfo User, int TDP, DateTime BeginDate, DateTime EndDate, int DisplayMode) { LogWriter.WriteLog("PBMIFService.GetOrderSummary:UserName="******",BeginDate=" + BeginDate.ToString("yyyy-MM-dd") + ",EndDate=" + EndDate.ToString("yyyy-MM-dd") + ",DisplayMode=" + DisplayMode.ToString()); if (User.OwnerType == 3) TDP = User.ClientID; DataTable dt = null; if (DisplayMode == 1) dt = PBM_OrderBLL.GetOrderSummary_ByProduct(TDP, User.StaffID, BeginDate, EndDate); else dt = PBM_OrderBLL.GetOrderSummary_ByClient(TDP, User.StaffID, BeginDate, EndDate); List<DicDataItem> list = new List<DicDataItem>(dt.Rows.Count); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; if (DisplayMode == 1) { string remark = ""; if ((int)dr["Quantity_T"] != 0) { remark += dr["Quantity_T"].ToString() + dr["Packagint_T"].ToString(); } if ((int)dr["Quantity_P"] != 0) { remark += dr["Quantity_P"].ToString() + dr["Packagint_P"].ToString(); } //remark += " 重量:" + dr["TotalWeight"].ToString() + "Kg"; list.Add(new DicDataItem((int)dr["Product"], dr["ProductName"].ToString(), ((decimal)dr["TotalAmount"]).ToString("0.##"), remark)); } else list.Add(new DicDataItem((int)dr["Client"], dr["ClientName"].ToString(), ((decimal)dr["TotalAmount"]).ToString("0.##"), "")); } return list; }
/// <summary> /// 获取当前员工关联的送货车辆,如果员工没有关联到车辆,则无法开展车销、送货服务 /// </summary> /// <param name="User"></param> /// <returns></returns> public static List<Vehicle> GetRelateVehicleList(UserInfo User, int TDP) { LogWriter.WriteLog("PBMIFService.GetRelateVehicleList:UserName=" + User.UserName); IList<CM_Vehicle> vehicles = null; if (User.OwnerType == 3) { vehicles = CM_VehicleInStaffBLL.GetVehicleByStaff(User.StaffID); } else if (User.OwnerType == 2) { if (TDP > 0) { vehicles = CM_VehicleBLL.GetVehicleByClient(TDP); } else { IList<CM_Client> clients = GetManagerTDPByStaff(User); if (clients == null || clients.Count == 0) return null; vehicles = CM_VehicleBLL.GetVehicleByClient(clients[0].ID); } } if (vehicles == null) return null; List<Vehicle> list = new List<Vehicle>(vehicles.Count); foreach (CM_Vehicle item in vehicles) { list.Add(new Vehicle(item)); } return list; }
/// <summary> /// 获取当前员工可管辖的经销商 /// </summary> /// <param name="User"></param> /// <returns></returns> public static List<ClientInfo> GetTDPList(UserInfo User) { LogWriter.WriteLog("PBMIFService.GetTDPList:UserName=" + User.UserName); IList<CM_Client> clients = GetManagerTDPByStaff(User); List<ClientInfo> lists = new List<ClientInfo>(clients.Count); foreach (CM_Client item in clients) { lists.Add(new ClientInfo(item, User.OwnerType == 2 ? User.ClientID : 0)); } return lists; }
/// <summary> /// 上传巡店工作日志关联照片 /// </summary> /// <param name="AuthKey"></param> /// <param name="ClientID">巡店工作日志ID</param> /// <param name="PicName">图片名称(可选)</param> /// <param name="PicData">图片数据</param> /// <returns>大于0:成功 -1:巡店工作日志ID无效 -4:照片格式不正确</returns> public static int UploadVisitWorkPicture(UserInfo User, int VisitWorkID, string PicName, string Description, string PicData, out Guid PicGUID) { PicGUID = Guid.Empty; LogWriter.WriteLog("PBMIFService.UploadVisitWorkPicture:UserName="******",VisitWorkID=" + VisitWorkID.ToString() + ",PicName=" + PicName + ",Description=" + Description + ",PicDataLength=" + PicData.Length); try { if (VisitWorkID == 0) return -1; //必须指定巡店工作日志ID if (string.IsNullOrEmpty(PicData)) return -4; byte[] buffer = Convert.FromBase64String(PicData); if (buffer.Length == 0 && buffer.Length > 1024 * 1024 * 10) return -4; ATMT_AttachmentBLL atm = new ATMT_AttachmentBLL(); atm.Model.RelateType = 95; //巡店工作日志 atm.Model.RelateID = VisitWorkID; atm.Model.Name = string.IsNullOrEmpty(PicName) ? "照片" : PicName; atm.Model.ExtName = "jpg"; //默认为JPG图片 atm.Model.FileSize = PicData.Length / 1024; atm.Model.Description = Description; atm.Model.UploadUser = User.UserName; atm.Model.IsDelete = "N"; int ret = atm.Add(buffer, out PicGUID); LogWriter.WriteLog("PBMIFService.UploadVisitWorkPicture Upload Result:UserName="******",VisitWorkID=" + VisitWorkID.ToString() + ",PicGUID=" + PicGUID.ToString() + ",Ret=" + ret.ToString()); return ret; } catch (System.Exception err) { LogWriter.WriteLog("PBMIFService.UploadVisitWorkPicture Exception Error!", err); return -100; } }
/// <summary> /// 获取指定拜访路线上的门店列表 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="VisitRoute"></param> /// <param name="PageSize"></param> /// <param name="PageIndex"></param> /// <param name="Counts"></param> /// <returns></returns> public static List<ClientInfo> GetRetailerListByVisitRoute(UserInfo User, int TDP, string FindKey, int VisitRoute, int PageSize, int PageIndex, out int Counts) { Counts = 0; LogWriter.WriteLog("PBMIFService.GetRetailerListByVisitRoute:UserName="******",TDP=" + TDP.ToString() + ",FindKey=" + FindKey + ",VisitRoute=" + VisitRoute + ",PageSize=" + PageSize.ToString() + ",PageIndex=" + PageIndex.ToString()); if (User.OwnerType == 3) TDP = User.ClientID; #region 设定查询条件 string ExtConditionStr = ""; if (FindKey.Trim() != "") ExtConditionStr = " (CM_Client.FullName LIKE '%" + FindKey.Trim() + "%' OR CM_Client.ShortName LIKE '%" + FindKey.Trim() + "%' OR CM_Client.Address LIKE '%" + FindKey.Trim() + "%')"; //根据线路筛选 if (VisitRoute != 0) { if (User.OwnerType == 3) { ExtConditionStr += " AND CM_Client.ID IN (SELECT Client FROM CM_ClientSupplierInfo WHERE Supplier=" + TDP.ToString() + " AND State = 1 " + " AND VisitRoute=" + VisitRoute.ToString() + ")"; } else if (User.OwnerType == 2) { ExtConditionStr += " AND CM_Client.ID IN (SELECT Client FROM CM_ClientManufactInfo WHERE Manufacturer=" + User.ClientID.ToString() + " AND VisitRoute=" + VisitRoute.ToString() + ")"; ExtConditionStr += " AND CM_Client.ID IN (SELECT Client FROM CM_ClientSupplierInfo WHERE Supplier=" + TDP.ToString() + " AND State = 1 )"; } } IList<CM_Client> clients = CM_ClientBLL.GetModelList(ExtConditionStr); #endregion Counts = clients.Count; #region 分页返回 if (PageSize == 0) PageSize = 10; List<ClientInfo> list = new List<ClientInfo>(); int fromindex = PageSize * PageIndex; int endindex = PageSize * (PageIndex + 1); if (fromindex < clients.Count) { for (int i = fromindex; (i < endindex && i < clients.Count); i++) { ClientInfo c = new ClientInfo(clients[i], User.ClientID); list.Add(c); } } return list; #endregion }
/// <summary> /// 查询门店指定日期范围内的销售单 /// </summary> /// <param name="User"></param> /// <param name="Retailer"></param> /// <param name="StateFlag">状态标志 ALL:所有 COMPLETE:已完成的销售单 UNCOMPLETE:未完成的销售单</param> /// <param name="BeginDate"></param> /// <param name="EndDate"></param> /// <returns></returns> public static List<Delivery> GetSaleOutListByRetailer(UserInfo User, int Retailer, string StateFlag, DateTime BeginDate, DateTime EndDate) { LogWriter.WriteLog("PBMIFService.GetSaleOutListByRetailer:UserName="******",Retailer=" + Retailer.ToString() + ",StateFlag=" + StateFlag + ",BeginDate=" + BeginDate.ToString("yyyy-MM-dd") + ",EndDate=" + EndDate.ToString("yyyy-MM-dd")); string condition = " Client=" + Retailer.ToString() + " AND InsertTime BETWEEN '" + BeginDate.ToString("yyyy-MM-dd") + "' AND '" + EndDate.ToString("yyyy-MM-dd") + " 23:59:59' "; if (User.OwnerType == 3) condition += " AND Supplier=" + User.ClientID.ToString(); if (StateFlag.ToUpper() == "ALL") condition += " AND State<>9"; else if (StateFlag.ToUpper() == "COMPLETE") condition += " AND State = 4"; else if (StateFlag.ToUpper() == "UNCOMPLETE") condition += " AND State IN (1,2,3)"; else condition += " AND State IN (0)"; IList<PBM_Delivery> deliverys = PBM_DeliveryBLL.GetModelList(condition); List<Delivery> list = new List<Delivery>(deliverys.Count); foreach (PBM_Delivery item in deliverys.OrderByDescending(p => p.InsertTime)) { list.Add(new Delivery(item)); } return list; }
/// <summary> /// 获取指定仓库库存 /// </summary> /// <param name="User"></param> /// <param name="WareHouse"></param> /// <param name="DisplayMode">1:按产品查询库存 2:按批号查询库存</param> /// <returns></returns> public static List<Inventory> GetInventoryByWareHouse(UserInfo User, int WareHouse, int DisplayMode) { LogWriter.WriteLog("PBMIFService.GetInventoryByWareHouse:UserName="******",WareHouse=" + WareHouse.ToString() + ",IsMergeByProduct=" + DisplayMode); CM_WareHouse w = new CM_WareHouseBLL(WareHouse).Model; if (w == null) return null; if (User.OwnerType == 3 && w.Client != User.ClientID) return null; //仓库不属于当前登录人员的经销商 IList<INV_Inventory> invtorys = INV_InventoryBLL.GetModelList("WareHouse=" + WareHouse.ToString() + " AND Quantity>0"); List<Inventory> list = new List<Inventory>(invtorys.Count); foreach (INV_Inventory item in invtorys) { Inventory inv; if (DisplayMode == 1) { inv = list.FirstOrDefault(p => p.Product == item.Product); if (inv != null) { inv.Quantity += item.Quantity; inv.Quantity_T = inv.Quantity / inv.ConvertFactor; inv.Quantity_P = inv.Quantity % inv.ConvertFactor; continue; } } inv = new Inventory(item); if (DisplayMode == 1) inv.LotNumber = ""; #region 获取产品默认销售价 try { inv.Price = new PDT_ProductBLL(item.Product).GetProductExtInfo(w.Client).SalesPrice; } catch { inv.Price = 0; } #endregion list.Add(inv); } return list.OrderBy(p => p.CategoryName).ToList(); }
/// <summary> /// 根据门店ID获取门店详细信息 /// </summary> /// <param name="User"></param> /// <param name="ClientID"></param> /// <returns></returns> public static ClientInfo GetRetailerDeailInfo(UserInfo User, int TDP, int ClientID) { LogWriter.WriteLog("PBMIFService.GetRetailerDeailInfo:UserName="******",TDP=" + TDP.ToString() + ",ClientID=" + ClientID.ToString()); if (User.OwnerType == 3) TDP = User.ClientID; return new ClientInfo(ClientID, TDP); }
/// <summary> /// 获取赠送方式 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <returns></returns> public static List<DicDataItem> GetDictionarySalseMode(UserInfo User) { LogWriter.WriteLog("PBMIFService.GetDictionarySalseMode:UserName="******"PBM_SalseMode"); List<DicDataItem> list = new List<DicDataItem>(dicts.Count); foreach (Dictionary_Data item in dicts.Values) { list.Add(new DicDataItem(int.Parse(item.Code), item.Name, item.Code, item.Description)); } return list; }
/// <summary> /// 获取指定车辆的仓库库存 /// </summary> /// <param name="UserInfo"></param> /// <param name="VehicleID"></param> /// <param name="DisplayMode">1:按产品查询库存 2:按批号查询库存</param> /// <returns></returns> public static List<Inventory> GetInventoryByVehicle(UserInfo User, int VehicleID, int DisplayMode) { LogWriter.WriteLog("PBMIFService.GetInventoryByVehicle:UserName="******",VehicleID=" + VehicleID.ToString() + ",IsMergeByProduct=" + DisplayMode.ToString()); CM_Vehicle v = new CM_VehicleBLL(VehicleID).Model; if (v == null) return null; //车辆ID无效 if (v.RelateWareHouse == 0) return null; //车辆关联仓库无效 return GetInventoryByWareHouse(User, v.RelateWareHouse, DisplayMode); }
/// <summary> /// 获取当前用户可管辖的TDP /// </summary> /// <param name="User"></param> /// <returns></returns> private static IList<CM_Client> GetManagerTDPByStaff(UserInfo User) { if (User.OwnerType == 3) { //TDP员工 return CM_ClientBLL.GetModelList("ID=" + User.ClientID); } else { //公司员工 string ConditionStr = "ClientType = 2 AND CM_Client.ID IN (SELECT Client FROM dbo.CM_ClientManufactInfo WHERE State = 1 "; //获取员工管理的区域 if (User.OrganizeCity > 1) { Addr_OrganizeCityBLL orgcity = new Addr_OrganizeCityBLL(User.OrganizeCity, true); string orgcitys = orgcity.GetAllChildNodeIDs(); if (orgcitys != "") orgcitys += ","; orgcitys += User.OrganizeCity.ToString(); if (orgcitys != "") ConditionStr += " AND OrganizeCity IN (" + orgcitys + ")"; } ConditionStr += ")"; return CM_ClientBLL.GetModelList(ConditionStr); } }
/// <summary> /// 新增巡店工作日志(门店拜访记录) /// </summary> /// <param name="User"></param> /// <param name="VisitWorkJson"></param> /// <returns>大于0:成功 -1:Json字符串无法解析 -2:新增拜访工作记录失败</returns> public static int VisitWorkAdd(UserInfo User, VisitWork Work) { LogWriter.WriteLog("PBMIFService.VisitWorkAdd:UserName="******",VisitWorkJson=" + JsonConvert.SerializeObject(Work)); try { VisitWork v = Work; if (v == null) return -1; //Json字符串无法解析 VST_WorkListBLL bll; if (Work.ID == 0 || new VST_WorkListBLL(Work.ID).Model == null) { bll = new VST_WorkListBLL(); bll.Model.RelateStaff = v.RelateStaff == 0 ? User.StaffID : v.RelateStaff; bll.Model.Route = v.Route; bll.Model.Client = v.Client; bll.Model.Template = v.VisitTemplate; bll.Model.WorkingClassify = v.WorkingClassify == 0 ? 1 : v.WorkingClassify; bll.Model.IsComplete = v.IsComplete ? "Y" : "N"; bll.Model.BeginTime = v.BeginTime; bll.Model.EndTime = v.EndTime; bll.Model.PlanID = v.PlanID; bll.Model.Remark = v.Remark; bll.Model.ApproveFlag = 2; bll.Model.InsertStaff = User.StaffID; } else { bll = new VST_WorkListBLL(Work.ID); bll.Model.IsComplete = v.IsComplete ? "Y" : "N"; bll.Model.EndTime = v.EndTime; bll.Model.Remark = v.Remark; } if (bll.Model.ID == 0) { int worklistid = bll.Add(); if (worklistid <= 0) return -2; //新增拜访工作记录失败 Work.ID = worklistid; } else { if (bll.Update() < 0) return -3; //更新拜访工作记录失败 } foreach (VisitWork.VisitWorkItem item in v.Items) { if (item.WorkItemID > 0) continue; VST_WorkItem detail = new VST_WorkItem(); detail.WorkList = Work.ID; if (item.ProcessCode != "") { VST_Process m = new VST_ProcessBLL(item.ProcessCode).Model; if (m != null) detail.Process = m.ID; } detail.WorkTime = item.WorkTime; detail.Remark = item.Remark; int detailid = bll.AddDetail(detail); switch (item.ProcessCode) { #region 进店详细属性 case "JD": { int JobType = 0, JudgeMode = 0; float Longitude = 0, Latitude = 0; if (item.ExtParams.ContainsKey("JobType")) int.TryParse(item.ExtParams["JobType"].ToString(), out JobType); if (item.ExtParams.ContainsKey("JudgeMode")) int.TryParse(item.ExtParams["JudgeMode"].ToString(), out JudgeMode); if (item.ExtParams.ContainsKey("Longitude")) float.TryParse(item.ExtParams["Longitude"].ToString(), out Longitude); if (item.ExtParams.ContainsKey("Latitude")) float.TryParse(item.ExtParams["Latitude"].ToString(), out Latitude); VST_WorkItem_JDBLL jdbll = new VST_WorkItem_JDBLL(); jdbll.Model.Job = detailid; jdbll.Model.JobType = JobType; jdbll.Model.JudgeMode = JudgeMode; jdbll.Model.Longitude = Longitude; jdbll.Model.Latitude = Latitude; if (item.ExtParams.ContainsKey("Remark")) jdbll.Model.Remark = item.ExtParams["Remark"].ToString(); jdbll.Add(); break; } #endregion default: break; } } return Work.ID; } catch (System.Exception err) { LogWriter.WriteLog("PBMIFService.VisitWorkAdd Exception Error!", err); return -100; } }
/// <summary> /// 定时上传拜访位置 /// </summary> /// <param name="User"></param> /// <param name="Type">1:GPS定位 2:网络定位</param> /// <param name="Latitude">纬度</param> /// <param name="Longitude">经度</param> /// <param name="Remark"></param> /// <returns></returns> public static int VisitReportLocation(UserInfo User, int Type, float Latitude, float Longitude, string Remark) { LogWriter.WriteLog("PBMIFService.VisitReportLocation:UserName="******",Type=" + Type.ToString() + ",Latitude=" + Latitude.ToString() + ",Longitude=" + Longitude.ToString() + ",Remark=" + Remark.ToString()); VST_ReportLocationBLL bll = new VST_ReportLocationBLL(); bll.Model.RelateStaff = User.StaffID; bll.Model.LocateType = Type; bll.Model.Latitude = Latitude; bll.Model.Longitude = Longitude; bll.Model.Remark = Remark; bll.Model.DeviceCode = User.DeviceCode; return bll.Add(); }
/// <summary> /// 查询指定门店的预收款变动记录 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="Retailer"></param> /// <param name="BeginDate"></param> /// <param name="EndDate"></param> /// <returns></returns> public static List<BalanceUsageInfo> GetRetailerBalanceUsageList(UserInfo User, int TDP, int Retailer, DateTime BeginDate, DateTime EndDate) { LogWriter.WriteLog("PBMIFService.GetRetailerBalanceUsageList:UserName="******",TDP=" + TDP.ToString() + ",Retailer=" + Retailer.ToString() + ",BeginDate=" + BeginDate.ToString("yyyy-MM-dd") + ",EndDate=" + EndDate.ToString("yyyy-MM-dd")); if (User.OwnerType == 3) TDP = User.ClientID; string condition = string.Format("OwnerClient={0} AND TradeClient={1} AND InsertTime BETWEEN '{2:yyyy-MM-dd}' AND '{3:yyyy-MM-dd} 23:59:59'", TDP, Retailer, BeginDate, EndDate); IList<AC_BalanceUsageList> ars = AC_BalanceUsageListBLL.GetModelList(condition); List<BalanceUsageInfo> list = new List<BalanceUsageInfo>(ars.Count); foreach (AC_BalanceUsageList item in ars.OrderBy(p => p.InsertTime)) { list.Add(new BalanceUsageInfo(item)); } return list; }
/// <summary> /// 获取附近门店列表 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="FindKey">门店关键字</param> /// <param name="Latitude">纬度</param> /// <param name="Longitude">经度</param> /// <param name="MaxDistance">最大距离范围(米)</param> /// <param name="PageSize">分页大小</param> /// <param name="PageIndex">页码</param> /// <param name="Counts">输出:总记录数</param> /// <returns></returns> public static List<ClientInfo> GetNearRetailerList(UserInfo User, int TDP, string FindKey, decimal Latitude, decimal Longitude, int MaxDistance, int PageSize, int PageIndex, out int Counts) { Counts = 0; LogWriter.WriteLog("PBMIFService.GetNearRetailerList:UserName="******",TDP=" + TDP.ToString() + ",FindKey=" + FindKey + ",Latitude=" + Latitude.ToString() + ",Longitude=" + Longitude.ToString() + ",MaxDistance=" + MaxDistance + ",PageSize=" + PageSize.ToString() + ",PageIndex=" + PageIndex.ToString()); if (User.OwnerType == 3) TDP = User.ClientID; #region 设定查询条件 IList<CM_Client> clients = CM_ClientBLL.GetRetailerListBySalesMan(TDP, User.StaffID); FindKey = FindKey.Trim(); if (FindKey != "") clients = clients.Where(p => p.FullName.Contains(FindKey) || p.ShortName.Contains(FindKey) || p.Address.Contains(FindKey)).ToList(); #endregion Counts = clients.Count; #region 如果有传入经、纬度,则计算距离,并排序 Dictionary<int, int> dic_Distance = new Dictionary<int, int>(clients.Count); if (Latitude != 0 && Longitude != 0) { foreach (CM_Client item in clients) { //计算距离 CM_ClientGeoInfo geo = CM_ClientGeoInfoBLL.GetGeoInfoByClient(item.ID); if (geo != null) { int _distance = (int)GIS_OfficialCityGeoBLL.DistanceByLatLong((double)Latitude, (double)Longitude, (double)geo.Latitude, (double)geo.Longitude); dic_Distance.Add(item.ID, _distance); } else { dic_Distance.Add(item.ID, int.MaxValue); } } dic_Distance = dic_Distance.OrderBy(p => p.Value).ToDictionary(p => p.Key, p => p.Value); if (MaxDistance == 0) MaxDistance = int.MaxValue; clients = clients.Where(p => dic_Distance[p.ID] < MaxDistance).OrderBy(p => dic_Distance[p.ID]).ToList(); } #endregion #region 分页返回 if (PageSize == 0) PageSize = 99999; List<ClientInfo> list = new List<ClientInfo>(); int fromindex = PageSize * PageIndex; int endindex = PageSize * (PageIndex + 1); if (fromindex < clients.Count) { for (int i = fromindex; (i < endindex && i < clients.Count); i++) { ClientInfo c = new ClientInfo(clients[i], User.ClientID); if (dic_Distance != null && dic_Distance.ContainsKey(c.ID)) c.Distance = dic_Distance[c.ID]; list.Add(c); } } return list; #endregion }
/// <summary> /// 获取零售店预收款及应收款额 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="Retailer"></param> /// <param name="PreReceivedAmount">预收款额</param> /// <param name="AR">应收款额</param> /// <param name="PreReceivedBalance">合计余额(预收款额 - 应收款额)</param> /// <returns></returns> public static int GetRetailerCurrentAccount(UserInfo User, int TDP, int Retailer, out decimal PreReceivedAmount, out decimal AR, out decimal PreReceivedBalance) { PreReceivedAmount = 0; AR = 0; PreReceivedBalance = 0; LogWriter.WriteLog("PBMIFService.GetRetailerCurrentAccount:UserName="******",TDP=" + TDP.ToString() + ",Retailer=" + Retailer.ToString()); if (User.OwnerType == 3) TDP = User.ClientID; AC_CurrentAccount ac = AC_CurrentAccountBLL.GetByTradeClient(TDP, Retailer); if (ac == null) return 0; else { PreReceivedAmount = ac.PreReceivedAmount; AR = ac.AR; PreReceivedBalance = PreReceivedAmount - AR; return 0; } }
/// <summary> /// 获取已派发给当前员工的待送货的销售单 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="Vehicle">车辆,0时不限定车辆</param> /// <param name="BeginDate">预计送货日期-开始</param> /// <param name="EndDate">预计送货日期-截止</param> /// <returns></returns> public static List<Delivery> GetNeedDeliveryList(UserInfo User, int TDP, int Vehicle, DateTime BeginDate, DateTime EndDate) { LogWriter.WriteLog("PBMIFService.GetNeedDeliveryList:UserName="******",Vehicle=" + Vehicle.ToString() + ",BeginDate=" + BeginDate.ToString("yyyy-MM-dd") + ",EndDate=" + EndDate.ToString("yyyy-MM-dd")); if (User.OwnerType == 3) TDP = User.ClientID; string condition = " PrepareMode = 3 AND Classify IN (1,4) AND State IN (2,3) AND DeliveryMan=" + User.StaffID.ToString() + " AND PreArrivalDate BETWEEN '" + BeginDate.ToString("yyyy-MM-dd") + "' AND '" + EndDate.ToString("yyyy-MM-dd") + " 23:59:59' "; if (TDP != 0) condition += " AND Supplier = " + TDP.ToString(); if (Vehicle != 0) condition += " AND DeliveryVehicle = " + Vehicle.ToString(); if (User.OwnerType == 3) condition += " AND Supplier=" + User.ClientID.ToString(); IList<PBM_Delivery> deliverys = PBM_DeliveryBLL.GetModelList(condition); List<Delivery> list = new List<Delivery>(deliverys.Count); foreach (PBM_Delivery item in deliverys.OrderByDescending(p => p.InsertTime)) { list.Add(new Delivery(item)); } return list; }
/// <summary> /// 获取所有管辖的门店列表 /// </summary> /// <returns></returns> public static List<ClientInfo> GetRetailerList(UserInfo User, int TDP, string FindKey, int PageSize, int PageIndex, out int Counts) { Counts = 0; LogWriter.WriteLog("PBMIFService.GetRetailerList:UserName="******",TDP=" + TDP.ToString() + ",FindKey=" + FindKey + ",PageSize=" + PageSize.ToString() + ",PageIndex=" + PageIndex.ToString()); if (User.OwnerType == 3) TDP = User.ClientID; #region 设定查询条件 IList<CM_Client> clients = CM_ClientBLL.GetRetailerListBySalesMan(TDP, User.StaffID); FindKey = FindKey.Trim(); if (FindKey != "") clients = clients.Where(p => p.FullName.Contains(FindKey) || p.ShortName.Contains(FindKey) || p.Address.Contains(FindKey)).ToList(); #endregion Counts = clients.Count; #region 分页返回 if (PageSize == 0) PageSize = 99999; List<ClientInfo> list = new List<ClientInfo>(); int fromindex = PageSize * PageIndex; int endindex = PageSize * (PageIndex + 1); if (fromindex < clients.Count) { for (int i = fromindex; (i < endindex && i < clients.Count); i++) { ClientInfo c = new ClientInfo(clients[i], TDP); list.Add(c); } } return list; #endregion }
/// <summary> /// 按送货人查询销售收款汇总 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="BeginDate"></param> /// <param name="EndDate"></param> /// <returns></returns> public static List<DicDataItem> GetDeliveryPayInfoSummary(UserInfo User, int TDP, DateTime BeginDate, DateTime EndDate) { LogWriter.WriteLog("PBMIFService.GetDeliveryPayInfoSummary:UserName="******",BeginDate=" + BeginDate.ToString("yyyy-MM-dd") + ",EndDate=" + EndDate.ToString("yyyy-MM-dd")); if (User.OwnerType == 3) TDP = User.ClientID; DataTable dt = PBM_DeliveryBLL.GetPayInfoSummary(TDP, User.StaffID, 0, BeginDate, EndDate); List<DicDataItem> list = new List<DicDataItem>(dt.Rows.Count); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; list.Add(new DicDataItem(0, dr["PayModeName"].ToString(), ((decimal)dr["Amount"]).ToString("0.##"), "")); } return list; }
/// <summary> /// 查询门店预收款可用余额 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="Retailer"></param> /// <returns></returns> public static decimal GetRetailerPreReceivedBalance(UserInfo User, int TDP, int Retailer) { LogWriter.WriteLog("PBMIFService.GetRetailerPreReceivedBalance:UserName="******",TDP=" + TDP.ToString() + ",Retailer=" + Retailer.ToString()); if (User.OwnerType == 3) TDP = User.ClientID; IList<AC_CurrentAccount> acc = AC_CurrentAccountBLL.GetModelList(string.Format("OwnerClient={0} AND TradeClient={1}", TDP, Retailer)); if (acc == null || acc.Count == 0) return 0; else return acc[0].PreReceivedBalance; }
/// <summary> /// 汇总预售待送货列表 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="Vehicle"></param> /// <param name="BeginDate"></param> /// <param name="EndDate"></param> /// <returns></returns> public static List<DicDataItem> GetNeedDeliverySummary(UserInfo User, int TDP, int Vehicle, DateTime BeginDate, DateTime EndDate) { LogWriter.WriteLog("PBMIFService.GetNeedDeliverySummary:UserName="******",Vehicle=" + Vehicle.ToString() + ",TDP=" + TDP.ToString() + ",BeginDate=" + BeginDate.ToString("yyyy-MM-dd") + ",EndDate=" + EndDate.ToString("yyyy-MM-dd")); if (User.OwnerType == 3) TDP = User.ClientID; int warehouse = 0; if (Vehicle > 0) { warehouse = new CM_VehicleBLL(Vehicle).Model.RelateWareHouse; } DataTable dt = PBM_DeliveryBLL.GetNeedDeliverySummary(BeginDate, EndDate, TDP, warehouse, 0, User.StaffID); List<DicDataItem> list = new List<DicDataItem>(dt.Rows.Count); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; string remark = ""; if ((int)dr["Quantity_T"] != 0) { remark += dr["Quantity_T"].ToString() + dr["Packagint_T"].ToString(); } if ((int)dr["Quantity_P"] != 0) { remark += dr["Quantity_P"].ToString() + dr["Packagint_P"].ToString(); } remark += " 重量:" + dr["Weight"].ToString() + "Kg"; list.Add(new DicDataItem((int)dr["Product"], dr["ProductName"].ToString(), dr["Quantity"].ToString(), remark)); } return list; }
/// <summary> /// 结应收款_余额结 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <param name="Retailer"></param> /// <param name="Amount"></param> /// <param name="Remark"></param> /// <param name="ARIDs"></param> /// <param name="ErrorInfo"></param> /// <returns></returns> public static int BalanceRetailerAR_UsageBalance(UserInfo User, int TDP, int Retailer, decimal Amount, string Remark, string ARIDs, out string ErrorInfo) { ErrorInfo = ""; LogWriter.WriteLog("PBMIFService.BalanceRetailerAR_UsageBalance:UserName="******",TDP=" + TDP.ToString() + ",Retailer=" + Retailer.ToString() + ",Amount=" + Amount.ToString() + ",Remark=" + Remark + ",ARIDs=" + ARIDs); if (User.OwnerType == 3) TDP = User.ClientID; int ret = AC_BalanceUsageListBLL.BalanceAR(TDP, Retailer, User.StaffID, Math.Round(Amount, 2), Remark, ARIDs); if (ret < 0) { switch (ret) { case -10: ErrorInfo = "预收款金额不够结算"; break; case -11: ErrorInfo = "应收款金额与收算金额不匹配"; break; case -12: ErrorInfo = "统计应收款总额时出错"; break; default: ErrorInfo = "收款出错,Ret=" + ret.ToString(); break; } } return ret; }
/// <summary> /// 查询指定ID的发货单 /// </summary> /// <param name="User"></param> /// <param name="DeliveryID">发货单ID</param> /// <returns></returns> public static Order GetOrderByOrderID(UserInfo User, int OrderID) { LogWriter.WriteLog("PBMIFService.GetOrderByOrderID:UserName="******",OrderID=" + OrderID.ToString()); return new Order(OrderID); }
/// <summary> /// 获取经销商详细资料 /// </summary> /// <param name="User"></param> /// <param name="TDP"></param> /// <returns></returns> public static ClientInfo GetTDP_Info(UserInfo User, int TDP) { LogWriter.WriteLog("PBMIFService.GetTDP_Info:UserName="******",TDP=" + TDP.ToString()); if (User.OwnerType == 3) TDP = User.ClientID; return new ClientInfo(TDP, User.OwnerType == 2 ? User.ClientID : 0); }
/// <summary> /// 上传门店照片 /// </summary> /// <param name="AuthKey"></param> /// <param name="ClientID">会员店ID,上传当前门店时可置0</param> /// <param name="PicName">图片名称(可选)</param> /// <param name="PicData">图片数据</param> /// <returns>大于0:成功 -1:会员店ID无效 -4:照片格式不正确</returns> public static int UploadRetailerPicture(UserInfo User, int ClientID, string PicName, string Description, string PicData, out Guid PicGUID) { PicGUID = Guid.Empty; LogWriter.WriteLog("PBMIFService.UploadRetailerPicture:UserName="******",ClientID=" + ClientID.ToString() + ",PicName=" + PicName + ",Description=" + Description + ",PicDataLength=" + PicData.Length); try { if (ClientID == 0 && User.ClientID > 0) ClientID = User.ClientID; CM_Client _c = new CM_ClientBLL(ClientID).Model; if (_c == null) return -1; if (string.IsNullOrEmpty(PicData)) return -4; byte[] buffer = Convert.FromBase64String(PicData); if (buffer.Length == 0 && buffer.Length > 1024 * 1024 * 10) return -4; ATMT_AttachmentBLL atm = new ATMT_AttachmentBLL(); atm.Model.RelateType = 30; //终端门店 atm.Model.RelateID = ClientID; atm.Model.Name = string.IsNullOrEmpty(PicName) ? "门店照片" : PicName; atm.Model.ExtName = "jpg"; //默认为JPG图片 atm.Model.FileSize = PicData.Length / 1024; atm.Model.Description = Description; atm.Model.UploadUser = User.UserName; atm.Model.IsDelete = "N"; return atm.Add(buffer, out PicGUID); } catch (System.Exception err) { LogWriter.WriteLog("PBMIFService.UploadRetailerPicture Exception Error!", err); return -100; } }