parent
6c41415a69
commit
5b050cf421
|
|
@ -19,3 +19,4 @@ Import-Package: org.compiere.apps,
|
|||
org.compiere.grid,
|
||||
org.compiere.minigrid,
|
||||
org.compiere.process
|
||||
Bundle-Activator: org.adempiere.plugin.utils.AdempiereActivator
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import org.compiere.model.MMovementLineMA;
|
|||
import org.compiere.model.MOrder;
|
||||
import org.compiere.model.MProduction;
|
||||
import org.compiere.model.MProductionLine;
|
||||
import org.compiere.model.X_C_OrderLine;
|
||||
|
||||
import andromedia.midsuit.callout.MID_CalloutAnalysisQC;
|
||||
import andromedia.midsuit.callout.MID_CalloutInOut;
|
||||
|
|
@ -21,10 +22,12 @@ import andromedia.midsuit.callout.MID_CalloutInventoryLine;
|
|||
import andromedia.midsuit.callout.MID_CalloutInventoryLineMA;
|
||||
import andromedia.midsuit.callout.MID_CalloutMovementLineMA;
|
||||
import andromedia.midsuit.callout.MID_CalloutOrder;
|
||||
import andromedia.midsuit.callout.MID_CalloutOrderLineMA;
|
||||
import andromedia.midsuit.callout.MID_CalloutProduction;
|
||||
import andromedia.midsuit.callout.MID_CalloutProductionLine;
|
||||
import andromedia.midsuit.callout.MID_CalloutRequisitionTrxLine;
|
||||
import andromedia.midsuit.model.MID_Analysis;
|
||||
import andromedia.midsuit.model.X_C_OrderLineMA;
|
||||
import andromedia.midsuit.model.X_MID_RequisitionLine;
|
||||
|
||||
public class MID_CalloutFactory implements IColumnCalloutFactory{
|
||||
|
|
@ -53,6 +56,9 @@ public class MID_CalloutFactory implements IColumnCalloutFactory{
|
|||
list.add(new MID_CalloutMovementLineMA());
|
||||
if(tableName.equals(MInventoryLineMA.Table_Name))
|
||||
list.add(new MID_CalloutInventoryLineMA());
|
||||
if(tableName.equals(X_C_OrderLineMA.Table_Name))
|
||||
list.add(new MID_CalloutOrderLineMA());
|
||||
|
||||
return list != null ? list.toArray(new IColumnCallout[0]) : new IColumnCallout[0];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ 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_InventoryLineMAValidator;
|
||||
import andromedia.midsuit.validator.MID_InventoryLineValidator;
|
||||
import andromedia.midsuit.validator.MID_InventoryValidator;
|
||||
|
|
@ -35,8 +36,8 @@ 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(MInOut.Table_Name))
|
||||
// msg = MID_InOutValidator.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))
|
||||
|
|
@ -67,8 +68,9 @@ public class MID_ValidatorFactory extends AbstractEventHandler {
|
|||
registerTableEvent(IEventTopics.DOC_BEFORE_COMPLETE, MOrder.Table_Name);
|
||||
registerTableEvent(IEventTopics.PO_BEFORE_CHANGE, MOrder.Table_Name);
|
||||
registerTableEvent(IEventTopics.DOC_BEFORE_PREPARE, MOrder.Table_Name);
|
||||
|
||||
registerTableEvent(IEventTopics.PO_BEFORE_NEW,MInOut.Table_Name);
|
||||
|
||||
// Shipment / Receipt
|
||||
registerTableEvent(IEventTopics.DOC_BEFORE_PREPARE, MInOut.Table_Name);
|
||||
|
||||
//RMA
|
||||
registerTableEvent(IEventTopics.DOC_AFTER_COMPLETE, MRMA.Table_Name);
|
||||
|
|
|
|||
|
|
@ -739,7 +739,8 @@ public abstract class MID_CreateFromShipment extends CreateFrom
|
|||
inoutAtt.setM_InOutLine_ID(iol.getM_InOutLine_ID());
|
||||
inoutAtt.setIsAutoGenerated(false);
|
||||
inoutAtt.setM_AttributeSetInstance_ID(attLine.getM_AttributeSetInstance_ID());
|
||||
inoutAtt.setDateMaterialPolicy(iol.getM_InOut().getMovementDate());
|
||||
|
||||
inoutAtt.setDateMaterialPolicy(!inout.isSOTrx() ? iol.getM_InOut().getMovementDate() : attLine.getDateMaterialPolicy());
|
||||
inoutAtt.saveEx();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,18 +1,44 @@
|
|||
package andromedia.midsuit.validator;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.adempiere.base.event.IEventTopics;
|
||||
import org.adempiere.exceptions.AdempiereException;
|
||||
import org.compiere.model.MInOut;
|
||||
import org.compiere.model.MInOutLine;
|
||||
import org.compiere.model.MOrder;
|
||||
import org.compiere.model.MOrderLine;
|
||||
import org.compiere.model.PO;
|
||||
import org.compiere.model.Query;
|
||||
import org.compiere.model.X_C_BPartner_Location;
|
||||
import org.compiere.model.X_M_InOutLineMA;
|
||||
import org.compiere.util.DB;
|
||||
import org.osgi.service.event.Event;
|
||||
|
||||
import andromedia.midsuit.model.X_C_OrderLineMA;
|
||||
|
||||
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);
|
||||
// if (e.getTopic().equals(IEventTopics.PO_BEFORE_NEW))
|
||||
// return beforeSave(InOut);
|
||||
if(e.getTopic().equals(IEventTopics.DOC_BEFORE_PREPARE))
|
||||
return beforePrepare(InOut);
|
||||
return "";
|
||||
}
|
||||
private static String beforePrepare(MInOut inOut) {
|
||||
for(MInOutLine line : inOut.getLines()) {
|
||||
int countAttLines = new Query(inOut.getCtx(), X_M_InOutLineMA.Table_Name, "M_InOutLine_ID =?", inOut.get_TrxName())
|
||||
.setParameters(new Object[] { line.getM_InOutLine_ID() })
|
||||
.setOnlyActiveRecords(true)
|
||||
.count();
|
||||
|
||||
if(countAttLines>0){
|
||||
BigDecimal totalQtyOrdered = DB.getSQLValueBD(inOut.get_TrxName(), "SELECT COALESCE(SUM(MovementQty),0) FROM M_InOutLineMA WHERE M_InOutLine_ID =?", new Object[] { line.getM_InOutLine_ID() });
|
||||
if(line.getMovementQty().compareTo(totalQtyOrdered)!=0)
|
||||
throw new AdempiereException("Cek kembali jumlah lot untuk produk "+line.getM_Product().getName());
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
private static String beforeSave(MInOut InOut){
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import andromedia.midsuit.model.X_C_OrderLineMA;
|
|||
public class MID_OrderValidator {
|
||||
public static String executeEvent(Event e, PO po) {
|
||||
MOrder Order = (MOrder) po;
|
||||
if (Order.isSOTrx()) return "";
|
||||
|
||||
// if (e.getTopic().equals(IEventTopics.DOC_AFTER_COMPLETE))
|
||||
// return afterComplete(Order);
|
||||
if (e.getTopic().equals(IEventTopics.DOC_BEFORE_COMPLETE))
|
||||
|
|
@ -54,7 +54,9 @@ public class MID_OrderValidator {
|
|||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private static String afterComplete(MOrder Order){
|
||||
if (Order.isSOTrx()) return "";
|
||||
MDocType docTypeOfOrder = (MDocType) Order.getC_DocType();
|
||||
if(docTypeOfOrder.get_ValueAsBoolean("isPOS")){
|
||||
//Create Shipment
|
||||
|
|
@ -148,7 +150,7 @@ public class MID_OrderValidator {
|
|||
}
|
||||
|
||||
private static String beforeChange(MOrder order) {
|
||||
|
||||
if (order.isSOTrx()) return "";
|
||||
if(order.get_ValueAsString("NoAju1").equals("") || order.get_ValueAsString("NoAju2").equals("")
|
||||
|| order.get_ValueAsString("NoAju3").equals("") || order.get_ValueAsString("NoAju4").equals("")) {
|
||||
DB.executeUpdateEx("UPDATE C_OrderLine SET NoAju = ? WHERE C_Order_ID = ?",
|
||||
|
|
@ -167,6 +169,7 @@ public class MID_OrderValidator {
|
|||
}
|
||||
|
||||
public static String beforeComplete(MOrder Order) {
|
||||
if (Order.isSOTrx()) return "";
|
||||
MOrderLine[] lines = Order.getLines();
|
||||
for(MOrderLine line : lines) {
|
||||
String noAju = line.get_ValueAsString("NoAju");
|
||||
|
|
|
|||
Loading…
Reference in New Issue