diff --git a/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_OrderValidator.java b/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_OrderValidator.java index 18404cc..180c083 100644 --- a/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_OrderValidator.java +++ b/andromeida.midsuit.project/src/andromedia/midsuit/validator/MID_OrderValidator.java @@ -51,6 +51,53 @@ public class MID_OrderValidator { if(line.getQtyOrdered().compareTo(totalQtyOrdered)!=0) throw new AdempiereException("Cek kembali jumlah lot untuk produk "+line.getM_Product().getName()); } + } + if (order.isSOTrx()) return ""; + MOrderLine[] lines = order.getLines(); + if(order.get_ValueAsInt("MID_AJUDocumentType_ID")==0) + return ""; + + int M_AttributeSetInstance_ID = DB.getSQLValue(order.get_TrxName(), "SELECT M_AttributeSetInstance_ID FROM M_AttributeSetInstance WHERE SerNo=?", new Object[] { order.get_ValueAsString("NoAju1") }); + int M_AttributeSet_ID = DB.getSQLValue(order.get_TrxName(), "SELECT M_AttributeSet_ID FROM M_AttributeSet WHERE IsActive=? AND AD_Client_ID =? ", new Object[] { true, order.getAD_Client_ID() }); + MAttributeSet aSet = new MAttributeSet(order.getCtx(), M_AttributeSet_ID, order.get_TrxName()); + if(M_AttributeSetInstance_ID <=0) { + MAttributeSetInstance ASI = new MAttributeSetInstance(order.getCtx(), 0, order.get_TrxName()); + ASI.setSerNo(order.get_ValueAsString("NoAju1")); + ASI.setMAttributeSet(aSet); + ASI.setDescription(); + ASI.saveEx(); + + M_AttributeSetInstance_ID = ASI.get_ID(); + } + + for(MOrderLine line : lines) { + String noAju = line.get_ValueAsString("NoAju"); + if(order.get_ValueAsInt("MID_AJUDocumentType_ID")>0 && noAju==null) + return "Silahkan isi dokumen AJU terlebih dahulu !!!"; + List attLines = new Query(order.getCtx(), X_C_OrderLineMA.Table_Name, "C_OrderLine_ID =?", order.get_TrxName()) + .setParameters(new Object[] { line.getC_OrderLine_ID() }) + .setOnlyActiveRecords(true) + .list(); + if(attLines.size()<=0) + if(line.getM_AttributeSetInstance_ID()>0) { + MAttributeSetInstance ASI = new MAttributeSetInstance(order.getCtx(), line.getM_AttributeSetInstance_ID(), order.get_TrxName()); + ASI.setSerNo(line.get_ValueAsString("NoAju")); + ASI.setDescription(); + ASI.saveEx(); + }else { + order.get_Logger().severe("MASUK SINI"); + line.setM_AttributeSetInstance_ID(M_AttributeSetInstance_ID); + line.saveEx(); + } + + for(X_C_OrderLineMA attLine : attLines) { + MAttributeSetInstance ASI = new MAttributeSetInstance(order.getCtx(), attLine.getM_AttributeSetInstance_ID(), order.get_TrxName()); + ASI.setSerNo(line.get_ValueAsString("NoAju")); + ASI.setDescription(); + ASI.saveEx(); + } + + } return ""; } @@ -164,44 +211,6 @@ public class MID_OrderValidator { } public static String beforeComplete(MOrder Order) { - if (Order.isSOTrx()) return ""; - MOrderLine[] lines = Order.getLines(); - if(Order.get_ValueAsInt("MID_AJUDocumentType_ID")==0) - return ""; - for(MOrderLine line : lines) { - String noAju = line.get_ValueAsString("NoAju"); - if(Order.get_ValueAsInt("MID_AJUDocumentType_ID")>0 && noAju==null) - return "Silahkan isi dokumen AJU terlebih dahulu !!!"; - List attLines = new Query(Order.getCtx(), X_C_OrderLineMA.Table_Name, "C_OrderLine_ID =?", Order.get_TrxName()) - .setParameters(new Object[] { line.getC_OrderLine_ID() }) - .setOnlyActiveRecords(true) - .list(); - if(attLines.size()<=0) - if(line.getM_AttributeSetInstance_ID()>0) { - MAttributeSetInstance ASI = new MAttributeSetInstance(Order.getCtx(), line.getM_AttributeSetInstance_ID(), Order.get_TrxName()); - ASI.setSerNo(line.get_ValueAsString("NoAju")); - ASI.setDescription(); - ASI.saveEx(); - }else { - MAttributeSetInstance ASI = new MAttributeSetInstance(Order.getCtx(), 0, Order.get_TrxName()); - ASI.setSerNo(line.get_ValueAsString("NoAju")); - ASI.setMAttributeSet((MAttributeSet)line.getM_Product().getM_AttributeSet()); - ASI.setDescription(); - ASI.saveEx(); - - line.setM_AttributeSetInstance_ID(ASI.getM_AttributeSetInstance_ID()); - line.saveEx(); - } - - for(X_C_OrderLineMA attLine : attLines) { - MAttributeSetInstance ASI = new MAttributeSetInstance(Order.getCtx(), attLine.getM_AttributeSetInstance_ID(), Order.get_TrxName()); - ASI.setSerNo(line.get_ValueAsString("NoAju")); - ASI.setDescription(); - ASI.saveEx(); - } - - - } return ""; } }