コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 /// <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);
     }
 }
コード例 #4
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);
     }
 }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        // 根据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);
        }