set shipment doctype base on order doctype setting.
(transplanted from 392957b9195a360103d2c04b45365f46e9122c4c)
This commit is contained in:
parent
cdea8a2d31
commit
27e3a3fc88
|
@ -86,6 +86,20 @@ public class CalloutInOut extends CalloutEngine
|
|||
else
|
||||
mTab.setValue("AD_User_ID", null);
|
||||
}
|
||||
/**
|
||||
* Modification: set corresponding document type
|
||||
*/
|
||||
int docTypeId = order.getC_DocType_ID();
|
||||
int relatedDocTypeId = 0;
|
||||
|
||||
if (docTypeId == 0)
|
||||
{
|
||||
docTypeId = order.getC_DocTypeTarget_ID();
|
||||
}
|
||||
|
||||
relatedDocTypeId = MDocType.getShipmentReceiptDocType(docTypeId);
|
||||
|
||||
mTab.setValue("C_DocType_ID", relatedDocTypeId);
|
||||
return "";
|
||||
} // order
|
||||
|
||||
|
@ -179,6 +193,8 @@ public class CalloutInOut extends CalloutEngine
|
|||
String DocBaseType = rs.getString("DocBaseType");
|
||||
// BF [2708789] Read IsSOTrx from C_DocType
|
||||
String trxFlag = rs.getString(7);
|
||||
if (!(trxFlag.equals(mTab.getValue("IsSOTrx"))))
|
||||
mTab.setValue("IsSOTrx", trxFlag);
|
||||
if (DocBaseType.equals("MMS")) // Material Shipments
|
||||
/**solve 1648131 bug vpj-cd e-evolution */
|
||||
{
|
||||
|
@ -199,8 +215,6 @@ public class CalloutInOut extends CalloutEngine
|
|||
else
|
||||
mTab.setValue("MovementType", "V+"); // Vendor Receipts
|
||||
}
|
||||
if (!(trxFlag.equals(mTab.getValue("IsSOTrx"))))
|
||||
mTab.setValue("IsSOTrx", trxFlag);
|
||||
/**END vpj-cd e-evolution */
|
||||
|
||||
// DocumentNo
|
||||
|
|
|
@ -303,4 +303,58 @@ public class MDocType extends X_C_DocType
|
|||
return success;
|
||||
} // afterDelete
|
||||
|
||||
/**
|
||||
* Returns Document type for the shipment/receipt based
|
||||
* on Document type provided for order/rma
|
||||
* @param docTypeId
|
||||
* @return shipment/receipt doctype id
|
||||
*/
|
||||
public static int getShipmentReceiptDocType(int docTypeId)
|
||||
{
|
||||
int relatedDocTypeId = 0;
|
||||
if (docTypeId != 0)
|
||||
{
|
||||
MDocType docType = MDocType.get(Env.getCtx(), docTypeId);
|
||||
// FIXME: Should refactor code and remove the hard coded name
|
||||
// Should change document type to allow query the value
|
||||
if ("Return Material".equals(docType.getName()) ||
|
||||
"Vendor Return".equals(docType.getName())|| !docType.isSOTrx())
|
||||
{
|
||||
String relatedDocTypeName = null;
|
||||
if (("Purchase Order").equals(docType.getName()))
|
||||
{
|
||||
relatedDocTypeName = "MM Receipt";
|
||||
}
|
||||
else if ("Return Material".equals(docType.getName()))
|
||||
{
|
||||
relatedDocTypeName = "MM Returns";
|
||||
}
|
||||
else if ("Vendor Return".equals(docType.getName()))
|
||||
{
|
||||
relatedDocTypeName = "MM Vendor Returns";
|
||||
}
|
||||
|
||||
if (relatedDocTypeName != null)
|
||||
{
|
||||
StringBuffer whereClause = new StringBuffer(30);
|
||||
whereClause.append("Name='").append(relatedDocTypeName).append("' ");
|
||||
whereClause.append("and AD_Client_ID=").append(Env.getAD_Client_ID(Env.getCtx()));
|
||||
whereClause.append(" AND IsActive='Y'");
|
||||
|
||||
int relDocTypeIds[] = MDocType.getAllIDs(MDocType.Table_Name, whereClause.toString(), null);
|
||||
|
||||
if (relDocTypeIds.length > 0)
|
||||
{
|
||||
relatedDocTypeId = relDocTypeIds[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
relatedDocTypeId = docType.getC_DocTypeShipment_ID();
|
||||
}
|
||||
}
|
||||
|
||||
return relatedDocTypeId;
|
||||
}
|
||||
} // MDocType
|
||||
|
|
Loading…
Reference in New Issue