/// <summary> /// 新增门店资料 /// </summary> /// <param name="User">用户</param> /// <param name="TDP"></param> /// <param name="ClientJson">门店资料Json</param> /// <returns>大于0:新增的门店ID -1:Json字符串无法解析 -2:所属经销商无效 -3:新增门店基本资料失败</returns> public static int RetailerAdd(UserInfo User, int TDP, ClientInfo Client, out string ErrorInfo) { ErrorInfo = ""; LogWriter.WriteLog("PBMIFService.RetailerAdd:UserName="******",TDP=" + TDP.ToString() + ",ClientInfo=" + JsonConvert.SerializeObject(Client)); if (User.OwnerType == 3) TDP = User.ClientID; try { ClientInfo c = Client; if (c == null) { ErrorInfo = "Json字符串无法解析"; return -1; } //Json字符串无法解析 CM_Client TDPClient = new CM_ClientBLL(TDP).Model; if (TDPClient == null) { ErrorInfo = "所属经销商无效"; return -2; } //所属经销商无效 #region 判断必填与重复检测 if (c.FullName == "") { ErrorInfo = "门店名称必填"; return -10; } if (c.Mobile == "") { ErrorInfo = "联系电话必填"; return -10; } if (c.Address == "") { ErrorInfo = "门店地址必填"; return -10; } if (c.Mobile.StartsWith("01")) c.Mobile = c.Mobile.Substring(1); if (c.TeleNum.Contains("-")) c.TeleNum = c.TeleNum.Replace("-", ""); if (c.Mobile.Contains("-")) c.Mobile = c.Mobile.Replace("-", ""); //检查门店资料重复 int rptclientid = CM_ClientBLL.CheckRepeat(TDP, 0, c.Mobile, c.TeleNum, c.FullName, c.Address); if (rptclientid > 0) { CM_Client _rptclient = new CM_ClientBLL(rptclientid).Model; ErrorInfo = "门店资料与[" + _rptclient.FullName + "]资料重复,请勿重复新增!"; return -11; } #endregion CM_ClientBLL bll = new CM_ClientBLL(); #region 门店基本资料 bll.Model.Code = c.Code; bll.Model.FullName = c.FullName != "" ? c.FullName : c.ShortName; bll.Model.ShortName = c.ShortName == "" ? c.FullName : c.ShortName; if (c.OfficialCity > 0) bll.Model.OfficialCity = c.OfficialCity; else bll.Model.OfficialCity = TDPClient.OfficialCity; bll.Model.Address = c.Address; bll.Model.DeliveryAddress = c.Address; bll.Model.LinkManName = c.LinkManName; bll.Model.TeleNum = c.TeleNum == "" ? c.Mobile : c.TeleNum; if (c.Mobile.StartsWith("1") && c.Mobile.Length == 11) bll.Model.Mobile = c.Mobile; bll.Model.OpenTime = DateTime.Parse("1900-01-01 08:00"); bll.Model.CloseTime = DateTime.Parse("1900-01-01 20:00"); bll.Model.ClientType = 3; bll.Model.InsertStaff = User.StaffID; bll.Model.OwnerType = 3; bll.Model.OwnerClient = TDPClient.ID; bll.Model.ApproveFlag = 2; //默认为未审核 #endregion int retailerid = bll.Add(); if (retailerid < 0) { ErrorInfo = "新增门店基本资料失败"; return -3; } //新增门店基本资料失败 #region 设置供货商信息 CM_ClientSupplierInfo supplierinfo = new CM_ClientSupplierInfo(); supplierinfo.Code = c.CodeBySupplier; supplierinfo.Client = retailerid; supplierinfo.Supplier = TDP; if (User.OwnerType == 3) { supplierinfo.Salesman = User.StaffID; IList<VST_Route> routes = VST_RouteBLL.GetRouteListByStaff(User.StaffID); if (routes.Count > 0) supplierinfo.VisitRoute = routes[0].ID; } supplierinfo.StandardPrice = c.StandardPrice; supplierinfo.TDPChannel = c.TDPChannel; supplierinfo.TDPSalesArea = c.TDPSalesArea; supplierinfo.VisitSequence = c.VisitSequence; supplierinfo.VisitTemplate = c.VisitTemplate; supplierinfo.InsertStaff = User.StaffID; bll.SetSupplierInfo(supplierinfo); #endregion #region 设置厂商管理信息 CM_ClientManufactInfo manufactinfo = new CM_ClientManufactInfo(); manufactinfo.Client = retailerid; manufactinfo.Code = c.CodeByManufaturer; manufactinfo.Manufacturer = TDPClient.OwnerClient; //门店归属厂商默认为经销商资料的所属厂商 if (User.OwnerType == 2) { manufactinfo.ClientManager = User.StaffID; IList<VST_Route> routes = VST_RouteBLL.GetRouteListByStaff(User.StaffID); if (routes.Count > 0) manufactinfo.VisitRoute = routes[0].ID; } //门店所属区域为经销商对应区域 CM_ClientBLL s = new CM_ClientBLL(TDP); manufactinfo.OrganizeCity = s.GetManufactInfo().OrganizeCity; bll.SetManufactInfo(manufactinfo); #endregion #region 保存 #endregion return retailerid; } catch (System.Exception err) { LogWriter.WriteLog("PBMIFService.RetailerAdd Exception Error!", err); return -100; } }
protected void bt_OK_Click(object sender, EventArgs e) { CM_ClientBLL _bll = null; if (ViewState["ClientID"] == null) { _bll = new CM_ClientBLL(); } else { _bll = new CM_ClientBLL((int)ViewState["ClientID"]); } #region 获取原供货及厂商管理信息 CM_ClientSupplierInfo supplierinfo = _bll.GetSupplierInfoByManufacturer((int)Session["Manufacturer"]); CM_ClientManufactInfo manufactinfo = _bll.GetManufactInfo((int)Session["Manufacturer"]); if (supplierinfo == null) supplierinfo = new CM_ClientSupplierInfo(); if (manufactinfo == null) { manufactinfo = new CM_ClientManufactInfo(); manufactinfo.Manufacturer = (int)Session["Manufacturer"]; } #endregion pl_detail.GetData(_bll.Model); pl_detail.GetData(supplierinfo); pl_detail.GetData(manufactinfo); #region 判断必填项 if (_bll.Model.OfficialCity == 0) { MessageBox.Show(this, "所属的行政城市必填!"); return; } #endregion #region 判断活跃标志 if (manufactinfo.State == 1 && manufactinfo.EndDate != new DateTime(1900, 1, 1)) manufactinfo.EndDate = new DateTime(1900, 1, 1); if (manufactinfo.State == 2 && manufactinfo.EndDate == new DateTime(1900, 1, 1)) manufactinfo.EndDate = DateTime.Now; #endregion if (ViewState["ClientID"] == null) { _bll.Model.ClientType = 3; _bll.Model.ApproveFlag = 1; _bll.Model.InsertStaff = (int)Session["UserID"]; _bll.Model.OwnerType = 2; _bll.Model.OwnerClient = (int)Session["Manufacturer"]; ViewState["ClientID"] = _bll.Add(); _bll.SetSupplierInfo(supplierinfo); _bll.SetManufactInfo(manufactinfo); } else { _bll.Model.UpdateStaff = (int)Session["UserID"]; _bll.Update(); _bll.SetSupplierInfo(supplierinfo); _bll.SetManufactInfo(manufactinfo); } if (sender != null) Response.Redirect("RetailerList.aspx"); }
protected void bt_OK_Click(object sender, EventArgs e) { CM_ClientBLL _bll = null; if (ViewState["ClientID"] == null) { _bll = new CM_ClientBLL(); } else { _bll = new CM_ClientBLL((int)ViewState["ClientID"]); } #region 获取原供货及厂商管理信息 CM_ClientSupplierInfo supplierinfo = _bll.GetSupplierInfoByManufacturer((int)Session["Manufacturer"]); CM_ClientManufactInfo manufactinfo = _bll.GetManufactInfo((int)Session["Manufacturer"]); if (supplierinfo == null) { supplierinfo = new CM_ClientSupplierInfo(); supplierinfo.Supplier = (int)Session["Manufacturer"]; } if (manufactinfo == null) { manufactinfo = new CM_ClientManufactInfo(); manufactinfo.Manufacturer = (int)Session["Manufacturer"]; } #endregion pl_detail.GetData(_bll.Model); pl_detail.GetData(supplierinfo); pl_detail.GetData(manufactinfo); #region 查重判断 string chkrpt = "Code='" + manufactinfo.Code + "'"; if (_bll.Model.ID > 0) chkrpt += " AND Client <> " + _bll.Model.ID.ToString(); IList<CM_ClientManufactInfo> cmlist = CM_ClientManufactInfoBLL.GetModelList(chkrpt); if (cmlist.Count > 0) { MessageBox.Show(this, "客户编码重复,请检查!" + chkrpt.Replace("'", "")); return; } #endregion #region 判断必填项 if (_bll.Model.OfficialCity == 0) { MessageBox.Show(this, "所属的行政城市必填!"); return; } if (manufactinfo.State == 0) { MessageBox.Show(this, "合作状态必填!"); return; } Addr_OrganizeCity orgcity = new Addr_OrganizeCityBLL(manufactinfo.OrganizeCity).Model; if (orgcity == null || orgcity.Level < 6) { MessageBox.Show(this, "销售区域必需选择到营业部级!"); return; } #endregion #region 判断活跃标志 if (manufactinfo.State == 1 && manufactinfo.EndDate != new DateTime(1900, 1, 1)) manufactinfo.EndDate = new DateTime(1900, 1, 1); if (manufactinfo.State == 2 && manufactinfo.EndDate == new DateTime(1900, 1, 1)) manufactinfo.EndDate = DateTime.Now; #endregion if (ViewState["ClientID"] == null)//新增经销商 { _bll.Model.ClientType = 2; //客户类型默认为经销商 _bll.Model.ApproveFlag = 2; _bll.Model.InsertStaff = (int)Session["UserID"]; _bll.Model.OwnerType = 2; //所有权属性默认为厂商级 _bll.Model.OwnerClient = (int)Session["Manufacturer"]; ViewState["ClientID"] = _bll.Add(); _bll.SetSupplierInfo(supplierinfo); _bll.SetManufactInfo(manufactinfo); MessageBox.ShowAndRedirect(this, "保存经销商资料成功!", "DistributorDetail.aspx?ClientID=" + ViewState["ClientID"].ToString()); } else//修改时供应商和经销商只能为关联厂商 { _bll.Model.UpdateStaff = (int)Session["UserID"]; _bll.Update(); _bll.SetSupplierInfo(supplierinfo); _bll.SetManufactInfo(manufactinfo); Response.Redirect("DistributorList.aspx"); } }
protected void bt_OK_Click(object sender, EventArgs e) { CM_ClientBLL _bll = null; if (ViewState["ClientID"] == null || (int)ViewState["ClientID"] == 0) { _bll = new CM_ClientBLL(); } else { _bll = new CM_ClientBLL((int)ViewState["ClientID"]); } CM_ClientSupplierInfo supplierinfo = _bll.GetSupplierInfo((int)Session["OwnerClient"]); CM_ClientManufactInfo manufactinfo = _bll.GetManufactInfo((int)Session["Manufacturer"]); if (supplierinfo == null) { supplierinfo = new CM_ClientSupplierInfo(); supplierinfo.Supplier = (int)Session["OwnerClient"]; } if (manufactinfo == null) { manufactinfo = new CM_ClientManufactInfo(); manufactinfo.Manufacturer = (int)Session["Manufacturer"]; //门店所属区域为经销商对应区域 CM_ClientBLL s = new CM_ClientBLL((int)Session["OwnerClient"]); manufactinfo.OrganizeCity = s.GetManufactInfo().OrganizeCity; } pl_detail.GetData(_bll.Model); pl_detail.GetData(supplierinfo); #region 判断必填项 #endregion #region 判断活跃标志 if (supplierinfo.State == 1 && supplierinfo.EndDate != new DateTime(1900, 1, 1)) supplierinfo.EndDate = new DateTime(1900, 1, 1); if (supplierinfo.State == 2 && supplierinfo.EndDate == new DateTime(1900, 1, 1)) supplierinfo.EndDate = DateTime.Now; #endregion if (ViewState["ClientID"] == null || (int)ViewState["ClientID"] == 0) { _bll.Model.ClientType = 3; _bll.Model.ApproveFlag = 1; _bll.Model.InsertStaff = (int)Session["UserID"]; _bll.Model.OwnerType = 3; //所属经销商 _bll.Model.OwnerClient = (int)Session["OwnerClient"]; ViewState["ClientID"] = _bll.Add(); _bll.SetSupplierInfo(supplierinfo); _bll.SetManufactInfo(manufactinfo); } else { _bll.Model.UpdateStaff = (int)Session["UserID"]; _bll.Update(); _bll.SetSupplierInfo(supplierinfo); _bll.SetManufactInfo(manufactinfo); } Response.Redirect("RetailerDetail.aspx?ClientID=" + ViewState["ClientID"].ToString()); }
public string DoImportClient(int TemplateID, int Client, ISheet Sheet, out int State) { string ImportInfo = "【客户资料】Excel表:"; State = 0; IPT_UploadTemplateBLL _template = new IPT_UploadTemplateBLL(TemplateID); List<string> listClient = new List<string>() { "序号", "区域", "渠道", "客户编号", "客户名称", "联系人", "地址", "电话", "手机", "销售线路", "备注" }; DataTable dt = null; bool flag = VertifySheet(Sheet, listClient, out dt, ref ImportInfo); if (!flag) { State = 4; return ImportInfo; } foreach (DataRow dr in dt.Rows)//循环导入数据 { try { string _ClientCode = dr["客户编号"].ToString();//客户自编码 string _ClientName = dr["客户名称"].ToString(); if (string.IsNullOrEmpty(_ClientCode))// && string.IsNullOrEmpty(_ClientName) { ImportInfo += "导入序列号为" + dr["序号"].ToString() + "的数据行时找不到门店编码,跳过此行记录\r\n";//门店名称和 continue; } IList<CM_Client> _listClient = CM_ClientBLL.GetModelList(" ApproveFlag=1 AND ClientType=3 AND OwnerType=3 AND OwnerClient=" + _template.Model.ClientID + "AND EXISTS(SELECT 1 FROM MCS_CM.dbo.CM_ClientSupplierInfo WHERE Supplier=" + _template.Model.ClientID + " AND Client= CM_Client.id AND Code=" + _ClientCode + " ) "); if (_listClient != null && _listClient.Count > 0) { ImportInfo += "导入序列号为" + dr["序号"].ToString() + "的数据行时找到相同编码的门店,跳过此行记录\r\n"; continue; } string _ClientLinkMan = dr["联系人"].ToString(); string _ClientAddress = dr["地址"].ToString(); string _ClientTel = dr["电话"].ToString(); string _ClientMobile = dr["手机"].ToString(); #region 获取线路 string _strClientVisitRoute = dr["销售线路"].ToString();//业务拜访模板Code VST_Route _route = null; if (!string.IsNullOrEmpty(_strClientVisitRoute))//优先匹配厂商级的拜访记录 { _route = VST_RouteBLL.GetModelList(" OwnerType IN(1,2) AND Code='" + _strClientVisitRoute + "'").FirstOrDefault();//IList<VST_Route>_listRoute if (_route == null)//找不到厂商级的线路找经销商级别的 { _route = VST_RouteBLL.GetModelList(" OwnerType=3 AND OwnerClient=" + _template.Model.ClientID + " AND Code='" + _strClientVisitRoute + "'").FirstOrDefault(); } } /*模板中存在负责业务时获取门店业代和拜访记录代码 int _ClientSalesMan = 0;//负责业务 int _ClientVisitRoute = 0;//业务拜访模板ID string _strClientSalesMan = dr["负责业务"].ToString(); if (!string.IsNullOrEmpty(_strClientSalesMan)) { IList<Org_Staff> _listStaff = Org_StaffBLL.GetStaffList(" OwnerClient=" + _template.Model.ClientID + " AND OwnerType=3 AND RealName='" + _strClientSalesMan + "'"); if (_listStaff != null && _listStaff.Count > 0) { _ClientSalesMan = _listStaff[0].ID; IList<VST_Route> _listRoute = VST_RouteBLL.GetModelList(" OwnerClient=" + _template.Model.ClientID + " AND RelateStaff=" + _ClientSalesMan); if (_listRoute != null && _listRoute.Count > 0) _ClientVisitRoute = _listRoute[0].ID; } else { Org_StaffBLL _bllStaff = new Org_StaffBLL(); CM_ClientBLL c = new CM_ClientBLL(_template.Model.ClientID); CM_ClientManufactInfo manufactinfo = c.GetManufactInfo(); if (c != null && manufactinfo != null) { _bllStaff.Model.OrganizeCity = manufactinfo.OrganizeCity; _bllStaff.Model.OfficialCity = c.Model.OfficialCity; } _bllStaff.Model.RealName = _strClientSalesMan; _bllStaff.Model.Position = 1030;//默认为业务员 _bllStaff.Model.InsertStaff = _template.Model.InsertStaff; _bllStaff.Model.OwnerClient = _template.Model.ClientID; _bllStaff.Model.OwnerType = 3; _bllStaff.Model.Dimission = 1; _bllStaff.Model.ApproveFlag = 1; _ClientSalesMan = _bllStaff.Add(); //创建默认员工线路 if (_ClientSalesMan > 0) { if (_bllStaff.Model.Position == 1030) { VST_RouteBLL routebll = new VST_RouteBLL(); routebll.Model.Code = "R" + _ClientSalesMan.ToString(); routebll.Model.Name = "线路-" + _bllStaff.Model.RealName; routebll.Model.RelateStaff = _ClientSalesMan; routebll.Model.OrganizeCity = _bllStaff.Model.OrganizeCity; routebll.Model.OwnerClient = _template.Model.ClientID; routebll.Model.OwnerType = 3; routebll.Model.ApproveFlag = 1; routebll.Model.EnableFlag = "Y"; routebll.Model.InsertStaff = _template.Model.InsertStaff; _ClientVisitRoute = routebll.Add(); } } } }*/ #endregion string _ClientRemark = dr["备注"].ToString(); int _OwnerClient = _template.Model.ClientID; #region 获取所在区域 int _SalesArea = 0;//区域 string _strSalesArea = dr["区域"].ToString(); if (!string.IsNullOrEmpty(_strSalesArea)) { IList<CM_RTSalesArea_TDP> _listSalesArea = CM_RTSalesArea_TDPBLL.GetModelList(" OwnerClient= " + _OwnerClient.ToString() + " AND Name='" + _strSalesArea + "' "); if (_listSalesArea != null && _listSalesArea.Count > 0) _SalesArea = _listSalesArea[0].ID; else { CM_RTSalesArea_TDPBLL _bllRTSalesArea_TDPBLL = new CM_RTSalesArea_TDPBLL(); _bllRTSalesArea_TDPBLL.Model.Name = _strSalesArea; _bllRTSalesArea_TDPBLL.Model.OwnerClient = _OwnerClient; _bllRTSalesArea_TDPBLL.Model.Remark = "Excel批量导入"; _bllRTSalesArea_TDPBLL.Model.InsertStaff = _template.Model.InsertStaff; _bllRTSalesArea_TDPBLL.Model.InsertTime = DateTime.Now; _SalesArea = _bllRTSalesArea_TDPBLL.Add(); } } #endregion #region 获取所在渠道 int _RTChannel = 0;//渠道 string _strRTChannel = dr["渠道"].ToString(); if (!string.IsNullOrEmpty(_strRTChannel)) { IList<CM_RTChannel_TDP> _listRTChannel = CM_RTChannel_TDPBLL.GetModelList(" OwnerClient= " + _OwnerClient.ToString() + " AND Name='" + _strRTChannel + "' "); if (_listRTChannel != null && _listRTChannel.Count > 0) _RTChannel = _listRTChannel[0].ID; else { CM_RTChannel_TDPBLL _bllRTSalesArea_TDPBLL = new CM_RTChannel_TDPBLL(); _bllRTSalesArea_TDPBLL.Model.Name = _strRTChannel; _bllRTSalesArea_TDPBLL.Model.OwnerClient = _OwnerClient; _bllRTSalesArea_TDPBLL.Model.Remark = "Excel批量导入"; _bllRTSalesArea_TDPBLL.Model.InsertStaff = _template.Model.InsertStaff; _bllRTSalesArea_TDPBLL.Model.InsertTime = DateTime.Now; _RTChannel = _bllRTSalesArea_TDPBLL.Add(); } } #endregion CM_ClientBLL _bll = new CM_ClientBLL();//Client表Code字段暂不启用,以FactoryCode作为厂商编码。经销商对门店的编码存于CM_ClientSupplierInfo表的Code字段 _bll.Model.FullName = _ClientName; _bll.Model.ShortName = _ClientName; _bll.Model.LinkManName = _ClientLinkMan; _bll.Model.Address = _ClientAddress; _bll.Model.TeleNum = _ClientTel; _bll.Model.Mobile = _ClientMobile; _bll.Model.Remark = string.IsNullOrEmpty(_ClientRemark) ? "Excel批量导入" : _ClientRemark; _bll.Model.ClientType = 3; _bll.Model.ApproveFlag = 1; _bll.Model.InsertStaff = _template.Model.InsertStaff; _bll.Model.OwnerType = 3; //所属经销商 _bll.Model.OwnerClient = _OwnerClient; int _ClientID = _bll.Add(); if (_ClientID > 0) { CM_ClientSupplierInfo _Supplierinfo = _bll.GetSupplierInfo(_OwnerClient); if (_Supplierinfo == null) { _Supplierinfo = new CM_ClientSupplierInfo(); _Supplierinfo.Supplier = _OwnerClient; } _Supplierinfo.TDPChannel = _RTChannel; _Supplierinfo.TDPSalesArea = _SalesArea; _Supplierinfo.Code = _ClientCode; _Supplierinfo.Remark = _ClientRemark; CM_ClientBLL s = new CM_ClientBLL(_OwnerClient); CM_ClientManufactInfo _manufactinfo = _bll.GetManufactInfo(s.Model.OwnerClient); if (_manufactinfo == null) { _manufactinfo = new CM_ClientManufactInfo(); //门店所属区域为经销商对应区域 _manufactinfo.Manufacturer = s.Model.OwnerClient; _manufactinfo.OrganizeCity = s.GetManufactInfo().OrganizeCity; } if (_route != null && _route.OwnerType == 3)//线路为经销商级别的存放在经销商表中 _Supplierinfo.VisitRoute = _route.ID; else if (_route != null && (_route.OwnerType == 1 || _route.OwnerType == 2))//线路为厂商级别的存放在经销商表中 _manufactinfo.VisitRoute = _route.ID; _bll.SetSupplierInfo(_Supplierinfo); _bll.SetManufactInfo(_manufactinfo); } } catch (Exception ex) { ImportInfo += "导入序列号为" + dr["序号"].ToString() + "的数据行时出现错误,错误说明:" + ex.Message + "\r\n"; State = 5; continue; } } if (State == 0) State = 3; ImportInfo += (State == 3 ? "导入完成!\r\n" : ""); IPT_UploadTemplateMessageBLL _bllUploadTemplateMessage = new IPT_UploadTemplateMessageBLL(); _bllUploadTemplateMessage.Model.TemplateID = TemplateID; _bllUploadTemplateMessage.Model.MessageType = State; _bllUploadTemplateMessage.Model.Content = ImportInfo; _bllUploadTemplateMessage.Add(); return ImportInfo; }