From c852e3da390ee7645b9ef8f18cf525aa1e9c56c4 Mon Sep 17 00:00:00 2001 From: hodianto Date: Mon, 9 Jul 2018 20:13:37 +0700 Subject: [PATCH] Validator + ZPOS --- andromedia.midsuit.feature/feature.xml | 59 +++++++++++-------- .../midsuit/doc/MID_DocDDOrder.java | 44 ++++++++++++++ .../midsuit/factory/MID_ModelFactory.java | 4 +- .../midsuit/factory/MID_ValidatorFactory.java | 24 +++++--- .../factory/MID_ValidatorFactory.java.rej | 27 +++++++++ .../midsuit/model/I_zpos_Cashier.java | 2 +- .../midsuit/validator/MID_InOutValidator.java | 29 +++++++++ .../validator/MID_InvoiceValidator.java | 31 ++++++++++ 8 files changed, 185 insertions(+), 35 deletions(-) create mode 100644 andromeida.midsuit.project/src/andromedia/midsuit/doc/MID_DocDDOrder.java create mode 100644 andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ValidatorFactory.java.rej create mode 100644 andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_InOutValidator.java create mode 100644 andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_InvoiceValidator.java diff --git a/andromedia.midsuit.feature/feature.xml b/andromedia.midsuit.feature/feature.xml index 2cc5415..8c6eb08 100644 --- a/andromedia.midsuit.feature/feature.xml +++ b/andromedia.midsuit.feature/feature.xml @@ -1,26 +1,33 @@ - - - - - [Enter Feature Description here.] - - - - [Enter Copyright Description here.] - - - - [Enter License Description here.] - - - - - + + + + + [Enter Feature Description here.] + + + + [Enter Copyright Description here.] + + + + [Enter License Description here.] + + + + + + + diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/doc/MID_DocDDOrder.java b/andromeida.midsuit.project/src/andromedia/midsuit/doc/MID_DocDDOrder.java new file mode 100644 index 0000000..b9ab9c8 --- /dev/null +++ b/andromeida.midsuit.project/src/andromedia/midsuit/doc/MID_DocDDOrder.java @@ -0,0 +1,44 @@ +package andromedia.midsuit.doc; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.util.ArrayList; + +import org.compiere.acct.Doc; +import org.compiere.acct.Fact; +import org.compiere.model.MAcctSchema; +import org.compiere.util.Env; +import org.eevolution.model.MDDOrder; + +import andromedia.midsuit.model.MID_MRequisitionTrx; + +public class MID_DocDDOrder extends Doc { + public MID_DocDDOrder(MAcctSchema as, ResultSet rs, String trxName) { + super(as, MDDOrder.class, rs, null, trxName); + } // Doc_Invoice + + public MID_DocDDOrder(MAcctSchema as, Class clazz, ResultSet rs, String defaultDocumentType, String trxName) { + super(as, clazz, rs, defaultDocumentType, trxName); + // TODO Auto-generated constructor stub + } + + @Override + protected String loadDocumentDetails() { + // TODO Auto-generated method stub + return null; + } + + @Override + public BigDecimal getBalance() { + // TODO Auto-generated method stub + return Env.ZERO; + } + + @Override + public ArrayList createFacts(MAcctSchema as) { + // TODO Auto-generated method stub + return null; + } + + +} diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ModelFactory.java b/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ModelFactory.java index 43607fa..5b1c3b3 100644 --- a/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ModelFactory.java +++ b/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ModelFactory.java @@ -12,6 +12,7 @@ import org.compiere.util.Env; import andromedia.midsuit.model.MID_Aging; import andromedia.midsuit.model.MID_MRequisitionTrx; import andromedia.midsuit.model.MID_MRequisitionTrxLine; +import andromedia.midsuit.model.X_zpos_Cashier; public class MID_ModelFactory implements IModelFactory{ private static HashMap mapTableModels = new HashMap(); @@ -19,7 +20,8 @@ public class MID_ModelFactory implements IModelFactory{ //Ex mapTableModels.put(MOrderLine.Table_Name, "org.semeru.project.model.SMT_MOrderLine"); mapTableModels.put(MID_MRequisitionTrx.Table_Name, "andromedia.midsuit.model.MID_MRequisitionTrx"); mapTableModels.put(MID_MRequisitionTrxLine.Table_Name, "andromedia.midsuit.model.MID_MRequisitionTrxLine"); - mapTableModels.put(MID_Aging.Table_Name, "andromedia.midsuit.model.MID_Aging"); + mapTableModels.put(X_zpos_Cashier.Table_Name, "andromedia.midsuit.model.X_zpos_Cashier"); +// mapTableModels.put(MID_Aging.Table_Name, "andromedia.midsuit.model.MID_Aging"); } @Override diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ValidatorFactory.java b/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ValidatorFactory.java index 4aa539a..dc33ddd 100644 --- a/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ValidatorFactory.java +++ b/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ValidatorFactory.java @@ -3,6 +3,8 @@ package andromedia.midsuit.factory; import org.adempiere.base.event.AbstractEventHandler; import org.adempiere.base.event.IEventTopics; import org.adempiere.exceptions.AdempiereException; +import org.compiere.model.MInOut; +import org.compiere.model.MInvoice; import org.compiere.model.MOrder; import org.compiere.model.MPaymentAllocate; import org.compiere.model.MPriceList; @@ -12,6 +14,8 @@ import org.compiere.model.PO; import org.compiere.util.CLogger; import org.osgi.service.event.Event; +import andromedia.midsuit.validator.MID_InOutValidator; +import andromedia.midsuit.validator.MID_InvoiceValidator; import andromedia.midsuit.validator.MID_OrderValidator; import andromedia.midsuit.validator.MID_PaymentAllocateValidator; import andromedia.midsuit.validator.MID_PriceListValidator; @@ -32,12 +36,16 @@ public class MID_ValidatorFactory extends AbstractEventHandler { msg = MID_OrderValidator.executeEvent(event, getPO(event)); if (getPO(event).get_TableName().equals(MRMA.Table_Name)) msg = MID_RMAValidator.executeEvent(event, getPO(event)); - if(getPO(event).get_TableName().equals(MPaymentAllocate.Table_Name)) - msg = MID_PaymentAllocateValidator.executeEvent(event, getPO(event)); - if(getPO(event).get_TableName().equals(MProductPrice.Table_Name)) - msg = MID_ProductPriceValidator.executeEvent(event, getPO(event)); - if(getPO(event).get_TableName().equals(MPriceList.Table_Name)) - msg = MID_PriceListValidator.executeEvent(event, getPO(event)); + if (getPO(event).get_TableName().equals(MInOut.Table_Name)) + msg = MID_InOutValidator.executeEvent(event, getPO(event)); + if(getPO(event).get_TableName().equals(MInvoice.Table_Name)) + msg = MID_InvoiceValidator.executeEvent(event, getPO(event)); +// if(getPO(event).get_TableName().equals(MPaymentAllocate.Table_Name)) +// msg = MID_PaymentAllocateValidator.executeEvent(event, getPO(event)); +// if(getPO(event).get_TableName().equals(MProductPrice.Table_Name)) +// msg = MID_ProductPriceValidator.executeEvent(event, getPO(event)); +// if(getPO(event).get_TableName().equals(MPriceList.Table_Name)) +// msg = MID_PriceListValidator.executeEvent(event, getPO(event)); logEvent(event, getPO(event), msg); } @@ -52,7 +60,7 @@ public class MID_ValidatorFactory extends AbstractEventHandler { // registerTableEvent(IEventTopics.DOC_BEFORE_COMPLETE, Table_Name); registerTableEvent(IEventTopics.DOC_AFTER_COMPLETE, MOrder.Table_Name); - + registerTableEvent(IEventTopics.PO_BEFORE_NEW,MInOut.Table_Name); //RMA registerTableEvent(IEventTopics.DOC_AFTER_COMPLETE, MRMA.Table_Name); registerTableEvent(IEventTopics.PO_AFTER_NEW, MRMA.Table_Name); @@ -68,6 +76,8 @@ public class MID_ValidatorFactory extends AbstractEventHandler { registerTableEvent(IEventTopics.PO_AFTER_NEW, MProductPrice.Table_Name); registerTableEvent(IEventTopics.PO_AFTER_CHANGE,MProductPrice.Table_Name); registerTableEvent(IEventTopics.PO_BEFORE_NEW,MPriceList.Table_Name); + + registerTableEvent(IEventTopics.PO_AFTER_NEW,MInvoice.Table_Name); } } diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ValidatorFactory.java.rej b/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ValidatorFactory.java.rej new file mode 100644 index 0000000..6ccef45 --- /dev/null +++ b/andromeida.midsuit.project/src/andromedia/midsuit/factory/MID_ValidatorFactory.java.rej @@ -0,0 +1,27 @@ +--- MID_ValidatorFactory.java ++++ MID_ValidatorFactory.java +@@ -26,15 +26,15 @@ + + // if (getPO(event).get_TableName().equals(MOrderLandedCostAllocation.Table_Name)) + // msg = SMT_LandedCostAllocationValidator.executeEvent(event, getPO(event)); +- if (getPO(event).get_TableName().equals(MOrder.Table_Name)) +- msg = MID_OrderValidator.executeEvent(event, getPO(event)); +- if (getPO(event).get_TableName().equals(MRMA.Table_Name)) +- msg = MID_RMAValidator.executeEvent(event, getPO(event)); +- if(getPO(event).get_TableName().equals(MPaymentAllocate.Table_Name)) +- msg = MID_PaymentAllocateValidator.executeEvent(event, getPO(event)); +- if(getPO(event).get_TableName().equals(MProductPrice.Table_Name)) +- msg = MID_ProductPriceValidator.executeEvent(event, getPO(event)); +- logEvent(event, getPO(event), msg); ++// if (getPO(event).get_TableName().equals(MOrder.Table_Name)) ++// msg = MID_OrderValidator.executeEvent(event, getPO(event)); ++// if (getPO(event).get_TableName().equals(MRMA.Table_Name)) ++// msg = MID_RMAValidator.executeEvent(event, getPO(event)); ++// if(getPO(event).get_TableName().equals(MPaymentAllocate.Table_Name)) ++// msg = MID_PaymentAllocateValidator.executeEvent(event, getPO(event)); ++// if(getPO(event).get_TableName().equals(MProductPrice.Table_Name)) ++// msg = MID_ProductPriceValidator.executeEvent(event, getPO(event)); ++// logEvent(event, getPO(event), msg); + } + + private void logEvent(Event event, PO po, String msg) { diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/model/I_zpos_Cashier.java b/andromeida.midsuit.project/src/andromedia/midsuit/model/I_zpos_Cashier.java index 6464dc0..a25ede1 100644 --- a/andromeida.midsuit.project/src/andromedia/midsuit/model/I_zpos_Cashier.java +++ b/andromeida.midsuit.project/src/andromedia/midsuit/model/I_zpos_Cashier.java @@ -33,7 +33,7 @@ public interface I_zpos_Cashier public static final String Table_Name = "zpos_Cashier"; /** AD_Table_ID=300006 */ - public static final int Table_ID = 300006; + public static final int Table_ID = 30015; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_InOutValidator.java b/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_InOutValidator.java new file mode 100644 index 0000000..eb98ac0 --- /dev/null +++ b/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_InOutValidator.java @@ -0,0 +1,29 @@ +package andromedia.midsuit.validator; + +import org.adempiere.base.event.IEventTopics; +import org.compiere.model.MInOut; +import org.compiere.model.MOrder; +import org.compiere.model.PO; +import org.compiere.model.Query; +import org.compiere.model.X_C_BPartner_Location; +import org.osgi.service.event.Event; + +public class MID_InOutValidator { + public static String executeEvent(Event e, PO po) { + MInOut InOut = (MInOut) po; + if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW)) + return beforeSave(InOut); + return ""; + } + private static String beforeSave(MInOut InOut){ + if(InOut.getC_BPartner_Location_ID()==0) + { + int C_BPartner_Location_ID = new Query(InOut.getCtx(), X_C_BPartner_Location.Table_Name, "C_BPartner_ID =?", InOut.get_TrxName()) + .setOnlyActiveRecords(true) + .setParameters(new Object[] { InOut.getC_BPartner_ID() }) + .firstId(); + InOut.setC_BPartner_Location_ID(C_BPartner_Location_ID); + } + return ""; + } +} diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_InvoiceValidator.java b/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_InvoiceValidator.java new file mode 100644 index 0000000..e7a3fc4 --- /dev/null +++ b/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_InvoiceValidator.java @@ -0,0 +1,31 @@ +/** + * USED FOR CAPITA VENTURA ONLY ! + * Author @Hodianto + * Invoice UPPER DOCUMENT NO + */ +package andromedia.midsuit.validator; + +import org.adempiere.base.event.IEventTopics; +import org.compiere.model.MInvoice; +import org.compiere.model.PO; +import org.compiere.util.DB; +import org.osgi.service.event.Event; + +public class MID_InvoiceValidator { + public static String executeEvent(Event e, PO po) { + MInvoice iv = (MInvoice) po; + if (e.getTopic().equals(IEventTopics.PO_AFTER_NEW)) + return beforeNew(iv); + return ""; + } + private static String beforeNew(MInvoice iv){ + + if(!iv.getDocumentNo().equals(iv.getDocumentNo().toUpperCase())) { + + String newDoc = iv.getDocumentNo().toUpperCase(); + DB.executeUpdate("UPDATE C_Invoice SET DocumentNo=? WHERE C_Invoice_ID =?", new Object[] { newDoc, iv.get_ID() }, true, iv.get_TrxName()); + + } + return ""; + } +}