@ -58,14 +58,32 @@ namespace ICSSoft.DataProject
{
///添加库存(原条码退回,更新库存;新条码直接入库)
string sql = string . Empty ;
if ( BusinessCode ! = TransTypeEnum . SalesReturnBack . GetDescription < DBValue > ( )
& & string . IsNullOrWhiteSpace ( LogID ) )
string locationcode = "" ;
if ( BusinessCode ! = TransTypeEnum . SalesReturnBack . GetDescription < DBValue > ( ) )
{
if ( 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 ";
}
else
{
sql = @"SELECT LocationCode FROM ICSWareHouseLotInfo a WHERE LotNo='{0}' AND WorkPoint='{1}'" ;
sql = string . Format ( sql , LotNo , WorkPoint ) ;
DataTable dt = DBHelper . SQlReturnData ( sql , cmd ) ;
if ( dt = = null | | dt . Rows . Count < = 0 )
{
throw new Exception ( string . Format ( language . GetNameByCode ( "WMSAPIInfo171" ) , LotNo ) ) ;
}
locationcode = dt . Rows [ 0 ] [ "LocationCode" ] . ToString ( ) ;
}
}
sql + = @ " IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
BEGIN
@ -75,7 +93,24 @@ namespace ICSSoft.DataProject
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 } '
IF EXISTS ( SELECT a . LotNO FROM ICSWareHouseLotInfo a WHERE a . LotNo = ' { 0 } ' AND a . WorkPoint = ' { 1 } ' AND a . Quantity = 0 )
BEGIN
UPDATE a SET a . Quantity = ISNULL ( a . Quantity , 0 ) + ' { 3 } ' , WarehouseCode = e . WarehouseCode , LocationCode = d . LocationCode
From ICSWareHouseLotInfo a
INNER JOIN ICSLocation d ON d . LocationCode = ' { 4 } ' AND a . WorkPoint = d . WorkPoint
INNER JOIN ICSWarehouse e ON d . WHID = e . ID AND d . WorkPoint = e . WorkPoint
WHERE a . LotNo = ' { 0 } ' AND a . WorkPoint = ' { 1 } '
END
ELSE IF EXISTS ( SELECT a . LotNO FROM ICSWareHouseLotInfo a WHERE a . LotNo = ' { 0 } ' AND a . WorkPoint = ' { 1 } ' AND a . LocationCode = ' { 4 } ' )
BEGIN
UPDATE ICSWareHouseLotInfo SET Quantity = ISNULL ( Quantity , 0 ) + ' { 3 } '
WHERE LotNo = ' { 0 } ' AND WorkPoint = ' { 1 } '
END
ELSE IF ( ' " + locationcode + @" ' ! = ' { 4 } ' )
BEGIN
RAISERROR ( ' " + string.Format(language.GetNameByCode(" WMSAPIInfo395 "), " { 4 } ", locationcode) + @" ' , 1 6 , 1 ) ;
RETURN
END
END
ELSE
BEGIN
@ -343,7 +378,7 @@ namespace ICSSoft.DataProject
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo195" ) ) ; //条码分批后条码表存入失败!
}
sql = @ "INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint,EATTRIBUTE1)
select NEWID ( ) , ' { 0 } ' , WarehouseCode , LocationCode , InvCode , ' { 2 } ' , InDate , LockQuantity
select NEWID ( ) , ' { 0 } ' , WarehouseCode , LocationCode , InvCode , '0 ', InDate , LockQuantity
, MUSER , MUSERName , GETDATE ( ) , ' { 3 } ',' '
from ICSWareHouseLotInfo
where LotNO = ' { 1 } ' AND WorkPoint = ' { 3 } ' ";
@ -842,26 +877,20 @@ namespace ICSSoft.DataProject
{
try
{
string sql = @"SELECT WarehouseCode FROM ICSWareHouseLotInfo a WHERE LotNo='{0}' AND WorkPoint='{1}'" ;
sql = string . Format ( sql , LotNo , WorkPoint ) ;
DataTable dt = DBHelper . SQlReturnData ( sql , cmd ) ;
if ( dt = = null | | dt . Rows . Count < = 0 )
{
throw new Exception ( string . Format ( language . GetNameByCode ( "WMSAPIInfo171" ) , LotNo ) ) ;
}
string whcode = dt . Rows [ 0 ] [ "WarehouseCode" ] . ToString ( ) ;
// IF("+whcode+@" != '{8}')
// BEGIN
// RAISERROR('" + string.Format(language.GetNameByCode("WMSAPIInfo394"), "{8}",whcode) + @"', 16, 1);
// RETURN
//END
///添加日志
sql = @ "IF NOT EXISTS(SELECT F_Account FROM Sys_SRM_User WHERE F_Account='{2}' AND F_Location='{1}')
string 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 ( "+whcode+@" ! = ' { 8 } ' )
BEGIN
RAISERROR ( ' " + string.Format(language.GetNameByCode(" WMSAPIInfo394 "), " { 8 } ",whcode) + @" ' , 1 6 , 1 ) ;
RETURN
END
INSERT INTO ICSWareHouseLotInfoLog ( ID , Identification , TransCode , TransSequence , LotNo , InvCode ,
FromWarehouseCode , FromLocationCode , ToWarehouseCode , ToLocationCode , Quantity ,