Implement FR [2840458] - Credit checking problem

https://sourceforge.net/tracker/?func=detail&aid=2840458&group_id=176962&atid=879335
This commit is contained in:
Carlos Ruiz 2009-08-19 17:09:45 +00:00
parent 2dcb50c9b7
commit 88d302f2b0
4 changed files with 81 additions and 47 deletions

View File

@ -1050,6 +1050,11 @@ public class MInOut extends X_M_InOut implements DocAction
// Credit Check // Credit Check
if (isSOTrx() && !isReversal()) if (isSOTrx() && !isReversal())
{ {
I_C_Order order = getC_Order();
if (order != null && MDocType.DOCSUBTYPESO_PrepayOrder.equals(order.getC_DocType().getDocSubTypeSO())
&& !MSysConfig.getBooleanValue("CHECK_CREDIT_ON_PREPAY_ORDER", true, getAD_Client_ID(), getAD_Org_ID())) {
// ignore -- don't validate Prepay Orders depending on sysconfig parameter
} else {
MBPartner bp = new MBPartner (getCtx(), getC_BPartner_ID(), get_TrxName()); MBPartner bp = new MBPartner (getCtx(), getC_BPartner_ID(), get_TrxName());
if (MBPartner.SOCREDITSTATUS_CreditStop.equals(bp.getSOCreditStatus())) if (MBPartner.SOCREDITSTATUS_CreditStop.equals(bp.getSOCreditStatus()))
{ {
@ -1074,6 +1079,7 @@ public class MInOut extends X_M_InOut implements DocAction
return DocAction.STATUS_Invalid; return DocAction.STATUS_Invalid;
} }
} }
}
// Lines // Lines
MInOutLine[] lines = getLines(true); MInOutLine[] lines = getLines(true);

View File

@ -32,7 +32,6 @@ import org.adempiere.exceptions.FillMandatoryException;
import org.compiere.print.ReportEngine; import org.compiere.print.ReportEngine;
import org.compiere.process.DocAction; import org.compiere.process.DocAction;
import org.compiere.process.DocumentEngine; import org.compiere.process.DocumentEngine;
import org.compiere.report.MReportTree;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.compiere.util.Msg; import org.compiere.util.Msg;
@ -1219,6 +1218,14 @@ public class MOrder extends X_C_Order implements DocAction
// Credit Check // Credit Check
if (isSOTrx()) if (isSOTrx())
{ {
if ( MDocType.DOCSUBTYPESO_POSOrder.equals(dt.getDocSubTypeSO())
&& PAYMENTRULE_Cash.equals(getPaymentRule())
&& !MSysConfig.getBooleanValue("CHECK_CREDIT_ON_CASH_POS_ORDER", true, getAD_Client_ID(), getAD_Org_ID())) {
// ignore -- don't validate for Cash POS Orders depending on sysconfig parameter
} else if (MDocType.DOCSUBTYPESO_PrepayOrder.equals(dt.getDocSubTypeSO())
&& !MSysConfig.getBooleanValue("CHECK_CREDIT_ON_PREPAY_ORDER", true, getAD_Client_ID(), getAD_Org_ID())) {
// ignore -- don't validate Prepay Orders depending on sysconfig parameter
} else {
MBPartner bp = new MBPartner (getCtx(), getC_BPartner_ID(), get_TrxName()); MBPartner bp = new MBPartner (getCtx(), getC_BPartner_ID(), get_TrxName());
if (MBPartner.SOCREDITSTATUS_CreditStop.equals(bp.getSOCreditStatus())) if (MBPartner.SOCREDITSTATUS_CreditStop.equals(bp.getSOCreditStatus()))
{ {
@ -1245,6 +1252,7 @@ public class MOrder extends X_C_Order implements DocAction
return DocAction.STATUS_Invalid; return DocAction.STATUS_Invalid;
} }
} }
}
m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_PREPARE); m_processMsg = ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_PREPARE);
if (m_processMsg != null) if (m_processMsg != null)

View File

@ -0,0 +1,10 @@
-- Aug 19, 2009 12:05:23 PM COT
-- FR 2840458 - Credit checking problem
INSERT INTO AD_SysConfig (AD_Client_ID,AD_Org_ID,AD_SysConfig_ID,ConfigurationLevel,Created,CreatedBy,Description,EntityType,IsActive,Name,Updated,UpdatedBy,Value) VALUES (0,0,50029,'O',TO_DATE('2009-08-19 12:05:21','YYYY-MM-DD HH24:MI:SS'),100,'Check credit on Cash POS Order','D','Y','CHECK_CREDIT_ON_CASH_POS_ORDER',TO_DATE('2009-08-19 12:05:21','YYYY-MM-DD HH24:MI:SS'),100,'Y')
;
-- Aug 19, 2009 12:05:38 PM COT
-- FR 2840458 - Credit checking problem
INSERT INTO AD_SysConfig (AD_Client_ID,AD_Org_ID,AD_SysConfig_ID,ConfigurationLevel,Created,CreatedBy,Description,EntityType,IsActive,Name,Updated,UpdatedBy,Value) VALUES (0,0,50030,'O',TO_DATE('2009-08-19 12:05:37','YYYY-MM-DD HH24:MI:SS'),100,'Check credit on Prepay Order','D','Y','CHECK_CREDIT_ON_PREPAY_ORDER',TO_DATE('2009-08-19 12:05:37','YYYY-MM-DD HH24:MI:SS'),100,'Y')
;

View File

@ -0,0 +1,10 @@
-- Aug 19, 2009 12:05:23 PM COT
-- FR 2840458 - Credit checking problem
INSERT INTO AD_SysConfig (AD_Client_ID,AD_Org_ID,AD_SysConfig_ID,ConfigurationLevel,Created,CreatedBy,Description,EntityType,IsActive,Name,Updated,UpdatedBy,Value) VALUES (0,0,50029,'O',TO_TIMESTAMP('2009-08-19 12:05:21','YYYY-MM-DD HH24:MI:SS'),100,'Check credit on Cash POS Order','D','Y','CHECK_CREDIT_ON_CASH_POS_ORDER',TO_TIMESTAMP('2009-08-19 12:05:21','YYYY-MM-DD HH24:MI:SS'),100,'Y')
;
-- Aug 19, 2009 12:05:38 PM COT
-- FR 2840458 - Credit checking problem
INSERT INTO AD_SysConfig (AD_Client_ID,AD_Org_ID,AD_SysConfig_ID,ConfigurationLevel,Created,CreatedBy,Description,EntityType,IsActive,Name,Updated,UpdatedBy,Value) VALUES (0,0,50030,'O',TO_TIMESTAMP('2009-08-19 12:05:37','YYYY-MM-DD HH24:MI:SS'),100,'Check credit on Prepay Order','D','Y','CHECK_CREDIT_ON_PREPAY_ORDER',TO_TIMESTAMP('2009-08-19 12:05:37','YYYY-MM-DD HH24:MI:SS'),100,'Y')
;