@ -50,8 +50,9 @@ namespace ICSSoft.DataProject
/// <param name="TransType"></param>
/// <param name="BusinessCode"></param>
/// <param name="cmd"></param>
/// <param name="jointLotNo"></param>
public static void WareHouseLotInfoUp ( string Identification , string LocationCode , string LotNo , string Quantity , string User ,
string WorkPoint , string TransType , string BusinessCode , SqlCommand cmd , Dictionary < string , string > language , string LogID )
string WorkPoint , string TransType , string BusinessCode , SqlCommand cmd , Dictionary < string , string > language , string LogID , string jointLotNo )
{
try
{
@ -107,13 +108,6 @@ namespace ICSSoft.DataProject
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo165" ) ) ;
}
ControlMode mode = ICSControlModeService . GetControlModes ( ) ;
//管控方式启用"料品"时
if ( mode . itemCode . Equals ( "ControlMode02" ) )
{
}
///添加日志
sql = @ "INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
FromWarehouseCode , FromLocationCode , ToWarehouseCode , ToLocationCode , Quantity ,
@ -137,6 +131,86 @@ namespace ICSSoft.DataProject
{
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo166" ) ) ;
}
ControlMode mode = ICSControlModeService . GetControlModes ( ) ;
//管控方式是"料品"时
if ( mode . itemCode . Equals ( "ControlMode02" ) )
{
///将物料编码作为物料条码添加库存(原条码退回,更新库存;新条码直接入库)
if ( BusinessCode ! = TransTypeEnum . SalesReturnBack . GetDescription < DBValue > ( )
& & string . IsNullOrWhiteSpace ( LogID ) )
{
sql = @ "IF EXISTS(SELECT a.LotNo FROM ICSWareHouseLotInfo a WHERE a.LotNo='{0}' AND a.WorkPoint='{1}')
BEGIN
RAISERROR ( ' " + language.GetNameByCode(" WMSAPIInfo164 ") + @" ' , 1 6 , 1 ) ;
RETURN
END ";
}
sql + = @ " IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
BEGIN
RAISERROR ( ' " + string.Format(language.GetNameByCode(" WMSAPIInfo060 "), " { 2 } ") + @" ' , 1 6 , 1 ) ;
RETURN
END
IF EXISTS ( SELECT a . LotNo FROM ICSWareHouseLotInfo a WHERE a . LotNo = ' { 0 } ' AND a . WorkPoint = ' { 1 } ' )
BEGIN
UPDATE ICSWareHouseLotInfo SET Quantity = ISNULL ( Quantity , 0 ) + ' { 3 } ' WHERE LotNo = ' { 0 } ' AND WorkPoint = ' { 1 } '
END
ELSE
BEGIN
IF EXISTS ( SELECT il . InvCode FROM ICSInventoryLocation il
INNER JOIN ICSInventoryLot a ON a . InvCode = il . InvCode AND a . WorkPoint = il . WorkPoint
WHERE il . Enable = '1' AND a . LotNo = ' { 0 } ' AND a . WorkPoint = ' { 1 } ' )
BEGIN
IF NOT EXISTS ( SELECT il . InvCode FROM ICSInventoryLocation il
INNER JOIN ICSInventoryLot a ON a . InvCode = il . InvCode AND a . WorkPoint = il . WorkPoint
WHERE il . Enable = '1' AND a . LotNo = ' { 0 } ' AND a . WorkPoint = ' { 1 } ' AND il . LocationCode = ' { 4 } ' )
BEGIN
RAISERROR ( ' " + language.GetNameByCode(" WMSAPIInfo180 ") + @" ' , 1 6 , 1 ) ;
RETURN
END
END
INSERT INTO ICSWareHouseLotInfo ( ID , LotNO , WarehouseCode , LocationCode , InvCode , Quantity , InDate , LockQuantity , MUSER , MUSERName , MTIME , WorkPoint , EATTRIBUTE1 )
SELECT NEWID ( ) , a . LotNo , e . WarehouseCode , d . LocationCode , a . InvCode , ' { 3 } ' , SYSDATETIME ( ) , '0' , f . F_Account , f . F_RealName , SYSDATETIME ( ) , a . WorkPoint , ' '
FROM ICSInventoryLot a
INNER JOIN ICSInventoryLotDetail b ON a . LotNo = b . LotNo AND a . WorkPoint = b . WorkPoint
- - INNER JOIN ICSOApplyNegDetail c ON b . TransCode = c . OApplyNegCode AND b . TransSequence = c . Sequence AND b . WorkPoint = c . WorkPoint
INNER JOIN ICSLocation d ON d . LocationCode = ' { 4 } ' AND a . WorkPoint = d . WorkPoint
INNER JOIN ICSWarehouse e ON d . WHID = e . ID AND d . WorkPoint = e . WorkPoint
INNER JOIN Sys_SRM_User f ON f . F_Account = ' { 2 } ' AND a . WorkPoint = f . F_Location
WHERE a . LotNo = ' { 0 } ' AND a . WorkPoint = ' { 1 } '
END ";
sql = string . Format ( sql , jointLotNo , WorkPoint , User , Quantity , LocationCode ) ;
if ( ! DBHelper . ExecuteNonQuery ( sql , cmd ) )
{
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo165" ) ) ;
}
///添加日志
sql = @ "INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
FromWarehouseCode , FromLocationCode , ToWarehouseCode , ToLocationCode , Quantity ,
Memo , Lock , TransType , BusinessCode , ERPUpload , ERPID ,
ERPDetailID , ERPCode , ERPSequence , MUSER , MUSERName ,
MTIME , WorkPoint , EATTRIBUTE1 , LogID )
SELECT NEWID ( ) , ' { 3 } ' , b . TransCode , b . TransSequence , a . LotNo , a . InvCode ,
' ',' ' , c . WarehouseCode , c . LocationCode , ' { 6 } ' ,
' ',' 0 ',' { 4 } ',' { 5 } ',' 0 ',' ' ,
' ',' ',' ' , f . F_Account , f . F_RealName ,
SYSDATETIME ( ) , a . WorkPoint , ' ',' { 7 } '
FROM ICSInventoryLot a
INNER JOIN ICSInventoryLotDetail b ON a . LotNo = b . LotNo AND a . WorkPoint = b . WorkPoint
INNER JOIN ICSWareHouseLotInfo c ON a . LotNo = c . LotNo AND a . WorkPoint = c . WorkPoint
INNER JOIN Sys_SRM_User f ON f . F_Account = ' { 2 } ' AND a . WorkPoint = f . F_Location
WHERE a . LotNo = ' { 0 } ' AND a . WorkPoint = ' { 1 } '
";
sql = string . Format ( sql , jointLotNo , WorkPoint , User , Identification , TransType , BusinessCode , Quantity , LogID ) ;
if ( ! DBHelper . ExecuteNonQuery ( sql , cmd ) )
{
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo166" ) ) ;
}
}
}
catch ( Exception )
{
xxxxxxxxxx