From 9916fb0be38268775aeb22eb5760f1d8dc4ae69c Mon Sep 17 00:00:00 2001
From: CatMaoo <1205395967@qq.com>
Date: Fri, 7 Feb 2025 14:04:43 +0800
Subject: [PATCH] 1
---
ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs | 7 +-
.../ICSSoft.Common/TransTypeEnum.cs | 4 +
.../ICSManufactureService.cs | 24 +-
.../ICSOutsourcingService.cs | 54 +-
.../ICSSoft.DataProject/ICSSalesService.cs | 130 ++-
.../ICSSoft.DataProject/ICSSubmitService.cs | 285 +++++--
.../ICSWareHouseLotInfoService.cs | 775 ++++++++++++++++--
.../ICSWareHouseService.cs | 6 +-
.../ICSSoft.Entity/BarCodeModel.cs | 5 +
.../ICSSoft.Entity/LOTStockUpCreateIModel.cs | 9 +-
.../ICSSoft.Entity/WMSSourceDocumentModel.cs | 5 +
.../Controllers/WMSBarCoreController.cs | 2 +-
.../ICSSoft.WMS.WebAPI/Web.config | 4 +-
13 files changed, 1123 insertions(+), 187 deletions(-)
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs b/ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs
index 5bcc326..af12726 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.Common/ERPUrl.cs
@@ -63,7 +63,7 @@
///
/// 生产入库
///
- public static string ManufactureReceiveDocURL = url+"ManufactureReceiveDoc/Create";
+ public static string ManufactureReceiveDocURL = url+ "ManufactureReceiveDoc/Create";
///
/// 副产品入库
@@ -112,6 +112,11 @@
///
public static string SalesReturnBackURL = url+"SalesShipmentDocNegative/Create";
+ ///
+ /// 销售出库单退货
+ ///
+ public static string SalesReturnBackOutURL = url + "CreateSalesDeliveryNoticeout/Create";
+
///
/// 一步式调拨单
///
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs b/ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs
index b4ff0d5..2d89759 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.Common/TransTypeEnum.cs
@@ -140,6 +140,10 @@ namespace ICSSoft.Common
[DBValue("44")]
SalesReturnBack,
+ [Description("销售退货-出库单")]
+ [DBValue("47")]
+ SalesReturnBackOut,
+
[Description("杂发")]
[DBValue("24")]
OtherOutDoc, //(合并发料)
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs
index d4d2777..f6bf636 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs
@@ -949,10 +949,10 @@ SELECT a.FromWarehouseCode+b.IssueCode+a.MUSER+ISNULL(b.SourceCode,'')+ISNULL(c.
sql = @"UPDATE c SET IssueQuantity=ISNULL(IssueQuantity,0)-'{2}'
FROM ICSWareHouseLotInfoLog a
{3}
- WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND a.ID='{4}' and b.MoCode='{5}' AND b.Sequence + '~' + c.Sequence='{6}'
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' and b.MoCode='{5}' AND b.Sequence + '~' + c.Sequence='{6}'
IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfoLog a
{3}
- WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND a.ID='{4}' AND c.IssueQuantity<0 and b.MoCode='{5}' AND b.Sequence + '~' + c.Sequence='{6}')
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.IssueQuantity<0 and b.MoCode='{5}' AND b.Sequence + '~' + c.Sequence='{6}')
BEGIN
RAISERROR('" + language.GetNameByCode("WMSAPIInfo192") + @"',16,1);
END";
@@ -1033,7 +1033,7 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.Wor
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
UNION ALL
SELECT y.DepCode+a.ToWarehouseCode+y.MOCode+a.MUSER AS Costre,y.DepCode,a.ToWarehouseCode AS WarehouseCode,y.MOCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY y.DepCode,a.ToWarehouseCode,y.MOCode,x.PickID,a.InvCode) AS Sequence,
- a.InvCode,SUM(a.Quantity) AS Quantity,0 AS Amount,x.PickID AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
+ a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,x.PickID AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
FROM #NewDouTempERP a
@@ -1046,7 +1046,7 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.Wor
INNER JOIN ICSMOPick x ON x.MODetailID=y.MODetailID AND x.WorkPoint=y.WorkPoint AND b.TransSequence = y.Sequence + '~' + x.Sequence
INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.WorkPoint=conStock.WorkPoint
- GROUP BY y.DepCode,a.ToWarehouseCode,y.MOCode,a.MUSER,a.InvCode,x.PickID,x.MODetailID,con.Enable,conStock.Enable
+ GROUP BY inv.AmountEnable,y.DepCode,a.ToWarehouseCode,y.MOCode,a.MUSER,a.InvCode,x.PickID,x.MODetailID,con.Enable,conStock.Enable
,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
@@ -1070,7 +1070,7 @@ from ICSWareHouseLotInfoLog
WHERE Identification='{0}' AND ERPUpload='0' AND ISNULL(LogID, '')<>''
SELECT a.ToWarehouseCode+z.ApplyCode+a.MUSER AS Costre,'' AS DepCode,a.ToWarehouseCode AS WarehouseCode,z.ApplyCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY a.ToWarehouseCode,z.ApplyCode,z.ApplyDetailID,a.InvCode) AS Sequence,
- a.InvCode,SUM(a.Quantity) AS Quantity,0 AS Amount,z.ApplyDetailID AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
+ a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,z.ApplyDetailID AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
INTO #TempERP
@@ -1084,12 +1084,12 @@ SELECT a.ToWarehouseCode+z.ApplyCode+a.MUSER AS Costre,'' AS DepCode,a.ToWarehou
INNER JOIN ICSMOApply z ON c.SourceDetailID=z.ApplyDetailID AND c.WorkPoint=z.WorkPoint
INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.WorkPoint=conStock.WorkPoint
- GROUP BY a.ToWarehouseCode,z.ApplyCode,a.MUSER,a.InvCode,z.ApplyDetailID,con.Enable,conStock.Enable
+ GROUP BY inv.AmountEnable,a.ToWarehouseCode,z.ApplyCode,a.MUSER,a.InvCode,z.ApplyDetailID,con.Enable,conStock.Enable
,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
UNION ALL
SELECT a.ToWarehouseCode+z.ApplyCode+a.MUSER AS Costre,'' AS DepCode,a.ToWarehouseCode AS WarehouseCode,z.ApplyCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY a.ToWarehouseCode,z.ApplyCode,z.ApplyDetailID,a.InvCode) AS Sequence,
- a.InvCode,SUM(a.Quantity) AS Quantity,0 AS Amount,z.ApplyDetailID AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
+ a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,z.ApplyDetailID AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
FROM #NewDouTempERP a
@@ -1102,7 +1102,7 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.Wor
INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.WorkPoint=conStock.WorkPoint
- GROUP BY a.ToWarehouseCode,z.ApplyCode,a.MUSER,a.InvCode,z.ApplyDetailID,con.Enable,conStock.Enable
+ GROUP BY inv.AmountEnable,a.ToWarehouseCode,z.ApplyCode,a.MUSER,a.InvCode,z.ApplyDetailID,con.Enable,conStock.Enable
,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
@@ -1163,7 +1163,7 @@ BEGIN
END
SELECT ISNULL(y.DepCode, '')+a.ToWarehouseCode+a.MUSER AS Costre,ISNULL(y.DepCode, '') AS DepCode,a.ToWarehouseCode AS WarehouseCode,CASE WHEN m.ApplyDetailID IS NOT NULL THEN '领料申请单' WHEN m.PickID IS NOT NULL THEN '生产订单' ELSE '' END AS SourceType,ISNULL(z.ApplyCode, y.MOCode) AS MOCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY ISNULL(y.DepCode, ''),a.ToWarehouseCode,ISNULL(z.ApplyCode, y.MOCode),ISNULL(m.ApplyDetailID, m.PickID),a.InvCode) AS Sequence,
- a.InvCode,SUM(a.Quantity) AS Quantity,0 AS Amount,ISNULL(m.ApplyDetailID, m.PickID) AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
+ a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,ISNULL(m.ApplyDetailID, m.PickID) AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
,m.issuecode as DocCode,m.Sequence as DocLineNo
@@ -1181,13 +1181,13 @@ SELECT ISNULL(y.DepCode, '')+a.ToWarehouseCode+a.MUSER AS Costre,ISNULL(y.DepCod
LEFT JOIN ICSMOApply z ON m.ApplyDetailID=z.ApplyDetailID AND m.WorkPoint=z.WorkPoint
INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.WorkPoint=conStock.WorkPoint
- GROUP BY ISNULL(y.DepCode, ''),a.ToWarehouseCode,ISNULL(z.ApplyCode, y.MOCode),a.MUSER,a.InvCode,m.ApplyDetailID, m.PickID,con.Enable,conStock.Enable
+ GROUP BY inv.AmountEnable,ISNULL(y.DepCode, ''),a.ToWarehouseCode,ISNULL(z.ApplyCode, y.MOCode),a.MUSER,a.InvCode,m.ApplyDetailID, m.PickID,con.Enable,conStock.Enable
,m.issuecode,m.Sequence ,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
UNION ALL
SELECT ISNULL(y.DepCode, '')+a.ToWarehouseCode+a.MUSER AS Costre,ISNULL(y.DepCode, '') AS DepCode,a.ToWarehouseCode AS WarehouseCode,CASE WHEN m.ApplyDetailID IS NOT NULL THEN '领料申请单' WHEN m.PickID IS NOT NULL THEN '生产订单' ELSE '' END AS SourceType,ISNULL(z.ApplyCode, y.MOCode) AS MOCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY ISNULL(y.DepCode, ''),a.ToWarehouseCode,ISNULL(z.ApplyCode, y.MOCode),ISNULL(m.ApplyDetailID, m.PickID),a.InvCode) AS Sequence,
- a.InvCode,SUM(a.Quantity) AS Quantity,0 AS Amount,ISNULL(m.ApplyDetailID, m.PickID) AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
+ a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,ISNULL(m.ApplyDetailID, m.PickID) AS SourceDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
,m.issuecode as DocCode,m.Sequence as DocLineNo
@@ -1203,7 +1203,7 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.Wor
LEFT JOIN ICSMOApply z ON m.ApplyDetailID=z.ApplyDetailID AND m.WorkPoint=z.WorkPoint
INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock002' AND a.WorkPoint=conStock.WorkPoint
- GROUP BY ISNULL(y.DepCode, ''),a.ToWarehouseCode,ISNULL(z.ApplyCode, y.MOCode),a.MUSER,a.InvCode,m.ApplyDetailID, m.PickID,con.Enable,conStock.Enable
+ GROUP BY inv.AmountEnable,ISNULL(y.DepCode, ''),a.ToWarehouseCode,ISNULL(z.ApplyCode, y.MOCode),a.MUSER,a.InvCode,m.ApplyDetailID, m.PickID,con.Enable,conStock.Enable
,m.issuecode,m.Sequence ,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSOutsourcingService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSOutsourcingService.cs
index 06781af..2d06a80 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSOutsourcingService.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSOutsourcingService.cs
@@ -1381,8 +1381,10 @@ INNER JOIN ICSConfiguration conStockneww ON a.WorkPoint=conStockneww.WorkPoint A
{
try
{
- string sql = @"DECLARE @Status VARCHAR(10)
- SELECT @Status=c.Status FROM ICSInventoryLot a
+ string sql = @"
+ DECLARE @Status VARCHAR(10)
+DECLARE @FStatus VARCHAR(10)
+ SELECT @Status=c.Status,@FStatus=c.EATTRIBUTE3 FROM ICSInventoryLot a
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
INNER JOIN ICSODeliveryNotice c ON b.TransCode=c.ODNCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.ODNType='1'
@@ -1397,18 +1399,44 @@ INNER JOIN ICSConfiguration conStockneww ON a.WorkPoint=conStockneww.WorkPoint A
RAISERROR('" + language.GetNameByCode("WMSAPIInfo082") + @"',16,1);
RETURN
END
- UPDATE c SET RCVQuantity=ISNULL(RCVQuantity,0)+'{2}'
- FROM ICSInventoryLot a
- INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
- INNER JOIN ICSODeliveryNotice c ON b.TransCode=c.ODNCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
- WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.ODNType='1'
- IF EXISTS(SELECT a.LotNo FROM ICSInventoryLot a
- INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
- INNER JOIN ICSODeliveryNotice c ON b.TransCode=c.ODNCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
- WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND c.ODNType='1' AND c.Quantity@sdnquantity)
+BEGIN
+ RAISERROR('销售发货需要整单发货!',16,1);
+ RETURN
+ END
+
+
+SELECT b.CusCode+a.FromWarehouseCode+b.SDNCode+a.MUSER AS Costre,b.CusCode,a.FromWarehouseCode AS WarehouseCode,b.SDNCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY b.CusCode,a.FromWarehouseCode,b.SDNCode,b.SDNDetailID,a.InvCode) AS Sequence,
a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(b.Amount/b.Quantity)) ELSE '0' END AS Amount, b.SDNDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
@@ -344,6 +355,39 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock005' AND a.Wor
}
}
+
+ public static void SalesShipmentOutRedDocNegative(string LotNo, string Quantity, string WorkPoint, SqlCommand cmd, Dictionary language)
+ {
+ try
+ {
+ string sql = @"DECLARE @Status VARCHAR(10)
+ SELECT @Status=c.Status FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN ICSSSD c ON b.TransCode=c.SSDCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+
+ IF (@Status IS NULL)
+ BEGIN
+ RAISERROR('" + language.GetNameByCode("WMSAPIInfo081") + @"',16,1);
+ RETURN
+ END
+ UPDATE c SET SSDQuantity=ISNULL(SSDQuantity,0)+'{2}'
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN ICSSSD c ON b.TransCode=c.SSDCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' ";
+ sql = string.Format(sql, LotNo, WorkPoint, Quantity);
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception("销售出库单更新失败!");
+ }
+ }
+ catch (Exception)
+ {
+ throw;
+ }
+ }
+
///
/// 销售退货接口
///
@@ -489,7 +533,7 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock005' AND a.Wor
{
#region ERP
string sql = @"SELECT c.CusCode+a.ToWarehouseCode+c.SDNCode+a.MUSER AS Costre,c.CusCode,a.ToWarehouseCode AS WarehouseCode,c.SDNCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY c.CusCode,a.ToWarehouseCode,c.SDNCode,c.SDNDetailID,a.InvCode) AS Sequence,
- a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,c.SDNDetailID,Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
+ a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,c.SDNDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
INTO #TempERP
@@ -502,7 +546,7 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock005' AND a.Wor
INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock005' AND a.WorkPoint=conStock.WorkPoint
WHERE a.Identification='{0}' AND ERPUpload='0' AND c.Type='2' AND BusinessCode='{1}'
- GROUP BY inv.AmountEnable,c.CusCode,a.ToWarehouseCode,c.SDNCode,a.MUSER,a.InvCode,c.SDNDetailID,Enable,conStock.Enable
+ GROUP BY inv.AmountEnable,c.CusCode,a.ToWarehouseCode,c.SDNCode,a.MUSER,a.InvCode,c.SDNDetailID,con.Enable,conStock.Enable
,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
@@ -554,6 +598,86 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock005' AND a.Wor
throw;
}
}
+
+
+ ///
+ /// 销售出库-红字出库单接口
+ ///
+ ///
+ ///
+ ///
+ public static void SalesShipmentDocOutRedERP(string TransType, string Identification, SqlCommand cmd, Dictionary language, string BusinessCode)
+ {
+ try
+ {
+ #region ERP
+ string sql = @"SELECT c.CusCode+a.ToWarehouseCode+c.SSDCode+a.MUSER AS Costre,c.CusCode,a.ToWarehouseCode AS WarehouseCode,c.SSDCode,a.MUSER,ROW_NUMBER() OVER (ORDER BY c.CusCode,a.ToWarehouseCode,c.SSDCode,c.SSDDetailID,a.InvCode) AS Sequence,
+ a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,c.SSDDetailID,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
+ ,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
+ ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
+ INTO #TempERP
+ FROM ICSWareHouseLotInfoLog a
+ INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint
+ INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
+ INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
+ LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.ToWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint
+ INNER JOIN ICSSSD c ON a.TransCode=c.SSDCode AND a.TransSequence=c.Sequence AND a.WorkPoint=c.WorkPoint
+ INNER JOIN ICSConfiguration con ON con.Code='Stock001' AND a.WorkPoint=con.WorkPoint
+INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock005' AND a.WorkPoint=conStock.WorkPoint
+ WHERE a.Identification='{0}' AND ERPUpload='0' AND c.Type='2' AND BusinessCode='{1}'
+ GROUP BY inv.AmountEnable,c.CusCode,a.ToWarehouseCode,c.SSDCode,a.MUSER,a.InvCode,c.SSDDetailID,con.Enable,conStock.Enable
+ ,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
+ ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, '')
+
+ SELECT DISTINCT Costre,WorkPoint,CusCode,WarehouseCode AS WHCode,SSDCode AS SDNCode,MUSER AS [User],SYSDATETIME() AS MTime,UpdateTodoQuantity,UpdateStock FROM #TempERP
+ SELECT Costre,Sequence,InvCode,Quantity,Amount,SSDDetailID AS SDNDetailID,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);
+ DataSet ds = DBHelper.SQlReturnDataSet(sql, cmd);
+
+ string Inputstr = DataToJsonHelper.DataSetToJson(ds, "details", "Costre");
+
+ string resultStr = HTTPHelper.HttpPost(TransType, ERPUrl.SalesReturnBackURL, Inputstr);
+ Result result = new Result();
+ result = JsonConvert.DeserializeObject(resultStr);
+ if (result.Success)
+ {
+ try
+ {
+ JArray res = (JArray)JsonConvert.DeserializeObject(result.Data.ToString());
+ foreach (var item in res)
+ {
+ JObject jo = (JObject)item;
+ JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["details"].ToString());
+ foreach (var detail in resdetail)
+ {
+ JObject det = (JObject)detail;
+ string allcol = jo["WHCode"].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["SDNRTDetailID"].ToString(), Identification, jo["ID"].ToString(),
+ det["DetailID"].ToString(), jo["SDNNEGCode"].ToString(), det["Sequence"].ToString(), allcol, cmd, language, BusinessCode);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ log.Debug(ex.ToString());
+ log.Debug(resultStr);
+ }
+ }
+ else
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo080") + result.Message);
+ }
+ #endregion
+
+ }
+ catch (Exception)
+ {
+ throw;
+ }
+ }
#endregion
}
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs
index 728f66b..21808a2 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs
@@ -602,7 +602,16 @@ a.ExtensionID
tableName = @"ICSSDN a ";
- where = @" a.SDNCode='{0}' AND a.WorkPoint='{1}' AND a.Type='1' AND a.Status<>'3' AND a.Quantity-a.SDNQuantity>0 and a.EATTRIBUTE3='2'";
+ if (JsonData.PickFlag == "1")
+ {
+ where = @" a.SDNCode='{0}' AND a.WorkPoint='{1}' AND a.Type='1' AND a.Status<>'3' AND a.Quantity-a.SDNQuantity>0 ";
+ }
+ else
+ {
+ where = @" a.SDNCode='{0}' AND a.WorkPoint='{1}' AND a.Type='1' AND a.Status<>'3' AND a.Quantity-a.SDNQuantity>0 and a.EATTRIBUTE3='2'";
+
+ }
+
}
#endregion
#region 盘点
@@ -1161,6 +1170,21 @@ a.ExtensionID
where = @" a.SDNCode='{0}' AND a.WorkPoint='{1}' AND a.Type='2' AND a.Status<>'3'";
}
#endregion
+ #region 销售出库-红字出库单
+ else if (TransType == TransTypeEnum.SalesReturnBackOut.GetDescription())
+ {
+ columns = @"a.SSDCode AS TransCode,
+ a.SSDDetailID AS DetailID,
+ a.SDNCode,
+ a.Type,
+ a.Sequence AS TransSequence,
+ ISNULL(a.SSDQuantity,0) AS IssueQuantity,";
+
+ tableName = @"ICSSSD a ";
+
+ where = @" a.SSDCode='{0}' AND a.WorkPoint='{1}' AND a.Quantity-ISNULL(a.SSDQuantity,0)>0";
+ }
+ #endregion
#region 其他入库
else if (TransType == TransTypeEnum.OtherInDoc.GetDescription())
{
@@ -1950,11 +1974,33 @@ a.ExtensionID
{
columns = @" DISTINCT a.SDNCode AS TransCode";
- tableName = @"ICSSDN a
+ if (JsonData.PickFlag == "1")
+ {
+ tableName = @"ICSSDN a
left join [UFDATA_001_2021].dbo.DispatchLists dls on dls.DLID = a.SDNID and dls.irowno = a.Sequence";
+ }
+ else
+ {
+ tableName = @"(
+ select SDNCode,count(Sequence) Sequence,sum(case when isnull(EATTRIBUTE3,0)='2' then 1 else 0 end) EATTRIBUTE3
+ from ICSSDN a
+ left join [UFDATA_001_2021].dbo.DispatchLists dls on dls.DLID = a.SDNID and dls.irowno = a.Sequence
+ where a.WorkPoint='{1}' AND a.Type='1' AND a.Status<>'3' and a.Quantity-a.SDNQuantity>0
+ and a.SDNQuantity + dls.fOutQuantity <> a.Quantity
+ group by SDNCode) a";
+ }
+
- where = @" a.WorkPoint='UFDATA_001_2021' AND a.Type='1' AND a.Status<>'3' and a.Quantity-a.SDNQuantity>0 and a.EATTRIBUTE3='2'
+ if (JsonData.PickFlag=="1")
+ {
+ where = @" a.WorkPoint='{1}' AND a.Type='1' AND a.Status<>'3' and a.Quantity-a.SDNQuantity>0
and a.SDNQuantity + dls.fOutQuantity <> a.Quantity ";
+ }
+ else
+ {
+ where = @" Sequence=EATTRIBUTE3";
+ }
+
}
#endregion
#region 盘点
@@ -1968,6 +2014,17 @@ a.ExtensionID
where = @" a.WorkPoint='{1}' and a.Status='1'";
}
#endregion
+ #region 销售退货-原条码
+ else if (TransType == TransTypeEnum.SalesReturnBack.GetDescription()|| TransType == TransTypeEnum.SalesReturnBackOut.GetDescription())
+ {
+ columns = @"a.SDNCode AS TransCode";
+
+ tableName = @"ICSSDN a ";
+
+ where = @" a.SDNCode='{0}' AND a.WorkPoint='{1}' AND a.Type='2' AND a.Status<>'3'";
+ }
+ #endregion
+ tableName = string.Format(tableName, JsonData.TransCode, JsonData.WorkPoint);
where = string.Format(where, JsonData.TransCode, JsonData.WorkPoint);
sql = string.Format(sql, columns, tableName, where, JsonData.TransCode);
log.Debug("源头单据sql : " + sql);
@@ -2084,32 +2141,32 @@ a.ExtensionID
select @aa=id from ICSWareHouseLotInfo where LotNo='{2}'
IF @aa IS NOT NULL
BEGIN
- set @wheresql='and a.lotno=''{2}'' and s.invcode IN(SELECT invcode FROM ICSWareHouseLotInfo where LotNo=''{2}'') and a.invcode=s.invcode '
- set @groupsql=' group by inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,a.warehouseCode,a.LocationCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,a.Quantity,inv.AmountUnit,
+ set @wheresql=' and a.lotno=''{2}'' and s.invcode IN(SELECT invcode FROM ICSWareHouseLotInfo where LotNo=''{2}'') and a.invcode=s.invcode '
+ set @groupsql=' group by inv.LotEnable,inv.AmountEnable,lot.Amount,lot.Quantity,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,a.warehouseCode,a.LocationCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,a.Quantity,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER ,a.MTIME'
END
select @bb=id from ICSLocation where LocationCode like '%{2}%'
IF @bb IS not NULL
BEGIN
- set @wheresql='and a.locationcode=s.locationcode and a.LocationCode like ''%{2}%'' '
- set @groupsql = 'group by inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,a.warehouseCode,a.LocationCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,a.Quantity,inv.AmountUnit,
+ set @wheresql='and a.Quantity>0 and a.locationcode=s.locationcode and a.LocationCode like ''%{2}%'' '
+ set @groupsql = 'group by inv.LotEnable,inv.AmountEnable,lot.Amount,lot.Quantity,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,a.warehouseCode,a.LocationCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,a.Quantity,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER ,a.MTIME'
END
select @cc=id from ICSInventory where invcode='{2}'
IF @cc IS not NULL
BEGIN
- set @wheresql='and inv.invcode=''{2}'' and a.invcode=s.invcode '
- set @groupsql='group by inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,a.WarehouseCode,a.LocationCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,a.Quantity,inv.AmountUnit,
+ set @wheresql='and a.Quantity>0 and inv.invcode=''{2}'' and a.invcode=s.invcode '
+ set @groupsql='group by inv.LotEnable,inv.AmountEnable,lot.Amount,lot.Quantity,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,a.WarehouseCode,a.LocationCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,a.Quantity,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER ,a.MTIME'
END
select @dd=id from ICSInventory where InvStd LIKE '%{2}%'
IF @dd IS not NULL
BEGIN
- set @wheresql='and inv.InvStd LIKE ''%{2}%'' '
- set @groupsql='group by inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,a.WarehouseCode,a.LocationCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,a.Quantity,inv.AmountUnit,
+ set @wheresql='and a.Quantity>0 and inv.InvStd LIKE ''%{2}%'' '
+ set @groupsql='group by inv.LotEnable,inv.AmountEnable,lot.Amount,lot.Quantity,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,a.WarehouseCode,a.LocationCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,a.Quantity,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER ,a.MTIME'
END
@@ -2125,8 +2182,9 @@ a.ExtensionID
inv.InvName,
inv.InvStd,
inv.InvUnit,
- inv.LotEnable,
+ inv.LotEnable,inv.AmountEnable,
a.WarehouseCode,a.LocationCode,a.Quantity as Qty,SUM(s.sumQty) sumQty,
+ (a.Quantity)*(lot.Amount/lot.Quantity) AS Amount,
inv.AmountUnit,
ext.ID AS ExtensionID,
ext.ProjectCode,
@@ -2152,7 +2210,7 @@ a.ExtensionID
LEFT JOIN ICSContainerLot conlot ON a.LotNo=conlot.LotNo AND a.WorkPoint=conlot.WorkPoint
LEFT JOIN ICSContainer con ON conlot.ContainerID=con.ID AND conlot.WorkPoint=con.WorkPoint
INNER JOIN ICSInventory inv ON a.InvCode=inv.InvCode AND a.WorkPoint=inv.WorkPoint
- WHERE a.Quantity>0 and a.WorkPoint=''{3}'' ' + @wheresql + @groupsql
+ WHERE a.WorkPoint=''{3}'' ' + @wheresql + @groupsql
END
exec(@b)
@@ -2412,14 +2470,14 @@ a.ExtensionID
IF EXISTS(SELECT log.LotNo FROM ICSSDN sdn
INNER JOIN ICSWareHouseLotInfoLog log ON sdn.SDNCode=log.TransCode AND sdn.Sequence=log.TransSequence AND sdn.WorkPoint=log.WorkPoint
INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
- WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND sdn.Type='1' AND log.BusinessCode='19'
+ WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND sdn.Type='1' AND log.BusinessCode='19' and log.TransType='3'
GROUP BY log.LotNo HAVING COUNT(log.LotNo)>=2)
BEGIN
RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo191"), "{2}") + @"',16,1);
RETURN
END
" + sql + @"AND sdn.Type='1'
- GROUP BY inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
+ GROUP BY inv.AmountEnable,inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
wh.WarehouseName,a.LocationCode,loc.LocationName,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER,a.MTIME";
@@ -2470,7 +2528,7 @@ a.ExtensionID
INNER JOIN ICSBomALL b ON a.ID=b.ContainerID
)
" + sql + @"AND sdn.Type='1'
- GROUP BY inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
+ GROUP BY inv.AmountEnable,inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
wh.WarehouseName,a.LocationCode,loc.LocationName,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER,a.MTIME";
@@ -2642,7 +2700,7 @@ a.ExtensionID
#region 原条码
if (ScanType == "LOTNO")
{
- sql = sql + @" AND log.BusinessCode IN('" + type + @"') GROUP BY a.quantity,inv.AmountEnable,inv.LotEnable,log.ID,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
+ sql = sql + @" AND log.BusinessCode IN('" + type + @"') GROUP BY a.quantity,log.FromWarehouseCode,log.FromLocationCode,inv.AmountEnable,inv.LotEnable,log.ID,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
wh.WarehouseName,a.LocationCode,loc.LocationName,CASE WHEN(invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')= '1') OR ISNULL(invBat.BatchEnable, '0')= '1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER,a.MTIME
";
@@ -2656,7 +2714,7 @@ a.ExtensionID
END";
sql = @"IF EXISTS(SELECT log.LotNo FROM ICSWareHouseLotInfoLog log
INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
- WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND log.BusinessCode='" + type + @"'
+ WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND a.EATTRIBUTE1<>'1' AND log.BusinessCode='" + type + @"'
GROUP BY log.LotNo HAVING COUNT(log.LotNo)>=2)
BEGIN
RAISERROR('" + string.Format(language.GetNameByCode(msglanguage), "{2}") + @"',16,1);
@@ -2665,7 +2723,7 @@ a.ExtensionID
" + sql;
columns = @"SUM(log.Quantity) AS Quantity,a.quantity as InfoQuantity,
- SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,
+ SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,log.FromWarehouseCode,log.FromLocationCode,
a.WarehouseCode AS WHCode,
wh.WarehouseName AS WHName,
a.LocationCode,
@@ -2683,7 +2741,7 @@ a.ExtensionID
}
else
{
- sql = sql + @" AND log.BusinessCode IN('" + type + @"') GROUP BY a.quantity,inv.AmountEnable,inv.LotEnable,log.ID,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
+ sql = sql + @" AND log.BusinessCode IN('" + type + @"') GROUP BY a.quantity,log.FromWarehouseCode,log.FromLocationCode,inv.AmountEnable,inv.LotEnable,log.ID,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
wh.WarehouseName,a.LocationCode,loc.LocationName,CASE WHEN(invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')= '1') OR ISNULL(invBat.BatchEnable, '0')= '1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER,a.MTIME
";
@@ -2725,7 +2783,7 @@ a.ExtensionID
" + sql;
columns = @"SUM(log.Quantity) AS Quantity,a.quantity as InfoQuantity,
- SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,
+ SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,log.FromWarehouseCode,log.FromLocationCode,
a.WarehouseCode AS WHCode,
wh.WarehouseName AS WHName,
a.LocationCode,
@@ -2843,8 +2901,15 @@ a.ExtensionID
if (iszl)
{
- columns = @"{0} as Quantity,
+ if (TransType == TransTypeEnum.SalesShipmentDoc.GetDescription())
+ {
+ columns = @"
+ {0} as Quantity,
{0}*(lot.Amount/lot.Quantity) AS Amount,
+ aa.Quantity as ShowQuantity,
+ aa.Quantity*(lot.Amount/lot.Quantity) AS ShowAmount,
+aa.Quantity as NewShowQuantity,
+ aa.Quantity*(lot.Amount/lot.Quantity) AS NewShowAmount,
a.id AS LogID,
a.FromWarehouseCode AS WHCode,
wh.WarehouseName AS WHName,
@@ -2852,14 +2917,38 @@ a.ExtensionID
a.FromLocationCode,
loc.LocationName,
CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,";
- columns = string.Format(columns, zlqty);
+ columns = string.Format(columns, zlqty);
- tableName = @"ICSWareHouseLotInfoLog a
+ tableName = @"ICSWareHouseLotInfoLog a
+ INNER JOIN ICSWareHouseLotInfo aa on a.LOTNO=aa.LOTNO and a.WorkPoint=aa.WorkPoint
+ INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint and a.TransType='15'
+ INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
+ INNER JOIN ICSWarehouse wh ON a.FromWarehouseCode=wh.WarehouseCode AND a.WorkPoint=wh.WorkPoint
+ INNER JOIN ICSLocation loc ON a.FromLocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint
+ LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.FromWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint";
+
+ }
+ else
+ {
+ columns = @"{0} as Quantity,
+ {0}*(lot.Amount/lot.Quantity) AS Amount,
+ a.id AS LogID,
+ a.FromWarehouseCode AS WHCode,
+ wh.WarehouseName AS WHName,
+ inv.LotEnable,
+ a.FromLocationCode,
+ loc.LocationName,
+ CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,";
+ columns = string.Format(columns, zlqty);
+
+ tableName = @"ICSWareHouseLotInfoLog a
INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint and a.TransType='15'
INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
INNER JOIN ICSWarehouse wh ON a.FromWarehouseCode=wh.WarehouseCode AND a.WorkPoint=wh.WorkPoint
INNER JOIN ICSLocation loc ON a.FromLocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint
LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.FromWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint";
+ }
+
}
else
{
@@ -3381,6 +3470,7 @@ a.ExtensionID
model.TransCode = JsonData.TransCode;
model.TransType = JsonData.TransType;
model.WorkPoint = JsonData.WorkPoint;
+ model.PickFlag = JsonData.PickFlag;
DataTable TransData = TransInformationGet(model);
DataView dataView = TransData.DefaultView;
foreach (DataRow drLot in table.Rows)
@@ -3638,6 +3728,7 @@ a.ExtensionID
else if (TransType == TransTypeEnum.DeliveryNotice.GetDescription())
{
//更新源头单据数量
+
ICSPurchaseService.DeliveryNoticeIn(itemInfo.LotNo, itemInfo.Quantity, item.WorkPoint, cmd, language);
BusinessCode = TransTypeEnum.DeliveryNotice.GetDescription();
}
@@ -3654,6 +3745,7 @@ a.ExtensionID
else if (TransType == TransTypeEnum.ODeliveryNotice.GetDescription())
{
//更新源头单据数量
+
ICSOutsourcingService.ODeliveryNoticeIn(itemInfo.LotNo, itemInfo.Quantity, item.WorkPoint, cmd, language);
BusinessCode = TransTypeEnum.ODeliveryNotice.GetDescription();
}
@@ -3732,6 +3824,14 @@ a.ExtensionID
BusinessCode = TransTypeEnum.SalesShipmentDocNegative.GetDescription();
}
#endregion
+ #region 销售出库-出库单
+ else if (TransType == TransTypeEnum.SalesReturnBackOut.GetDescription())
+ {
+ //更新源头单据数量
+ ICSSalesService.SalesShipmentOutRedDocNegative(itemInfo.LotNo, itemInfo.Quantity, item.WorkPoint, cmd, language);
+ BusinessCode = TransTypeEnum.SalesReturnBackOut.GetDescription();
+ }
+ #endregion
#region 其他入库
else if (TransType == TransTypeEnum.OtherInDoc.GetDescription())
{
@@ -3970,6 +4070,11 @@ a.ExtensionID
//销售退货-原条码
else if (TransType == TransTypeEnum.SalesReturnBack.GetDescription())
ICSSalesService.SalesReturnBackInERP(TransType, Identification, cmd, language, BusinessCode);
+ //红字销售出库单
+ else if (TransType == TransTypeEnum.SalesReturnBackOut.GetDescription() )
+ {
+ ICSSalesService.SalesShipmentDocOutRedERP(TransType, Identification, cmd, language, BusinessCode);
+ }
//其他入库
else if (TransType == TransTypeEnum.OtherInDoc.GetDescription())
{
@@ -4070,13 +4175,22 @@ a.ExtensionID
else if (TransType == TransTypeEnum.SalesReturnBack.GetDescription())
{
//更新源头单据数量
+ string chekksql = @"select c.EATTRIBUTE1 From ICSInventory c
+ WHERE c.InvCode='{0}' AND c.WorkPoint='{1}' and c.AmountEnable='1'";
+ chekksql = string.Format(chekksql, itemInfo.InvCode, item.WorkPoint);
+ DataTable dta = DBHelper.SQlReturnData(chekksql, cmd);
+ if (dta.Rows.Count > 0)
+ {
+ itemInfo.Quantity = (decimal.Parse(itemInfo.Quantity) * decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString())).ToString();
+ }
+
ICSSalesService.SalesReturnBackIn(itemInfo.TransCode, itemInfo.TransSequence, itemInfo.LotNo, itemInfo.Quantity, item.WorkPoint, cmd, language);
//入库
BusinessCode = TransTypeEnum.SalesReturnBack.GetDescription();
//入库
- ICSWareHouseLotInfoService.WareHouseLotInfoUp(Identification, itemInfo.LocationCode, itemInfo.LotNo, itemInfo.Quantity,
- item.User, item.WorkPoint, WHTransType, BusinessCode, cmd, language, itemInfo.LogID, itemInfo.InvCode + itemInfo.WarehouseCode,"","");
+ ICSWareHouseLotInfoService.WareHouseLotInfoUpAM(Identification, itemInfo.LocationCode, itemInfo.LotNo, itemInfo.Quantity,
+ item.User, item.WorkPoint, WHTransType, BusinessCode, cmd, language, itemInfo.LogID, itemInfo.InvCode + itemInfo.WarehouseCode,"","", itemInfo.LotFlag, itemInfo.WarehouseCode);
//更新日志表源头单据信息
string sql = @"UPDATE ICSWareHouseLotInfoLog SET TransCode='{3}',TransSequence='{4}'
@@ -4117,7 +4231,14 @@ a.ExtensionID
#region 审核的委外到货单
else if (TransType == TransTypeEnum.ODeliveryNotice.GetDescription())
{
- //更新源头单据数量
+ string chekksql = @"select c.EATTRIBUTE1 From ICSInventory c
+ WHERE c.InvCode='{0}' AND c.WorkPoint='{1}' and c.AmountEnable='1'";
+ chekksql = string.Format(chekksql, itemInfo.InvCode, item.WorkPoint);
+ DataTable dta = DBHelper.SQlReturnData(chekksql, cmd);
+ if (dta.Rows.Count > 0)
+ {
+ itemInfo.Quantity = (decimal.Parse(itemInfo.Quantity) * decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString())).ToString();
+ }
ICSOutsourcingService.ODeliveryNoticeIn(itemInfo.LotNo, itemInfo.Quantity, item.WorkPoint, cmd, language);
BusinessCode = TransTypeEnum.ODeliveryNotice.GetDescription();
}
@@ -4398,7 +4519,7 @@ a.ExtensionID
}
//入库
ICSWareHouseLotInfoService.WareHouseLotInfoUpAM(Identification, itemInfo.LocationCode, itemInfo.LotNo, itemInfo.Quantity,
- item.User, item.WorkPoint, WHTransType, BusinessCode, cmd, language, itemInfo.LogID, itemInfo.InvCode + itemInfo.WarehouseCode, itemInfo.TransCode, itemInfo.TransSequence,item.LotFlag,itemInfo.WarehouseCode);
+ item.User, item.WorkPoint, WHTransType, BusinessCode, cmd, language, itemInfo.LogID, itemInfo.InvCode + itemInfo.WarehouseCode, itemInfo.TransCode, itemInfo.TransSequence,itemInfo.LotFlag,itemInfo.WarehouseCode);
}
}
@@ -4545,7 +4666,7 @@ a.ExtensionID
string Identification = Guid.NewGuid().ToString();
foreach (var item in JsonData)
{
- TransType = "2";
+ TransType = item.TransType;
BusinessCode = TransTypeEnum.LocationSeatch.GetDescription();
if (!EnumHelper.HasDescriptions(typeof(TransTypeEnum), TransType))
{
@@ -4555,6 +4676,18 @@ a.ExtensionID
foreach (var itemInfo in item.detail)
{
+ //判断是否开启辅计量,计算辅计量比例
+ string chekksql = @"select c.EATTRIBUTE1 from ICSWareHouseLotInfo a
+ INNER JOIN ICSInventory c on a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
+ where a.lotno='{0}' AND a.WorkPoint='{1}' and c.AmountEnable='1'";
+ chekksql = string.Format(chekksql, itemInfo.LotNo, item.WorkPoint);
+ DataTable dta = DBHelper.SQlReturnData(chekksql, cmd);
+ if (dta.Rows.Count > 0)
+ {
+ itemInfo.Quantity = (decimal.Parse(itemInfo.Quantity) * decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString())).ToString();
+ }
+
+
sql = @"UPDATE ICSWareHouseLotInfo set Quantity='{2}' WHERE lotno='{0}' AND WorkPoint='{1}'";
sql = string.Format(sql, itemInfo.LotNo, item.WorkPoint, itemInfo.Quantity);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
@@ -4679,13 +4812,18 @@ a.ExtensionID
else if (TransType == TransTypeEnum.OutsourcingIssueDoc.GetDescription())
{
BusinessCode = TransTypeEnum.OutsourcingIssueDoc.GetDescription();
+
//更新源头单据数量
- ICSOutsourcingService.OutsourcingIssueDoc(item.TransCode, item.TransSequence, item.Quantity, item.WorkPoint, cmd, language,enableCode);
+ ICSOutsourcingService.OutsourcingIssueDoc(item.TransCode, item.TransSequence, item.Quantity, item.WorkPoint, cmd, language, enableCode);
+
foreach (var itemInfo in item.detail)
{
+
+
+
//出库
- printTable=ICSWareHouseLotInfoService.WareHouseLotInfoDown(Identification, item.TransCode, item.TransSequence, itemInfo.LotNo, itemInfo.CurrentQuantity,
+ printTable = ICSWareHouseLotInfoService.WareHouseLotInfoDown(Identification, item.TransCode, item.TransSequence, itemInfo.LotNo, itemInfo.CurrentQuantity,
item.User, item.WorkPoint, "3", TransTypeEnum.OutsourcingIssueDoc.GetDescription(), cmd, language, itemInfo.LogID, MergeID);
}
}
@@ -4709,13 +4847,29 @@ a.ExtensionID
else if (TransType == TransTypeEnum.MOIssueDoc.GetDescription())
{
BusinessCode = TransTypeEnum.MOIssueDoc.GetDescription();
+
+
//更新源头单据数量
- ICSManufactureService.MOIssueDoc(item.TransCode, item.TransSequence, item.Quantity, item.WorkPoint, cmd, language,enableCode);
+ ICSManufactureService.MOIssueDoc(item.TransCode, item.TransSequence, item.Quantity, item.WorkPoint, cmd, language, enableCode);
+
foreach (var itemInfo in item.detail)
{
+ //string chekksql = @"select c.EATTRIBUTE1 FROM ICSMOPick a
+ //INNER JOIN ICSMO b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint
+ //INNER JOIN ICSInventory c on a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
+ //WHERE b.MOCode='{0}' AND b.Sequence+'~'+a.Sequence='{3}' AND a.WorkPoint='{1}' and c.AmountEnable='1'";
+ //chekksql = string.Format(chekksql, item.TransCode, item.WorkPoint, itemInfo.CurrentQuantity, item.TransSequence);
+ //DataTable dta = DBHelper.SQlReturnData(chekksql, cmd);
+ //if (dta.Rows.Count > 0)
+ //{
+ // itemInfo.CurrentQuantity = (decimal.Parse(itemInfo.CurrentQuantity) * decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString())).ToString();
+ //}
+
+
+
//出库
- printTable=ICSWareHouseLotInfoService.WareHouseLotInfoDown(Identification, item.TransCode, item.TransSequence, itemInfo.LotNo, itemInfo.CurrentQuantity,
+ printTable =ICSWareHouseLotInfoService.WareHouseLotInfoDown(Identification, item.TransCode, item.TransSequence, itemInfo.LotNo, itemInfo.CurrentQuantity,
item.User, item.WorkPoint, "3", TransTypeEnum.MOIssueDoc.GetDescription(), cmd, language, itemInfo.LogID, MergeID);
}
}
@@ -4730,7 +4884,7 @@ a.ExtensionID
foreach (var itemInfo in item.detail)
{
//出库
- printTable = ICSWareHouseLotInfoService.WareHouseLotInfoDown(Identification, item.TransCode, item.TransSequence, itemInfo.LotNo, itemInfo.CurrentQuantity,
+ printTable = ICSWareHouseLotInfoService.WareHouseLotInfoDownDisPatch(Identification, item.TransCode, item.TransSequence, itemInfo.LotNo, itemInfo.CurrentQuantity,
item.User, item.WorkPoint, "3", TransTypeEnum.SalesShipmentDoc.GetDescription(), cmd, language, itemInfo.LogID, MergeID);
}
}
@@ -7710,8 +7864,14 @@ END";
DataTable dta = DBHelper.SQlReturnData(chekksql, cmd);
if (dta.Rows.Count > 0)
{
+ itemInfo.Amount = itemInfo.Quantity;
itemInfo.Quantity = (itemInfo.Quantity * decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString()));
}
+ else
+ {
+ itemInfo.Amount = itemInfo.Quantity / decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString());
+ }
+
log.Debug("退料数量"+itemInfo.Quantity);
@@ -9131,8 +9291,13 @@ END";
DataTable dta = DBHelper.SQlReturnData(chekksql, cmd);
if (dta.Rows.Count > 0)
{
+ itemInfo.Amount = itemInfo.Quantity;
itemInfo.Quantity = (decimal.Parse(itemInfo.Quantity) * decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString())).ToString();
}
+ else
+ {
+ itemInfo.Amount = (decimal.Parse(itemInfo.Quantity) / decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString())).ToString();
+ }
// 创建子表
sql = @"INSERT INTO ICSMOApplyNegDetail(ID,ApplyNegCode,Sequence,SourceDetailID,InvCode,
Quantity,Amount,IssueNegQuantity,ExtensionID,MUSER,
@@ -16155,21 +16320,13 @@ a.ExtensionID
RAISERROR('" + language.GetNameByCode("WMSAPIInfo037") + @"',16,1);
RETURN
END
- IF EXISTS(SELECT log.LotNo FROM ICSSDN sdn
- INNER JOIN ICSWareHouseLotInfoLog log ON sdn.SDNCode=log.TransCode AND sdn.Sequence=log.TransSequence AND sdn.WorkPoint=log.WorkPoint
- INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
- WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND sdn.Type='1' AND log.BusinessCode='19'
- GROUP BY log.LotNo HAVING COUNT(log.LotNo)>=2)
- BEGIN
- RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo191"), "{2}") + @"',16,1);
- RETURN
- END
+
" + sql + @"AND sdn.Type='1'
- GROUP BY inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
+ GROUP BY inv.AmountEnable,a.quantity,inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
wh.WarehouseName,a.LocationCode,loc.LocationName,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER,a.MTIME";
- columns = @"SUM(log.Quantity) AS Quantity,
+ columns = @"SUM(log.Quantity) AS Quantity,isnull(a.quantity,0) as InfoQuantity,
SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,
a.WarehouseCode AS WHCode,
wh.WarehouseName AS WHName,
@@ -16179,7 +16336,7 @@ a.ExtensionID
tableName = @"ICSSDN sdn
INNER JOIN ICSWareHouseLotInfoLog log ON sdn.SDNCode=log.TransCode AND sdn.Sequence=log.TransSequence AND sdn.WorkPoint=log.WorkPoint
- INNER JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
+ LEFT JOIN ICSWareHouseLotInfo a ON a.LotNo=log.LotNo AND a.WorkPoint=log.WorkPoint
INNER JOIN ICSInventoryLot lot ON a.LotNo=lot.LotNo AND a.WorkPoint=lot.WorkPoint
INNER JOIN ICSExtension ext ON lot.ExtensionID=ext.ID AND lot.WorkPoint=ext.WorkPoint
INNER JOIN ICSWarehouse wh ON a.WarehouseCode=wh.WarehouseCode AND a.WorkPoint=wh.WorkPoint
@@ -16216,11 +16373,11 @@ a.ExtensionID
INNER JOIN ICSBomALL b ON a.ID=b.ContainerID
)
" + sql + @"AND sdn.Type='1'
- GROUP BY inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
+ GROUP BY inv.AmountEnable,a.quantity,inv.LotEnable,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
wh.WarehouseName,a.LocationCode,loc.LocationName,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER,a.MTIME";
- columns = @"SUM(log.Quantity) AS Quantity,
+ columns = @"SUM(log.Quantity) AS Quantity,a.quantity as InfoQuantity,
SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,
a.WarehouseCode AS WHCode,
wh.WarehouseName AS WHName,
@@ -16388,7 +16545,7 @@ a.ExtensionID
#region 原条码
if (ScanType == "LOTNO")
{
- sql = sql + @" AND log.BusinessCode IN('" + type + @"') and log.TransCode='{6}' GROUP BY inv.AmountEnable,inv.LotEnable,log.ID,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
+ sql = sql + @" AND log.BusinessCode IN('" + type + @"') and log.TransCode='{6}' GROUP BY a.quantity,log.FromWarehouseCode,log.FromLocationCode,inv.AmountEnable,inv.LotEnable,log.ID,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
wh.WarehouseName,a.LocationCode,loc.LocationName,CASE WHEN(invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')= '1') OR ISNULL(invBat.BatchEnable, '0')= '1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER,a.MTIME
";
@@ -16410,8 +16567,9 @@ a.ExtensionID
//END
//" + sql;
- columns = @"SUM(log.Quantity) AS Quantity,
- SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,
+ columns = @"SUM(log.Quantity) AS Quantity,a.quantity as InfoQuantity,
+ SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,log.FromWarehouseCode,log.FromLocationCode,
+ case when log.FromLocationCode=a.LocationCode then '0' else '1' end Flag,
a.WarehouseCode AS WHCode,
wh.WarehouseName AS WHName,
a.LocationCode,
@@ -16429,7 +16587,7 @@ a.ExtensionID
}
else
{
- sql = sql + @" AND log.BusinessCode IN('" + type + @"') and log.TransCode='{6}' GROUP BY inv.AmountEnable,inv.LotEnable,log.ID,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
+ sql = sql + @" AND log.BusinessCode IN('" + type + @"') and log.TransCode='{6}' GROUP BY a.quantity,log.FromWarehouseCode,log.FromLocationCode,inv.AmountEnable,inv.LotEnable,log.ID,a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,a.WarehouseCode,
wh.WarehouseName,a.LocationCode,loc.LocationName,CASE WHEN(invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')= '1') OR ISNULL(invBat.BatchEnable, '0')= '1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,inv.AmountUnit,
ext.ID,ext.ProjectCode,ext.Version,ext.Brand,ext.cFree1,ext.cFree2,ext.cFree3,ext.cFree4,ext.cFree5,ext.cFree6,ext.cFree7,ext.cFree8,ext.cFree9,ext.cFree10,a.MUSER,a.MTIME
";
@@ -16470,8 +16628,9 @@ a.ExtensionID
)
" + sql;
- columns = @"SUM(log.Quantity) AS Quantity,
- SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,
+ columns = @"SUM(log.Quantity) AS Quantity,a.quantity as InfoQuantity,
+ SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount,log.FromWarehouseCode,log.FromLocationCode,
+ case when log.FromLocationCode=a.LocationCode then '0' else '1' end Flag,
a.WarehouseCode AS WHCode,
wh.WarehouseName AS WHName,
a.LocationCode,
@@ -16637,6 +16796,18 @@ a.ExtensionID
" + sql;
}
+ if (TransType == TransTypeEnum.StepNoTransferDocIn.GetDescription())
+ {
+ sql = @"IF EXISTS(SELECT a.ID FROM ICSWareHouseLotInfo a
+ INNER JOIN ICSWareHouseLotInfoLog b on a.lotno=b.lotno and a.workpoint=b.workpoint
+ WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND a.LockQuantity>0 and b.transType='15')
+ BEGIN
+ RAISERROR('条码已占料不能进行调拨',16,1);
+ RETURN
+ END
+ " + sql;
+ }
+
if (TransType == TransTypeEnum.Check.GetDescription())
{
sql = @"IF EXISTS(SELECT LotNo FROM ICSCheckDetail a
@@ -17553,7 +17724,7 @@ a.ExtensionID
}
- sql = @"select sum(quantity) from ICSWareHouseLotInfoLog where TransCode='{0}' and TransSequence='{1}' and workpoint='{2}' TransType='15' ";
+ sql = @"select sum(Quantity) AS Quantity from ICSWareHouseLotInfoLog where TransCode='{0}' and TransSequence='{1}' and workpoint='{2}' and TransType='15' ";
sql = string.Format(sql, item.TransCode, item.TransSequence, item.WorkPoint);
DataTable dttt = DBHelper.SQlReturnData(sql, cmd);
if (dttt.Rows.Count > 0 && dttt != null)
@@ -17646,7 +17817,7 @@ a.ExtensionID
}
- sql = @"select sum(quantity) from ICSWareHouseLotInfoLog where TransCode='{0}' and TransSequence='{1}' and workpoint='{2}' TransType='15' ";
+ sql = @"select sum(Quantity) AS Quantity from ICSWareHouseLotInfoLog where TransCode='{0}' and TransSequence='{1}' and workpoint='{2}' and TransType='15' ";
sql = string.Format(sql, item.TransCode, item.TransSequence, item.WorkPoint);
DataTable dttt = DBHelper.SQlReturnData(sql, cmd);
if (dttt.Rows.Count > 0 && dttt != null)
@@ -17747,7 +17918,7 @@ a.ExtensionID
}
- sql = @"select sum(quantity) from ICSWareHouseLotInfoLog where TransCode='{0}' and TransSequence='{1}' and workpoint='{2}' TransType='15' ";
+ sql = @"select sum(Quantity) AS Quantity from ICSWareHouseLotInfoLog where TransCode='{0}' and TransSequence='{1}' and workpoint='{2}' and TransType='15' ";
sql = string.Format(sql, item.TransCode, item.TransSequence, item.WorkPoint);
DataTable dttt = DBHelper.SQlReturnData(sql, cmd);
if (dttt.Rows.Count > 0 && dttt != null)
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseLotInfoService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseLotInfoService.cs
index 29a5f49..99588e9 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseLotInfoService.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseLotInfoService.cs
@@ -682,6 +682,10 @@ namespace ICSSoft.DataProject
string locationcode = "";
string newlocationcode = "";
string amount = "";
+ string warehousecode = "";
+ string nlocationcode = "";
+ string logwarehousecode = "";
+ string lognlocationcode = "";
decimal LotQTYYY = 0;
decimal LotQTY = 0;
string LotEnable = "";
@@ -737,67 +741,222 @@ namespace ICSSoft.DataProject
}
if(BusinessCode == TransTypeEnum.MOIssueDocNegative.GetDescription())
{
- sql = @"SELECT FromLocationCode FROM ICSWareHouseLotInfoLog a WHERE LotNo='{0}' AND WorkPoint='{1}' AND ID='{2}'";
- sql = string.Format(sql, LotNo, WorkPoint,LogID);
- DataTable dt = DBHelper.SQlReturnData(sql, cmd);
- if (dt == null || dt.Rows.Count <= 0)
+ // sql = @"SELECT FromLocationCode FROM ICSWareHouseLotInfoLog a WHERE LotNo='{0}' AND WorkPoint='{1}' AND ID='{2}'";
+ // sql = string.Format(sql, LotNo, WorkPoint,LogID);
+ // DataTable dt = DBHelper.SQlReturnData(sql, cmd);
+ // if (dt == null || dt.Rows.Count <= 0)
+ // {
+ // throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo171"), LotNo));
+ // }
+ // newlocationcode = dt.Rows[0]["FromLocationCode"].ToString();
+ // sql += @" IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
+ // BEGIN
+ // RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo060"), "{2}") + @"',16,1);
+ // RETURN
+ // END
+
+ // IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}')
+ // BEGIN
+ // IF EXISTS(SELECT a.LotNO FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND a.Quantity=0)
+ // BEGIN
+ // UPDATE a SET a.Quantity=ISNULL(a.Quantity,0)+'{3}',WarehouseCode=e.WarehouseCode,LocationCode=d.LocationCode
+ // From ICSWareHouseLotInfo a
+ // INNER JOIN ICSLocation d ON d.LocationCode='{4}' AND a.WorkPoint=d.WorkPoint
+ // INNER JOIN ICSWarehouse e ON d.WHID=e.ID AND d.WorkPoint=e.WorkPoint
+ // WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ // END
+ // ELSE IF EXISTS(SELECT a.LotNO FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND a.LocationCode=(select a.FromLocationCode FROM ICSWareHouseLotInfoLog a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND a.id='{5}'
+ //AND a.FromLocationCode='" + locationcode + @"'))
+ // BEGIN
+ // UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)+'{3}'
+ // WHERE LotNo='{0}' AND WorkPoint='{1}'
+ // END
+ // ELSE
+ // BEGIN
+ // RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo395"), "{4}", locationcode) + @"', 16, 1);
+ // RETURN
+ // END
+ // END
+ // ELSE
+ // BEGIN
+ // IF EXISTS(SELECT il.InvCode FROM ICSInventoryLocation il
+ // INNER JOIN ICSInventoryLot a ON a.InvCode=il.InvCode AND a.WorkPoint=il.WorkPoint
+ // WHERE il.Enable='1' AND a.LotNo='{0}' AND a.WorkPoint='{1}')
+ // BEGIN
+ // IF NOT EXISTS(SELECT il.InvCode FROM ICSInventoryLocation il
+ // INNER JOIN ICSInventoryLot a ON a.InvCode=il.InvCode AND a.WorkPoint=il.WorkPoint
+ // WHERE il.Enable='1' AND a.LotNo='{0}' AND a.WorkPoint='{1}' AND il.LocationCode='{4}')
+ // BEGIN
+ // RAISERROR('" + language.GetNameByCode("WMSAPIInfo180") + @"',16,1);
+ // RETURN
+ // END
+ // END
+ // INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
+ // SELECT NEWID(),a.LotNo ,e.WarehouseCode,d.LocationCode,a.InvCode ,'{3}',SYSDATETIME(),'0',f.F_Account ,f.F_RealName ,SYSDATETIME() ,a.WorkPoint ,''
+ // FROM ICSInventoryLot a
+ // INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ // --INNER JOIN ICSOApplyNegDetail c ON b.TransCode=c.OApplyNegCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
+ // INNER JOIN ICSLocation d ON d.LocationCode='{4}' AND a.WorkPoint=d.WorkPoint
+ // INNER JOIN ICSWarehouse e ON d.WHID=e.ID AND d.WorkPoint=e.WorkPoint
+ // INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ // WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ // END";
+ // sql = string.Format(sql, LotNo, WorkPoint, User, Quantity, newlocationcode, LogID);
+
+
+ //入库分批
+ sql = @"select a.Quantity,a.WarehouseCode,a.LocationCode,b.FromWarehouseCode,b.FromLocationCode from ICSWareHouseLotInfo a
+ INNER JOIN ICSWareHouseLotInfoLog b on a.lotno=b.lotno and a.workpoint=b.workpoint
+ where a.LotNO='{0}' AND a.WorkPoint='{1}' and BusinessCode='13'";
+ sql = string.Format(sql, LotNo, WorkPoint);
+ DataTable dtt = DBHelper.SQlReturnData(sql, cmd);
+ if (dtt.Rows.Count < 0 || dtt == null)
{
- throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo171"), LotNo));
+ throw new Exception("请使用发料条码进行退料");//条码分批后条码表存入失败!
}
- newlocationcode = dt.Rows[0]["FromLocationCode"].ToString();
- sql += @" IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
+ LotQTYYY = Convert.ToDecimal(dtt.Rows[0]["Quantity"]);
+ warehousecode = dtt.Rows[0]["WarehouseCode"].ToString();
+ nlocationcode = dtt.Rows[0]["LocationCode"].ToString();
+ logwarehousecode= dtt.Rows[0]["FromWarehouseCode"].ToString();
+ lognlocationcode= dtt.Rows[0]["FromLocationCode"].ToString();
+ log.Debug("数量:" + LotQTYYY);
+
+ if(warehousecode== logwarehousecode&& nlocationcode== lognlocationcode)
+ {
+ LotFlag = "0";
+ }
+ else
+ {
+ LotFlag = "1";
+ }
+
+ if (LotFlag == "1")
+ {
+
+ #region 获取分批后的条码(lotstr)
+ sql = @"SELECT TOP 1 LotNO FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}' AND WorkPoint='{1}'
+ ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
+ sql = string.Format(sql, LotNo, WorkPoint);
+ dttt = DBHelper.SQlReturnData(sql, cmd);
+ if (dttt.Rows.Count == 0)
+ {
+ lotstr = LotNo + "-" + 1;
+ }
+ else
+ {
+ lotstr = LotNo + "-" + (Convert.ToInt32(dttt.Rows[0]["LotNO"].ToString().Split('-')[dttt.Rows[0]["LotNO"].ToString().Split('-').Length - 1]) + 1).ToString();
+ }
+ //NewBarCodeList.Add(lotstr);//将分批后新条码添加到新集合
+ #endregion
+
+ #region 将分批后的条码记录插入条码表,库存表及日志表并将原条码库存数量清零
+ sql = @"INSERT INTO ICSInventoryLot(ID,LotNo,InvCode,ProductDate,ExpirationDate,
+ Quantity,Amount,ExtensionID,Type,PrintTimes,
+ LastPrintUser,LastPrintTime,MUSER,MUSERName,MTIME,
+ WorkPoint,EATTRIBUTE1)
+ SELECT TOP 1 NEWID(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,
+ '{2}',a.Amount/a.Quantity*{2},a.ExtensionID,a.Type,a.PrintTimes,
+ a.LastPrintUser,a.LastPrintTime,a.MUSER ,a.MUSERName ,GETDATE(),
+ a.WorkPoint ,'{1}'
+ From ICSInventoryLot a
+ where a.LotNo='{1}' and a.WorkPoint='{3}'";
+ sql = string.Format(sql, lotstr, LotNo, Quantity, WorkPoint);
+ cmd.CommandText = sql;
+ result = cmd.ExecuteNonQuery();
+ if (result <= 0)
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo195"));//条码分批后条码表存入失败!
+ }
+
+ sql = @"INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
+ select NEWID(),'{0}','{5}','{4}',InvCode,'{2}',InDate,LockQuantity
+ ,MUSER,MUSERName,GETDATE(),'{3}',''
+ from ICSWareHouseLotInfo
+ where LotNO='{1}' AND WorkPoint='{3}'";
+ sql = string.Format(sql, lotstr, LotNo, Quantity, WorkPoint, lognlocationcode, logwarehousecode);
+ log.Debug("添加库存sql:" + sql);
+ cmd.CommandText = sql;
+ result = cmd.ExecuteNonQuery();
+ if (result <= 0)
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo196"));//条码分批后库存表存入失败!
+ }
+ //插入条码单据表
+ sql = @"INSERT INTO ICSInventoryLotDetail(LotNo,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
+ SELECT '{3}','{4}','{5}',f.F_Account ,f.F_RealName ,SYSDATETIME() ,a.WorkPoint
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'";
+ sql = string.Format(sql, LotNo, WorkPoint, User, lotstr, TransCode, TransSequence);
+
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo174"));//"条码单据表写入失败!");
+ }
+ sql = @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
+ FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
+ Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
+ ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
+ MTIME,WorkPoint,EATTRIBUTE1,LogID)
+ SELECT NEWID(),'{3}','{4}','{5}','{10}' ,a.InvCode ,
+ '','','{12}','{11}','{6}',
+ '','0','{7}','{8}','0','',
+ '','','',f.F_Account ,f.F_RealName ,
+ SYSDATETIME() ,a.WorkPoint ,'','{9}'
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransCode, TransSequence, Quantity, TransType, BusinessCode, LogID, lotstr, lognlocationcode, logwarehousecode );
+ //if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ //{
+ // throw new Exception(language.GetNameByCode("WMSAPIInfo197"));//"条码单据表写入失败!");
+ //}
+ #endregion
+
+
+ }
+ else
+ {
+
+ sql += @" IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
BEGIN
RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo060"), "{2}") + @"',16,1);
RETURN
END
+
+ UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)+'{3}'
+ WHERE LotNo='{0}' AND WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Quantity, LocationCode);
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo165"));
+ }
- IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}')
- BEGIN
- IF EXISTS(SELECT a.LotNO FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND a.Quantity=0)
- BEGIN
- UPDATE a SET a.Quantity=ISNULL(a.Quantity,0)+'{3}',WarehouseCode=e.WarehouseCode,LocationCode=d.LocationCode
- From ICSWareHouseLotInfo a
- INNER JOIN ICSLocation d ON d.LocationCode='{4}' AND a.WorkPoint=d.WorkPoint
- INNER JOIN ICSWarehouse e ON d.WHID=e.ID AND d.WorkPoint=e.WorkPoint
- WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
- END
- ELSE IF EXISTS(SELECT a.LotNO FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND a.LocationCode=(select a.FromLocationCode FROM ICSWareHouseLotInfoLog a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND a.id='{5}'
- AND a.FromLocationCode='" + locationcode + @"'))
- BEGIN
- UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)+'{3}'
- WHERE LotNo='{0}' AND WorkPoint='{1}'
- END
- ELSE
- BEGIN
- RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo395"), "{4}", locationcode) + @"', 16, 1);
- RETURN
- END
- END
- ELSE
- BEGIN
- IF EXISTS(SELECT il.InvCode FROM ICSInventoryLocation il
- INNER JOIN ICSInventoryLot a ON a.InvCode=il.InvCode AND a.WorkPoint=il.WorkPoint
- WHERE il.Enable='1' AND a.LotNo='{0}' AND a.WorkPoint='{1}')
- BEGIN
- IF NOT EXISTS(SELECT il.InvCode FROM ICSInventoryLocation il
- INNER JOIN ICSInventoryLot a ON a.InvCode=il.InvCode AND a.WorkPoint=il.WorkPoint
- WHERE il.Enable='1' AND a.LotNo='{0}' AND a.WorkPoint='{1}' AND il.LocationCode='{4}')
- BEGIN
- RAISERROR('" + language.GetNameByCode("WMSAPIInfo180") + @"',16,1);
- RETURN
- END
- END
- INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
- SELECT NEWID(),a.LotNo ,e.WarehouseCode,d.LocationCode,a.InvCode ,'{3}',SYSDATETIME(),'0',f.F_Account ,f.F_RealName ,SYSDATETIME() ,a.WorkPoint ,''
- FROM ICSInventoryLot a
- INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
- --INNER JOIN ICSOApplyNegDetail c ON b.TransCode=c.OApplyNegCode AND b.TransSequence=c.Sequence AND b.WorkPoint=c.WorkPoint
- INNER JOIN ICSLocation d ON d.LocationCode='{4}' AND a.WorkPoint=d.WorkPoint
- INNER JOIN ICSWarehouse e ON d.WHID=e.ID AND d.WorkPoint=e.WorkPoint
- INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
- WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
- END";
- sql = string.Format(sql, LotNo, WorkPoint, User, Quantity, newlocationcode, LogID);
+ ///添加日志
+ sql = @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
+ FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
+ Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
+ ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
+ MTIME,WorkPoint,EATTRIBUTE1,LogID)
+ SELECT NEWID(),'{3}','{10}','{11}',a.LotNo ,a.InvCode ,
+ '','',c.WarehouseCode,c.LocationCode,'{6}',
+ '','0','{4}','{5}','0','',
+ '','','',f.F_Account ,f.F_RealName ,
+ SYSDATETIME() ,a.WorkPoint ,'','{7}'
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID, LocationCode, WarehouseCode, TransCode, TransSequence);
+
+ }
}
else if (BusinessCode == TransTypeEnum.MOStockINByProductNoTrans.GetDescription())
{
@@ -854,7 +1013,231 @@ namespace ICSSoft.DataProject
END";
sql = string.Format(sql, LotNo, WorkPoint, User, Quantity, LocationCode);
}
- else if (BusinessCode == TransTypeEnum.ICSOutsourcingIssueDoNegative.GetDescription())
+ else if (BusinessCode == TransTypeEnum.ICSOutsourcingIssueDoNegative.GetDescription())
+ {
+
+ //入库分批
+ sql = @"select Quantity from ICSWareHouseLotInfo
+ where LotNO='{0}' AND WorkPoint='{1}'";
+ sql = string.Format(sql, LotNo, WorkPoint);
+ DataTable dtt = DBHelper.SQlReturnData(sql, cmd);
+ if (dtt.Rows.Count<0||dtt==null)
+ {
+ throw new Exception("请使用发料条码进行退料");//条码分批后条码表存入失败!
+ }
+ LotQTYYY = Convert.ToDecimal(dtt.Rows[0]["Quantity"]);
+ log.Debug("数量:"+LotQTYYY);
+
+ if (LotFlag == "1")
+ {
+ if (LotQTYYY > 0)
+ {
+ #region 获取分批后的条码(lotstr)
+ sql = @"SELECT TOP 1 LotNO FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}' AND WorkPoint='{1}'
+ ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
+ sql = string.Format(sql, LotNo, WorkPoint);
+ dttt = DBHelper.SQlReturnData(sql, cmd);
+ if (dttt.Rows.Count == 0)
+ {
+ lotstr = LotNo + "-" + 1;
+ }
+ else
+ {
+ lotstr = LotNo + "-" + (Convert.ToInt32(dttt.Rows[0]["LotNO"].ToString().Split('-')[dttt.Rows[0]["LotNO"].ToString().Split('-').Length - 1]) + 1).ToString();
+ }
+ //NewBarCodeList.Add(lotstr);//将分批后新条码添加到新集合
+ #endregion
+
+ #region 将分批后的条码记录插入条码表,库存表及日志表并将原条码库存数量清零
+ sql = @"INSERT INTO ICSInventoryLot(ID,LotNo,InvCode,ProductDate,ExpirationDate,
+ Quantity,Amount,ExtensionID,Type,PrintTimes,
+ LastPrintUser,LastPrintTime,MUSER,MUSERName,MTIME,
+ WorkPoint,EATTRIBUTE1)
+ SELECT TOP 1 NEWID(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,
+ '{2}',a.Amount/a.Quantity*{2},a.ExtensionID,a.Type,a.PrintTimes,
+ a.LastPrintUser,a.LastPrintTime,a.MUSER ,a.MUSERName ,GETDATE(),
+ a.WorkPoint ,'{1}'
+ From ICSInventoryLot a
+ where a.LotNo='{1}' and a.WorkPoint='{3}'";
+ sql = string.Format(sql, lotstr, LotNo, Quantity, WorkPoint);
+ cmd.CommandText = sql;
+ result = cmd.ExecuteNonQuery();
+ if (result <= 0)
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo195"));//条码分批后条码表存入失败!
+ }
+
+ sql = @"INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
+ select NEWID(),'{0}','{5}','{4}',InvCode,'{2}',InDate,LockQuantity
+ ,MUSER,MUSERName,GETDATE(),'{3}',''
+ from ICSWareHouseLotInfo
+ where LotNO='{1}' AND WorkPoint='{3}'";
+ sql = string.Format(sql, lotstr, LotNo, Quantity, WorkPoint, LocationCode, WarehouseCode);
+ log.Debug("添加库存sql:"+sql);
+ cmd.CommandText = sql;
+ result = cmd.ExecuteNonQuery();
+ if (result <= 0)
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo196"));//条码分批后库存表存入失败!
+ }
+ //插入条码单据表
+ sql = @"INSERT INTO ICSInventoryLotDetail(LotNo,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
+ SELECT '{3}','{4}','{5}',f.F_Account ,f.F_RealName ,SYSDATETIME() ,a.WorkPoint
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'";
+ sql = string.Format(sql, LotNo, WorkPoint, User, lotstr,TransCode,TransSequence);
+
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo174"));//"条码单据表写入失败!");
+ }
+ sql = @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
+ FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
+ Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
+ ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
+ MTIME,WorkPoint,EATTRIBUTE1,LogID)
+ SELECT NEWID(),'{3}','{4}','{5}','{10}' ,a.InvCode ,
+ '','','{12}','{11}','{6}',
+ '','0','{7}','{8}','0','',
+ '','','',f.F_Account ,f.F_RealName ,
+ SYSDATETIME() ,a.WorkPoint ,'','{9}'
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransCode, TransSequence, Quantity, TransType, BusinessCode, "", lotstr, LocationCode, WarehouseCode);
+ //if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ //{
+ // throw new Exception(language.GetNameByCode("WMSAPIInfo197"));//"条码单据表写入失败!");
+ //}
+ #endregion
+ }
+ else if (LotQTYYY == 0)
+ {
+ sql += @" IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
+ BEGIN
+ RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo060"), "{2}") + @"',16,1);
+ RETURN
+ END
+
+ UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)+'{3}', LocationCode='{4}',WarehouseCode='{5}'
+ WHERE LotNo='{0}' AND WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Quantity, LocationCode, WarehouseCode);
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo165"));
+ }
+ ///添加日志
+ sql = @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
+ FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
+ Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
+ ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
+ MTIME,WorkPoint,EATTRIBUTE1,LogID)
+ SELECT NEWID(),'{3}','{10}','{11}',a.LotNo ,a.InvCode ,
+ '','','{9}','{8}','{6}',
+ '','0','{4}','{5}','0','',
+ '','','',f.F_Account ,f.F_RealName ,
+ SYSDATETIME() ,a.WorkPoint ,'','{7}'
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID,LocationCode,WarehouseCode, TransCode, TransSequence);
+
+
+ }
+
+ }
+ else
+ {
+ if (LotQTYYY > 0)
+ {
+ sql += @" IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
+ BEGIN
+ RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo060"), "{2}") + @"',16,1);
+ RETURN
+ END
+
+ UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)+'{3}'
+ WHERE LotNo='{0}' AND WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Quantity, LocationCode);
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo165"));
+ }
+
+ ///添加日志
+ sql = @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
+ FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
+ Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
+ ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
+ MTIME,WorkPoint,EATTRIBUTE1,LogID)
+ SELECT NEWID(),'{3}','{10}','{11}',a.LotNo ,a.InvCode ,
+ '','','{9}','{8}','{6}',
+ '','0','{4}','{5}','0','',
+ '','','',f.F_Account ,f.F_RealName ,
+ SYSDATETIME() ,a.WorkPoint ,'','{7}'
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID, LocationCode, WarehouseCode, TransCode, TransSequence);
+
+ }
+ else if (LotQTYYY == 0)
+ {
+ sql += @" IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
+ BEGIN
+ RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo060"), "{2}") + @"',16,1);
+ RETURN
+ END
+
+ UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)+'{3}', LocationCode='{4}',WarehouseCode='{5}'
+ WHERE LotNo='{0}' AND WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Quantity, LocationCode, WarehouseCode);
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo165"));
+ }
+ ///添加日志
+ sql = @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
+ FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
+ Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
+ ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
+ MTIME,WorkPoint,EATTRIBUTE1,LogID)
+ SELECT NEWID(),'{3}','{10}','{11}',a.LotNo ,a.InvCode ,
+ '','','{9}','{8}','{6}',
+ '','0','{4}','{5}','0','',
+ '','','',f.F_Account ,f.F_RealName ,
+ SYSDATETIME() ,a.WorkPoint ,'','{7}'
+ FROM ICSInventoryLot a
+ INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID, LocationCode, WarehouseCode, TransCode, TransSequence);
+
+
+ }
+ }
+
+
+
+
+ }
+ else if (BusinessCode == TransTypeEnum.SalesReturnBack.GetDescription())
{
//入库分批
@@ -862,12 +1245,12 @@ namespace ICSSoft.DataProject
where LotNO='{0}' AND WorkPoint='{1}'";
sql = string.Format(sql, LotNo, WorkPoint);
DataTable dtt = DBHelper.SQlReturnData(sql, cmd);
- if (dtt.Rows.Count<0||dtt==null)
+ if (dtt.Rows.Count < 0 || dtt == null)
{
throw new Exception("请使用发料条码进行退料");//条码分批后条码表存入失败!
}
LotQTYYY = Convert.ToDecimal(dtt.Rows[0]["Quantity"]);
- log.Debug("数量:"+LotQTYYY);
+ log.Debug("数量:" + LotQTYYY);
if (LotFlag == "1")
{
@@ -914,7 +1297,7 @@ namespace ICSSoft.DataProject
from ICSWareHouseLotInfo
where LotNO='{1}' AND WorkPoint='{3}'";
sql = string.Format(sql, lotstr, LotNo, Quantity, WorkPoint, LocationCode, WarehouseCode);
- log.Debug("添加库存sql:"+sql);
+ log.Debug("添加库存sql:" + sql);
cmd.CommandText = sql;
result = cmd.ExecuteNonQuery();
if (result <= 0)
@@ -928,7 +1311,7 @@ namespace ICSSoft.DataProject
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'";
- sql = string.Format(sql, LotNo, WorkPoint, User, lotstr,TransCode,TransSequence);
+ sql = string.Format(sql, LotNo, WorkPoint, User, lotstr, TransCode, TransSequence);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
{
@@ -990,9 +1373,9 @@ namespace ICSSoft.DataProject
INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
";
- sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID,LocationCode,WarehouseCode, TransCode, TransSequence);
+ sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID, LocationCode, WarehouseCode, TransCode, TransSequence);
+
-
}
}
@@ -1070,10 +1453,10 @@ namespace ICSSoft.DataProject
";
sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID, LocationCode, WarehouseCode, TransCode, TransSequence);
-
+
}
}
-
+
@@ -1143,36 +1526,37 @@ namespace ICSSoft.DataProject
}
- if (BusinessCode != TransTypeEnum.ICSOutsourcingIssueDoNegative.GetDescription())
+ if (BusinessCode != TransTypeEnum.ICSOutsourcingIssueDoNegative.GetDescription()&& BusinessCode != TransTypeEnum.MOIssueDocNegative.GetDescription()
+ && BusinessCode != TransTypeEnum.SalesReturnBack.GetDescription())
{
log.Debug("1111");
- if (BusinessCode == TransTypeEnum.MOIssueDocNegative.GetDescription())
- {
- ///添加日志
- sql = @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
- FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
- Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
- ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
- MTIME,WorkPoint,EATTRIBUTE1,LogID)
- SELECT NEWID(),'{3}','{8}','{9}',a.LotNo ,a.InvCode ,
- '','',c.WarehouseCode,c.LocationCode,'{6}',
- '','0','{4}','{5}','0','',
- '','','',f.F_Account ,f.F_RealName ,
- SYSDATETIME() ,a.WorkPoint ,'','{7}'
- FROM ICSInventoryLot a
- INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
- INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
- INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
- WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
- ";
- sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID, TransCode, TransSequence);
-
- if (!DBHelper.ExecuteNonQuery(sql, cmd))
- {
- throw new Exception(language.GetNameByCode("WMSAPIInfo166"));
- }
- }
- else if (BusinessCode == TransTypeEnum.MOStockINByProduct.GetDescription())
+ //if (BusinessCode == TransTypeEnum.MOIssueDocNegative.GetDescription())
+ //{
+ // ///添加日志
+ // sql = @"INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
+ // FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
+ // Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
+ // ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
+ // MTIME,WorkPoint,EATTRIBUTE1,LogID)
+ // SELECT NEWID(),'{3}','{8}','{9}',a.LotNo ,a.InvCode ,
+ // '','',c.WarehouseCode,c.LocationCode,'{6}',
+ // '','0','{4}','{5}','0','',
+ // '','','',f.F_Account ,f.F_RealName ,
+ // SYSDATETIME() ,a.WorkPoint ,'','{7}'
+ // FROM ICSInventoryLot a
+ // INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
+ // INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
+ // INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ // WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ // ";
+ // sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransType, BusinessCode, Quantity, LogID, TransCode, TransSequence);
+
+ // if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ // {
+ // throw new Exception(language.GetNameByCode("WMSAPIInfo166"));
+ // }
+ //}
+ if (BusinessCode == TransTypeEnum.MOStockINByProduct.GetDescription())
{
///添加日志
sql = @"IF EXISTS(SELECT 1 FROM ICSInventoryLot lot WHERE lot.LotNo='{0}' AND lot.WorkPoint='{1}' AND lot.Type=19)
@@ -2152,6 +2536,215 @@ namespace ICSSoft.DataProject
+ }
+ catch (Exception)
+ {
+ throw;
+ }
+ return lstDt;
+ }
+
+
+ ///
+ /// 减少库存(销售出库)
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static DataTable WareHouseLotInfoDownDisPatch(string Identification, string TransCode, string TransSequence, string LotNo, string Quantity, string User,
+ string WorkPoint, string TransType, string BusinessCode, SqlCommand cmd, Dictionary language, string LogID, string MergeID = "")
+ {
+ decimal LotQTYYY = 0;
+ decimal LotQTY = 0;
+ string LotEnable = "";
+ string chekEnable = "";
+ string DisPrintEnable = "";
+ string PrintEnable = "";
+ string sql = "";
+ string lotstr = "";
+ int result = 0;
+ List NewBarCodeList = new List();
+ DataTable dtLotno = new DataTable();
+ DataTable lstDt = new DataTable();
+ DataTable ZLtable = new DataTable();
+ try
+ {
+
+
+
+
+
+ //检验是否分批
+ sql = @"SELECT b.LotEnable,b.PrintEnable FROM ICSInventoryLot a
+ LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
+ where a.LotNo='{0}' and a.WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint);
+ DataTable dt = DBHelper.SQlReturnData(sql, cmd);
+ if (dt.Rows.Count == 0)
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo369"));
+ }
+ else
+ {
+ LotEnable = dt.Rows[0]["LotEnable"].ToString();
+ PrintEnable = dt.Rows[0]["PrintEnable"].ToString();
+ }
+ string cheksql = @"IF NOT EXISTS(select b.F_ItemCode as Code ,b.F_ItemName as Name,b.F_EnabledMark AS Enable ,b.F_IsDefault AS DisPrintEnable
+ from Sys_SRM_Items a
+ left join Sys_SRM_ItemsDetail b on a.F_Id=b.F_ItemId
+ where a.F_EnCode='TransBatch' and b.F_ItemCode='{0}' )
+ BEGIN
+ RAISERROR('" + language.GetNameByCode("WMSAPIInfo470") + @"',16,1);
+ RETURN
+ END
+ select b.F_ItemCode as Code ,b.F_ItemName as Name,b.F_EnabledMark AS Enable ,b.F_IsDefault AS DisPrintEnable
+ from Sys_SRM_Items a
+ left join Sys_SRM_ItemsDetail b on a.F_Id=b.F_ItemId
+ where a.F_EnCode='TransBatch' and b.F_ItemCode='{0}'
+ ";
+ cheksql = string.Format(cheksql, BusinessCode);
+ DataTable chekdt = DBHelper.SQlReturnData(cheksql, cmd);
+ if (chekdt.Rows.Count == 0)
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo369"));
+ }
+ else
+ {
+ chekEnable = chekdt.Rows[0]["Enable"].ToString();
+ DisPrintEnable = chekdt.Rows[0]["DisPrintEnable"].ToString();
+ }
+ sql = @"select Quantity from ICSWareHouseLotInfo
+ where LotNO='{0}' AND WorkPoint='{1}'";
+ sql = string.Format(sql, LotNo, WorkPoint);
+ DataTable dtt = DBHelper.SQlReturnData(sql, cmd);
+ LotQTYYY = Convert.ToDecimal(dtt.Rows[0]["Quantity"]);
+ LotQTY = Convert.ToDecimal(Quantity);
+
+
+ NewBarCodeList.Add(LotNo);
+
+ ///添加日志
+ sql = @"IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
+ BEGIN
+ RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo060"), "{2}") + @"',16,1);
+ RETURN
+ END
+
+ INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
+ FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
+ Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
+ ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
+ MTIME,WorkPoint,EATTRIBUTE1,MergeID)
+ SELECT NEWID(),'{3}','{4}','{5}',a.LotNo ,a.InvCode ,
+ c.WarehouseCode,c.LocationCode,'','','{6}',
+ '','0','{7}','{8}','0','',
+ '','','',f.F_Account ,f.F_RealName ,
+ SYSDATETIME() ,a.WorkPoint ,'','{9}'
+ FROM ICSInventoryLot a
+ INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
+ INNER JOIN Sys_SRM_User f ON f.F_Account='{2}' AND a.WorkPoint=f.F_Location
+ WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransCode, TransSequence, Quantity, TransType, BusinessCode, MergeID);
+
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo166"));
+ }
+
+ ZLtable = ICSControlModeService.GetZL();
+ if (ZLtable == null)
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo471"));
+ }
+
+ for (int i = 0; i < ZLtable.Rows.Count; i++)
+ {
+
+ string zlTransCode = ZLtable.Rows[i]["BusinessCode"].ToString();
+ string Enable = ZLtable.Rows[i]["Enable"].ToString();
+ if (zlTransCode.Equals(BusinessCode))
+ {
+ if (Enable.Equals("True"))
+ {
+ ///更新日志
+ sql = @"
+ IF NOT EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfoLog a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' and transtype='15')
+ BEGIN
+ RAISERROR('" + language.GetNameByCode("WMSAPIInfo472") + @"',16,1);
+ RETURN
+ END
+ UPDATE ICSWareHouseLotInfoLog SET EATTRIBUTE2='1' WHERE LotNo='{0}' AND WorkPoint='{1}' and transtype='15'
+
+ ";
+ sql = string.Format(sql, LotNo, WorkPoint, LogID);
+
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo168"));//"占料标识更新失败!");
+ }
+ ///更新库存
+ sql = @"UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)-'{2}',LockQuantity=ISNULL(LockQuantity,0)-'{2}' WHERE LotNo='{0}' AND WorkPoint='{1}'
+
+ IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND Quantity-LockQuantity<0)
+ BEGIN
+ RAISERROR('" + language.GetNameByCode("WMSAPIInfo167") + @"',16,1);
+ RETURN
+ END";
+ sql = string.Format(sql, LotNo, WorkPoint, Quantity);
+
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo168"));//"库存更新失败!");
+ }
+ }
+ else
+ {
+ ///更新库存
+ sql = @"UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)-'{2}' WHERE LotNo='{0}' AND WorkPoint='{1}'
+
+ IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND Quantity-LockQuantity<0)
+ BEGIN
+ RAISERROR('" + language.GetNameByCode("WMSAPIInfo167") + @"',16,1);
+ RETURN
+ END";
+ sql = string.Format(sql, LotNo, WorkPoint, Quantity);
+
+ if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ {
+ throw new Exception(language.GetNameByCode("WMSAPIInfo168"));//"库存更新失败!");
+ }
+ }
+ }
+ }
+
+ /////更新库存
+ //sql = @"UPDATE ICSWareHouseLotInfo SET Quantity=ISNULL(Quantity,0)-'{2}' WHERE LotNo='{0}' AND WorkPoint='{1}'
+
+ // IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' AND Quantity<0)
+ // BEGIN
+ // RAISERROR('" + language.GetNameByCode("WMSAPIInfo167") + @"',16,1);
+ // RETURN
+ // END";
+ //sql = string.Format(sql, LotNo, WorkPoint, Quantity);
+
+ //if (!DBHelper.ExecuteNonQuery(sql, cmd))
+ //{
+ // throw new Exception(language.GetNameByCode("WMSAPIInfo168"));//"库存更新失败!");
+ //}
+
+
+
+
+
}
catch (Exception)
{
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseService.cs
index 1ecf704..26f6506 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseService.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseService.cs
@@ -341,7 +341,7 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock006' AND a.Wor
#region ERP开立状态单据审核
//检验调拨单是否一次性发完
string sql = @"SELECT c.TransferDetailID as TADetailID,a.ToWarehouseCode+a.MUSER+a.FromWarehouseCode AS Costre,a.ToWarehouseCode AS ToWHCode,a.FromWarehouseCode AS FromWHCode,a.MUSER,'' AS FromDepCode,'' AS ToDepCode,a.TransCode AS TACode,ROW_NUMBER() OVER (ORDER BY a.ToWarehouseCode) AS Sequence,
- a.InvCode,SUM(a.Quantity) AS Quantity,0 AS Amount,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
+ a.InvCode,SUM(a.Quantity) AS Quantity,CASE inv.AmountEnable WHEN '1' THEN SUM(a.Quantity*(lot.Amount/lot.Quantity)) ELSE '0' END AS Amount,con.Enable AS UpdateTodoQuantity,conStock.Enable AS UpdateStock
,a.WorkPoint,ISNULL(ext.ProjectCode, '') AS ProjectCode,CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END AS BatchCode,ISNULL(ext.Version, '') AS Version,ISNULL(ext.Brand, '') AS Brand,
ISNULL(ext.cFree1, '') AS cFree1,ISNULL(ext.cFree2, '') AS cFree2,ISNULL(ext.cFree3, '') AS cFree3,ISNULL(ext.cFree4, '') AS cFree4,ISNULL(ext.cFree5, '') AS cFree5,ISNULL(ext.cFree6, '') AS cFree6,ISNULL(ext.cFree7, '') AS cFree7,ISNULL(ext.cFree8, '') AS cFree8,ISNULL(ext.cFree9, '') AS cFree9,ISNULL(ext.cFree10, '') AS cFree10
INTO #TempERP
@@ -355,7 +355,7 @@ INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock006' AND a.Wor
INNER JOIN ICSConfiguration con ON con.Code='Stock003' AND a.WorkPoint=con.WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock006' AND a.WorkPoint=conStock.WorkPoint
WHERE a.Identification='{0}' AND ERPUpload='0'
- GROUP BY a.ToWarehouseCode,a.MUSER,c.TransferDetailID,a.InvCode,conStock.Enable,con.Enable,a.FromWarehouseCode
+ GROUP BY inv.AmountEnable,a.ToWarehouseCode,a.MUSER,c.TransferDetailID,a.InvCode,conStock.Enable,con.Enable,a.FromWarehouseCode
,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, ''),a.TransCode
@@ -1006,7 +1006,7 @@ b.EATTRIBUTE2 as DocType,b.EATTRIBUTE4 as ClientCode,
LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.ToWarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint
INNER JOIN ICSOtherIn b ON a.TransCode=b.InCode AND a.TransSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
INNER JOIN ICSConfiguration con ON con.Code='Stock002' AND a.WorkPoint=con.WorkPoint
-INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock009' AND a.WorkPoint=conStock.WorkPoint
+INNER JOIN ICSConfiguration conStock ON conStock.Code='UpdateStock003' AND a.WorkPoint=conStock.WorkPoint
GROUP BY inv.AmountEnable,a.ToWarehouseCode,b.InCode,a.MUSER,a.InvCode,con.Enable,conStock.Enable,b.EATTRIBUTE4,b.EATTRIBUTE2
,a.WorkPoint,ISNULL(ext.ProjectCode, ''),CASE WHEN (invBat.BatchEnable IS NULL AND ISNULL(inv.BatchEnable, '0')='1') OR ISNULL(invBat.BatchEnable, '0')='1' THEN ISNULL(ext.BatchCode, '') ELSE '' END,ISNULL(ext.Version, ''),ISNULL(ext.Brand, ''),
ISNULL(ext.cFree1, ''),ISNULL(ext.cFree2, ''),ISNULL(ext.cFree3, ''),ISNULL(ext.cFree4, ''),ISNULL(ext.cFree5, ''),ISNULL(ext.cFree6, ''),ISNULL(ext.cFree7, ''),ISNULL(ext.cFree8, ''),ISNULL(ext.cFree9, ''),ISNULL(ext.cFree10, ''),b.EATTRIBUTE7,b.EATTRIBUTE1
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.Entity/BarCodeModel.cs b/ICSSoft.WMS.WebAPI/ICSSoft.Entity/BarCodeModel.cs
index 38275c5..73d6f49 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.Entity/BarCodeModel.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.Entity/BarCodeModel.cs
@@ -40,5 +40,10 @@ namespace ICSSoft.Entity
/// 盘点类型
///
public string CheckKind { get; set; }
+
+ ///
+ /// 拣配
+ ///
+ public string PickFlag { get; set; }
}
}
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.Entity/LOTStockUpCreateIModel.cs b/ICSSoft.WMS.WebAPI/ICSSoft.Entity/LOTStockUpCreateIModel.cs
index 83fbfdd..e5330e4 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.Entity/LOTStockUpCreateIModel.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.Entity/LOTStockUpCreateIModel.cs
@@ -26,10 +26,7 @@ namespace ICSSoft.Entity
/// 类型
///
public string TransType { get; set; }
- ///
- /// 条码分批
- ///
- public string LotFlag { get; set; }
+
public List detail { get; set; }
@@ -38,6 +35,10 @@ namespace ICSSoft.Entity
public class LOTStockUpCreateIModelList
{
+ ///
+ /// 条码分批
+ ///
+ public string LotFlag { get; set; }
///
/// 目标仓库
///
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.Entity/WMSSourceDocumentModel.cs b/ICSSoft.WMS.WebAPI/ICSSoft.Entity/WMSSourceDocumentModel.cs
index 8ead42a..6e207d6 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.Entity/WMSSourceDocumentModel.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.Entity/WMSSourceDocumentModel.cs
@@ -30,6 +30,11 @@ namespace ICSSoft.Entity
///
public string WorkPoint { get; set; }
+ ///
+ /// 拣配
+ ///
+ public string PickFlag { get; set; }
+
///
/// 操作人
///
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs
index e01dafc..95a5d8d 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs
@@ -774,7 +774,7 @@ namespace ICSSoft.WebAPI.Controllers
///
///
[HttpPost]
- [Route("api/LOTUpdate/Update")]
+ [Route("api/LOTUpdateAM/Create")]
public HttpResponseMessage LOTUpdateAM([FromBody] object JsonData)
{
log.Info("奥美库存调整传入值" + JsonData);
diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Web.config b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Web.config
index 37b43b9..428e9bb 100644
--- a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Web.config
+++ b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Web.config
@@ -8,13 +8,13 @@
-
+
-
+