@ -103,47 +103,72 @@ namespace ICSSoft.DataProject
{
try
{
#region ERP开立状态单据审核
//检验调拨单是否一次性发完
string sql = @ "IF EXISTS(SELECT b.ID FROM ICSTransfer b
WHERE b . TransferNO + b . WorkPoint IN ( SELECT a . TransCode + a . WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a . Identification = ' { 0 } ' )
AND b . Type = '1' AND b . Quantity ! = b . TransferQuantity )
BEGIN
RAISERROR ( ' " + language.GetNameByCode(" WMSAPIInfo097 ") + @" ' , 1 6 , 1 ) ;
RETURN
END
SELECT b . TransferID AS ID , a . MUSER AS [ User ] , SYSDATETIME ( ) AS MTime , con . Enable AS UpdateTodoQuantity , conStock . Enable AS UpdateStock , a . WorkPoint
FROM ICSWareHouseLotInfoLog a
INNER JOIN ICSTransfer b ON a . TransCode = b . TransferNO AND a . TransSequence = b . Sequence AND a . WorkPoint = b . WorkPoint
INNER JOIN ICSConfiguration con ON con . Code = ' Stock003 ' AND a . WorkPoint = con . WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock . Code = ' UpdateStock006 ' AND a . WorkPoint = conStock . WorkPoint
WHERE a . Identification = ' { 0 } ' AND ERPUpload = '0' AND b . Type = '1'
GROUP BY b . TransferID , a . MUSER , con . Enable , conStock . Enable , a . WorkPoint ";
#region SAP
string IsSuccess = "" ;
string ErrorMessage = "" ;
string sql = @ " select Distinct A.TransferNO,A.WorkPoint from ICSTransfer A
LEFT JOIN ICSWareHouseLotInfoLog B ON B . TransCode = A . TransferNO AND B . WorkPoint = A . WorkPoint
where B . Identification = ' { 0 } ' AND BusinessCode = ' 2 1 ' ";
sql = string . Format ( sql , Identification ) ;
DataTable dt = DBHelper . SQlReturnData ( sql , cmd ) ;
string Inputstr = JsonConvert . SerializeObject ( dt ) ;
string resultStr = HTTPHelper . HttpPost ( TransType , ERPUrl . OneStepTransferDocInURL , Inputstr ) ;
Result result = new Result ( ) ;
result = JsonConvert . DeserializeObject < Result > ( resultStr ) ;
if ( result . Success )
if ( dt . Rows . Count > 1 )
{
try
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo202" ) ) ; //单次提交单据数量卡控(只允许一张单据)
}
for ( int i = 0 ; i < dt . Rows . Count ; i + + )
{
string chksql = @ "select SUM(Quantity) AS Quantity,SUM(TransferQuantity) AS TransferQuantity from ICSTransfer
where TransferNO = ' { 0 } ' and WorkPoint = ' { 1 } '
GROUP BY TransferNO , WorkPoint ";
chksql = string . Format ( chksql , dt . Rows [ i ] [ "TransferNO" ] . ToString ( ) , dt . Rows [ i ] [ "WorkPoint" ] . ToString ( ) ) ;
DataTable chkdt = DBHelper . SQlReturnData ( chksql , cmd ) ;
if ( Convert . ToDecimal ( chkdt . Rows [ 0 ] [ "Quantity" ] ) ! = Convert . ToDecimal ( chkdt . Rows [ 0 ] [ "TransferQuantity" ] ) )
{
foreach ( DataRow dr in dt . Rows )
throw new Exception ( string . Format ( language . GetNameByCode ( "WMSAPIInfo203" ) , chkdt . Rows [ 0 ] [ "Quantity" ] . ToString ( ) , chkdt . Rows [ 0 ] [ "TransferQuantity" ] . ToString ( ) ) ) ; //单次提交数量卡控(必须整单提交)
}
SAPCallBackDoc . ZWMS_SK_WS_PZ Client = new SAPCallBackDoc . ZWMS_SK_WS_PZ ( ) ;
SAPCallBackDoc . ZWMS_SK_WS_PZ1 Info = new SAPCallBackDoc . ZWMS_SK_WS_PZ1 ( ) ;
Info . NEWID = Identification ;
Info . DANJU = dt . Rows [ i ] [ "TransferNO" ] . ToString ( ) ;
Info . STATE = "0" ;
List < SAPCallBackDoc . ZWMS_PZ > ItemList = new List < SAPCallBackDoc . ZWMS_PZ > ( ) ;
Info . Z_GERNR = new SAPCallBackDoc . ZWEBS_GERNR [ 1 ] ;
Info . Z_FLAG = new SAPCallBackDoc . ZWEB_RETURN [ 1 ] ;
sql = @ " select A.TransferNO,A.Sequence,A.Quantity,A.TransferQuantity,B.BatchCode from ICSTransfer A
LEFT JOIN ICSExtension B ON B . ID = A . ExtensionID AND B . WorkPoint = A . WorkPoint
WHERE TransferNO = ' { 0 } ' AND A . WorkPoint = ' { 1 } ' ";
sql = string . Format ( sql , dt . Rows [ i ] [ "TransferNO" ] . ToString ( ) , dt . Rows [ i ] [ "WorkPoint" ] . ToString ( ) ) ;
DataTable Sapdt = DBHelper . SQlReturnData ( sql , cmd ) ;
foreach ( DataRow dr in Sapdt . Rows )
{
if ( Convert . ToDecimal ( dr [ "Quantity" ] . ToString ( ) ) = = Convert . ToDecimal ( dr [ "TransferQuantity" ] . ToString ( ) ) )
{
ICSWareHouseLotInfoService . WareHouseLotInfoLogUpdate ( TransType , dr [ "ID" ] . ToString ( ) , Identification , "" , "" , "" , "" , "" , cmd , language , BusinessCode ) ;
SAPCallBackDoc . ZWMS_PZ Item = new SAPCallBackDoc . ZWMS_PZ ( ) ;
Item . DANJU = dr [ "TransferNO" ] . ToString ( ) ;
Item . POSNR = dr [ "Sequence" ] . ToString ( ) ;
Item . LINGYSL = System . Decimal . Round ( Convert . ToDecimal ( dr [ "Quantity" ] . ToString ( ) ) , 3 ) ;
Item . SERNP = dr [ "BatchCode" ] . ToString ( ) ;
ItemList . Add ( Item ) ;
}
}
catch ( Exception ex )
if ( ItemList . Count > 0 )
{
log . Debug ( ex . ToString ( ) ) ;
log . Debug ( resultStr ) ;
Info . Z_ITEM = ItemList . ToArray ( ) ;
SAPCallBackDoc . ZWMS_SK_WS_PZResponse result = new SAPCallBackDoc . ZWMS_SK_WS_PZResponse ( ) ;
result = Client . CallZWMS_SK_WS_PZ ( Info ) ;
if ( result . Z_NULL = = "N" )
{
foreach ( SAPCallBackDoc . ZWEB_RETURN resultItem in result . Z_FLAG )
{
IsSuccess = "N" ;
ErrorMessage + = resultItem . L_MESSAGE + "/r/n" ;
}
}
}
}
else
if ( IsSuccess = = "N" )
{
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo080" ) + result . Message ) ;
throw new Exception ( Error Message) ;
}
#endregion
}
@ -620,46 +645,72 @@ namespace ICSSoft.DataProject
{
try
{
#region ERP开立状态单据审核
string sql = @ "IF EXISTS(SELECT b.ID FROM ICSOtherOut b
WHERE b . OutCode + b . WorkPoint IN ( SELECT a . TransCode + a . WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a . Identification = ' { 0 } ' )
AND b . Quantity ! = b . OutQuantity )
BEGIN
RAISERROR ( ' " + language.GetNameByCode(" WMSAPIInfo100 ") + @" ' , 1 6 , 1 ) ;
RETURN
END
SELECT b . OutID AS ID , a . MUSER AS [ User ] , SYSDATETIME ( ) AS MTime , con . Enable AS UpdateTodoQuantity , conStock . Enable AS UpdateStock , a . WorkPoint
FROM ICSWareHouseLotInfoLog a
INNER JOIN ICSOtherOut b ON a . TransCode = b . OutCode AND a . TransSequence = b . Sequence AND a . WorkPoint = b . WorkPoint
INNER JOIN ICSConfiguration con ON con . Code = ' Stock002 ' AND a . WorkPoint = con . WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock . Code = ' UpdateStock003 ' AND a . WorkPoint = conStock . WorkPoint
WHERE a . Identification = ' { 0 } ' AND ERPUpload = '0' AND a . BusinessCode = ' 2 4 '
GROUP BY b . OutID , a . MUSER , con . Enable , conStock . Enable , a . WorkPoint ";
#region SAP
string IsSuccess = "" ;
string ErrorMessage = "" ;
string sql = @ " select Distinct A.OutCode,A.WorkPoint from ICSOtherOut A
LEFT JOIN ICSWareHouseLotInfoLog B ON B . TransCode = A . OutCode AND B . WorkPoint = A . WorkPoint
where B . Identification = ' { 0 } ' AND BusinessCode = ' 2 4 ' ";
sql = string . Format ( sql , Identification ) ;
DataTable dt = DBHelper . SQlReturnData ( sql , cmd ) ;
string Inputstr = JsonConvert . SerializeObject ( dt ) ;
string resultStr = HTTPHelper . HttpPost ( TransType , ERPUrl . OtherOutDocURL , Inputstr ) ;
Result result = new Result ( ) ;
result = JsonConvert . DeserializeObject < Result > ( resultStr ) ;
if ( result . Success )
if ( dt . Rows . Count > 1 )
{
try
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo202" ) ) ; //单次提交单据数量卡控(只允许一张单据)
}
for ( int i = 0 ; i < dt . Rows . Count ; i + + )
{
string chksql = @ "select SUM(Quantity) AS Quantity,SUM(OutQuantity) AS OutQuantity from ICSOtherOut
where OutCode = ' { 0 } ' and WorkPoint = ' { 1 } '
GROUP BY OutCode , WorkPoint ";
chksql = string . Format ( chksql , dt . Rows [ i ] [ "OutCode" ] . ToString ( ) , dt . Rows [ i ] [ "WorkPoint" ] . ToString ( ) ) ;
DataTable chkdt = DBHelper . SQlReturnData ( chksql , cmd ) ;
if ( Convert . ToDecimal ( chkdt . Rows [ 0 ] [ "Quantity" ] ) ! = Convert . ToDecimal ( chkdt . Rows [ 0 ] [ "OutQuantity" ] ) )
{
foreach ( DataRow dr in dt . Rows )
throw new Exception ( string . Format ( language . GetNameByCode ( "WMSAPIInfo203" ) , chkdt . Rows [ 0 ] [ "Quantity" ] . ToString ( ) , chkdt . Rows [ 0 ] [ "OutQuantity" ] . ToString ( ) ) ) ; //单次提交数量卡控(必须整单提交)
}
SAPCallBackDoc . ZWMS_SK_WS_PZ Client = new SAPCallBackDoc . ZWMS_SK_WS_PZ ( ) ;
SAPCallBackDoc . ZWMS_SK_WS_PZ1 Info = new SAPCallBackDoc . ZWMS_SK_WS_PZ1 ( ) ;
Info . NEWID = Identification ;
Info . DANJU = dt . Rows [ i ] [ "OutCode" ] . ToString ( ) ;
Info . STATE = "0" ;
List < SAPCallBackDoc . ZWMS_PZ > ItemList = new List < SAPCallBackDoc . ZWMS_PZ > ( ) ;
Info . Z_GERNR = new SAPCallBackDoc . ZWEBS_GERNR [ 1 ] ;
Info . Z_FLAG = new SAPCallBackDoc . ZWEB_RETURN [ 1 ] ;
sql = @ "select A.OutCode,A.Sequence,A.Quantity,A.OutQuantity,B.BatchCode from ICSOtherOut A
LEFT JOIN ICSExtension B ON B . ID = A . ExtensionID AND B . WorkPoint = A . WorkPoint
WHERE OutCode = ' { 0 } ' AND A . WorkPoint = ' { 1 } ' ";
sql = string . Format ( sql , dt . Rows [ i ] [ "OutCode" ] . ToString ( ) , dt . Rows [ i ] [ "WorkPoint" ] . ToString ( ) ) ;
DataTable Sapdt = DBHelper . SQlReturnData ( sql , cmd ) ;
foreach ( DataRow dr in Sapdt . Rows )
{
if ( Convert . ToDecimal ( dr [ "Quantity" ] . ToString ( ) ) = = Convert . ToDecimal ( dr [ "OutQuantity" ] . ToString ( ) ) )
{
ICSWareHouseLotInfoService . WareHouseLotInfoLogUpdate ( TransType , dr [ "ID" ] . ToString ( ) , Identification , "" , "" , "" , "" , "" , cmd , language , BusinessCode ) ;
SAPCallBackDoc . ZWMS_PZ Item = new SAPCallBackDoc . ZWMS_PZ ( ) ;
Item . DANJU = dr [ "OutCode" ] . ToString ( ) ;
Item . POSNR = dr [ "Sequence" ] . ToString ( ) ;
Item . LINGYSL = System . Decimal . Round ( Convert . ToDecimal ( dr [ "Quantity" ] . ToString ( ) ) , 3 ) ;
Item . SERNP = dr [ "BatchCode" ] . ToString ( ) ;
ItemList . Add ( Item ) ;
}
}
catch ( Exception ex )
if ( ItemList . Count > 0 )
{
log . Debug ( ex . ToString ( ) ) ;
log . Debug ( resultStr ) ;
Info . Z_ITEM = ItemList . ToArray ( ) ;
SAPCallBackDoc . ZWMS_SK_WS_PZResponse result = new SAPCallBackDoc . ZWMS_SK_WS_PZResponse ( ) ;
result = Client . CallZWMS_SK_WS_PZ ( Info ) ;
if ( result . Z_NULL = = "N" )
{
foreach ( SAPCallBackDoc . ZWEB_RETURN resultItem in result . Z_FLAG )
{
IsSuccess = "N" ;
ErrorMessage + = resultItem . L_MESSAGE + "/r/n" ;
}
}
}
}
else
if ( IsSuccess = = "N" )
{
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo080" ) + result . Message ) ;
throw new Exception ( Error Message) ;
}
#endregion
}
@ -733,46 +784,72 @@ namespace ICSSoft.DataProject
{
try
{
#region ERP开立状态单据审核
string sql = @ "IF EXISTS(SELECT b.ID FROM ICSOtherIn b
WHERE b . InCode + b . WorkPoint IN ( SELECT a . TransCode + a . WorkPoint FROM ICSWareHouseLotInfoLog a WHERE a . Identification = ' { 0 } ' )
AND b . Quantity ! = b . InQuantity )
BEGIN
RAISERROR ( ' " + language.GetNameByCode(" WMSAPIInfo101 ") + @" ' , 1 6 , 1 ) ;
RETURN
END
SELECT b . InID AS ID , a . MUSER AS [ User ] , SYSDATETIME ( ) AS MTime , con . Enable AS UpdateTodoQuantity , conStock . Enable AS UpdateStock , a . WorkPoint
FROM ICSWareHouseLotInfoLog a
INNER JOIN ICSOtherIn b ON a . TransCode = b . InCode AND a . TransSequence = b . Sequence AND a . WorkPoint = b . WorkPoint
INNER JOIN ICSConfiguration con ON con . Code = ' Stock001 ' AND a . WorkPoint = con . WorkPoint
INNER JOIN ICSConfiguration conStock ON conStock . Code = ' UpdateStock003 ' AND a . WorkPoint = conStock . WorkPoint
WHERE a . Identification = ' { 0 } ' AND ERPUpload = '0'
GROUP BY b . InID , a . MUSER , con . Enable , conStock . Enable , a . WorkPoint ";
#region SAP
string IsSuccess = "" ;
string ErrorMessage = "" ;
string sql = @ " select Distinct A.InCode,A.WorkPoint from ICSOtherIn A
LEFT JOIN ICSWareHouseLotInfoLog B ON B . TransCode = A . InCode AND B . WorkPoint = A . WorkPoint
where B . Identification = ' { 0 } ' AND BusinessCode = ' 2 5 ' ";
sql = string . Format ( sql , Identification ) ;
DataTable dt = DBHelper . SQlReturnData ( sql , cmd ) ;
string Inputstr = JsonConvert . SerializeObject ( dt ) ;
string resultStr = HTTPHelper . HttpPost ( TransType , ERPUrl . OtherInDocURL , Inputstr ) ;
Result result = new Result ( ) ;
result = JsonConvert . DeserializeObject < Result > ( resultStr ) ;
if ( result . Success )
if ( dt . Rows . Count > 1 )
{
try
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo202" ) ) ; //单次提交单据数量卡控(只允许一张单据)
}
for ( int i = 0 ; i < dt . Rows . Count ; i + + )
{
string chksql = @ "select SUM(Quantity) AS Quantity,SUM(InQuantity) AS InQuantity from ICSOtherIn
where InCode = ' { 0 } ' and WorkPoint = ' { 1 } '
GROUP BY InCode , WorkPoint ";
chksql = string . Format ( chksql , dt . Rows [ i ] [ "InCode" ] . ToString ( ) , dt . Rows [ i ] [ "WorkPoint" ] . ToString ( ) ) ;
DataTable chkdt = DBHelper . SQlReturnData ( chksql , cmd ) ;
if ( Convert . ToDecimal ( chkdt . Rows [ 0 ] [ "Quantity" ] ) ! = Convert . ToDecimal ( chkdt . Rows [ 0 ] [ "InQuantity" ] ) )
{
foreach ( DataRow dr in dt . Rows )
throw new Exception ( string . Format ( language . GetNameByCode ( "WMSAPIInfo203" ) , chkdt . Rows [ 0 ] [ "Quantity" ] . ToString ( ) , chkdt . Rows [ 0 ] [ "InQuantity" ] . ToString ( ) ) ) ; //单次提交数量卡控(必须整单提交)
}
SAPCallBackDoc . ZWMS_SK_WS_PZ Client = new SAPCallBackDoc . ZWMS_SK_WS_PZ ( ) ;
SAPCallBackDoc . ZWMS_SK_WS_PZ1 Info = new SAPCallBackDoc . ZWMS_SK_WS_PZ1 ( ) ;
Info . NEWID = Identification ;
Info . DANJU = dt . Rows [ i ] [ "InCode" ] . ToString ( ) ;
Info . STATE = "0" ;
List < SAPCallBackDoc . ZWMS_PZ > ItemList = new List < SAPCallBackDoc . ZWMS_PZ > ( ) ;
Info . Z_GERNR = new SAPCallBackDoc . ZWEBS_GERNR [ 1 ] ;
Info . Z_FLAG = new SAPCallBackDoc . ZWEB_RETURN [ 1 ] ;
sql = @ "select A.InCode,A.Sequence,A.Quantity,A.InQuantity,B.BatchCode from ICSOtherIn A
LEFT JOIN ICSExtension B ON B . ID = A . ExtensionID AND B . WorkPoint = A . WorkPoint
WHERE InCode = ' { 0 } ' AND A . WorkPoint = ' { 1 } ' ";
sql = string . Format ( sql , dt . Rows [ i ] [ "InCode" ] . ToString ( ) , dt . Rows [ i ] [ "WorkPoint" ] . ToString ( ) ) ;
DataTable Sapdt = DBHelper . SQlReturnData ( sql , cmd ) ;
foreach ( DataRow dr in Sapdt . Rows )
{
if ( Convert . ToDecimal ( dr [ "Quantity" ] . ToString ( ) ) = = Convert . ToDecimal ( dr [ "InQuantity" ] . ToString ( ) ) )
{
ICSWareHouseLotInfoService . WareHouseLotInfoLogUpdate ( TransType , dr [ "ID" ] . ToString ( ) , Identification , "" , "" , "" , "" , "" , cmd , language , BusinessCode ) ;
SAPCallBackDoc . ZWMS_PZ Item = new SAPCallBackDoc . ZWMS_PZ ( ) ;
Item . DANJU = dr [ "InCode" ] . ToString ( ) ;
Item . POSNR = dr [ "Sequence" ] . ToString ( ) ;
Item . LINGYSL = System . Decimal . Round ( Convert . ToDecimal ( dr [ "Quantity" ] . ToString ( ) ) , 3 ) ;
Item . SERNP = dr [ "BatchCode" ] . ToString ( ) ;
ItemList . Add ( Item ) ;
}
}
catch ( Exception ex )
if ( ItemList . Count > 0 )
{
log . Debug ( ex . ToString ( ) ) ;
log . Debug ( resultStr ) ;
Info . Z_ITEM = ItemList . ToArray ( ) ;
SAPCallBackDoc . ZWMS_SK_WS_PZResponse result = new SAPCallBackDoc . ZWMS_SK_WS_PZResponse ( ) ;
result = Client . CallZWMS_SK_WS_PZ ( Info ) ;
if ( result . Z_NULL = = "N" )
{
foreach ( SAPCallBackDoc . ZWEB_RETURN resultItem in result . Z_FLAG )
{
IsSuccess = "N" ;
ErrorMessage + = resultItem . L_MESSAGE + "/r/n" ;
}
}
}
}
else
if ( IsSuccess = = "N" )
{
throw new Exception ( language . GetNameByCode ( "WMSAPIInfo080" ) + result . Message ) ;
throw new Exception ( Error Message) ;
}
#endregion
}
xxxxxxxxxx