Dear all,
I am trying to make automation script that will return the receipt journal before I cancel the PO. But instead create a RETURN journal, the script is delete existing journal. Is there someone who can tell me which part is wrong in my script?
def cancelPO(mypo):
try:
myLogger.debug("ESCPO Create PO:"+GFS_PONUM+ " ponum mbo:"+mbo.getString("PONUM"))
matSet = mypo.getMboSet("MATRECTRANS")
gfsmatSet = mbo.getMboSet("MATRECTRANS");
gfsmatSet.setWhere(" PONUM = '"+mbo.getString("PONUM")+"' AND ISSUETYPE IN ('RECEIPT','TRANSFER')");
gfsmat = gfsmatSet.moveFirst();
while gfsmat:
NP1IntegrationLog.WriteLog("GFSNP1PO", "IN", "Add PO :"+GFS_PONUM+" line 70 ", mbo.getString("FILENAME"))
mat = matSet.add();
linetype = 'RETURN';
mat.setValue("ITEMNUM",gfsmat.getString("ITEMNUM"),2L);# ITEMNUM
mat.setValue("TOSTORELOC",gfsmat.getString("TOSTORELOC"),2L);# ITEMNUM
mat.setValue("TRANSDATE",Date(),2L);# ITEMNUM
mat.setValue("ACTUALDATE",Date(),2L);# ITEMNUM
newtotalqty = -1*gfsmat.getDouble("QUANTITY");
mat.setValue("QUANTITY",newtotalqty,2L);# ITEMNUM
mat.setValue("RECEIVEDUNIT",gfsmat.getString("RECEIVEDUNIT"),2L);# ITEMNUM
mat.setValue("ISSUETYPE",linetype,2L);# ITEMNUM
mat.setValue("UNITCOST",gfsmat.getDouble("UNITCOST"),2L);# ITEMNUM
mat.setValue("ACTUALCOST",gfsmat.getDouble("ACTUALCOST"),2L);# ITEMNUM
mat.setValue("PONUM",gfsmat.getString("PONUM"),2L);# ITEMNUM
mat.setValue("CONVERSION",gfsmat.getInt("CONVERSION"),2L); # CONVERSION
mat.setValue("ENTERBY",gfsmat.getString("ENTERBY"),2L);# ITEMNUM
mat.setValue("POLINENUM",gfsmat.getInt("POLINENUM"),2L); # CONVERSION
mat.setValue("REQUESTEDBY",gfsmat.getString("REQUESTEDBY"),2L);# ITEMNUM
mat.setValue("TOTALCURBAL",gfsmat.getDouble("QUANTITY"),2L);# ITEMNUM
mat.setValue("OLDAVGCOST",gfsmat.getDouble("OLDAVGCOST"),2L);# ITEMNUM
mat.setValue("GLDEBITACCT",gfsmat.getString("GLDEBITACCT"),2L);
mat.setValue("GLCREDITACCT",gfsmat.getString("GLCREDITACCT"),2L);
newlinecost = -1*gfsmat.getDouble("LINECOST");
mat.setValue("LINECOST",newlinecost,2L);# ITEMNUM
mat.setValue("FINANCIALPERIOD",gfsmat.getString("FINANCIALPERIOD"),2L);
mat.setValue("CURRENCYCODE",gfsmat.getString("CURRENCYCODE"),2L);
mat.setValue("EXCHANGERATE",gfsmat.getDouble("EXCHANGERATE"),2L);# ITEMNUM
mat.setValue("CURRENCYUNITCOST",gfsmat.getDouble("CURRENCYUNITCOST"),2L);# ITEMNUM
newcurlinecost = -1*gfsmat.getDouble("CURRENCYLINECOST");
mat.setValue("CURRENCYLINECOST",newcurlinecost,2L);# ITEMNUM
mat.setValue("DESCRIPTION",gfsmat.getString("DESCRIPTION"),2L);
newloadcost = -1*gfsmat.getDouble("LOADEDCOST");
mat.setValue("LOADEDCOST",newloadcost,2L);# ITEMNUM
mat.setValue("STATUS",gfsmat.getString("STATUS"),2L);
mat.setValue("CURBAL",gfsmat.getDouble("CURBAL"),2L);# ITEMNUM
mat.setValue("ORGID",gfsmat.getString("ORGID"),2L);
mat.setValue("SITEID",gfsmat.getString("SITEID"),2L);
mat.setValue("COSTINFO",gfsmat.getInt("COSTINFO"),2L); # CONVERSION
mat.setValue("FROMSITEID",gfsmat.getString("FROMSITEID"),2L);
mat.setValue("RECEIPTREF",gfsmat.getLong("RECEIPTREF"),2L);
mat.setValue("LINETYPE",gfsmat.getString("LINETYPE"),2L);
mat.setValue("ITEMSETID",gfsmat.getString("ITEMSETID"),2L);
mat.setValue("COMMODITYGROUP",gfsmat.getString("COMMODITYGROUP"),2L);
mat.setValue("LANGCODE",gfsmat.getString(LANGCODE),2L);
mat.setValue("POSITEID",gfsmat.getString(POSITEID),2L);
gfsmat = gfsmatSet.moveNext();
except (RemoteException, MXException), e:
myLogger.debug(str(e))
NP1IntegrationLog.WriteLog("GFSNP1PO", "IN", "Cancel PO :"+mbo.getString('PONUM')+" Failed",e, mbo.getString("FILENAME"))
mbo.setValue("IFACESTATUS","FAILED")
#SupportMigration#Maximo#AssetandFacilitiesManagement#Support