CatMaoo 8 months ago
parent
commit
5a97bd45dd
  1. 4
      ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs
  2. 196
      ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs
  3. 8
      ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseLotInfoService.cs
  4. 5
      ICSSoft.WMS.WebAPI/ICSSoft.Entity/BarCodeModel.cs

4
ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSManufactureService.cs

@ -2122,7 +2122,7 @@ INNER JOIN ICSConfiguration conStocknew ON a.WorkPoint=conStocknew.WorkPoint AND
{
#region ERP
string sql = @"SELECT a.ToWarehouseCode+a.MUSER+a.LotNo AS Costre,ROW_NUMBER() OVER (ORDER BY a.ToWarehouseCode,a.MUSER,a.LotNo) AS Sequence,
a.ToWarehouseCode AS WarehouseCode,lot.MUSER,
a.ToWarehouseCode AS WarehouseCode,lot.MUSER AS LotMUSER,(select F_RealName from Sys_SRM_User s where s.F_Account=a.MUSER) AS MUSER,
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,conStocknew.Enable AS IsFillClose
,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,
@ -2167,7 +2167,7 @@ INNER JOIN ICSConfiguration conStocknew ON a.WorkPoint=conStocknew.WorkPoint AND
ISNULL(ext.cFree9, ''),
ISNULL(ext.cFree10, '')
SELECT DISTINCT Costre,Sequence,WorkPoint,WarehouseCode AS WHCode,MUSER AS [User],SYSDATETIME() AS MTime,UpdateTodoQuantity,'false' AS CompleteVerification,UpdateStock,IsFillClose
SELECT DISTINCT Costre,Sequence,WorkPoint,WarehouseCode AS WHCode,MUSER AS [UserName],LotMUSER AS [User],SYSDATETIME() AS MTime,UpdateTodoQuantity,'false' AS CompleteVerification,UpdateStock,IsFillClose
,InvCode,Quantity,Amount,ProjectCode,BatchCode,Version,Brand,cFree1,cFree2,cFree3,cFree4,cFree5,cFree6,cFree7,cFree8,cFree9,cFree10 FROM #TempERP
--SELECT Costre,TransSequence,Sequence,InvCode,Quantity,Amount,MODetailID,ProjectCode,BatchCode,Version,Brand,cFree1,cFree2,cFree3,cFree4,cFree5,cFree6,cFree7,cFree8,cFree9,cFree10
--FROM #TempERP

196
ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSSubmitService.cs

@ -2855,22 +2855,45 @@ a.ExtensionID
}
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,
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";
if(TransType == TransTypeEnum.Check.GetDescription())
{
columns = @"case when inv.AmountEnable='1' then (a.Quantity-a.lockQuantity)*(lot.Amount/lot.Quantity) else (a.Quantity-a.lockQuantity) end 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,
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
{
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,
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";
}
}
@ -3447,21 +3470,25 @@ a.ExtensionID
//先进先出判断
var result = CanOut(Lot, JsonData.WorkPoint, JsonData.ScanLotCode, sqlnew, cmd, language);
//0 - 已经是最早的批次
//1 - 不管控
//2 - 提醒
//3 - 限制
if (result == "2")
{
msg += string.Format(language.GetNameByCode("WMSAPIInfo178"), Lot) + Environment.NewLine;
}
else if (result == "3")
if(TransType != TransTypeEnum.OtherOutDoc.GetDescription())
{
msg += string.Format(language.GetNameByCode("WMSAPIInfo179"), Lot) + Environment.NewLine;
isLimit = true;
//先进先出判断
var result = CanOut(Lot, JsonData.WorkPoint, JsonData.ScanLotCode, sqlnew, 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;
}
}
}
}
@ -11986,7 +12013,7 @@ END";
if (string.IsNullOrEmpty(item.User))
{
throw new Exception(language.GetNameByCode("WMSAPIInfo018"));//"操作人不能为空!");
}
}
if (string.IsNullOrEmpty(item.WorkPoint))
{
throw new Exception(language.GetNameByCode("WMSAPIInfo004"));//"站点不能为空!"
@ -12013,6 +12040,16 @@ END";
//创建盘点单
foreach (var itemInfo in item.detail)
{
string chekksql = @"select d.EATTRIBUTE1 FROM ICSInventoryLot c
INNER JOIN ICSInventory d on c.InvCode=d.InvCode and c.WorkPoint=d.WorkPoint
WHERE c.WorkPoint='{1}' and c.lotno='{2}' and d.AmountEnable='1'";
chekksql = string.Format(chekksql, item.CheckCode, item.WorkPoint, itemInfo.LotNo);
DataTable dta = DBHelper.SQlReturnData(chekksql, cmd);
if (dta.Rows.Count > 0)
{
itemInfo.ActualQuantity = (decimal.Parse(itemInfo.ActualQuantity) * decimal.Parse(dta.Rows[0]["EATTRIBUTE1"].ToString())).ToString();
}
sql = @"IF NOT EXISTS(SELECT LotNo FROM ICSWareHouseLotInfo WHERE LotNo='{1}' AND WorkPoint='{3}')
BEGIN
RAISERROR('" + language.GetNameByCode("WMSAPIInfo076") + @"',16,1);
@ -16304,7 +16341,47 @@ a.ExtensionID
END
" + sql;
}
if (TransType == TransTypeEnum.Check.GetDescription())
{
sql = @"IF EXISTS(SELECT LotNo FROM ICSCheckDetail a
LEFT JOIN ICSCheck b ON a.CheckID=b.ID AND a.WorkPoint=b.WorkPoint
WHERE b.CheckCode='{6}' AND a.LotNo='{2}' AND a.WorkPoint='{3}')
BEGIN
IF ('{8}'='')
BEGIN
IF EXISTS(SELECT LotNo FROM ICSCheckDetail a
LEFT JOIN ICSCheck b ON a.CheckID=b.ID AND a.WorkPoint=b.WorkPoint
WHERE b.CheckCode='{6}' AND a.LotNo='{2}' AND a.WorkPoint='{3}' AND a.PrimaryQuantity>0)
BEGIN
RAISERROR('', 16, 1);
RETURN;
END
END
ELSE IF ('{8}'='')
BEGIN
IF EXISTS(SELECT LotNo FROM ICSCheckDetail a
LEFT JOIN ICSCheck b ON a.CheckID=b.ID AND a.WorkPoint=b.WorkPoint
WHERE b.CheckCode='{6}' AND a.LotNo='{2}' AND a.WorkPoint='{3}' AND a.CheckQuantity>0)
BEGIN
RAISERROR('', 16, 1);
RETURN;
END
END
ELSE
BEGIN
IF EXISTS(SELECT LotNo FROM ICSCheckDetail a
LEFT JOIN ICSCheck b ON a.CheckID=b.ID AND a.WorkPoint=b.WorkPoint
WHERE b.CheckCode='{6}' AND a.LotNo='{2}' AND a.WorkPoint='{3}' AND a.ReplayQuantity>0)
BEGIN
RAISERROR('', 16, 1);
RETURN;
END
END
END
" + sql;
}
if (iszl)
{
@ -16329,23 +16406,44 @@ a.ExtensionID
}
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";
if (TransType == TransTypeEnum.Check.GetDescription())
{
columns = @"case when inv.AmountEnable='1' then (a.Quantity-a.lockQuantity)*(lot.Amount/lot.Quantity) else (a.Quantity-a.lockQuantity) end 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,
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
{
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,
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";
}
}
@ -16786,7 +16884,7 @@ a.ExtensionID
else
{
sql = string.Format(sql, columns, tableName, JsonData.Code, JsonData.WorkPoint, zlqty, UName,JsonData.TransCode,JsonData.TransSequence);
sql = string.Format(sql, columns, tableName, JsonData.Code, JsonData.WorkPoint, zlqty, UName,JsonData.TransCode,JsonData.TransSequence,JsonData.CheckKind);
log.Debug("条码sql:" + sql);
table = DBHelper.SQlReturnData(sql, cmd);
}

