| | |
| | | |
| | | for (int i = 0; i <= provisional.Rows.Count - 1; i++) |
| | | { |
| | | string HBillNo= DBUtility.ClsPub.CreateBillCode("1802", ref DBUtility.ClsPub.sExeReturnInfo, true); |
| | | provisional.Rows[i]["åæ®å·"] = HBillNo; |
| | | //string HBillNo= DBUtility.ClsPub.CreateBillCode("1802", ref DBUtility.ClsPub.sExeReturnInfo, true); |
| | | //provisional.Rows[i]["åæ®å·"] = HBillNo; |
| | | string HDepNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["é¨é¨ä»£ç "].ToString()); |
| | | string HDepName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["é¨é¨"].ToString()); |
| | | |
| | |
| | | string HCostItemNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["ææ¬é¡¹ç®ä»£ç "].ToString()); |
| | | string HCostItemName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["ææ¬é¡¹ç®"].ToString()); |
| | | |
| | | string HEntryID = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["å表å
ç "].ToString()); |
| | | //string HEntryID = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["å表å
ç "].ToString()); |
| | | |
| | | string HDepNumber_sub = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["åé¨é¨ä»£ç "].ToString()); |
| | | string HDepName_sub = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["åé¨é¨"].ToString()); |
| | |
| | | string HPrice = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["åä»·"].ToString()); |
| | | string HMoney = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["éé¢"].ToString()); |
| | | string HWaster = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["æèé"].ToString()); |
| | | string HRelationQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["å
³èæ°é"].ToString()); |
| | | string HRelationMoney = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["å
³èéé¢"].ToString()); |
| | | //string HRelationQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["å
³èæ°é"].ToString()); |
| | | //string HRelationMoney = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["å
³èéé¢"].ToString()); |
| | | string remark = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["夿³¨"].ToString()); |
| | | |
| | | //è·åçå®è¡æ° |
| | |
| | | var error = ""; |
| | | |
| | | //æ¥è¯¢æ²¡æçå |
| | | if (!provisional.Columns.Contains("å表å
ç ")) |
| | | error += "æ²¡ææ¾å°ãå表å
ç ãçæ é¢,"; |
| | | //if (!provisional.Columns.Contains("å表å
ç ")) |
| | | // error += "æ²¡ææ¾å°ãå表å
ç ãçæ é¢,"; |
| | | |
| | | if (!provisional.Columns.Contains("ç©æç¼ç ")) |
| | | error += "æ²¡ææ¾å°ãç©æç¼ç ãçæ é¢,"; |
| | |
| | | [HttpPost] |
| | | public object Excel_btnSave([FromBody] JObject sMainSub) |
| | | { |
| | | |
| | | var _value = sMainSub["sMainSub"].ToString(); |
| | | string msg1 = _value.ToString(); |
| | | string[] sArray = msg1.Split(new string[] { "&å" }, StringSplitOptions.RemoveEmptyEntries); |
| | |
| | | var EmpNames = list.Select(x => x["èå"].ToString()).Distinct().ToList(); |
| | | var CostNumbers = list.Select(x => x["ææ¬é¡¹ç®ä»£ç "].ToString()).Distinct().ToList(); |
| | | var CostNames = list.Select(x => x["ææ¬é¡¹ç®"].ToString()).Distinct().ToList(); |
| | | var ICMONumbers = list.Select(x => x["ç产订åå·"].ToString()).Distinct().ToList(); |
| | | |
| | | // 2. æ¹éæ¥è¯¢ç产订åå
ç |
| | | string ICMOQuery = $"SELECT HInterID,HBillNo FROM Sc_ICMOBillMain WHERE HBillNo IN ({string.Join(",", ICMONumbers.Select(s => $"'{s.Replace("'", "''")}'"))})"; |
| | | DataSet icmoData = oCN.RunProcReturn(ICMOQuery, "Sc_ICMOBillMain"); |
| | | Dictionary<string, int> ICMODict = new Dictionary<string, int>(); |
| | | foreach (DataRow row in icmoData.Tables[0].Rows) |
| | | { |
| | | ICMODict[row["HBillNo"].ToString()] = (int)row["HInterID"]; |
| | | } |
| | | |
| | | // 2. æ¹éæ¥è¯¢ä¸»å表é¨é¨ä¿¡æ¯ |
| | | string supplierQuery = $"SELECT HItemID, HName FROM Gy_Department WHERE HName IN ({string.Join(",", HDeptNames.Select(s => $"'{s.Replace("'", "''")}'"))})"; |
| | |
| | | |
| | | // 2.1 æ¹éæ¥è¯¢ä¸»å表é¨é¨ä¿¡æ¯ |
| | | string supplierQuery_sub = $"SELECT HItemID, HName FROM Gy_Department WHERE HName IN ({string.Join(",", HDeptNames_sub.Select(s => $"'{s.Replace("'", "''")}'"))})"; |
| | | DataSet supData_sub = oCN.RunProcReturn(supplierQuery, "Gy_Department"); |
| | | DataSet supData_sub = oCN.RunProcReturn(supplierQuery_sub, "Gy_Department"); |
| | | Dictionary<string, int> supplierDict_sub = new Dictionary<string, int>(); |
| | | foreach (DataRow row in supData_sub.Tables[0].Rows) |
| | | { |
| | |
| | | CostDict[key] = (int)row["HItemID"]; |
| | | } |
| | | |
| | | |
| | | // 4. æ¥è¯¢ç¨æ·ä¿¡æ¯ |
| | | DataSet emp = oCN.RunProcReturn($"SELECT Czybm FROM Gy_Czygl WHERE Czymc = '{user.Replace("'", "''")}'", "Gy_Czygl"); |
| | | if (emp.Tables[0].Rows.Count == 0) |
| | |
| | | var item = list[i]; |
| | | int lineNumber = i + 1; // è¡å·ä»1å¼å§ |
| | | |
| | | string ICMOcheck = item["ç产订åå·"]; |
| | | string supplier = item["é¨é¨"]; |
| | | string materialNumber = item["ç©æç¼ç "]; |
| | | string materialName = item["ç©æåç§°"]; |
| | |
| | | if (!materialDict.ContainsKey(materialKey)) |
| | | { |
| | | missingMaterialMessages.Add($"第{lineNumber}è¡çç©æã{materialName}(ç¼ç :{materialNumber})ã"); |
| | | } |
| | | // æ£æ¥ç产订å |
| | | if (!string.IsNullOrEmpty(ICMOcheck) && !ICMODict.ContainsKey(ICMOcheck)) |
| | | { |
| | | missingMaterialMessages.Add($"第{lineNumber}è¡çç产订åã{ICMOcheck}ã"); |
| | | } |
| | | } |
| | | |
| | |
| | | existRecords.Add($"{row["HMaterID"]}_{row["HDeptID_sub"]}"); |
| | | } |
| | | |
| | | // 7. æç
§é¨é¨ä»£ç ãé¨é¨ãèå代ç ãèåãç产订åå·è¿è¡åç» |
| | | var groupedData = list.GroupBy(item => new |
| | | { |
| | | é¨é¨ä»£ç = item["é¨é¨ä»£ç "], |
| | | é¨é¨ = item["é¨é¨"], |
| | | èå代ç = item["èå代ç "], |
| | | èå = item["èå"], |
| | | ç产订åå· = item["ç产订åå·"] |
| | | }).ToList(); |
| | | |
| | | StringBuilder insertSql = new StringBuilder(); |
| | | StringBuilder insertSql_sub = new StringBuilder(); |
| | | StringBuilder updateSql = new StringBuilder(); |
| | | StringBuilder updateSql_sub = new StringBuilder(); |
| | | string currentDate = DateTime.Today.ToString("yyyy-MM-dd"); |
| | | int HEntryID = 1; |
| | | foreach (Dictionary<string, string> item in list) |
| | | |
| | | foreach (var group in groupedData) |
| | | { |
| | | int HSupplierID = supplierDict_sub[item["é¨é¨"]]; |
| | | int EmpID = EmpDict[item["èå"]];// |
| | | int HCostID = CostDict[item["ææ¬é¡¹ç®"]] ;//EmpDict[item["èå"]]; |
| | | var firstItem = group.First(); |
| | | |
| | | // è·åç»ä¿¡æ¯ |
| | | int HSupplierID = supplierDict_sub[firstItem["é¨é¨"]]; |
| | | int EmpID = EmpDict[firstItem["èå"]]; |
| | | string ICMO = firstItem["ç产订åå·"]; |
| | | int ICMOInterID = !string.IsNullOrEmpty(ICMO) && ICMODict.ContainsKey(ICMO) ? ICMODict[ICMO] : 0; |
| | | |
| | | // çæä¸»è¡¨IDååæ®å·ï¼æ¯ç»çæä¸ä¸ªï¼ |
| | | string HBillNo = DBUtility.ClsPub.CreateBillCode("1802", ref DBUtility.ClsPub.sExeReturnInfo, true); |
| | | long HInterID = DBUtility.ClsPub.CreateBillID("1802", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | |
| | | // æ£æ¥è¯¥ç»æ¯å¦å·²åå¨ï¼æ ¹æ®é¨é¨IDåç©æIDç»åï¼ |
| | | bool groupExists = false; |
| | | foreach (var item in group) |
| | | { |
| | | int HMaterID = materialDict[$"{item["ç©æç¼ç "]}_{item["ç©æåç§°"]}"]; |
| | | string recordKey = $"{HMaterID}_{HSupplierID}"; |
| | | long HInterID = DBUtility.ClsPub.CreateBillID("1802", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | if (!existRecords.Contains(recordKey)) |
| | | if (existRecords.Contains(recordKey)) |
| | | { |
| | | groupExists = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (!groupExists) |
| | | { |
| | | // æå
¥ä¸»è¡¨ï¼æ¯ç»æå
¥ä¸æ¬¡ï¼ |
| | | insertSql.AppendLine($"INSERT INTO CB_ItemMoneyBillMain ([HInterID], [HBillNo], [HDate], [HYear], [HPeriod], [HBillType], [HBillSubType], [HBillStatus], [HCheckItemNowID], [HCheckItemNextID], [HCheckFlowID], [HRemark], [HBacker], [HBackDate], [HBackRemark], [HChecker], [HCheckDate], [HMaker], [HMakeDate], [HUpDater], [HUpDateDate], [HCloseMan], [HCloseDate], [HCloseType], [HDeleteMan], [HDeleteDate], [HMainSourceBillType], [HMainSourceInterID], [HMainSourceEntryID], [HMainSourceBillNo], [HPrintQty], [HEmpID], [HDeptID], [HICMOInterID], [HMaterID], [HICMOBillNo], [HExplanation], [HInnerBillNo], [HBeginDate], [HEndDate], [HOrgID]) VALUES ("); |
| | | insertSql.AppendLine($"'{HInterID}', '{item["åæ®å·"]}', '{DateTime.Now}', {DateTime.Now.Year}, {DateTime.Now.Month}, {"1802"}, '{"1802"}', '{"1"}', '{"0"}', '{"0"}', '{"0"}', '{"excel导å
¥"}', '{""}', '{DateTime.Now}', '{""}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{"0"}', '{""}', '{DateTime.Now}', '{""}', '{"0"}', '{"0"}', '{""}', '{"0"}', '{EmpID}', '{HSupplierID}', '{"0"}','{HMaterID}','{"0"}','{""}','{"0"}','{DateTime.Now}','{DateTime.Now}','{"100038"}');"); |
| | | insertSql.AppendLine($"'{HInterID}', '{HBillNo}', '{DateTime.Now}', {DateTime.Now.Year}, {DateTime.Now.Month}, {"1802"}, '{"1802"}', '{"1"}', '{"0"}', '{"0"}', '{"0"}', '{"excel导å
¥"}', '{""}', '{DateTime.Now}', '{""}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{"0"}', '{""}', '{DateTime.Now}', '{""}', '{"0"}', '{"0"}', '{""}', '{"0"}', '{EmpID}', '{HSupplierID}', '{ICMOInterID}','{0}','{ICMO}','{""}','{"0"}','{DateTime.Now}','{DateTime.Now}','{"100038"}');"); |
| | | |
| | | // æå
¥å表ï¼ç»å
æ¯ä¸ªç©ææå
¥ä¸æ¬¡ï¼ |
| | | int HEntryID = 1; |
| | | foreach (var item in group) |
| | | { |
| | | int HMaterID = materialDict[$"{item["ç©æç¼ç "]}_{item["ç©æåç§°"]}"]; |
| | | int HCostID = CostDict[item["ææ¬é¡¹ç®"]]; |
| | | |
| | | insertSql_sub.AppendLine($"INSERT INTO [CB_ItemMoneyBillSub] ([HInterID], [HEntryID], [HCloseMan], [HEntryCloseDate], [HCloseType], [HRemark],[HSourceInterID], [HSourceEntryID], [HSourceBillNo], [HSourceBillType],[HRelationQty], [HRelationMoney], [HBillNo_bak], [HCostItemID],[HDeptID], [HQty], [HPrice], [HMoney],[HMaterID], [HWaster], [HDate], [HBeginBalance], [HEndBalance], [HTimes]) VALUES ("); |
| | | insertSql_sub.AppendLine($"'{HInterID}', '{HEntryID}', '{""}', '{DateTime.Now}', '{"0"}', '{"excel导å
¥"}','{"0"}', '{"0"}', '{"0"}', '{"0"}','{item["å
³èæ°é"]}', '{item["å
³èéé¢"]}', '{""}', '{HCostID}', '{HSupplierID}', '{item["æ°é"]}', '{item["åä»·"]}', '{item["éé¢"]}','{HMaterID}', '{item["æèé"]}', '{DateTime.Now}', '{"0"}', '{"0"}', '{"0"}');"); |
| | | insertSql_sub.AppendLine($"'{HInterID}', '{HEntryID}', '{""}', '{DateTime.Now}', '{"0"}', '{"excel导å
¥"}','{"0"}', '{"0"}', '{"0"}', '{"0"}','{"0"}', '{"0"}', '{""}', '{HCostID}', '{HSupplierID}', '{item["æ°é"]}', '{item["åä»·"]}', '{item["éé¢"]}','{HMaterID}', '{item["æèé"] ?? "0"}', '{DateTime.Now}', '{"0"}', '{"0"}', '{"0"}');"); |
| | | HEntryID++; |
| | | } |
| | | else |
| | | { |
| | | // æ´æ°è¯å¥ |
| | | updateSql.AppendLine($"UPDATE CB_ItemMoneyBillMain SET HDate = '{currentDate}', HRemark = '{item["夿³¨"]}', HEmpID = '{EmpID}', HMaterID = '{HMaterID}' , HDeptID = '{HSupplierID}' WHERE HBillNo = '{item["åæ®å·"]}'"); |
| | | updateSql_sub.AppendLine($"UPDATE CB_ItemMoneyBillSub SET HDate = '{currentDate}', HQty = '{item["æ°é"]}', HDeptID = '{HSupplierID}', HPrice = '{item["åä»·"]}', HRelationQty = '{item["å
³èæ°é"]}', HRelationMoney = '{item["å
³èéé¢"]}', HMoney = '{item["éé¢"]}', HWaster = '{item["æèé"]}', HMaterID = '{HMaterID}' WHERE HInterID = {HInterID};"); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | // æ§è¡æ¹éæä½ |
| | | if (insertSql.Length > 0) |
| | | { |
| | | oCN.RunProc(insertSql.ToString()); |
| | | } |
| | | |
| | | if (insertSql_sub.Length > 0) |
| | | { |
| | | oCN.RunProc(insertSql_sub.ToString()); |
| | | } |
| | | |
| | | if (updateSql.Length > 0) |
| | | { |
| | | oCN.RunProc(updateSql.ToString()); |
| | | oCN.RunProc(updateSql_sub.ToString()); |
| | | } |
| | | |
| | | |
| | | oCN.Commit(); |
| | | |
| | | res.code = "1"; |
| | | res.count = 1; |
| | | res.Message = "导å
¥æå!"; |
| | | res.count = groupedData.Count; |
| | | res.Message = $"导å
¥æå! å
±å¤ç{groupedData.Count}ç»æ°æ®"; |
| | | res.data = null; |
| | | return res; |
| | | } |