diff --git a/ICSSoft.FromERP/ICSSoft.FromERP/App.config b/ICSSoft.FromERP/ICSSoft.FromERP/App.config index 48f04d9..e5536af 100644 --- a/ICSSoft.FromERP/ICSSoft.FromERP/App.config +++ b/ICSSoft.FromERP/ICSSoft.FromERP/App.config @@ -9,12 +9,12 @@ - + - - + + diff --git a/ICSSoft.FromERP/ICSSoft.FromERP/ICSDeliveryNotice.cs b/ICSSoft.FromERP/ICSSoft.FromERP/ICSDeliveryNotice.cs index c5f4fa1..7f34f2b 100644 --- a/ICSSoft.FromERP/ICSSoft.FromERP/ICSDeliveryNotice.cs +++ b/ICSSoft.FromERP/ICSSoft.FromERP/ICSDeliveryNotice.cs @@ -57,9 +57,9 @@ namespace ICSSoft.FromERP { SAPGetChkDocInfoVPN.ZWMS_SK_WS_CHECK client = new SAPGetChkDocInfoVPN.ZWMS_SK_WS_CHECK(); SAPGetChkDocInfoVPN.ZWMS_SK_WS_CHECK1 Info = new SAPGetChkDocInfoVPN.ZWMS_SK_WS_CHECK1(); - Info.PRUEFLOS = DocNO; + Info.PRUEFLOS = ""; Info.WERKS = dr["WorkPointCode"].ToString(); - Info.CHG_DATE = ""; + Info.CHG_DATE = Date; Info.ZCHECK_HEAD = new SAPGetChkDocInfoVPN.ZWMS_SK_CHECK_HEAD[1]; Info.ZCHECK_ITEM = new SAPGetChkDocInfoVPN.ZWMS_SK_CHECK_ITEM[1]; diff --git a/ICSSoft.FromERP/ICSSoft.FromERP/ICSDispatchDoc.cs b/ICSSoft.FromERP/ICSSoft.FromERP/ICSDispatchDoc.cs index e55add5..0ec15b0 100644 --- a/ICSSoft.FromERP/ICSSoft.FromERP/ICSDispatchDoc.cs +++ b/ICSSoft.FromERP/ICSSoft.FromERP/ICSDispatchDoc.cs @@ -54,25 +54,25 @@ namespace ICSSoft.FromERP #region 销售发退货单同步 foreach (DataRow dr in dt.Rows) { - SAPDispatchGetVPN.ZWMS_SK_DO_READ client = new SAPDispatchGetVPN.ZWMS_SK_DO_READ(); - SAPDispatchGetVPN.ZWMS_SK_DO_READ1 Info = new SAPDispatchGetVPN.ZWMS_SK_DO_READ1(); + SAPDispatchGet.ZWMS_SK_DO_READ client = new SAPDispatchGet.ZWMS_SK_DO_READ(); + SAPDispatchGet.ZWMS_SK_DO_READ1 Info = new SAPDispatchGet.ZWMS_SK_DO_READ1(); Info.VBELN = DocNO; Info.CHG_DATE = ""; - Info.T_HEAD = new SAPDispatchGetVPN.ZWMS_DO_HEAD[1]; - Info.T_ITEM = new SAPDispatchGetVPN.ZWMS_DO_ITEM[1]; - Info.T_GERNR = new SAPDispatchGetVPN.ZWMS_DO_GERNR[1]; + Info.T_HEAD = new SAPDispatchGet.ZWMS_DO_HEAD[1]; + Info.T_ITEM = new SAPDispatchGet.ZWMS_DO_ITEM[1]; + Info.T_GERNR = new SAPDispatchGet.ZWMS_DO_GERNR[1]; - SAPDispatchGetVPN.ZWMS_SK_DO_READResponse result = new SAPDispatchGetVPN.ZWMS_SK_DO_READResponse(); + SAPDispatchGet.ZWMS_SK_DO_READResponse result = new SAPDispatchGet.ZWMS_SK_DO_READResponse(); result = client.CallZWMS_SK_DO_READ(Info); - List ItemInfoList = new List(); + List ItemInfoList = new List(); ItemInfoList.AddRange(result.T_ITEM); - List SubLineInfoList = new List(); + List SubLineInfoList = new List(); SubLineInfoList.AddRange(result.T_GERNR); - foreach (SAPDispatchGetVPN.ZWMS_DO_HEAD HeadInfo in result.T_HEAD) + foreach (SAPDispatchGet.ZWMS_DO_HEAD HeadInfo in result.T_HEAD) { var ItemInfo = ItemInfoList.Where(a => a.VBELN == HeadInfo.VBELN); int LineNum = 10; - foreach (SAPDispatchGetVPN.ZWMS_DO_ITEM Item in ItemInfo) + foreach (SAPDispatchGet.ZWMS_DO_ITEM Item in ItemInfo) { if (Item.SERAIL != "ZS01") { @@ -131,7 +131,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var rcvline = db.ICSSDN.SingleOrDefault(a => a.SDNCode == Item.VBELN && a.Sequence == Item.POSNR && a.WorkPoint == Item.WERKS); + var rcvline = db.ICSSDN.SingleOrDefault(a => a.SDNCode == Item.VBELN && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Item.WERKS); if (rcvline == null) { isNew = true; @@ -198,7 +198,7 @@ namespace ICSSoft.FromERP else { var SubLineInfo = SubLineInfoList.Where(a => a.VBELN == Item.VBELN); - foreach (SAPDispatchGetVPN.ZWMS_DO_GERNR SubInfo in SubLineInfo) + foreach (SAPDispatchGet.ZWMS_DO_GERNR SubInfo in SubLineInfo) { string ExtensionID = ""; bool isNew = false; @@ -209,7 +209,7 @@ namespace ICSSoft.FromERP } else { - Colspan = "~~~~~000000~~~~~~~~~~"; + Colspan = "~~" + SubInfo.GERNR + "~~000000~~~~~~~~~~"; } var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan); if (Extensionline == null) @@ -255,7 +255,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var rcvline = db.ICSSDN.SingleOrDefault(a => a.SDNCode == Item.VBELN && a.Sequence == Item.POSNR && a.WorkPoint == Item.WERKS); + var rcvline = db.ICSSDN.SingleOrDefault(a => a.SDNCode == Item.VBELN && a.SAPSequence == Item.POSNR && a.ExtensionID== ExtensionID && a.WorkPoint == Item.WERKS); if (rcvline == null) { isNew = true; @@ -281,7 +281,7 @@ namespace ICSSoft.FromERP { rcvline.Type = "2"; } - rcvline.Quantity = Item.LFIMG;//数量 + rcvline.Quantity = 1;//数量 rcvline.Amount = 0; rcvline.CreatePerson = "JOB"; rcvline.CreateDateTime = DateTime.Now; diff --git a/ICSSoft.FromERP/ICSSoft.FromERP/ICSInventory.cs b/ICSSoft.FromERP/ICSSoft.FromERP/ICSInventory.cs index 712b190..238463b 100644 --- a/ICSSoft.FromERP/ICSSoft.FromERP/ICSInventory.cs +++ b/ICSSoft.FromERP/ICSSoft.FromERP/ICSInventory.cs @@ -50,16 +50,16 @@ namespace ICSSoft.FromERP { foreach (DataRow dr in dt.Rows) { - SAPGetINVVPN.ZWMS_SK_MARA client = new SAPGetINVVPN.ZWMS_SK_MARA(); - SAPGetINVVPN.ZWMS_SK_MARA1 Info = new SAPGetINVVPN.ZWMS_SK_MARA1(); + SAPGetINV.ZWMS_SK_MARA client = new SAPGetINV.ZWMS_SK_MARA(); + SAPGetINV.ZWMS_SK_MARA1 Info = new SAPGetINV.ZWMS_SK_MARA1(); Info.WERKS = dr["WorkPointCode"].ToString(); - Info.LGORT = WHCode; - //Info.CHG_DATE = Date; - Info.T_MARA = new SAPGetINVVPN.ZWMS_MARA[1]; + Info.LGORT = ""; + Info.CHG_DATE = Date; + Info.T_MARA = new SAPGetINV.ZWMS_MARA[1]; - SAPGetINVVPN.ZWMS_SK_MARAResponse result = new SAPGetINVVPN.ZWMS_SK_MARAResponse(); + SAPGetINV.ZWMS_SK_MARAResponse result = new SAPGetINV.ZWMS_SK_MARAResponse(); result = client.CallZWMS_SK_MARA(Info); - foreach (SAPGetINVVPN.ZWMS_MARA item in result.T_MARA) + foreach (SAPGetINV.ZWMS_MARA item in result.T_MARA) { var line = db.ICSInventory.SingleOrDefault(a => a.InvCode == item.MATNR && a.WorkPoint == item.WERKS); bool isNew = false; diff --git a/ICSSoft.FromERP/ICSSoft.FromERP/ICSSAPDocGet.cs b/ICSSoft.FromERP/ICSSoft.FromERP/ICSSAPDocGet.cs index a2f6a39..0d2569e 100644 --- a/ICSSoft.FromERP/ICSSoft.FromERP/ICSSAPDocGet.cs +++ b/ICSSoft.FromERP/ICSSoft.FromERP/ICSSAPDocGet.cs @@ -53,11 +53,13 @@ namespace ICSSoft.FromERP { foreach (DataRow dr in dt.Rows) { + //1.wms读取sap时 SET_NOTMODIFY 传X。 sap会打上标识 + //2. wms 更新失败 CLEAR_NOTMODIFY 传X。 sap会取消标识 SAPGetDocInfo.ZWMS_SK_WS_HEAD client = new SAPGetDocInfo.ZWMS_SK_WS_HEAD(); SAPGetDocInfo.ZWMS_SK_WS_HEAD1 DocInfo = new SAPGetDocInfo.ZWMS_SK_WS_HEAD1(); - DocInfo.DANJU = DocNO; + DocInfo.DANJU = ""; DocInfo.WERKS = dr["WorkPointCode"].ToString(); - DocInfo.CHG_DATE = ""; + DocInfo.CHG_DATE = Date; DocInfo.SET_NOTMODIFY = ""; DocInfo.CLEAR_NOTMODIFY = ""; DocInfo.Z_HEAD = new SAPGetDocInfo.ZWMS_SK_HEAD[1]; @@ -154,7 +156,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSDeliveryNotice.SingleOrDefault(a => a.DNCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSDeliveryNotice.SingleOrDefault(a => a.DNCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -259,7 +261,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSDeliveryNotice.SingleOrDefault(a => a.DNCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSDeliveryNotice.SingleOrDefault(a => a.DNCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -410,7 +412,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -512,7 +514,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -663,7 +665,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSMOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSMOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -826,7 +828,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSMOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSMOApply.SingleOrDefault(a => a.ApplyCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -846,7 +848,7 @@ namespace ICSSoft.FromERP line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 line.SourceCode = Item.EBELN;//采购凭证号 line.SourceSequence = Item.EBELP;//采购凭证的项目编号 - line.Quantity = Item.LINGYSL;//领用数量 + line.Quantity = 1;//领用数量 line.Amount = 0; line.WHCode = Item.LGORT;//仓库 line.Status = "2"; @@ -1048,7 +1050,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSMOApplyNegDetail.SingleOrDefault(a => a.ApplyNegCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSMOApplyNegDetail.SingleOrDefault(a => a.ApplyNegCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -1137,7 +1139,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSMOApplyNegDetail.SingleOrDefault(a => a.ApplyNegCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSMOApplyNegDetail.SingleOrDefault(a => a.ApplyNegCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -1150,7 +1152,7 @@ namespace ICSSoft.FromERP line.InvCode = Item.MATNR;//物料编码 line.SourceDetailID = ""; } - line.Quantity = Item.LINGYSL;//领用数量 + line.Quantity = 1;//领用数量 line.SourceDetailID = Item.LGORT;//仓库 line.WHCode = Item.LGORT;//仓库 line.Amount = 0; @@ -1256,7 +1258,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSManufactureReceive.SingleOrDefault(a => a.RCVCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSManufactureReceive.SingleOrDefault(a => a.RCVCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -1381,7 +1383,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSManufactureReceive.SingleOrDefault(a => a.RCVCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSManufactureReceive.SingleOrDefault(a => a.RCVCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -1399,7 +1401,7 @@ namespace ICSSoft.FromERP line.CreateDateTime = Convert.ToDateTime(Info.DATE_C);//检验时间 line.SourceCode = Item.EBELN;//采购凭证号 line.SourceSequence = Item.EBELP;//采购凭证的项目编号 - line.Quantity = Item.LINGYSL;//领用数量 + line.Quantity = 1;//领用数量 line.Amount = 0; line.WHCode = Item.LGORT;//仓库 if (Info.TEST1 == "N")//Info.TEST1=N为SAP未过账入库单 Info.TEST1=Y为SAP已过账入库单 @@ -1535,7 +1537,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSTransfer.SingleOrDefault(a => a.TransferNO == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSTransfer.SingleOrDefault(a => a.TransferNO == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -1661,7 +1663,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var line = db.ICSTransfer.SingleOrDefault(a => a.TransferNO == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSTransfer.SingleOrDefault(a => a.TransferNO == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -1678,7 +1680,7 @@ namespace ICSSoft.FromERP line.ToWarehouseCode = Item.LGORT_JS; line.ToLocationCode = ""; line.Status = "2"; - line.Quantity = Item.LINGYSL;//领用数量 + line.Quantity = 1;//领用数量 line.Amount = 0; line.Type = "1"; line.CreatePerson = Info.XINGMING; @@ -1816,7 +1818,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); + var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); if (linebefore == null) { isNew = true; @@ -1851,7 +1853,7 @@ namespace ICSSoft.FromERP } db.SubmitChanges(); - var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); + var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); if (lineafter == null) { isNew = true; @@ -1947,7 +1949,7 @@ namespace ICSSoft.FromERP ExtensionID = Extensionline.ID; } - var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); + var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); if (linebefore == null) { isNew = true; @@ -1961,7 +1963,7 @@ namespace ICSSoft.FromERP } linebefore.DepCode = Info.KOSTL; linebefore.WHCode = Item.LGORT; - linebefore.Quantity = Item.LINGYSL;//领用数量 + linebefore.Quantity = 1;//领用数量 linebefore.Amount = 0; linebefore.Memo = ""; linebefore.Status = "2"; @@ -1982,7 +1984,7 @@ namespace ICSSoft.FromERP } db.SubmitChanges(); - var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); + var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); if (lineafter == null) { isNew = true; @@ -2155,7 +2157,7 @@ namespace ICSSoft.FromERP ExtensionAfter = ExtensionlineAfter.ID; } - var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); + var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionBefore && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); if (linebefore == null) { isNew = true; @@ -2190,7 +2192,7 @@ namespace ICSSoft.FromERP } db.SubmitChanges(); - var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); + var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionAfter && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); if (lineafter == null) { isNew = true; @@ -2243,10 +2245,9 @@ namespace ICSSoft.FromERP } else { - Colspan = "~~~~~000000~~~~~~~~~~"; - ColspanAfter = "~~~~~000000~~~~~~~~~~"; + Colspan = "~~" + SubInfo.GERNR + "~~000000~~~~~~~~~~"; + ColspanAfter = "~~" + SubInfo.GERNR + "~~000000~~~~~~~~~~"; } - Colspan = Item.VBELN_VA + "~" + Item.SERNP + "~~" + Item.POSNR_VA + "~~~~~~~~~~"; var Extensionline = db.ICSExtension.SingleOrDefault(a => a.Colspan == Colspan && a.WorkPoint == Info.WERKS); if (Extensionline == null) @@ -2335,7 +2336,7 @@ namespace ICSSoft.FromERP ExtensionAfter = ExtensionlineAfter.ID; } - var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); + var linebefore = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionBefore && a.MTDOCType == "1" && a.WorkPoint == Info.WERKS); if (linebefore == null) { isNew = true; @@ -2349,7 +2350,7 @@ namespace ICSSoft.FromERP } linebefore.DepCode = Info.KOSTL; linebefore.WHCode = Item.LGORT; - linebefore.Quantity = Item.LINGYSL;//领用数量 + linebefore.Quantity = 1;//领用数量 linebefore.Amount = 0; linebefore.Memo = Item.SOBKZ_JS; linebefore.Status = "2"; @@ -2370,7 +2371,7 @@ namespace ICSSoft.FromERP } db.SubmitChanges(); - var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.Sequence == Item.POSNR && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); + var lineafter = db.ICSMTDOC.SingleOrDefault(a => a.MTDOCCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionAfter && a.MTDOCType == "2" && a.WorkPoint == Info.WERKS); if (lineafter == null) { isNew = true; @@ -2384,7 +2385,7 @@ namespace ICSSoft.FromERP } lineafter.DepCode = Info.KOSTL; lineafter.WHCode = Item.LGORT; - lineafter.Quantity = Item.LINGYSL;//领用数量 + lineafter.Quantity = 1;//领用数量 lineafter.Amount = 0; lineafter.Memo = Item.SOBKZ_JS; lineafter.Status = "2"; @@ -2496,7 +2497,7 @@ namespace ICSSoft.FromERP } if (Info.LEIXING == "09") { - var line = db.ICSOtherOut.SingleOrDefault(a => a.OutCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSOtherOut.SingleOrDefault(a => a.OutCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -2551,7 +2552,7 @@ namespace ICSSoft.FromERP } else { - var line = db.ICSOtherIn.SingleOrDefault(a => a.InCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSOtherIn.SingleOrDefault(a => a.InCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -2663,7 +2664,7 @@ namespace ICSSoft.FromERP } if (Info.LEIXING == "09") { - var line = db.ICSOtherOut.SingleOrDefault(a => a.OutCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSOtherOut.SingleOrDefault(a => a.OutCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; @@ -2718,7 +2719,7 @@ namespace ICSSoft.FromERP } else { - var line = db.ICSOtherIn.SingleOrDefault(a => a.InCode == Item.DANJU && a.Sequence == Item.POSNR && a.WorkPoint == Info.WERKS); + var line = db.ICSOtherIn.SingleOrDefault(a => a.InCode == Item.DANJU && a.SAPSequence == Item.POSNR && a.ExtensionID == ExtensionID && a.WorkPoint == Info.WERKS); if (line == null) { isNew = true; diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs index cea1dd7..52d447e 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs @@ -252,7 +252,7 @@ namespace ICSSoft.DataProject { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.ApplyCode,A.WorkPoint,A.EATTRIBUTE from ICSMOApply A @@ -271,53 +271,66 @@ namespace ICSSoft.DataProject GROUP BY ApplyCode,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["ApplyCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["IssueQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["IssueQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["IssueQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); - Info.NEWID = Identification; - Info.DANJU = dt.Rows[i]["ApplyCode"].ToString(); - if (dt.Rows[i]["EATTRIBUTE"].ToString() == "01") - { - Info.STATE = "1"; - } - else - { - Info.STATE = "0"; - } - List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; - Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; - sql = @"select A.ApplyCode,A.Sequence,A.Quantity,A.IssueQuantity,B.BatchCode from ICSMOApply A + SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); + SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); + Info.NEWID = Identification; + Info.DANJU = dt.Rows[i]["ApplyCode"].ToString(); + if (dt.Rows[i]["EATTRIBUTE"].ToString() == "01") + { + Info.STATE = "1"; + } + else + { + Info.STATE = "0"; + } + List ItemList = new List(); + List ItemLineList = new List(); + Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; + Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; + sql = @"select A.ApplyCode,A.InvCode,A.Sequence,A.SAPSequence,A.Quantity,A.IssueQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSMOApply A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE ApplyCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["ApplyCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["IssueQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["ApplyCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); - Item.DANJU = dr["ApplyCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["IssueQuantity"].ToString())) + { + SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); + Item.DANJU = dr["ApplyCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.DANJU = dr["ApplyCode"].ToString(); + ItemLine.POSNR = dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.Z_ITEM = ItemList.ToArray(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); - result = Client.CallZWMS_SK_WS_PZ(Info); - if (result.Z_NULL == "N") + if (ItemList.Count > 0) { - foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) { - IsSuccess = "N"; - ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + Info.Z_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); + result = Client.CallZWMS_SK_WS_PZ(Info); + if (result.Z_NULL == "N") + { + foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + { + IsSuccess = "N"; + ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + } } } } @@ -345,10 +358,11 @@ namespace ICSSoft.DataProject { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; - string sql = @"select A.ID,A.ApplyCode,A.Sequence,A.Quantity,A.IssueQuantity,B.BatchCode from ICSMOApply A + string sql = @"select A.ID,A.ApplyCode,A.InvCode,A.Sequence,A.SAPSequence,A.Quantity,A.IssueQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSMOApply A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE ApplyCode='{0}' AND A.WorkPoint='{1}'"; sql = string.Format(sql, TransCode, WorkPoint); @@ -363,7 +377,7 @@ namespace ICSSoft.DataProject Info.DANJU = TransCode; Info.STATE = "0"; List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; + List ItemLineList = new List(); Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; foreach (DataRow dr in Sapdt.Rows) @@ -371,16 +385,29 @@ namespace ICSSoft.DataProject if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["IssueQuantity"].ToString())) { SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); Item.DANJU = dr["ApplyCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.DANJU = dr["ApplyCode"].ToString(); + ItemLine.POSNR = dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } if (ItemList.Count > 0) { Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) + { + Info.Z_GERNR = ItemLineList.ToArray(); + } SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); result = Client.CallZWMS_SK_WS_PZ(Info); if (result.Z_NULL == "N") @@ -575,9 +602,9 @@ namespace ICSSoft.DataProject END"; } - else + else { - sql = @"UPDATE c SET IssueNegQuantity=ISNULL(IssueNegQuantity,0)+'{2}' + sql = @"UPDATE c SET IssueNegQuantity=ISNULL(IssueNegQuantity,0)+'{2}' FROM ICSInventoryLot a INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint INNER JOIN ICSMOApplyNegDetail c ON b.TransCode=c.ApplyNegCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint @@ -609,10 +636,10 @@ namespace ICSSoft.DataProject RAISERROR('" + language.GetNameByCode("WMSAPIInfo192") + @"',16,1); END"; } - + sql = string.Format(sql, LotNo, WorkPoint, Quantity, table, type); #endregion - } + } else { if (TransType == TransTypeEnum.MOIssueDocNegative.GetDescription()) @@ -667,7 +694,7 @@ namespace ICSSoft.DataProject { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.ApplyNegCode,A.WorkPoint from ICSMOApplyNeg A @@ -687,47 +714,59 @@ namespace ICSSoft.DataProject GROUP BY A.ApplyNegCode,A.WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["ApplyNegCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["IssueQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["IssueQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["IssueQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); - Info.NEWID = Identification; - Info.DANJU = dt.Rows[i]["ApplyNegCode"].ToString(); - Info.STATE = "0"; - List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; - Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; - sql = @" select A.ApplyNegCode,B.Sequence,B.Quantity,B.IssueNegQuantity,C.BatchCode from ICSMOApplyNeg A + SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); + SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); + Info.NEWID = Identification; + Info.DANJU = dt.Rows[i]["ApplyNegCode"].ToString(); + Info.STATE = "0"; + List ItemList = new List(); + List ItemLineList = new List(); + Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; + sql = @" select A.ApplyNegCode,B.SAPSequence,B.InvCode,B.Sequence,B.Quantity,B.IssueNegQuantity + ,ISNULL(C.BatchCode,'') AS BatchCode from ICSMOApplyNeg A LEFT JOIN ICSMOApplyNegDetail B ON B.ApplyNegCode=A.ApplyNegCode AND B.WorkPoint=A.WorkPoint LEFT JOIN ICSExtension C ON C.ID=B.ExtensionID AND C.WorkPoint=B.WorkPoint WHERE A.ApplyNegCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["ApplyNegCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["IssueNegQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["ApplyNegCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); - Item.DANJU = dr["ApplyNegCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["IssueNegQuantity"].ToString())) + { + SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); + Item.DANJU = dr["ApplyNegCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.DANJU = dr["ApplyNegCode"].ToString(); + ItemLine.POSNR = dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.Z_ITEM = ItemList.ToArray(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); - result = Client.CallZWMS_SK_WS_PZ(Info); - if (result.Z_NULL == "N") + if (ItemList.Count > 0) { - foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) { - IsSuccess = "N"; - ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + Info.Z_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); + result = Client.CallZWMS_SK_WS_PZ(Info); + if (result.Z_NULL == "N") + { + foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + { + IsSuccess = "N"; + ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + } } } } @@ -977,7 +1016,7 @@ namespace ICSSoft.DataProject { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.RCVCode,A.WorkPoint from ICSManufactureReceive A @@ -996,46 +1035,58 @@ namespace ICSSoft.DataProject GROUP BY RCVCode,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["RCVCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["RCVQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["RCVQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["RCVQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); - Info.NEWID = Identification; - Info.DANJU = dt.Rows[i]["RCVCode"].ToString(); - Info.STATE = "0"; - List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; - Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; - sql = @"select A.RCVCode,A.Sequence,A.Quantity,A.RCVQuantity,B.BatchCode from ICSManufactureReceive A + SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); + SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); + Info.NEWID = Identification; + Info.DANJU = dt.Rows[i]["RCVCode"].ToString(); + Info.STATE = "0"; + List ItemList = new List(); + List ItemLineList = new List(); + Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; + sql = @"select A.RCVCode,A.SAPSequence,A.InvCode,A.Sequence,A.Quantity,A.RCVQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSManufactureReceive A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE RCVCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["RCVCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["RCVQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["RCVCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); - Item.DANJU = dr["RCVCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["RCVQuantity"].ToString())) + { + SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); + Item.DANJU = dr["RCVCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.DANJU= dr["RCVCode"].ToString(); + ItemLine.POSNR = dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.Z_ITEM = ItemList.ToArray(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); - result = Client.CallZWMS_SK_WS_PZ(Info); - if (result.Z_NULL == "N") + if (ItemList.Count > 0) { - foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) { - IsSuccess = "N"; - ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + Info.Z_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); + result = Client.CallZWMS_SK_WS_PZ(Info); + if (result.Z_NULL == "N") + { + foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + { + IsSuccess = "N"; + ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + } } } } diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSOutsourcingService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSOutsourcingService.cs index 8f99fba..d5f8de9 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSOutsourcingService.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSOutsourcingService.cs @@ -80,7 +80,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void OutsourcingIssueDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OutsourcingIssueDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -131,7 +131,7 @@ namespace ICSSoft.DataProject string allcol = jo["cWhCode"].ToString() + det["ProjectCode"].ToString() + det["cBatch"].ToString() + det["version"].ToString() + det["brand"].ToString() + det["cFree1"].ToString() + det["cFree2"].ToString() + det["cFree3"].ToString() + det["cFree4"].ToString() + det["cFree5"].ToString() + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString(); ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["SourceDetailID"].ToString(), Identification, jo["ID"].ToString(), - det["DetailID"].ToString(), jo["IssueCode"].ToString(), det["Sequence"].ToString(), allcol,cmd, language, BusinessCode); + det["DetailID"].ToString(), jo["IssueCode"].ToString(), det["Sequence"].ToString(), allcol, cmd, language, BusinessCode); } } } @@ -211,11 +211,11 @@ namespace ICSSoft.DataProject /// /// /// - public static void OOApplyERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OOApplyERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.ApplyCode,A.WorkPoint from ICSOApply A @@ -234,46 +234,55 @@ namespace ICSSoft.DataProject GROUP BY ApplyCode,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["ApplyCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["IssueQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["IssueQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["IssueQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); - Info.NEWID = Identification; - Info.DANJU = dt.Rows[i]["ApplyCode"].ToString(); - Info.STATE = "0"; - List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; - Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; - sql = @" select A.ApplyCode,A.Sequence,A.Quantity,A.IssueQuantity,B.BatchCode from ICSOApply A + SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); + SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); + Info.NEWID = Identification; + Info.DANJU = dt.Rows[i]["ApplyCode"].ToString(); + Info.STATE = "0"; + List ItemList = new List(); + List ItemLineList = new List(); + Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; + sql = @" select A.ApplyCode,A.SAPSequence,A.InvCode,A.Sequence,A.Quantity,A.IssueQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSOApply A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE ApplyCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["ApplyCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["IssueQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["ApplyCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); - Item.DANJU = dr["ApplyCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["IssueQuantity"].ToString())) + { + SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); + Item.DANJU = dr["ApplyCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + ItemLine.DANJU= dr["ApplyCode"].ToString(); + ItemLine.POSNR= dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } } - } - if (ItemList.Count > 0) - { - Info.Z_ITEM = ItemList.ToArray(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); - result = Client.CallZWMS_SK_WS_PZ(Info); - if (result.Z_NULL == "N") + if (ItemList.Count > 0) { - foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) { - IsSuccess = "N"; - ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + Info.Z_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); + result = Client.CallZWMS_SK_WS_PZ(Info); + if (result.Z_NULL == "N") + { + foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + { + IsSuccess = "N"; + ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + } } } } @@ -348,7 +357,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void OOIssueERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OOIssueERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -523,7 +532,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void OutsourcingIssueDoNegativeERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OutsourcingIssueDoNegativeERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -869,7 +878,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void OutsourcingReceiveDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OutsourcingReceiveDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -954,7 +963,7 @@ namespace ICSSoft.DataProject LEFT JOIN ICSOOPick c ON b.OODetailID=c.OODetailID AND b.WorkPoint=c.WorkPoint AND a.TransSequence=b.Sequence+'~'+c.Sequence WHERE c.PickID='{0}' and a.Identification='{1}' AND ERPUpload='0' AND a.BusinessCode='{6}'"; ERPupdate = string.Format(ERPupdate, dets["SourceDetailID"].ToString(), Identification, dets["IDs"].ToString(), dets["ERPDetailID"].ToString(), dets["MRCVCode"].ToString() - , dets["Sequence"].ToString(),BusinessCode); + , dets["Sequence"].ToString(), BusinessCode); if (!DBHelper.ExecuteNonQuery(ERPupdate, cmd)) { throw new Exception(language.GetNameByCode("WMSAPIInfo079"));//"委外倒冲回写失败!"; @@ -962,7 +971,7 @@ namespace ICSSoft.DataProject //ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["OODetailID"].ToString(), Identification, dets["ERPID"].ToString(), // dets[" "].ToString(), dets["MRCVCode"].ToString(), dets["Sequence"].ToString(), allcol, cmd, language); } - + } } @@ -1047,7 +1056,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void ODeliveryNoticeInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void ODeliveryNoticeInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -1076,7 +1085,7 @@ namespace ICSSoft.DataProject FROM #TempERP DROP TABLE #TempERP"; - sql = string.Format(sql, Identification,BusinessCode); + sql = string.Format(sql, Identification, BusinessCode); DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd); string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre"); @@ -1180,7 +1189,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void OutsourcingRejectDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OutsourcingRejectDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { // try // { @@ -1388,7 +1397,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void OutsourcingReturnBackERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OutsourcingReturnBackERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -1518,7 +1527,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void OutsourcingReceiveDocNegativeERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OutsourcingReceiveDocNegativeERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSPurchaseService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSPurchaseService.cs index 0967945..d70d787 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSPurchaseService.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSPurchaseService.cs @@ -345,7 +345,7 @@ namespace ICSSoft.DataProject { try { - #region SAP + #region SAP(检验合格单为两层结构 一行对应一个序列号) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.DNCode,A.WorkPoint from ICSDeliveryNotice A @@ -818,46 +818,58 @@ namespace ICSSoft.DataProject GROUP BY DNCode,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["DNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["RCVQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["RCVQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["RCVQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); - Info.NEWID = Identification; - Info.DANJU = dt.Rows[i]["DNCode"].ToString(); - Info.STATE = "0"; - List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; - Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; - sql = @"select A.DNCode,A.Sequence,A.Quantity,A.RCVQuantity,B.BatchCode from ICSDeliveryNotice A + SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); + SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); + Info.NEWID = Identification; + Info.DANJU = dt.Rows[i]["DNCode"].ToString(); + Info.STATE = "0"; + List ItemList = new List(); + List ItemLineList = new List(); + Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; + sql = @"select A.DNCode,A.SAPSequence,A.InvCode,A.Sequence,A.Quantity,A.RCVQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSDeliveryNotice A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE DNCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["DNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["RCVQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["DNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); - Item.DANJU = dr["DNCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["RCVQuantity"].ToString())) + { + SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); + Item.DANJU = dr["DNCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.DANJU= dr["DNCode"].ToString(); + ItemLine.POSNR= dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.Z_ITEM = ItemList.ToArray(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); - result = Client.CallZWMS_SK_WS_PZ(Info); - if (result.Z_NULL == "N") + if (ItemList.Count > 0) { - foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) { - IsSuccess = "N"; - ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + Info.Z_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); + result = Client.CallZWMS_SK_WS_PZ(Info); + if (result.Z_NULL == "N") + { + foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + { + IsSuccess = "N"; + ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + } } } } diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSalesService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSalesService.cs index 60b6052..9776284 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSalesService.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSalesService.cs @@ -82,7 +82,7 @@ namespace ICSSoft.DataProject { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.SDNCode,A.WorkPoint from ICSSDN A @@ -101,48 +101,59 @@ namespace ICSSoft.DataProject GROUP BY SDNCode,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["SDNQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["SDNQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["SDNQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ Client = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ(); - SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ1 Info = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ1(); - List headlist = new List(); - SAPCallBackDispatchVPN.ZWMS_DO_HEAD head = new SAPCallBackDispatchVPN.ZWMS_DO_HEAD(); - head.VBELN = dt.Rows[i]["SDNCode"].ToString(); - headlist.Add(head); - Info.T_HEAD = headlist.ToArray(); - List ItemList = new List(); - Info.T_GERNR = new SAPCallBackDispatchVPN.ZWMS_DO_GERNR[1]; - Info.T_RETURN = new SAPCallBackDispatchVPN.ZWMS_DO_RETURN[1]; - sql = @" select A.SDNCode,A.Sequence,A.Quantity,A.SDNQuantity,B.BatchCode from ICSSDN A + SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ Client = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ(); + SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ1 Info = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ1(); + List headlist = new List(); + SAPCallBackDispatchVPN.ZWMS_DO_HEAD head = new SAPCallBackDispatchVPN.ZWMS_DO_HEAD(); + head.VBELN = dt.Rows[i]["SDNCode"].ToString(); + headlist.Add(head); + Info.T_HEAD = headlist.ToArray(); + List ItemList = new List(); + List ItemLineList = new List(); + Info.T_RETURN = new SAPCallBackDispatchVPN.ZWMS_DO_RETURN[1]; + sql = @" select A.SDNCode,A.InvCode,A.SAPSequence,A.Sequence,A.Quantity,A.SDNQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSSDN A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE SDNCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["SDNQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDispatchVPN.ZWMS_DO_ITEM Item = new SAPCallBackDispatchVPN.ZWMS_DO_ITEM(); - Item.VBELN = dr["SDNCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LFIMG = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERAIL = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["SDNQuantity"].ToString())) + { + SAPCallBackDispatchVPN.ZWMS_DO_GERNR ItemLine = new SAPCallBackDispatchVPN.ZWMS_DO_GERNR(); + SAPCallBackDispatchVPN.ZWMS_DO_ITEM Item = new SAPCallBackDispatchVPN.ZWMS_DO_ITEM(); + Item.VBELN = dr["SDNCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LFIMG = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.VBELN = dr["SDNCode"].ToString(); + ItemLine.POSNR = dr["SAPSequence"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.T_ITEM = ItemList.ToArray(); - SAPCallBackDispatchVPN.ZWMS_SK_DO_GZResponse result = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZResponse(); - result = Client.CallZWMS_SK_DO_GZ(Info); - foreach (SAPCallBackDispatchVPN.ZWMS_DO_RETURN resultItem in result.T_RETURN) + if (ItemList.Count > 0) { - if (resultItem.ZFLG == "N") + Info.T_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) + { + Info.T_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDispatchVPN.ZWMS_SK_DO_GZResponse result = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZResponse(); + result = Client.CallZWMS_SK_DO_GZ(Info); + foreach (SAPCallBackDispatchVPN.ZWMS_DO_RETURN resultItem in result.T_RETURN) { - IsSuccess = "N"; - ErrorMessage += resultItem.ZMESS + "/r/n"; + if (resultItem.ZFLG == "N") + { + IsSuccess = "N"; + ErrorMessage += resultItem.ZMESS + "/r/n"; + } } } } @@ -223,7 +234,7 @@ namespace ICSSoft.DataProject { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.SDNCode,A.WorkPoint from ICSSDN A @@ -242,48 +253,59 @@ namespace ICSSoft.DataProject GROUP BY SDNCode,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["SDNQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["SDNQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["SDNQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ Client = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ(); - SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ1 Info = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ1(); - List headlist = new List(); - SAPCallBackDispatchVPN.ZWMS_DO_HEAD head = new SAPCallBackDispatchVPN.ZWMS_DO_HEAD(); - head.VBELN = dt.Rows[i]["SDNCode"].ToString(); - headlist.Add(head); - Info.T_HEAD = headlist.ToArray(); - List ItemList = new List(); - Info.T_GERNR = new SAPCallBackDispatchVPN.ZWMS_DO_GERNR[1]; - Info.T_RETURN = new SAPCallBackDispatchVPN.ZWMS_DO_RETURN[1]; - sql = @" select A.SDNCode,A.Sequence,A.Quantity,A.SDNQuantity,B.BatchCode from ICSSDN A + SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ Client = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ(); + SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ1 Info = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZ1(); + List headlist = new List(); + SAPCallBackDispatchVPN.ZWMS_DO_HEAD head = new SAPCallBackDispatchVPN.ZWMS_DO_HEAD(); + head.VBELN = dt.Rows[i]["SDNCode"].ToString(); + headlist.Add(head); + Info.T_HEAD = headlist.ToArray(); + List ItemList = new List(); + List ItemLineList = new List(); + Info.T_RETURN = new SAPCallBackDispatchVPN.ZWMS_DO_RETURN[1]; + sql = @" select A.SDNCode,A.SAPSequence,A.InvCode,A.Sequence,A.Quantity,A.SDNQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSSDN A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE SDNCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["SDNQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["SDNCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDispatchVPN.ZWMS_DO_ITEM Item = new SAPCallBackDispatchVPN.ZWMS_DO_ITEM(); - Item.VBELN = dr["SDNCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LFIMG = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERAIL = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["SDNQuantity"].ToString())) + { + SAPCallBackDispatchVPN.ZWMS_DO_ITEM Item = new SAPCallBackDispatchVPN.ZWMS_DO_ITEM(); + SAPCallBackDispatchVPN.ZWMS_DO_GERNR ItemLine = new SAPCallBackDispatchVPN.ZWMS_DO_GERNR(); + Item.VBELN = dr["SDNCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LFIMG = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.VBELN= dr["SDNCode"].ToString(); + ItemLine.POSNR= dr["SAPSequence"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.T_ITEM = ItemList.ToArray(); - SAPCallBackDispatchVPN.ZWMS_SK_DO_GZResponse result = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZResponse(); - result = Client.CallZWMS_SK_DO_GZ(Info); - foreach (SAPCallBackDispatchVPN.ZWMS_DO_RETURN resultItem in result.T_RETURN) + if (ItemList.Count > 0) { - if (resultItem.ZFLG == "N") + Info.T_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) + { + Info.T_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDispatchVPN.ZWMS_SK_DO_GZResponse result = new SAPCallBackDispatchVPN.ZWMS_SK_DO_GZResponse(); + result = Client.CallZWMS_SK_DO_GZ(Info); + foreach (SAPCallBackDispatchVPN.ZWMS_DO_RETURN resultItem in result.T_RETURN) { - IsSuccess = "N"; - ErrorMessage += resultItem.ZMESS + "/r/n"; + if (resultItem.ZFLG == "N") + { + IsSuccess = "N"; + ErrorMessage += resultItem.ZMESS + "/r/n"; + } } } } diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseService.cs index 34ee3c8..dc34391 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseService.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseService.cs @@ -30,7 +30,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void OneStepTransferDocIn(string TransCode,string TransSequence, string WorkPoint,string Quantity, SqlCommand cmd, Dictionary language) + public static void OneStepTransferDocIn(string TransCode, string TransSequence, string WorkPoint, string Quantity, SqlCommand cmd, Dictionary language) { try { @@ -99,11 +99,11 @@ namespace ICSSoft.DataProject /// /// /// - public static void OneStepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OneStepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.TransferNO,A.WorkPoint from ICSTransfer A @@ -122,46 +122,58 @@ namespace ICSSoft.DataProject GROUP BY TransferNO,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["TransferNO"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["TransferQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["TransferQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["TransferQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); - Info.NEWID = Identification; - Info.DANJU = dt.Rows[i]["TransferNO"].ToString(); - Info.STATE = "0"; - List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; - Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; - sql = @" select A.TransferNO,A.Sequence,A.Quantity,A.TransferQuantity,B.BatchCode from ICSTransfer A + SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); + SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); + Info.NEWID = Identification; + Info.DANJU = dt.Rows[i]["TransferNO"].ToString(); + Info.STATE = "0"; + List ItemList = new List(); + List ItemLineList = new List(); + Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; + sql = @" select A.TransferNO,A.SAPSequence,A.InvCode,A.Sequence,A.Quantity,A.TransferQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSTransfer A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE TransferNO='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["TransferNO"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["TransferQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["TransferNO"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); - Item.DANJU = dr["TransferNO"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["TransferQuantity"].ToString())) + { + SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); + Item.DANJU = dr["TransferNO"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.DANJU = dr["TransferNO"].ToString(); + ItemLine.POSNR = dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.Z_ITEM = ItemList.ToArray(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); - result = Client.CallZWMS_SK_WS_PZ(Info); - if (result.Z_NULL == "N") + if (ItemList.Count > 0) { - foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) + { + Info.Z_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); + result = Client.CallZWMS_SK_WS_PZ(Info); + if (result.Z_NULL == "N") { - IsSuccess = "N"; - ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + { + IsSuccess = "N"; + ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + } } } } @@ -180,14 +192,14 @@ namespace ICSSoft.DataProject #endregion #region 调拨 - + /// /// 调拨接口 /// /// /// /// - public static void StepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void StepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -238,7 +250,7 @@ namespace ICSSoft.DataProject JObject det = (JObject)detail; string allcol = jo["cWhCode"].ToString() + det["ProjectCode"].ToString() + det["cBatch"].ToString() + det["version"].ToString() + det["brand"].ToString() + det["cFree1"].ToString() + det["cFree2"].ToString() + det["cFree3"].ToString() + det["cFree4"].ToString() + det["cFree5"].ToString() + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString(); - ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["DNDetailID"].ToString(), Identification, jo["ID"].ToString(), det["DetailID"].ToString(), jo["RCVTCode"].ToString(), det["Sequence"].ToString(),allcol, cmd, language, BusinessCode); + ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["DNDetailID"].ToString(), Identification, jo["ID"].ToString(), det["DetailID"].ToString(), jo["RCVTCode"].ToString(), det["Sequence"].ToString(), allcol, cmd, language, BusinessCode); } } } @@ -406,7 +418,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void TwoStepTransferDocOutERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void TwoStepTransferDocOutERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -451,7 +463,7 @@ namespace ICSSoft.DataProject } else { - throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message); + throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message); } #endregion } @@ -510,7 +522,7 @@ namespace ICSSoft.DataProject BEGIN RAISERROR('" + language.GetNameByCode("WMSAPIInfo149") + @"',16,1); END"; - sql = string.Format(sql, LotNo, WorkPoint,TransCode,TransSequence, Quantity); + sql = string.Format(sql, LotNo, WorkPoint, TransCode, TransSequence, Quantity); if (!DBHelper.ExecuteNonQuery(sql, cmd)) { throw new Exception(language.GetNameByCode("WMSAPIInfo150"));//"两步调入单更新失败!"); @@ -528,7 +540,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void TwoStepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void TwoStepTransferDocInERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -562,7 +574,7 @@ namespace ICSSoft.DataProject { foreach (DataRow dr in dt.Rows) { - ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "","", cmd, language, BusinessCode); + ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "", "", cmd, language, BusinessCode); } } catch (Exception ex) @@ -573,7 +585,7 @@ namespace ICSSoft.DataProject } else { - throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message); + throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message); } #endregion } @@ -641,11 +653,11 @@ namespace ICSSoft.DataProject /// /// /// - public static void OtherOutDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OtherOutDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.OutCode,A.WorkPoint from ICSOtherOut A @@ -664,46 +676,58 @@ namespace ICSSoft.DataProject GROUP BY OutCode,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["OutCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["OutQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["OutQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["OutQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); - Info.NEWID = Identification; - Info.DANJU = dt.Rows[i]["OutCode"].ToString(); - Info.STATE = "0"; - List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; - Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; - sql = @"select A.OutCode,A.Sequence,A.Quantity,A.OutQuantity,B.BatchCode from ICSOtherOut A + SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); + SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); + Info.NEWID = Identification; + Info.DANJU = dt.Rows[i]["OutCode"].ToString(); + Info.STATE = "0"; + List ItemList = new List(); + List ItemLineList = new List(); + Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; + sql = @"select A.OutCode,A.SAPSequence,A.InvCode,A.Sequence,A.Quantity,A.OutQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSOtherOut A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE OutCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["OutCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["OutQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["OutCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); - Item.DANJU = dr["OutCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["OutQuantity"].ToString())) + { + SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); + Item.DANJU = dr["OutCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.DANJU = dr["OutCode"].ToString(); + ItemLine.POSNR = dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.Z_ITEM = ItemList.ToArray(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); - result = Client.CallZWMS_SK_WS_PZ(Info); - if (result.Z_NULL == "N") + if (ItemList.Count > 0) { - foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) + { + Info.Z_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); + result = Client.CallZWMS_SK_WS_PZ(Info); + if (result.Z_NULL == "N") { - IsSuccess = "N"; - ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + { + IsSuccess = "N"; + ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + } } } } @@ -780,11 +804,11 @@ namespace ICSSoft.DataProject /// /// /// - public static void OtherInDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void OtherInDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { - #region SAP + #region SAP(三层结构) string IsSuccess = ""; string ErrorMessage = ""; string sql = @" select Distinct A.InCode,A.WorkPoint from ICSOtherIn A @@ -803,46 +827,58 @@ namespace ICSSoft.DataProject GROUP BY InCode,WorkPoint"; chksql = string.Format(chksql, dt.Rows[i]["InCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); DataTable chkdt = DBHelper.SQlReturnData(chksql, cmd); - if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) != Convert.ToDecimal(chkdt.Rows[0]["InQuantity"])) + if (Convert.ToDecimal(chkdt.Rows[0]["Quantity"]) == Convert.ToDecimal(chkdt.Rows[0]["InQuantity"])) { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo203"), chkdt.Rows[0]["Quantity"].ToString(), chkdt.Rows[0]["InQuantity"].ToString()));//单次提交数量卡控(必须整单提交) - } - SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); - Info.NEWID = Identification; - Info.DANJU = dt.Rows[i]["InCode"].ToString(); - Info.STATE = "0"; - List ItemList = new List(); - Info.Z_GERNR = new SAPCallBackDocVPN.ZWEBS_GERNR[1]; - Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; - sql = @"select A.InCode,A.Sequence,A.Quantity,A.InQuantity,B.BatchCode from ICSOtherIn A + SAPCallBackDocVPN.ZWMS_SK_WS_PZ Client = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ(); + SAPCallBackDocVPN.ZWMS_SK_WS_PZ1 Info = new SAPCallBackDocVPN.ZWMS_SK_WS_PZ1(); + Info.NEWID = Identification; + Info.DANJU = dt.Rows[i]["InCode"].ToString(); + Info.STATE = "0"; + List ItemList = new List(); + List ItemLineList = new List(); + Info.Z_FLAG = new SAPCallBackDocVPN.ZWEB_RETURN[1]; + sql = @"select A.InCode,A.SAPSequence,A.InvCode,A.Sequence,A.Quantity,A.InQuantity + ,ISNULL(B.BatchCode,'') AS BatchCode from ICSOtherIn A LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID AND B.WorkPoint=A.WorkPoint WHERE InCode='{0}' AND A.WorkPoint='{1}'"; - sql = string.Format(sql, dt.Rows[i]["InCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); - DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); - foreach (DataRow dr in Sapdt.Rows) - { - if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["InQuantity"].ToString())) + sql = string.Format(sql, dt.Rows[i]["InCode"].ToString(), dt.Rows[i]["WorkPoint"].ToString()); + DataTable Sapdt = DBHelper.SQlReturnData(sql, cmd); + foreach (DataRow dr in Sapdt.Rows) { - SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); - Item.DANJU = dr["InCode"].ToString(); - Item.POSNR = dr["Sequence"].ToString(); - Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); - Item.SERNP = dr["BatchCode"].ToString(); - ItemList.Add(Item); + if (Convert.ToDecimal(dr["Quantity"].ToString()) == Convert.ToDecimal(dr["InQuantity"].ToString())) + { + SAPCallBackDocVPN.ZWMS_PZ Item = new SAPCallBackDocVPN.ZWMS_PZ(); + SAPCallBackDocVPN.ZWEBS_GERNR ItemLine = new SAPCallBackDocVPN.ZWEBS_GERNR(); + Item.DANJU = dr["InCode"].ToString(); + Item.POSNR = dr["SAPSequence"].ToString(); + Item.LINGYSL = System.Decimal.Round(Convert.ToDecimal(dr["Quantity"].ToString()), 3); + ItemList.Add(Item); + if (dr["BatchCode"].ToString() != "") + { + ItemLine.DANJU = dr["InCode"].ToString(); + ItemLine.POSNR = dr["SAPSequence"].ToString(); + ItemLine.MATNR = dr["InvCode"].ToString(); + ItemLine.GERNR = dr["BatchCode"].ToString(); + ItemLineList.Add(ItemLine); + } + } } - } - if (ItemList.Count > 0) - { - Info.Z_ITEM = ItemList.ToArray(); - SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); - result = Client.CallZWMS_SK_WS_PZ(Info); - if (result.Z_NULL == "N") + if (ItemList.Count > 0) { - foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + Info.Z_ITEM = ItemList.ToArray(); + if (ItemLineList.Count > 0) + { + Info.Z_GERNR = ItemLineList.ToArray(); + } + SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse result = new SAPCallBackDocVPN.ZWMS_SK_WS_PZResponse(); + result = Client.CallZWMS_SK_WS_PZ(Info); + if (result.Z_NULL == "N") { - IsSuccess = "N"; - ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + foreach (SAPCallBackDocVPN.ZWEB_RETURN resultItem in result.Z_FLAG) + { + IsSuccess = "N"; + ErrorMessage += resultItem.L_MESSAGE + "/r/n"; + } } } } @@ -959,7 +995,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void DisassemblyDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void DisassemblyDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -991,7 +1027,7 @@ namespace ICSSoft.DataProject { foreach (DataRow dr in dt.Rows) { - ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "","", cmd, language, BusinessCode); + ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, dr["ID"].ToString(), Identification, "", "", "", "", "", cmd, language, BusinessCode); } } catch (Exception ex) @@ -1002,7 +1038,7 @@ namespace ICSSoft.DataProject } else { - throw new Exception(language.GetNameByCode("WMSAPIInfo080")+result.Message); + throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message); } #endregion } @@ -1070,7 +1106,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void BrrowDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void BrrowDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -1115,9 +1151,9 @@ namespace ICSSoft.DataProject foreach (var detail in resdetail) { JObject det = (JObject)detail; - string allcol = jo["cWhCode"].ToString() + det["ProjectCode"].ToString() + det["cBatch"].ToString() + det["version"].ToString() + det["brand"].ToString() + det["cFree1"].ToString() + det["cFree2"].ToString() + det["cFree3"].ToString() + det["cFree4"].ToString() + det["cFree5"].ToString() + string allcol = jo["cWhCode"].ToString() + det["ProjectCode"].ToString() + det["cBatch"].ToString() + det["version"].ToString() + det["brand"].ToString() + det["cFree1"].ToString() + det["cFree2"].ToString() + det["cFree3"].ToString() + det["cFree4"].ToString() + det["cFree5"].ToString() + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString(); - ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["SourceDetailID"].ToString(), Identification, jo["ID"].ToString(), + ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["SourceDetailID"].ToString(), Identification, jo["ID"].ToString(), det["DetailID"].ToString(), jo["OtherOutCode"].ToString(), det["Sequence"].ToString(), allcol, cmd, language, BusinessCode); } } @@ -1200,7 +1236,7 @@ namespace ICSSoft.DataProject /// /// /// - public static void ReturnDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language,string BusinessCode) + public static void ReturnDocERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode) { try { @@ -1226,7 +1262,7 @@ namespace ICSSoft.DataProject SELECT Costre,Sequence,InvCode,Quantity,Amount,ReturnDetailID AS SourceDetailID,ProjectCode,BatchCode,Version,Brand,cFree1,cFree2,cFree3,cFree4,cFree5,cFree6,cFree7,cFree8,cFree9,cFree10 FROM #TempERP DROP TABLE #TempERP"; - sql = string.Format(sql, Identification,BusinessCode); + sql = string.Format(sql, Identification, BusinessCode); DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd); string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre"); @@ -1247,8 +1283,8 @@ namespace ICSSoft.DataProject JObject det = (JObject)detail; string allcol = jo["cWhCode"].ToString() + det["ProjectCode"].ToString() + det["cBatch"].ToString() + det["version"].ToString() + det["brand"].ToString() + det["cFree1"].ToString() + det["cFree2"].ToString() + det["cFree3"].ToString() + det["cFree4"].ToString() + det["cFree5"].ToString() + det["cFree6"].ToString() + det["cFree7"].ToString() + det["cFree8"].ToString() + det["cFree9"].ToString() + det["cFree10"].ToString(); - ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["SourceDetailID"].ToString(), Identification, jo["ID"].ToString(), - det["DetailID"].ToString(), jo["OtherInCode"].ToString(), det["Sequence"].ToString(),"", cmd,language, BusinessCode); + ICSWareHouseLotInfoService.WareHouseLotInfoLogUpdate(TransType, det["SourceDetailID"].ToString(), Identification, jo["ID"].ToString(), + det["DetailID"].ToString(), jo["OtherInCode"].ToString(), det["Sequence"].ToString(), "", cmd, language, BusinessCode); } } } diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Web.config b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Web.config index 691d3c6..18095a3 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Web.config +++ b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Web.config @@ -7,8 +7,8 @@ - - + +