8
ICSSoft.WMS.WebAPI/ICSSoft.DataProject/ICSWareHouseLotInfoService.cs

@ -2673,6 +2673,12 @@ namespace ICSSoft.DataProject
RETURN
END
IF EXISTS(SELECT id FROM ICSInventoryLot WHERE LotNo='{0}' AND Quantity<'{9}')
BEGIN
RAISERROR(' {0} !',16,1);
RETURN
END
INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
@ -2687,7 +2693,7 @@ 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, TransCode, TransSequence, TransType, TransTypeEnum.LOTCheckBefore.GetDescription<DBValue>(), CheckKind);
sql = string.Format(sql, LotNo, WorkPoint, User, Identification, TransCode, TransSequence, TransType, TransTypeEnum.LOTCheckBefore.GetDescription<DBValue>(), CheckKind, Quantity);
if (!DBHelper.ExecuteNonQuery(sql, cmd))
{

5
ICSSoft.WMS.WebAPI/ICSSoft.Entity/BarCodeModel.cs

@ -35,5 +35,10 @@ namespace ICSSoft.Entity
/// 是否拣配
/// </summary>
public string IsPick { get; set; }
/// <summary>
/// 盘点类型
/// </summary>
public string CheckKind { get; set; }
}
}
Loading…
Cancel
Save