diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs index 163312b..b2f616a 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs @@ -21483,23 +21483,7 @@ END"; sql = string.Format(sql, JsonData.LocationCode, JsonData.WorkPoint); DataTable data = DBHelper.SQlReturnData(sql, cmd); - //东辉采购入库 查库位的时候 判断仓库是否为已加的仓库 - if (DBHelper.IsU9() && JsonData.WarehouseName != null) - { - sql = @"select 1 from ICSLocation a - INNER JOIN ICSWarehouse b on a.WHID=b.ID and a.WorkPoint=b.WorkPoint - inner join (select a.f_define1 from Sys_SRM_ItemsDetail a inner join Sys_SRM_Items b on a.f_itemid = b.F_id where b.f_encode= 'NO_Warehouse') c on 1=1 - and c.f_define1 like '%'+b.warehousecode+'%' - where LocationCode = '{0}' AND a.WorkPoint='{1}' and b.Enable='1' - "; - sql = string.Format(sql, JsonData.LocationCode, JsonData.WorkPoint); - DataTable FLAG = DBHelper.SQlReturnData(sql, cmd); - - if (FLAG.Rows.Count > 0) - { - throw new Exception("采购上架不允许入此库位,请重新扫描!"); - } - } + cmd.Transaction.Commit(); return data; } @@ -24903,7 +24887,7 @@ a.ExtensionID } - public static Result AMBarCodeInformationGet(BarCodeModel JsonData) + public static Result BarCodeMsgForStockInByClientGet(BarCodeModel JsonData) { var language = LanguageHelper.GetName("WMSAPIInfo"); DataTable table = new DataTable(); @@ -24916,7 +24900,6 @@ a.ExtensionID cmd.CommandTimeout = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["TimeOut"]); try { - string ScanType = DBHelper.ScanTypeCheck(JsonData.Code, JsonData.WorkPoint, cmd); if (string.IsNullOrEmpty(JsonData.Code)) { throw new Exception(language.GetNameByCode("WMSAPIInfo005"));//"条码不能为空!" @@ -24935,1536 +24918,38 @@ a.ExtensionID } string TransType = JsonData.TransType; - string sql = ""; - string LotTypesql = ""; - string Losql = ""; - string sqlNew = ""; - string LotType = ""; - string UserName = ""; - string UName = ""; - bool iszl = false; - string zlqty = "0"; + #region SLQ - if (TransType == TransTypeEnum.LocationSeatch.GetDescription()) - { - //Losql = @"SELECT a.ID, - // con.ContainerCode, - // con.ContainerName, - // a.LotNo, - // a.InvCode, - // inv.InvName, - // inv.InvStd, - // inv.InvUnit, - // inv.LotEnable, - // {0} - // inv.AmountUnit, - // ext.ID AS ExtensionID, - // 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 AS [User], - // a.MTIME AS [MTime] - // FROM {1} - // 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}'"; - Losql = @" DECLARE @wheresql VARCHAR(MAX) - DECLARE @groupsql VARCHAR(MAX) - DECLARE @aa VARCHAR(MAX) - DECLARE @bb VARCHAR(MAX) - DECLARE @cc VARCHAR(MAX) - DECLARE @dd VARCHAR(MAX) - DECLARE @b VARCHAR(MAX) + string sql = @"IF NOT EXISTS(SELECT 1 FROM ICSInventoryLotDetailKG WHERE LotNo='{0}' AND WorkPoint='{1}') +BEGIN + RAISERROR('条码 ' + '{0}' +' 未到货',16,1) + RETURN +END - 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, - 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='{2}' - IF @bb IS not NULL - BEGIN - set @wheresql='and a.locationcode=s.locationcode and a.LocationCode=''{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, - 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, - 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, - 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 - - IF @aa IS NULL and @bb IS NULL and @cc IS NULL and @dd IS NULL - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo478") + @"',16,1) - END - ELSE - BEGIN - - set @b = - 'SELECT a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode, - inv.InvName, - inv.InvStd, - inv.InvUnit, - inv.LotEnable, - a.WarehouseCode,a.LocationCode,a.Quantity as Qty,SUM(s.sumQty) sumQty, - inv.AmountUnit, - ext.ID AS ExtensionID, - 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 AS [User], - a.MTIME AS [MTime] - FROM ICSWareHouseLotInfo a - LEFT JOIN ICSLocation b ON a.LocationCode = b.LocationCode and a.WorkPoint=b.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 (select SUM(Quantity) AS sumQty,WarehouseCode,INVCode,LocationCode,workpoint from ICSWareHouseLotInfo where quantity>0 group by WarehouseCode,INVCode,LocationCode,workpoint)s ON a.workpoint=s.workpoint and a.InvCode=s.InvCode - 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 - END - - exec(@b) - - - +SELECT + a.LotNo,inv.InvCode,inv.InvName,inv.InvStd,c.Amount,b.TransCode,b.TransSequence,b.TransQty AS Quantity,c.WHCode +FROM ICSInventoryLot a +INNER JOIN ICSInventoryLotDetailKG b ON b.LotNo=a.LotNo AND b.WorkPoint=a.WorkPoint +INNER JOIN ICSDeliveryNotice c ON c.DNCode=b.TransCode AND c.Sequence=b.TransSequence AND c.WorkPoint=b.WorkPoint +INNER JOIN ICSExtension ext ON ext.ID=a.ExtensionID AND ext.WorkPoint=a.WorkPoint +INNER JOIN ICSInventory inv ON inv.InvCode=a.InvCode AND inv.WorkPoint=a.WorkPoint +WHERE a.LotNo='{0}' AND a.WorkPoint='{1}' "; - } - else - { - if (ScanType == "LOTNO") - { - sql = @"SELECT a.ID, - con.ContainerCode, - con.ContainerName, - a.LotNo, - a.InvCode, - inv.InvName, - inv.InvStd, - inv.InvUnit, - inv.LotEnable, - {0} - inv.AmountUnit, - inv.AmountEnable, - ext.ID AS ExtensionID, - 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 AS [User], - a.MTIME AS [MTime] - FROM {1} - 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.LotNo='{2}' AND a.WorkPoint='{3}' "; - } - else - { - sql = @"SELECT a.ID, - con.ContainerCode, - con.ContainerName, - a.LotNo, - a.InvCode, - inv.InvName, - inv.InvStd, - inv.InvUnit, - {0} - inv.AmountUnit, - inv.AmountEnable, - ext.ID AS ExtensionID, - 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 AS [User], - a.MTIME AS [MTime] - FROM {1} - LEFT JOIN ICSContainerLot conlot ON a.LotNo=conlot.LotNo AND a.WorkPoint=conlot.WorkPoint - LEFT JOIN ICSBomALL bom ON bom.ID=conlot.ContainerID - 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 bom.TContainerCode='{2}' AND a.WorkPoint='{3}' "; - } - } - - - - + sql = string.Format(sql, JsonData.Code, JsonData.WorkPoint); #endregion - bool isOut = false; //出库标记 - string columns = string.Empty; //查询源头单据表的特殊列名 - string columnsLOCODE = string.Empty; - string columnsLONAME = string.Empty; - string columnsWHCODE = string.Empty; - string columnsWHNAME = string.Empty; - string tableName = string.Empty; //查询源头单据表名 - string where = string.Empty; //排序 - if (TransType == TransTypeEnum.PurchaseReceiveDoctNegative.GetDescription() //采购退货 - || TransType == TransTypeEnum.OutsourcingIssueDoc.GetDescription() //委外发料 - || TransType == TransTypeEnum.OutsourcingReturnBack.GetDescription() //委外退货 - || TransType == TransTypeEnum.MOIssueDoc.GetDescription() //生产发料 - || TransType == TransTypeEnum.SalesShipmentDoc.GetDescription() //销售出库 - || TransType == TransTypeEnum.OneStepTransferDocIn.GetDescription() //一步调拨 - || TransType == TransTypeEnum.StepTransferApplicationIn.GetDescription() //调拨申请单 - || TransType == TransTypeEnum.StepTransferDocIn.GetDescription() //调拨 - || TransType == TransTypeEnum.StepNoTransferDocIn.GetDescription() //无源头调拨 - || TransType == TransTypeEnum.TwoStepTransferDocOut.GetDescription() //两步调出 - || TransType == TransTypeEnum.OtherOutDoc.GetDescription() //其他出库 - || TransType == TransTypeEnum.Check.GetDescription() //盘点 - || TransType == TransTypeEnum.MOApply.GetDescription() //领料申请单 - || TransType == TransTypeEnum.MOReplenishment.GetDescription() //领料申请单 - || TransType == TransTypeEnum.OOApply.GetDescription() //委外领料申请单 - || TransType == TransTypeEnum.MOIssue.GetDescription() //开立材料出库单 - || TransType == TransTypeEnum.OOIssue.GetDescription() //开立委外材料出库单 - || TransType == TransTypeEnum.PurchaseReceive.GetDescription() //开立红字入库单 - || TransType == TransTypeEnum.OutsourcingReceiveDocNegative.GetDescription()//开立委外红字入库单 - || TransType == TransTypeEnum.BrrowDoc.GetDescription() //借用 - || TransType == TransTypeEnum.TransferLibrary.GetDescription() //移库 - //|| TransType == TransTypeEnum.DisassemblyDoc.GetDescription() //拆卸单(散件生成条码入库) - ) - { - isOut = true; - } - //库位查询 - if (TransType == TransTypeEnum.LocationSeatch.GetDescription()) - { - // Losql = @"" + Losql + "group by a.ID,con.ContainerCode,con.ContainerName,a.LotNo,a.InvCode,inv.InvName,inv.InvStd,inv.InvUnit,inv.LotEnable,s.WarehouseCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,s.sumQty,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 = @"s.WarehouseCode, inv.INVCODE,inv.INVNAME,inv.INVSTD,sum(a.Quantity) as Qty,s.sumQty,"; - - // tableName = @"ICSWareHouseLotInfo a - //LEFT JOIN ICSLocation b ON a.LocationCode = b.LocationCode and a.WorkPoint=b.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 - //LEFT JOIN (select SUM(Quantity) AS sumQty,WarehouseCode,INVCode from ICSWareHouseLotInfo group by WarehouseCode,INVCode)s - //ON a.INVCode=s.INVCode "; - - } - else - { - //两步调入条码 - if (TransType == TransTypeEnum.TwoStepTransferDocIn.GetDescription()) - { - if (string.IsNullOrEmpty(JsonData.TransCode)) - { - throw new Exception(language.GetNameByCode("WMSAPIInfo001"));//"单据号不能为空!" - } - if (ScanType == "LOTNO") - { - sql = @"IF NOT EXISTS(SELECT a.ID FROM ICSOtherIn Otin - INNER JOIN ICSTransfer tra ON Otin.TransferDetailID=tra.TransferDetailID AND Otin.WorkPoint=tra.WorkPoint - INNER JOIN ICSOtherOut out ON out.TransferDetailID=tra.TransferDetailID AND out.WorkPoint=tra.WorkPoint - INNER JOIN ICSWareHouseLotInfoLog log ON out.OutCode=log.TransCode AND out.Sequence=log.TransSequence AND out.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 Otin.InCode = '" + JsonData.TransCode + @"') - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo036") + @"',16,1); - RETURN - END - " + sql + "AND Otin.InCode = '" + JsonData.TransCode + @"' - GROUP BY 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, - SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - 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 AS BatchCode,"; - - tableName = @"ICSOtherIn Otin - INNER JOIN ICSTransfer tra ON Otin.TransferDetailID=tra.TransferDetailID AND Otin.WorkPoint=tra.WorkPoint - INNER JOIN ICSOtherOut out ON out.TransferDetailID=tra.TransferDetailID AND out.WorkPoint=tra.WorkPoint - INNER JOIN ICSWareHouseLotInfoLog log ON out.OutCode=log.TransCode AND out.Sequence=log.TransSequence AND out.WorkPoint=log.WorkPoint - INNER 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 - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint"; - } - else - { - sql = @"WITH ICSBomALL AS - ( - SELECT - ContainerCode AS TContainerCode, - ContainerCode AS PContainerCode, - ContainerCode AS ContainerCode, - ID, - ContainerID, - 0 AS [Level], - CAST(1 AS nvarchar(MAX)) AS SortSeq, - CAST('00001' AS nvarchar(MAX)) AS Sort - FROM ICSContainer - WHERE ContainerCode='{2}' - UNION ALL - SELECT - b.TContainerCode, - b.ContainerCode AS PContainerCode, - a.ContainerCode, - a.ID, - a.ContainerID, - b.[Level]+1 AS [Level], - CAST(b.SortSeq AS nvarchar(MAX))+'.'+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS SortSeq, - CAST(b.Sort+'.'+REPLICATE('0',5-len(row_number() over (order by a.ContainerCode)))+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS nvarchar(MAX)) AS Sort - FROM - ICSContainer a - INNER JOIN ICSBomALL b ON a.ID=b.ContainerID - ) - " + sql + "AND Otin.InCode = '" + JsonData.TransCode + @"' - GROUP BY 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, - SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - 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 AS BatchCode,"; - - tableName = @"ICSOtherIn Otin - INNER JOIN ICSTransfer tra ON Otin.TransferDetailID=tra.TransferDetailID AND Otin.WorkPoint=tra.WorkPoint - INNER JOIN ICSOtherOut out ON out.TransferDetailID=tra.TransferDetailID AND out.WorkPoint=tra.WorkPoint - INNER JOIN ICSWareHouseLotInfoLog log ON out.OutCode=log.TransCode AND out.Sequence=log.TransSequence AND out.WorkPoint=log.WorkPoint - INNER 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 - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint"; - } - - - } - //销售退货-原条码(可支持一个条码多次发货,汇总数量,目前加了限制:785-793行) - else if (TransType == TransTypeEnum.SalesReturnBack.GetDescription()) - { - if (string.IsNullOrEmpty(JsonData.TransCode)) - { - throw new Exception(language.GetNameByCode("WMSAPIInfo001"));//"单据号不能为空!" - } - if (ScanType == "LOTNO") - { - sql = @"IF NOT EXISTS(SELECT a.ID 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') - BEGIN - 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, - 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, - SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - 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 AS BatchCode,"; - - 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 - 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 - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint"; - } - else - { - sql = @"WITH ICSBomALL AS - ( - SELECT - ContainerCode AS TContainerCode, - ContainerCode AS PContainerCode, - ContainerCode AS ContainerCode, - ID, - ContainerID, - 0 AS [Level], - CAST(1 AS nvarchar(MAX)) AS SortSeq, - CAST('00001' AS nvarchar(MAX)) AS Sort - FROM ICSContainer - WHERE ContainerCode='{2}' - UNION ALL - SELECT - b.TContainerCode, - b.ContainerCode AS PContainerCode, - a.ContainerCode, - a.ID, - a.ContainerID, - b.[Level]+1 AS [Level], - CAST(b.SortSeq AS nvarchar(MAX))+'.'+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS SortSeq, - CAST(b.Sort+'.'+REPLICATE('0',5-len(row_number() over (order by a.ContainerCode)))+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS nvarchar(MAX)) AS Sort - FROM - ICSContainer a - 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, - 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, - SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - 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 AS BatchCode,"; - - 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 - 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 - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint"; - } - - } - //生产(委外)退料-原条码+新条码 - //先校验日志里面是否有原条码(同一种类型的条码只能发一次料才能原条码退,不然更新源头单据数量有问题,根据LogID判断是否原条码退回),如果没有查询新条码 - else if (TransType == TransTypeEnum.MOIssueDocNegative.GetDescription() - || TransType == TransTypeEnum.MOIssueDocNegativeApply.GetDescription() - || TransType == TransTypeEnum.MOIssueDocNegativeIssue.GetDescription() - || TransType == TransTypeEnum.ICSOutsourcingIssueDoNegative.GetDescription() - || TransType == TransTypeEnum.ICSOutsourcingIssueDoNegativeApply.GetDescription() - || TransType == TransTypeEnum.ICSOutsourcingIssueDoNegativeIssue.GetDescription()) - { - string type = "13"; - string msglanguage = "WMSAPIInfo185"; - if (TransType == TransTypeEnum.MOIssueDocNegativeApply.GetDescription()) - { - type = "14"; - msglanguage = "WMSAPIInfo186"; - } - else if (TransType == TransTypeEnum.MOIssueDocNegativeIssue.GetDescription()) - { - type = "15"; - msglanguage = "WMSAPIInfo187"; - } - else if (TransType == TransTypeEnum.ICSOutsourcingIssueDoNegative.GetDescription()) - { - type = "5"; - msglanguage = "WMSAPIInfo188"; - } - else if (TransType == TransTypeEnum.ICSOutsourcingIssueDoNegativeApply.GetDescription()) - { - type = "6"; - msglanguage = "WMSAPIInfo189"; - } - else if (TransType == TransTypeEnum.ICSOutsourcingIssueDoNegativeIssue.GetDescription()) - { - type = "7"; - msglanguage = "WMSAPIInfo190"; - } - #region 新条码 - if (ScanType == "LOTNO") - { - sqlNew = @"IF NOT EXISTS(SELECT a.ID FROM ICSInventoryLot a WHERE a.LotNo='{2}' AND a.WorkPoint='{3}') - BEGIN - RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo038"), "{2}") + @"',16,1); - RETURN - END - IF EXISTS(SELECT a.ID FROM ICSWareHouseLotInfo a WHERE a.LotNo='{2}' AND a.WorkPoint='{3}') - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo039") + @"',16,1); - RETURN - END - IF EXISTS(SELECT a.ID FROM ICSInventoryLot a - INNER JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint - LEFT JOIN ICSInspection ins ON a.LotNo=ins.LotNo AND a.WorkPoint=ins.WorkPoint - WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND (b.InvIQC='1'AND ins.LotNo IS NULL)) - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo040") + @"',16,1); - RETURN - END - IF EXISTS(SELECT a.ID FROM ICSInventoryLot a - INNER JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint - LEFT JOIN ICSInspection ins ON a.LotNo=ins.LotNo AND a.WorkPoint=ins.WorkPoint - WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND b.InvIQC='1' AND ISNULL(ins.QualifiedQuantity, 0)+ISNULL(ins.WaiveQuantity, 0)<=0) - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo533") + @"',16,1); - RETURN - END - " + sql; - - if (TransType == TransTypeEnum.MOIssueDocNegative.GetDescription() - || TransType == TransTypeEnum.MOIssueDocNegativeApply.GetDescription() - || TransType == TransTypeEnum.MOIssueDocNegativeIssue.GetDescription()) - { - columns = @"ISNULL(ins.QualifiedQuantity+ins.WaiveQuantity, a.Quantity) AS Quantity, - a.Quantity*(a.Amount/a.Quantity) AS Amount, - (select negg.WHCode from ICSMOApplyNegDetail neg - INNER JOIN ICSMOApplyNeg negg ON neg.ApplyNegCode=negg.ApplyNegCode - inner join ICSInventoryLotDetail lotdetail on neg.ApplyNegCode=lotdetail.TransCode - and neg.Sequence=lotdetail.TransSequence - where lotdetail.LotNo=a.LotNo and lotdetail.WorkPoint=a.WorkPoint) AS WHCode, - '' AS WHName, - '' AS LocationCode, - '' AS LocationName, - '' AS LogID, - ext.BatchCode AS BatchCode,"; - } - - if (TransType == TransTypeEnum.ICSOutsourcingIssueDoNegative.GetDescription() - || TransType == TransTypeEnum.ICSOutsourcingIssueDoNegativeApply.GetDescription() - || TransType == TransTypeEnum.ICSOutsourcingIssueDoNegativeIssue.GetDescription()) - { - columns = @"ISNULL(ins.QualifiedQuantity+ins.WaiveQuantity, a.Quantity) AS Quantity, - a.Quantity*(a.Amount/a.Quantity) AS Amount, - (select negg.WHCode from ICSOApplyNegDetail neg - INNER JOIN ICSOApplyNeg negg ON neg.OApplyNegCode=negg.OApplyNegCode - inner join ICSInventoryLotDetail lotdetail on neg.OApplyNegCode=lotdetail.TransCode - and neg.Sequence=lotdetail.TransSequence - where lotdetail.LotNo=a.LotNo and lotdetail.WorkPoint=a.WorkPoint) AS WHCode, - '' AS WHName, - '' AS LocationCode, - '' AS LocationName, - '' AS LogID, - ext.BatchCode AS BatchCode,"; - } - - - tableName = @"ICSInventoryLot a - INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint - LEFT JOIN ICSInspection ins ON a.LotNo=ins.LotNo AND a.WorkPoint=ins.WorkPoint"; - } - else - { - sqlNew = @"WITH ICSBomALL AS - ( - SELECT - ContainerCode AS TContainerCode, - ContainerCode AS PContainerCode, - ContainerCode AS ContainerCode, - ID, - ContainerID, - 0 AS [Level], - CAST(1 AS nvarchar(MAX)) AS SortSeq, - CAST('00001' AS nvarchar(MAX)) AS Sort - FROM ICSContainer - WHERE ContainerCode='{2}' - UNION ALL - SELECT - b.TContainerCode, - b.ContainerCode AS PContainerCode, - a.ContainerCode, - a.ID, - a.ContainerID, - b.[Level]+1 AS [Level], - CAST(b.SortSeq AS nvarchar(MAX))+'.'+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS SortSeq, - CAST(b.Sort+'.'+REPLICATE('0',5-len(row_number() over (order by a.ContainerCode)))+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS nvarchar(MAX)) AS Sort - FROM - ICSContainer a - INNER JOIN ICSBomALL b ON a.ID=b.ContainerID - ) - " + sql; - - columns = @"ISNULL(ins.QualifiedQuantity+ins.WaiveQuantity, a.Quantity) AS Quantity, - a.Quantity*(a.Amount/a.Quantity) AS Amount, - '' AS WHCode, - '' AS WHName, - '' AS LocationCode, - '' AS LocationName, - ext.BatchCode AS BatchCode,"; - - tableName = @"ICSInventoryLot a - INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint - LEFT JOIN ICSInspection ins ON a.LotNo=ins.LotNo AND a.WorkPoint=ins.WorkPoint"; - } - - sqlNew = string.Format(sqlNew, columns, tableName, JsonData.Code, JsonData.WorkPoint, zlqty); - #endregion - #region 原条码 - if (ScanType == "LOTNO") - { - sql = sql + @" AND log.BusinessCode IN('" + type + @"') GROUP BY 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 - "; - sql = @"IF EXISTS(" + sql + @") - BEGIN - " + sql + @" - END - ELSE - BEGIN - " + sqlNew + @" - 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.TransCode='{5}' AND log.TransSequence='{6}' AND log.BusinessCode='" + type + @"' - // GROUP BY log.LotNo HAVING COUNT(log.LotNo)>=2) - //BEGIN - // RAISERROR('" + string.Format(language.GetNameByCode(msglanguage), "{2}") + @"',16,1); - // RETURN - //END - //" + sql; - - columns = @"SUM(log.Quantity) AS Quantity, - SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - a.LocationCode, - loc.LocationName, - log.ID AS LogID, - 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,"; - - tableName = @"ICSWareHouseLotInfoLog log - INNER 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 - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint"; - } - else - { - sql = sql + @" AND log.BusinessCode IN('" + type + @"') GROUP BY 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 - "; - sql = @"IF EXISTS(" + sql + @") - BEGIN - " + sql + @" - END - ELSE - BEGIN - " + sqlNew + @" - END"; - sql = @"WITH ICSBomALL AS - ( - SELECT - ContainerCode AS TContainerCode, - ContainerCode AS PContainerCode, - ContainerCode AS ContainerCode, - ID, - ContainerID, - 0 AS [Level], - CAST(1 AS nvarchar(MAX)) AS SortSeq, - CAST('00001' AS nvarchar(MAX)) AS Sort - FROM ICSContainer - WHERE ContainerCode='{2}' - UNION ALL - SELECT - b.TContainerCode, - b.ContainerCode AS PContainerCode, - a.ContainerCode, - a.ID, - a.ContainerID, - b.[Level]+1 AS [Level], - CAST(b.SortSeq AS nvarchar(MAX))+'.'+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS SortSeq, - CAST(b.Sort+'.'+REPLICATE('0',5-len(row_number() over (order by a.ContainerCode)))+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS nvarchar(MAX)) AS Sort - FROM - ICSContainer a - INNER JOIN ICSBomALL b ON a.ID=b.ContainerID - ) - " + sql; - - columns = @"SUM(log.Quantity) AS Quantity, - SUM(log.Quantity*(lot.Amount/lot.Quantity)) AS Amount, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - a.LocationCode, - loc.LocationName, - log.ID AS LogID, - 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,"; - - tableName = @"ICSWareHouseLotInfoLog log - INNER 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 - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint"; - } - - #endregion - } - //分批 - else if (TransType == TransTypeEnum.LOTSplit.GetDescription() || TransType == TransTypeEnum.LOTMerge.GetDescription()) - { - sql = @"IF NOT EXISTS(SELECT a.ID FROM ICSWareHouseLotInfo a WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND a.Quantity>0) - BEGIN - RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo038"), "{2}") + @"',16,1); - RETURN - END - " + sql; - - columns = @"a.Quantity, - a.Quantity*(lot.Amount/lot.Quantity) AS Amount, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - 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 AS BatchCode, - ISNULL(split.SplitLotNo, a.LotNo+'-1') AS SplitLotNo,"; - - tableName = @"ICSWareHouseLotInfo 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 ICSWarehouse wh ON a.WarehouseCode=wh.WarehouseCode AND a.WorkPoint=wh.WorkPoint - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN (SELECT EATTRIBUTE1 AS LotNo,WorkPoint,EATTRIBUTE1+'-'+CAST((MAX(CAST(reverse(substring(reverse(LotNo),1,charindex('-',reverse(LotNo)) - 1)) AS INT))+1) AS VARCHAR) AS SplitLotNo FROM ICSInventoryLot GROUP BY EATTRIBUTE1,WorkPoint) split ON a.LotNo=split.LotNo AND a.WorkPoint=split.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint"; - } - //出库条码 - else if (isOut) - { - if (TransType == TransTypeEnum.MOIssueDoc.GetDescription() || TransType == TransTypeEnum.MOApply.GetDescription() - || TransType == TransTypeEnum.MOIssue.GetDescription() || TransType == TransTypeEnum.OutsourcingIssueDoc.GetDescription() - || TransType == TransTypeEnum.OOApply.GetDescription() || TransType == TransTypeEnum.OOIssue.GetDescription() - || TransType == TransTypeEnum.SalesShipmentDoc.GetDescription() || TransType == TransTypeEnum.OtherOutDoc.GetDescription() - || TransType == TransTypeEnum.BrrowDoc.GetDescription() || TransType == TransTypeEnum.StepTransferDocIn.GetDescription() - || TransType == TransTypeEnum.TwoStepTransferDocOut.GetDescription() || TransType == TransTypeEnum.MOReplenishment.GetDescription()) - { - string uersql = @"SELECT F_RealName from Sys_SRM_User where F_Account='{0}' AND F_Location='{1}' - "; - uersql = string.Format(uersql, JsonData.User, JsonData.WorkPoint); - DataTable dt = DBHelper.SQlReturnData(uersql, cmd); - if (dt.Rows.Count == 0) - { - throw new Exception(language.GetNameByCode("WMSAPIInfo369")); - } - else - { - UserName = dt.Rows[0]["F_RealName"].ToString(); - } - UName = UserName.Substring(0, 2); - switch (UName) - { - case "L1": - UName = "021"; - break; - case "L2": - UName = "022"; - break; - case "L3": - UName = "023"; - break; - case "L4": - UName = "024"; - break; - case "L5": - UName = "025"; - break; - case "L6": - UName = "026"; - break; - case "L7": - UName = "025"; - break; - case "C1": - UName = "004"; - break; - } - - ZLtable = ICSControlModeService.GetZL(); - if (ZLtable == null) - { - throw new Exception(language.GetNameByCode("WMSAPIInfo471")); - } - - for (int i = 0; i < ZLtable.Rows.Count; i++) - { - - string zlName = ZLtable.Rows[i]["Name"].ToString(); - string zlTransCode = ZLtable.Rows[i]["BusinessCode"].ToString(); - string Enable = ZLtable.Rows[i]["Enable"].ToString(); - if (JsonData.TransType.Equals(zlName)) - { - if (Enable.Equals("True")) - { - string zlsql = @"IF NOT EXISTS(select a.Quantity,c.Name from ICSWareHouseLotInfoLog a - left join ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and a.InvCode=b.InvCode - left join ICSType c on a.BusinessCode=c.Code and c.tablecode='ICSWareHouseLotInfoLog' and c.ColumnCode='BusinessCode' - where b.LotNo='{0}' and b.WorkPoint='{1}' and a.TransType='15' and c.name='{2}' and (a.TransCode='{3}' or a.MergeID='{3}')) - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo469") + @"',16,1); - RETURN - END - select SUM(a.Quantity) AS Quantity from ICSWareHouseLotInfoLog a - left join ICSInventoryLot b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and a.InvCode=b.InvCode - --left join ICSType c on a.BusinessCode=c.Code and c.tablecode='ICSWareHouseLotInfoLog' and c.ColumnCode='BusinessCode' - where b.LotNo='{0}' and b.WorkPoint='{1}' and a.TransType='15' and c.name='{2}' and (a.TransCode='{3}' or a.MergeID='{3}')"; - zlsql = string.Format(zlsql, JsonData.Code, JsonData.WorkPoint, JsonData.TransType, JsonData.TransCode); - DataTable zlltable = DBHelper.SQlReturnData(zlsql, cmd); - if (zlltable != null || zlltable.Rows.Count > 0) - { - - zlqty = zlltable.Rows[0]["Quantity"].ToString(); - iszl = true; - } - } - } - } - } - - - if (ScanType == "LOTNO") - { - if (TransType == TransTypeEnum.MOIssueDoc.GetDescription()) - { - sql = @"IF NOT EXISTS(SELECT a.ID FROM ICSWareHouseLotInfo a WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND a.Quantity>0) - BEGIN - RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo038"), "{2}") + @"',16,1); - RETURN - END - IF NOT EXISTS(SELECT a.ID FROM ICSWareHouseLotInfo a WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND a.Quantity>0 AND a.WareHouseCode='{5}') - BEGIN - RAISERROR('登录人员产线与目标仓库不一致,请确认!',16,1) - RETURN - END - " + sql; - } - - - if (iszl) - { - 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, - lot.ProductDate, - 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 - 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 = @"(a.Quantity-a.lockQuantity) AS Quantity, - (a.Quantity-a.lockQuantity)*(lot.Amount/lot.Quantity) AS Amount, - '' AS LogID, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - inv.LotEnable, - a.LocationCode, - lot.ProductDate, - 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,"; - - tableName = @"ICSWareHouseLotInfo 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 ICSWarehouse wh ON a.WarehouseCode=wh.WarehouseCode AND a.WorkPoint=wh.WorkPoint - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint"; - } - - - - } - else - { - sql = @" - WITH ICSBomALL AS - ( - SELECT - ContainerCode AS TContainerCode, - ContainerCode AS PContainerCode, - ContainerCode AS ContainerCode, - ID, - ContainerID, - 0 AS [Level], - CAST(1 AS nvarchar(MAX)) AS SortSeq, - CAST('00001' AS nvarchar(MAX)) AS Sort - FROM ICSContainer - WHERE ContainerCode='{2}' - UNION ALL - SELECT - b.TContainerCode, - b.ContainerCode AS PContainerCode, - a.ContainerCode, - a.ID, - a.ContainerID, - b.[Level]+1 AS [Level], - CAST(b.SortSeq AS nvarchar(MAX))+'.'+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS SortSeq, - CAST(b.Sort+'.'+REPLICATE('0',5-len(row_number() over (order by a.ContainerCode)))+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS nvarchar(MAX)) AS Sort - FROM - ICSContainer a - INNER JOIN ICSBomALL b ON a.ID=b.ContainerID - ) - " + sql; - - columns = @"(a.Quantity-a.lockQuantity) AS Quantity, - (a.Quantity-a.lockQuantity)*(lot.Amount/lot.Quantity) AS Amount, - a.WarehouseCode AS WHCode, - wh.WarehouseName AS WHName, - a.LocationCode, - lot.ProductDate, - 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,"; - - tableName = @"ICSWareHouseLotInfo 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 ICSWarehouse wh ON a.WarehouseCode=wh.WarehouseCode AND a.WorkPoint=wh.WorkPoint - INNER JOIN ICSLocation loc ON a.LocationCode=loc.LocationCode AND a.WorkPoint=loc.WorkPoint - LEFT JOIN ICSInventoryBatchEnable invBat ON a.InvCode=invBat.InvCode AND a.WarehouseCode=invBat.WHCode AND a.WorkPoint=invBat.WorkPoint - "; - } - - - } - //入库条码 - else - { - - if (ScanType == "LOTNO") - { - - if (TransType == TransTypeEnum.PurchaseReceiveDoc.GetDescription() || TransType == TransTypeEnum.DeliveryNotice.GetDescription() - || TransType == TransTypeEnum.OutsourcingReceiveDoc.GetDescription() || TransType == TransTypeEnum.ODeliveryNotice.GetDescription() - || TransType == TransTypeEnum.ManufactureReceiveDoc.GetDescription() || TransType == TransTypeEnum.ManufactureReceive.GetDescription() - || TransType == TransTypeEnum.UnqualifiedIN.GetDescription() || TransType == TransTypeEnum.MOStockINByProduct.GetDescription() - || TransType == TransTypeEnum.OOStockINByProduct.GetDescription()) - { - //联产品入库(有来源单据)不可扫入无来源条码 - if (TransType == TransTypeEnum.MOStockINByProduct.GetDescription()) - { - sql = @" - IF EXISTS(SELECT a.ID FROM ICSInventoryLot a WHERE a.LotNo = '{2}' AND a.WorkPoint = '{3}' AND a.Type = 19 ) - BEGIN - RAISERROR('当前扫描的是无来源条码', 16, 1); - RETURN; - END - " + sql; - } - sql = @" - IF NOT EXISTS(SELECT a.ID FROM ICSInventoryLot a WHERE a.LotNo = '{2}' AND a.WorkPoint = '{3}') - BEGIN - - RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo038"), "{2}") + @"', 16, 1); - RETURN - END - IF EXISTS(SELECT a.ID FROM ICSWareHouseLotInfo a WHERE a.LotNo='{2}' AND a.WorkPoint='{3}') - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo039") + @"',16,1); - RETURN - END - IF EXISTS(SELECT a.ID FROM ICSInventoryLot a - INNER JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint - LEFT JOIN ICSInspection ins ON a.LotNo=ins.LotNo AND a.WorkPoint=ins.WorkPoint - WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND (b.InvIQC='1' AND ins.LotNo IS NULL)) - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo040") + @"',16,1); - RETURN - END - IF EXISTS(SELECT a.ID FROM ICSInventoryLot a - INNER JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint - LEFT JOIN ICSInspection ins ON a.LotNo=ins.LotNo AND a.WorkPoint=ins.WorkPoint - WHERE a.LotNo='{2}' AND a.WorkPoint='{3}' AND b.InvIQC='1' AND ISNULL(ins.QualifiedQuantity, 0)+ISNULL(ins.WaiveQuantity, 0)<=0) - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo533") + @"',16,1); - RETURN - END - " + sql; - } - else - { - sql = @" - IF NOT EXISTS(SELECT a.ID FROM ICSInventoryLot a WHERE a.LotNo = '{2}' AND a.WorkPoint = '{3}') - BEGIN - - RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo038"), "{2}") + @"', 16, 1); - RETURN - END - IF EXISTS(SELECT a.ID FROM ICSWareHouseLotInfo a WHERE a.LotNo='{2}' AND a.WorkPoint='{3}') - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo039") + @"',16,1); - RETURN - END - " + sql; - } - - - - - ControlMode mode = ICSControlModeService.GetSuLocation(); - - //获取条码类型 - LotTypesql = @"IF NOT EXISTS(SELECT Type FROM ICSInventoryLot WHERE LotNo='{0}' AND WorkPoint='{1}') - BEGIN - RAISERROR('" + language.GetNameByCode("WMSAPIInfo461") + @"',16,1); - RETURN - END - SELECT Type FROM ICSInventoryLot WHERE LotNo='{0}' AND WorkPoint='{1}'"; - LotTypesql = string.Format(LotTypesql, JsonData.Code, JsonData.WorkPoint); - DataTable dt = DBHelper.SQlReturnData(LotTypesql, cmd); - if (dt != null && dt.Rows.Count > 0) - { - LotType = dt.Rows[0]["Type"].ToString(); - } - - if (mode != null) - { - if (mode.itemCode.Equals("LocationRemind01"))//固定库位:物料和库位绑定,显示库位名称列表 - { - columnsLONAME = @" - (SELECT locat.LocationName from ICSWareHouseLotInfo loinfo - LEFT JOIN ICSLocation locat on locat.LocationCode=loinfo.LocationCode and loinfo.WorkPoint=locat.WorkPoint - where loinfo.lotno=a.lotno and loinfo.invcode=a.invcode and a.WorkPoint=loinfo.WorkPoint) AS LocationName,"; - - columnsLOCODE = @" - (SELECT locat.LocationCode from ICSWareHouseLotInfo loinfo - LEFT JOIN ICSLocation locat on locat.LocationCode=loinfo.LocationCode and loinfo.WorkPoint=locat.WorkPoint - where loinfo.lotno=a.lotno and loinfo.invcode=a.invcode and a.WorkPoint=loinfo.WorkPoint) AS LocationCode,"; - - } - else if (mode.itemCode.Equals("LocationRemind02"))//在库库位:物料有库存的对应库位,显示库位名称列表 - { - columnsLONAME = @" - STUFF( - (SELECT DISTINCT ',' + LocationName - from ICSLocation wh - LEFT JOIN ICSWareHouseLotInfo lotinfo on wh.LocationCode=lotinfo.LocationCode and wh.WorkPoint=lotinfo.WorkPoint - WHERE a.InvCode=lotinfo.InvCode AND a.WorkPoint=lotinfo.WorkPoint and lotinfo.Quantity>0 - FOR xml path('') - ),1,1,'' - ) AS LocationName,"; - - columnsLOCODE = @" - STUFF( - (SELECT DISTINCT ',' + LocationCode - from ICSLocation wh - LEFT JOIN ICSWareHouseLotInfo lotinfo on wh.LocationCode=lotinfo.LocationCode and wh.WorkPoint=lotinfo.WorkPoint - WHERE a.InvCode=lotinfo.InvCode AND a.WorkPoint=lotinfo.WorkPoint and lotinfo.Quantity>0 - FOR xml path('') - ),1,1,'' - ) AS LocationCode,"; - } - else if (mode.itemCode.Equals("LocationRemind03"))//最近一次出入库的库位,显示库位名称 - { - columnsLONAME = @" - (SELECT Top 1 locat.LocationName from ICSWareHouseLotInfoLog log - LEFT JOIN ICSLocation locat on locat.LocationCode=log.ToLocationCode and log.WorkPoint=locat.WorkPoint where log.TransType='2' and a.InvCode=log.InvCode AND a.WorkPoint=log.WorkPoint - ORDER BY log.Mtime desc) AS LocationName,"; - - columnsLOCODE = @" - (SELECT Top 1 locat.LocationCode from ICSWareHouseLotInfoLog log - LEFT JOIN ICSLocation locat on locat.LocationCode=log.ToLocationCode and log.WorkPoint=locat.WorkPoint where log.TransType='2' and a.InvCode=log.InvCode AND a.WorkPoint=log.WorkPoint - ORDER BY log.Mtime desc) AS LocationCode,"; - } - - } - else - { - columnsLONAME = @" - STUFF( - (SELECT DISTINCT ',' + LocationName - from ICSLocation wh - LEFT JOIN ICSWareHouseLotInfoLog lotinfo on wh.LocationCode=lotinfo.ToLocationCode and wh.WorkPoint=lotinfo.WorkPoint - WHERE a.InvCode=lotinfo.InvCode AND a.WorkPoint=lotinfo.WorkPoint and (lotinfo.TransType='2' OR lotinfo.TransType='3') - FOR xml path('') - ),1,1,'' - ) AS LocationName,"; - columnsLOCODE = @" - STUFF( - (SELECT DISTINCT ',' + LocationCode - from ICSLocation wh - LEFT JOIN ICSWareHouseLotInfoLog lotinfo on wh.LocationCode=lotinfo.ToLocationCode and wh.WorkPoint=lotinfo.WorkPoint - WHERE a.InvCode=lotinfo.InvCode AND a.WorkPoint=lotinfo.WorkPoint and (lotinfo.TransType='2' OR lotinfo.TransType='3') - FOR xml path('') - ),1,1,'' - ) AS LocationCode,"; - - } - - #region 根据条码类型找到单据仓库信息 - if (LotType.Equals("1")) - {//生产退料 - columnsWHCODE = @"ISNULL((SELECT negg.WHCODE FROM ICSMOApplyNegDetail neg LEFT JOIN ICSMOApplyNeg negg ON neg.ApplyNegCode=negg.ApplyNegCode - WHERE lotdd.TransCode=neg.ApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='1'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT negg.WHCODE FROM ICSMOApplyNegDetail neg LEFT JOIN ICSMOApplyNeg negg ON neg.ApplyNegCode=negg.ApplyNegCode - WHERE lotdd.TransCode=neg.ApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='1') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("2")) - {//委外退料 - columnsWHCODE = @"ISNULL((SELECT negg.WHCODE FROM ICSOApplyNegDetail neg LEFT JOIN ICSOApplyNeg negg ON neg.OApplyNegCode=negg.OApplyNegCode - WHERE lotdd.TransCode=neg.OApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='1'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT negg.WHCODE FROM ICSOApplyNegDetail neg LEFT JOIN ICSOApplyNeg negg ON neg.OApplyNegCode=negg.OApplyNegCode - WHERE lotdd.TransCode=neg.OApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='1') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("3")) - {//工单 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSMO a WHERE a.MOCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSMO a WHERE a.MOCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint) AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("4")) - {//销售退货 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSSDN a WHERE a.SDNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSSDN a WHERE a.SDNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint) AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("5")) - {//其他入库 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSOtherIn a WHERE a.InCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSOtherIn a WHERE a.InCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint) AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("6")) - {//归还单 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSReturn a WHERE a.ReturnCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSReturn a WHERE a.ReturnCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint) AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("7")) - {//采购到货单 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSDeliveryNotice a WHERE a.DNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint AND a.DNType='1'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSDeliveryNotice a WHERE a.DNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint AND a.DNType='1') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("8")) - {//委外到货单 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSODeliveryNotice a WHERE a.ODNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint and a.ODNType='1'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSODeliveryNotice a WHERE a.ODNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint and a.ODNType='1') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("9")) - {//成品入库单 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSManufactureReceive a WHERE a.RCVCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSManufactureReceive a WHERE a.RCVCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint) AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("10")) - {//拒收单 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSDeliveryNotice a WHERE a.DNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint AND a.DNType='3'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSDeliveryNotice a WHERE a.DNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint AND a.DNType='3') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("11")) - {//委外拒收单 - columnsWHCODE = @"ISNULL((SELECT a.WHCode FROM ICSODeliveryNotice a WHERE a.ODNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint and a.ODNType='3'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT a.WHCode FROM ICSODeliveryNotice a WHERE a.ODNCode=lotdd.TransCode AND a.Sequence=lotdd.TransSequence AND a.WorkPoint=lotdd.WorkPoint and a.ODNType='3') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("12")) - {//领料申请退料 - columnsWHCODE = @"ISNULL((SELECT negg.WHCODE FROM ICSMOApplyNegDetail neg LEFT JOIN ICSMOApplyNeg negg ON neg.ApplyNegCode=negg.ApplyNegCode - WHERE lotdd.TransCode=neg.ApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='2'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT negg.WHCODE FROM ICSMOApplyNegDetail neg LEFT JOIN ICSMOApplyNeg negg ON neg.ApplyNegCode=negg.ApplyNegCode - WHERE lotdd.TransCode=neg.ApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='2') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("13")) - {//材料出库退料 - columnsWHCODE = @"ISNULL((SELECT negg.WHCODE FROM ICSMOApplyNegDetail neg LEFT JOIN ICSMOApplyNeg negg ON neg.ApplyNegCode=negg.ApplyNegCode - WHERE lotdd.TransCode=neg.ApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='3'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT negg.WHCODE FROM ICSMOApplyNegDetail neg LEFT JOIN ICSMOApplyNeg negg ON neg.ApplyNegCode=negg.ApplyNegCode - WHERE lotdd.TransCode=neg.ApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='3') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("14")) - {//委外领料申请退料 - columnsWHCODE = @"ISNULL((SELECT negg.WHCODE FROM ICSOApplyNegDetail neg LEFT JOIN ICSOApplyNeg negg ON neg.OApplyNegCode=negg.OApplyNegCode - WHERE lotdd.TransCode=neg.OApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='2'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT negg.WHCODE FROM ICSOApplyNegDetail neg LEFT JOIN ICSOApplyNeg negg ON neg.OApplyNegCode=negg.OApplyNegCode - WHERE lotdd.TransCode=neg.OApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='2') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("15")) - {//委外材料出库退料 - columnsWHCODE = @"ISNULL((SELECT negg.WHCODE FROM ICSOApplyNegDetail neg LEFT JOIN ICSOApplyNeg negg ON neg.OApplyNegCode=negg.OApplyNegCode - WHERE lotdd.TransCode=neg.OApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='3'),'') AS WHCode"; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT negg.WHCODE FROM ICSOApplyNegDetail neg LEFT JOIN ICSOApplyNeg negg ON neg.OApplyNegCode=negg.OApplyNegCode - WHERE lotdd.TransCode=neg.OApplyNegCode AND lotdd.TransSequence=neg.Sequence AND lotdd.WorkPoint=neg.WorkPoint and negg.Type='3') AND WorkPoint=a.WorkPoint),'') AS WHName"; - } - else if (LotType.Equals("16")) - {//返工工单 - columnsWHCODE = @"ISNULL((SELECT pick.WHCode FROM ICSMOPick pick LEFT JOIN ICSMO moo ON pick.MODetailID=moo.MODetailID AND pick.WorkPoint=moo.WorkPoint - WHERE moo.MOCode=lotdd.TransCode AND pick.Sequence=lotdd.TransSequence AND pick.WorkPoint=lotdd.WorkPoint),'') AS WHCode "; - columnsWHNAME = @"ISNULL((SELECT WarehouseName from ICSWareHouse where WarehouseCode in (SELECT pick.WHCode FROM ICSMOPick pick LEFT JOIN ICSMO moo ON pick.MODetailID=moo.MODetailID AND pick.WorkPoint=moo.WorkPoint - WHERE moo.MOCode=lotdd.TransCode AND pick.Sequence=lotdd.TransSequence AND pick.WorkPoint=lotdd.WorkPoint) AND WorkPoint=a.WorkPoint),'') AS WHName "; - } - else - { - columnsWHCODE = @"'' AS WHCode"; - columnsWHNAME = @"'' AS WHName"; - } - #endregion - - if (TransType == TransTypeEnum.PurchaseReceiveDoc.GetDescription() || TransType == TransTypeEnum.DeliveryNotice.GetDescription() - || TransType == TransTypeEnum.OutsourcingReceiveDoc.GetDescription() || TransType == TransTypeEnum.ODeliveryNotice.GetDescription() - || TransType == TransTypeEnum.ManufactureReceiveDoc.GetDescription() || TransType == TransTypeEnum.ManufactureReceive.GetDescription() - || TransType == TransTypeEnum.UnqualifiedIN.GetDescription() || TransType == TransTypeEnum.MOStockINByProduct.GetDescription() - || TransType == TransTypeEnum.OOStockINByProduct.GetDescription()) - { - columns = @"ISNULL(ins.QualifiedQuantity+ins.WaiveQuantity, a.Quantity) AS Quantity, - a.Quantity*(a.Amount/a.Quantity) AS Amount, - {0},{2}, - lotdd.TransCode,lotdd.TransSequence, - {3} - {1} - ext.BatchCode AS BatchCode,"; - - tableName = @"ICSInventoryLot a - INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint - LEFT JOIN ICSInventoryLotDetail lotdd ON lotdd.LotNo=a.LotNo AND a.WorkPoint=lotdd.WorkPoint - LEFT JOIN ICSInspection ins ON a.LotNo=ins.LotNo AND a.WorkPoint=ins.WorkPoint"; - } - else - { - columns = @"a.Quantity AS Quantity, - a.Quantity*(a.Amount/a.Quantity) AS Amount, - {0},{2}, - {3} - {1} - ext.BatchCode AS BatchCode,"; - - tableName = @"ICSInventoryLot a - INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint - LEFT JOIN ICSInventoryLotDetail lotdd ON lotdd.LotNo=a.LotNo AND a.WorkPoint=lotdd.WorkPoint"; - } - - - - columns = string.Format(columns, columnsWHCODE, columnsLONAME, columnsWHNAME, columnsLOCODE); - - - } - else - { - sql = @" - WITH ICSBomALL AS - ( - SELECT - ContainerCode AS TContainerCode, - ContainerCode AS PContainerCode, - ContainerCode AS ContainerCode, - ID, - ContainerID, - 0 AS [Level], - CAST(1 AS nvarchar(MAX)) AS SortSeq, - CAST('00001' AS nvarchar(MAX)) AS Sort - FROM ICSContainer - WHERE ContainerCode='{2}' - UNION ALL - SELECT - b.TContainerCode, - b.ContainerCode AS PContainerCode, - a.ContainerCode, - a.ID, - a.ContainerID, - b.[Level]+1 AS [Level], - CAST(b.SortSeq AS nvarchar(MAX))+'.'+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS SortSeq, - CAST(b.Sort+'.'+REPLICATE('0',5-len(row_number() over (order by a.ContainerCode)))+CAST(row_number() over (order by a.ContainerCode) AS nvarchar(MAX)) AS nvarchar(MAX)) AS Sort - FROM - ICSContainer a - INNER JOIN ICSBomALL b ON a.ID=b.ContainerID - ) - " + sql; - - if (TransType == TransTypeEnum.PurchaseReceiveDoc.GetDescription() || TransType == TransTypeEnum.DeliveryNotice.GetDescription() - || TransType == TransTypeEnum.OutsourcingReceiveDoc.GetDescription() || TransType == TransTypeEnum.ODeliveryNotice.GetDescription() - || TransType == TransTypeEnum.ManufactureReceiveDoc.GetDescription() || TransType == TransTypeEnum.ManufactureReceive.GetDescription() - || TransType == TransTypeEnum.UnqualifiedIN.GetDescription() || TransType == TransTypeEnum.MOStockINByProduct.GetDescription() - || TransType == TransTypeEnum.OOStockINByProduct.GetDescription()) - { - columns = @"ISNULL(ins.QualifiedQuantity+ins.WaiveQuantity, a.Quantity) AS Quantity, - a.Quantity*(a.Amount/a.Quantity) AS Amount, - '' AS WHCode, - '' AS WHName, - '' AS LocationCode, - '' AS LocationName, - ext.BatchCode AS BatchCode,"; - - tableName = @"ICSInventoryLot a - INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint - LEFT JOIN ICSInspection ins ON a.LotNo=ins.LotNo AND a.WorkPoint=ins.WorkPoint"; - } - else - { - columns = @"a.Quantity AS Quantity, - a.Quantity*(a.Amount/a.Quantity) AS Amount, - '' AS WHCode, - '' AS WHName, - '' AS LocationCode, - '' AS LocationName, - ext.BatchCode AS BatchCode,"; - - tableName = @"ICSInventoryLot a - INNER JOIN ICSExtension ext ON a.ExtensionID=ext.ID AND a.WorkPoint=ext.WorkPoint"; - } - - } - - } - } - - - if (TransType != TransTypeEnum.LocationSeatch.GetDescription()) - { - if (string.IsNullOrWhiteSpace(columns) || string.IsNullOrWhiteSpace(tableName)) - throw new Exception(language.GetNameByCode("WMSAPIInfo003")); - } - - - if (TransType == TransTypeEnum.LocationSeatch.GetDescription()) - { - Losql = string.Format(Losql, columns, tableName, JsonData.Code, JsonData.WorkPoint); - - table = DBHelper.SQlReturnData(Losql, cmd); - } - else - { - sql = string.Format(sql, columns, tableName, JsonData.Code, JsonData.WorkPoint, zlqty, UName, JsonData.TransCode, JsonData.TransSequence); - table = DBHelper.SQlReturnData(sql, cmd); - } + sql = string.Format(sql); + table = DBHelper.SQlReturnData(sql, cmd); if (table == null || table.Rows.Count <= 0) throw new Exception(language.GetNameByCode("WMSAPIInfo008"));//"未查询到条码数据!" - - #region 出库检验是否符合源头单据 - - string msg = string.Empty; - bool isLimit = false; - string sqlCheckSign = @"select F_EnabledMark from Sys_SRM_Items where F_EnCode = 'OutWithLocationCode' and F_EnabledMark = '1'"; - DataTable flag = DBHelper.SQlReturnData(sqlCheckSign, cmd); - if (isOut) // && TransType != TransTypeEnum.LOTSplit.GetDescription() - {//&& TransType != TransTypeEnum.TransferLibrary.GetDescription() - string Lot = ""; - string workP = ""; - if (TransType == TransTypeEnum.TransferLibrary.GetDescription()) - { - foreach (DataRow drLot in table.Rows) - { - Lot = drLot["LotNo"].ToString(); - sql = @"SELECT WarehouseCode FROM ICSWareHouseLotInfo a WHERE LotNo='{0}' AND WorkPoint='{1}'"; - sql = string.Format(sql, Lot, JsonData.WorkPoint); - DataTable dt = DBHelper.SQlReturnData(sql, cmd); - if (dt == null || dt.Rows.Count <= 0) - { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo171"), Lot)); - } - string whcode = dt.Rows[0]["WarehouseCode"].ToString(); - if (!JsonData.WHCode.Equals(whcode)) - { - throw new Exception(string.Format(language.GetNameByCode("WMSAPIInfo395"), JsonData.WHCode, whcode)); - } - } - - } - else if (TransType != TransTypeEnum.LocationSeatch.GetDescription() && TransType != TransTypeEnum.StepNoTransferDocIn.GetDescription()) - { - - if (string.IsNullOrEmpty(JsonData.TransCode)) - { - throw new Exception(language.GetNameByCode("WMSAPIInfo001"));//"单据号不能为空!" - } - WMSSourceDocumentModel model = new WMSSourceDocumentModel(); - model.TransCode = JsonData.TransCode; - model.TransSequence = JsonData.TransSequence; - model.TransType = JsonData.TransType; - model.WorkPoint = JsonData.WorkPoint; - model.User = JsonData.User; - DataTable TransData = AMTransInformationGet(model); - DataView dataView = TransData.DefaultView; - foreach (DataRow drLot in table.Rows) - { - Lot = drLot["LotNo"].ToString(); - //盘点不需要对比以下属性 - if (TransType == TransTypeEnum.Check.GetDescription()) - continue; - - string rowFilter = "InvCode='" + drLot["InvCode"] + "'"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo041"), Lot, drLot["InvCode"])); - if (TransType != TransTypeEnum.MOIssueDoc.GetDescription()) - { - rowFilter += " AND (LEN(ISNULL(WHCode,''))<=0 OR (LEN(ISNULL(WHCode,''))>0 AND WHCode='" + drLot["WHCode"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo042"), Lot, drLot["WHCode"])); - } - - - rowFilter += " AND (LEN(ISNULL(ProjectCode,''))<=0 OR (LEN(ISNULL(ProjectCode,''))>0 AND ProjectCode='" + drLot["ProjectCode"] + "'))"; - - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["ProjectCode"], GetExtentionName("ProjectCode", JsonData.WorkPoint, cmd, language))); - - rowFilter += "AND (LEN(ISNULL(BatchCode,''))<=0 OR (LEN(ISNULL(BatchCode,''))>0 AND BatchCode='" + drLot["BatchCode"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["BatchCode"], GetExtentionName("BatchCode", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(Version,''))<=0 OR (LEN(ISNULL(Version,''))>0 AND Version='" + drLot["Version"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["Version"], GetExtentionName("Version", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(Brand,''))<=0 OR (LEN(ISNULL(Brand,''))>0 AND Brand='" + drLot["Brand"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["Brand"], GetExtentionName("Brand", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree1,''))<=0 OR (LEN(ISNULL(cFree1,''))>0 AND cFree1='" + drLot["cFree1"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree1"], GetExtentionName("cFree1", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree2,''))<=0 OR (LEN(ISNULL(cFree2,''))>0 AND cFree2='" + drLot["cFree2"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree2"], GetExtentionName("cFree2", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree3,''))<=0 OR (LEN(ISNULL(cFree3,''))>0 AND cFree3='" + drLot["cFree3"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree3"], GetExtentionName("cFree3", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree4,''))<=0 OR (LEN(ISNULL(cFree4,''))>0 AND cFree4='" + drLot["cFree4"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree4"], GetExtentionName("cFree4", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree5,''))<=0 OR (LEN(ISNULL(cFree5,''))>0 AND cFree5='" + drLot["cFree5"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree5"], GetExtentionName("cFree5", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree6,''))<=0 OR (LEN(ISNULL(cFree6,''))>0 AND cFree6='" + drLot["cFree6"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree6"], GetExtentionName("cFree6", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree7,''))<=0 OR (LEN(ISNULL(cFree7,''))>0 AND cFree7='" + drLot["cFree7"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree7"], GetExtentionName("cFree7", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree8,''))<=0 OR (LEN(ISNULL(cFree8,''))>0 AND cFree8='" + drLot["cFree8"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree8"], GetExtentionName("cFree8", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree9,''))<=0 OR (LEN(ISNULL(cFree9,''))>0 AND cFree9='" + drLot["cFree9"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree9"], GetExtentionName("cFree9", JsonData.WorkPoint, cmd, language))); - rowFilter += "AND (LEN(ISNULL(cFree10,''))<=0 OR (LEN(ISNULL(cFree10,''))>0 AND cFree10='" + drLot["cFree10"] + "'))"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo500"), Lot, drLot["cFree10"], GetExtentionName("cFree10", JsonData.WorkPoint, cmd, language))); - if (flag != null && flag.Rows.Count > 0) - { - rowFilter += " AND LocationCode='" + drLot["LocationCode"] + "'"; - CheckTrans(dataView, rowFilter, string.Format(language.GetNameByCode("WMSAPIInfo042"), Lot, drLot["LocationCode"])); - } - - //保质期管理 - var resultEffective = Effective(Lot, JsonData.WorkPoint, JsonData.TransType, cmd, language); - //0 - 已经是最早的批次 - //1 - 不管控 - //2 - 提醒 - //3 - 限制 - if (resultEffective == "2") - { - msg += string.Format(language.GetNameByCode("WMSAPIInfo181"), Lot) + Environment.NewLine; - } - else if (resultEffective == "3") - { - msg += string.Format(language.GetNameByCode("WMSAPIInfo182"), Lot) + Environment.NewLine; - isLimit = true; - } - - string rowFilternew = rowFilter + " AND LEN(ISNULL(ProjectCode,''))>0"; - string sqlnew = CheckTransnew(dataView, rowFilternew, "ProjectCode"); - rowFilternew = rowFilter + " AND LEN(ISNULL(BatchCode,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "BatchCode"); - rowFilternew = rowFilter + " AND LEN(ISNULL(Version,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "Version"); - rowFilternew = rowFilter + " AND LEN(ISNULL(Brand,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "Brand"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree1,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree1"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree2,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree2"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree3,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree3"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree4,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree4"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree5,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree5"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree6,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree6"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree7,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree7"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree8,''))>0 "; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree8"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree9,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree9"); - rowFilternew = rowFilter + " AND LEN(ISNULL(cFree10,''))>0"; - sqlnew += CheckTransnew(dataView, rowFilternew, "cFree10"); - - - - //先进先出判断 - var result = CanOut(Lot, JsonData.WorkPoint, JsonData.ScanLotCode, sqlnew, JsonData.TransType, cmd, language); - //0 - 已经是最早的批次 - //1 - 不管控 - //2 - 提醒 - //3 - 限制 - if (result == "2") - { - msg += string.Format(language.GetNameByCode("WMSAPIInfo178"), Lot) + Environment.NewLine; - } - else if (result == "3") - { - msg += string.Format(language.GetNameByCode("WMSAPIInfo179"), Lot) + Environment.NewLine; - isLimit = true; - } - } - } - - } - #endregion + //return table; Result res = new Result(); res.Success = true; - res.Message = msg;// "接口调用成功!"; - if (!isLimit) - res.Data = table; + res.Message = LanguageHelper.GetNameSingle("WMSAPI001");// "接口调用成功!" + res.Data = table; return res; - //出库时 - //Message无值、Data有值,可直接处理 - //Message有值、Data有值,弹出提醒框(可点击确定、取消,确定后继续出库,取消后不处理这批条码),显示Message信息 - //Message有值、Data无值,弹出警告框(只能点击确定,且不处理这批条码),显示Message信息 + } catch (Exception ex) { @@ -32881,14 +31366,14 @@ END as NEWLotNo INNER JOIN ICSInventory b ON b.InvCode=a.InvCode AND b.WorkPoint=a.WorkPoint WHERE a.LotNo='{0}' AND a.WorkPoint='{4}' - IF EXISTS(SELECT 1 FROM ICSInventoryLotDetail WHERE LotNo='{0}' AND WorkPoint='{4}') + IF EXISTS(SELECT 1 FROM ICSInventoryLotDetailKG WHERE LotNo='{0}' AND TransCode='{1}' AND TransSequence='{2}' AND TransID='{5}' AND WorkPoint='{4}') BEGIN - UPDATE ICSInventoryLotDetail SET TransCode='{1}',TransSequence='{2}',TransID='{5}' WHERE LotNo='{0}' AND WorkPoint='{4}' + UPDATE ICSInventoryLotDetailKG SET TransQty='{8}' WHERE LotNo='{0}' AND TransCode='{1}' AND TransSequence='{2}' AND TransID='{5}' AND WorkPoint='{4}' END ELSE BEGIN - Insert into ICSInventoryLotDetail(LotNo,TransID, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID) - Values('{0}','{5}','{1}','{2}','{3}',(SELECT F_RealName FROM Sys_SRM_User WHERE F_Account='{3}' AND F_Location='{4}'),getdate(),'{4}','{5}') + Insert into ICSInventoryLotDetailKG(LotNo,TransID, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransQty) + Values('{0}','{5}','{1}','{2}','{3}',(SELECT F_RealName FROM Sys_SRM_User WHERE F_Account='{3}' AND F_Location='{4}'),getdate(),'{4}','{8}') END "; detailSql = string.Format(detailSql, itemInfo.LotNo, item.DNCode, itemInfo.Sequence, item.User, item.WorkPoint, item.ID, itemInfo.locationCode, Identification, itemInfo.Quantity, TransTypeEnum.DeliveryNoticeOpen.GetDescription()); diff --git a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs index 940e1ff..bc8336c 100644 --- a/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs +++ b/ICSSoft.WMS.WebAPI/ICSSoft.WMS.WebAPI/Controllers/WMSBarCoreController.cs @@ -813,26 +813,22 @@ namespace ICSSoft.WebAPI.Controllers /// /// 使用中 - /// 获取条码信息 + /// 获取客供料上架条码信息 /// /// /// [HttpPost] - [Route("api/AMBarCodeInformation/Get")] - public HttpResponseMessage AMBarCodeInformationGet([FromBody] object JsonData) + [Route("api/BarCodeMsgForStockInByClient/Get")] + public HttpResponseMessage BarCodeMsgForStockInByClientGet([FromBody] object JsonData) { - log.Info("获取条码信息传入值" + JsonData); + log.Info("客供料上架条码信息传入值" + JsonData); try { if (JsonData != null && !string.IsNullOrWhiteSpace(JsonData.ToString()) && JsonData.ToString() != "[]") { BarCodeModel model = new BarCodeModel(); model = JsonConvert.DeserializeObject(JsonData.ToString()); - //var resultStr = ICSSubmitService.BarCodeInformationGet(model); - //res.Success = true; - //res.Message = LanguageHelper.GetNameSingle("WMSAPI001");// "接口调用成功!"; - //res.Data = resultStr; - res = ICSSubmitService.AMBarCodeInformationGet(model); + res = ICSSubmitService.BarCodeMsgForStockInByClientGet(model); } } catch (Exception ex) @@ -846,46 +842,10 @@ namespace ICSSoft.WebAPI.Controllers str = JsonConvert.SerializeObject(res); result.Content = new StringContent(str, Encoding.GetEncoding("UTF-8"), "application/json"); } - log.Debug("获取条码信息返回值:" + str); + log.Debug("客供料上架条码信息返回值:" + str); return result; } - ///// - ///// 上架 - ///// - ///// - ///// - //[HttpPost] - //[Route("api/LOTStockUp/Get")] - //public HttpResponseMessage LOTStockUpGet([FromBody] object JsonData) - //{ - // log.Info("上架传入值" + JsonData); - // try - // { - // if (JsonData != null && !string.IsNullOrWhiteSpace(JsonData.ToString()) && JsonData.ToString() != "[]") - // { - // WMSTBarCodeModel model = new WMSTBarCodeModel(); - // model = JsonConvert.DeserializeObject(JsonData.ToString()); - // WMSBarCoreService action = new WMSBarCoreService(); - // var resultStr = action.LOTStockUpGet(model); - // res.Success = true; - // res.Message = LanguageHelper.GetNameSingle("WMSAPI001");// "接口调用成功!"; - // res.Data = resultStr; - // } - // } - // catch (Exception ex) - // { - // log.Error("转换失败:" + ex.ToString()); - // res.Success = false; - // res.Message = ex.Message; - // } - // finally - // { - // str = JsonConvert.SerializeObject(res); - // result.Content = new StringContent(str, Encoding.GetEncoding("UTF-8"), "application/json"); - // } - // log.Debug("获取条码信息返回值:" + str); - // return result; - //} + /// /// 上架添加 @@ -3136,20 +3096,6 @@ namespace ICSSoft.WebAPI.Controllers if (JsonData != null && !string.IsNullOrWhiteSpace(JsonData.ToString()) && JsonData.ToString() != "[]") { model = JsonConvert.DeserializeObject(JsonData.ToString()); - //WMSBarCoreService action = new WMSBarCoreService(); - //var resultStr = action.LocationGet(model); - //if (resultStr.Count > 0) - //{ - // res.Success = true; - // res.Message = LanguageHelper.GetNameSingle("WMSAPI001");// "接口调用成功!"; - // res.Data = resultStr; - //} - //else - //{ - // res.Success = false; - // res.Message = "仓库没有启用,请先启用仓库!"; - - //} var resultStr = ICSSubmitService.LocationGet(model); res.Success = true; res.Message = LanguageHelper.GetNameSingle("WMSAPI001");// "接口调用成功!";