public Response SaveCClassSupplier(string token, [FromBody] CClassSupplierParam param) { Response response = new Response(); if (string.IsNullOrEmpty(token) || !token.Equals(_token)) { response.code = "404"; response.message = "Invild token"; } else { int result = CClassSupplierHelper.SaveCClassSupplier(param); if (result == 0) { response.code = "500"; response.message = "No Data"; } else { response.code = "200"; response.content = result; } } return(response); }
public Response GetCClassSupplierData(string token, [FromBody] SingleField param) { Response response = new Response(); if (string.IsNullOrEmpty(token) || !token.Equals(_token)) { response.code = "404"; response.message = "Invild token"; } else { CClassSupplierParam ccsp = CClassSupplierHelper.GetCClassSupplierData(param.code); if (ccsp.lstCClassSupplier == null || ccsp.lstCClassSupplier.Count == 0) { response.code = "500"; response.message = "No Data"; } else { response.code = "200"; response.content = ccsp; } } return(response); }
/// <summary> /// 保存成本中心对应供应商主数据 /// </summary> /// <param name="param"></param> /// <returns></returns> public static int SaveCClassSupplier(CClassSupplierParam param) { try { int result = cClassSupplierFactory.SaveCClassSupplier(param); if (result == 0) { throw new Exception("DAL.MastData.cClassSupplierFactory.SaveCClassSupplierFactory()==0"); } return(result); } catch (Exception ex) { LogHelper.WriteLog(new Log() { message = ex.Message }, "result"); return(0); } }
/// <summary> /// 根据Company取得CostCenterCode对应关系集合 /// </summary> /// <param name="companyCode"></param> /// <returns></returns> public static CClassSupplierParam GetCClassSupplierData(string companyCode) { try { CClassSupplierParam ccsp = cClassSupplierFactory.GetCClassSupplierData(companyCode); if (ccsp.lstCClassSupplier.Count == 0) { throw new Exception("DAL.MastData.cClassSupplierFactory.GetCClassSupplierData()==null"); } return(ccsp); } catch (Exception ex) { LogHelper.WriteLog(new Log() { message = ex.Message }, "CClassSupplierParam"); return(null); } }
/// <summary> /// 保存成本中心对应供应商主数据 /// </summary> /// <param name="param"></param> /// <returns></returns> public int SaveCClassSupplier(CClassSupplierParam param) { // 最终Sql文 StringBuilder sbSqlFinal = new StringBuilder(); // 当前时间 string strDateTime = SalesOrder.Common.convertDateTime(DateTime.Now.ToString()); int result = 0; #region Sql文定义 string strSqlUpdate = " UPDATE CCLASSSUPPLIER " + " SET DELETEUSER = '******' " + " , DELETETIME = '{1}' " + " WHERE COSTCENTERCODE = '{2}' " + " AND DBNAME = '{3}' " + " AND CLASSGUID = '{4}' "; string strSqlUpdate2 = " UPDATE CCLASSSUPPLIER " + " SET DELETEUSER = '******' " + " , DELETETIME = '{1}' " + " WHERE COSTCENTERCODE IS NULL " + " AND DBNAME = '{2}' " + " AND CLASSGUID = '{3}' "; string strSqlInsert = " INSERT INTO CCLASSSUPPLIER " + " ( COSTCENTERCODE " + " , DBNAME " + " , CLASSGUID " + " , SUPPLIERCODE " + " , DEFAULTSUPPLIER " + " , STARTDATE " + " , ENDDATE " + " , CREATETIME " + " , CREATEUSER ) " + " VALUES " + " ( '{0}' " + " , '{1}' " + " , '{2}' " + " , '{3}' " + " , {4} " + " , '{5}' " + " , '{6}' " + " , '{7}' " + " , '{8}' ) "; string strSqlInsert2 = " INSERT INTO CCLASSSUPPLIER " + " ( COSTCENTERCODE " + " , DBNAME " + " , CLASSGUID " + " , SUPPLIERCODE " + " , DEFAULTSUPPLIER " + " , STARTDATE " + " , CREATETIME " + " , CREATEUSER ) " + " VALUES " + " ( '{0}' " + " , '{1}' " + " , '{2}' " + " , '{3}' " + " , {4} " + " , '{5}' " + " , '{6}' " + " , '{7}' ) "; string strSqlDefaultInsert = " INSERT INTO CCLASSSUPPLIER " + " ( DBNAME " + " , CLASSGUID " + " , SUPPLIERCODE " + " , DEFAULTSUPPLIER " + " , STARTDATE " + " , ENDDATE " + " , CREATETIME " + " , CREATEUSER ) " + " VALUES " + " ( '{0}' " + " , '{1}' " + " , '{2}' " + " , {3} " + " , '{4}' " + " , '{5}' " + " , '{6}' " + " , '{7}' ) "; string strSqlDefaultInsert2 = " INSERT INTO CCLASSSUPPLIER " + " ( DBNAME " + " , CLASSGUID " + " , SUPPLIERCODE " + " , DEFAULTSUPPLIER " + " , STARTDATE " + " , CREATETIME " + " , CREATEUSER ) " + " VALUES " + " ( '{0}' " + " , '{1}' " + " , '{2}' " + " , {3} " + " , '{4}' " + " , '{5}' " + " , '{6}' ) "; #endregion // 根据成本中心 + ItemClassGuid进行分组 var lqCClassSupplier = (from cClassSupplier in param.lstCClassSupplier group cClassSupplier by new { // 成本中心 costCenterCode = cClassSupplier.costCenterCode, // ItemClassGuid classGuid = cClassSupplier.classGuid, // 修改标志(一组中的changeFlag应该均相同) changeFlag = cClassSupplier.changeFlag }).ToList(); List <CClassSupplier> lstCCSTemp = new List <CClassSupplier>(); string strCostCenterCode = string.Empty; string strClassGuid = string.Empty; string strSql1 = string.Empty; string strSql2 = string.Empty; // By成本中心 + ItemClass进行保存 foreach (var gCClassSupplier in lqCClassSupplier) { if (string.IsNullOrWhiteSpace(gCClassSupplier.Key.changeFlag)) { continue; } // By成本中心 + ItemClass删除之前的记录(1~2条) if (!string.IsNullOrEmpty(gCClassSupplier.Key.costCenterCode)) { sbSqlFinal.Append(string.Format(strSqlUpdate, param.userId, strDateTime, gCClassSupplier.Key.costCenterCode, param.dbName, gCClassSupplier.Key.classGuid)); } else { sbSqlFinal.Append(string.Format(strSqlUpdate2, param.userId, strDateTime, param.dbName, gCClassSupplier.Key.classGuid)); } lstCCSTemp = gCClassSupplier.ToList(); // 插入新记录 foreach (CClassSupplier ccs in lstCCSTemp) { if (!string.IsNullOrWhiteSpace(ccs.costCenterCode)) { if (string.IsNullOrEmpty(ccs.endDate)) { sbSqlFinal.Append(string.Format(strSqlInsert2, gCClassSupplier.Key.costCenterCode, param.dbName , gCClassSupplier.Key.classGuid, ccs.supplierCode, ccs.defaultSupplier? 1: 0, ccs.startDate, strDateTime, param.userId)); } else { sbSqlFinal.Append(string.Format(strSqlInsert, gCClassSupplier.Key.costCenterCode, param.dbName , gCClassSupplier.Key.classGuid, ccs.supplierCode, ccs.defaultSupplier? 1: 0, ccs.startDate, ccs.endDate, strDateTime , param.userId)); } } else { if (string.IsNullOrEmpty(ccs.endDate)) { sbSqlFinal.Append(string.Format(strSqlDefaultInsert2, param.dbName, gCClassSupplier.Key.classGuid , ccs.supplierCode, ccs.defaultSupplier? 1: 0, ccs.startDate, strDateTime, param.userId)); } else { sbSqlFinal.Append(string.Format(strSqlDefaultInsert, param.dbName, gCClassSupplier.Key.classGuid , ccs.supplierCode, ccs.defaultSupplier? 1: 0, ccs.startDate, ccs.endDate, strDateTime, param.userId)); } } } } result = SqlServerHelper.Execute(SqlServerHelper.salesorderConn(), sbSqlFinal.ToString()); return(result); }
// 根据Company取得CostCenterCode集合 public CClassSupplierParam GetCClassSupplierData(string companyCode) { CClassSupplierParam result = new CClassSupplierParam(); // 成本中心、各品类供应商对应关系 List <CClassSupplier> lstCClassSupplier = new List <CClassSupplier>(); // 临时表(用于类别行转列) List <CClassSupplier> lstTemp = new List <CClassSupplier>(); // 品类主数据 List <ItemClass> lstItemClass = new List <ItemClass>(); // 当前时间 string strDateTime = DateTime.Now.ToString("yyyy-MM-dd"); // 取得CostCenter集合 SingleField param = new SingleField(); param.code = companyCode; param.flag = "1"; List <SingleField> lstCostCenter = (new SalesOrder.CompanyFactory()).GetActCostCenter(param); // 从销售订单行项中取得CostCenter CClassSupplier ccs = new CClassSupplier(); foreach (SingleField cc in lstCostCenter) { ccs = new CClassSupplier(); ccs.costCenterCode = cc.code; lstCClassSupplier.Add(ccs); } // 当销售订单中存在记录时,追加一空行作为默认项 if (lstCClassSupplier.Count > 0) { CClassSupplier emptyLine = new CClassSupplier(); lstCClassSupplier.Add(emptyLine); } // Sql文(CClassSupplier) string strSqlCClassSupplier = " SELECT C.COSTCENTERCODE " + " , C.CLASSGUID " + " , C.SUPPLIERCODE " + " , CONVERT(VARCHAR(100), C.STARTDATE, 23) AS STARTDATE " + " , CONVERT(VARCHAR(100), C.ENDDATE, 23) AS ENDDATE " + " , C.DEFAULTSUPPLIER " + " FROM CCLASSSUPPLIER AS C " + " WHERE C.DELETEUSER IS NULL " + " AND C.DBNAME = '{0}' " + " AND ( C.ENDDATE >= '{1}'" + " OR C.ENDDATE IS NULL ) "; // Sql文(ItemClass主数据) string strSqlItemClass = " SELECT ID" + " , GUID " + " , CLASSNAME_ZH AS NAME " + " , SORT " + " FROM TBLITEMCLASS " + " WHERE STATUS = 'active' " + " AND TYPE = 'RMClass' " + " ORDER BY SORT "; // 取得CClassSupplier中的既有数据 lstTemp = SqlServerHelper.GetEntityList <CClassSupplier>(SqlServerHelper.salesorderConn(), string.Format(strSqlCClassSupplier , companyCode, strDateTime)); // 取得ItemClass主数据 lstItemClass = SqlServerHelper.GetEntityList <ItemClass>(SqlServerHelper.salesorderConn(), strSqlItemClass); if (lstTemp != null && lstTemp.Count > 0) { // 第一顺CostCenter,第二顺类别,第三顺StartDate lstTemp = lstTemp.OrderBy(r => r.costCenterCode).OrderBy(r => r.classGuid).OrderBy(r => r.startDate).ToList(); if (lstTemp != null && lstTemp.Count > 0) { lstTemp = (from l in lstTemp group l by l.costCenterCode into lq let firstItem = lq.FirstOrDefault() select new CClassSupplier { // 成本中心 costCenterCode = firstItem.costCenterCode, // mealTypeCode对应supplierCode行转列 lstSupplierCode = ConvertToSupplierCodeList(lq.ToList(), lstItemClass) } into lines select lines).ToList(); lstCClassSupplier.AddRange(lstTemp); } } // 去重复(寄存数据为主) lstCClassSupplier = (from cc in lstCClassSupplier group cc by cc.costCenterCode into lq // 取第一条 let firstItem = lq.FirstOrDefault() // 优先取供应商List不为空的 let firstItemSupplierCode = lq.Where(r => r.lstSupplierCode != null && r.lstSupplierCode.Count > 0).FirstOrDefault() select new CClassSupplier { // 成本中心 costCenterCode = firstItem.costCenterCode, // 供应商列表 lstSupplierCode = firstItemSupplierCode != null ? firstItemSupplierCode.lstSupplierCode : new List <CClassSupplier>() } into lines select lines).ToList(); // 取得供应商列表 List <dynamic> lstSupplierTemp = new SupplierFactory().getSuppliers(companyCode); lstCClassSupplier = lstCClassSupplier.OrderBy(r => r.costCenterCode).ToList(); // 画面Table内容 // 成本中心主档 Model.SOCommon.CompanyAddress addr = new Model.SOCommon.CompanyAddress(); addr.ip = (new SalesOrder.CompanyFactory()).GetCompanyInfoByCode(param.code).ip; addr.erpCode = param.code; List <CostCenter> lstCCMastData = (new SalesOrder.MastDataFactory()).GetCostCenter(addr); lstCClassSupplier.GroupJoin(lstCCMastData, cc => new { code = cc.costCenterCode }, ma => new { code = ma.costCenterCode }, (cc, ma) => { var first = ma.FirstOrDefault(); bool check = first != null; cc.costCenterName = check ? first.costCenterName_ZH : string.Empty; return(cc); }).ToList(); result.lstCClassSupplier = lstCClassSupplier; // 供应商下拉框选项 result.lstSupplierOption = lstSupplierTemp; // 类别主数据 result.lstItemClass = lstItemClass; return(result); }