Search in sources :

Example 1 with MRMALine

use of org.compiere.model.MRMALine in project adempiere by adempiere.

the class RMACreateOrder method doIt.

@Override
protected String doIt() throws Exception {
    // Load RMA
    MRMA rma = new MRMA(getCtx(), rmaId, get_TrxName());
    // Load Original Order
    MOrder originalOrder = rma.getOriginalOrder();
    if (rma.get_ID() == 0) {
        throw new Exception("No RMA defined");
    }
    if (originalOrder == null) {
        throw new Exception("Could not load the original order");
    }
    // Create new order and set the different values based on original order/RMA doc
    MOrder order = new MOrder(getCtx(), 0, get_TrxName());
    order.setAD_Org_ID(rma.getAD_Org_ID());
    order.setC_BPartner_ID(originalOrder.getC_BPartner_ID());
    order.setC_BPartner_Location_ID(originalOrder.getC_BPartner_Location_ID());
    order.setAD_User_ID(originalOrder.getAD_User_ID());
    order.setBill_BPartner_ID(originalOrder.getBill_BPartner_ID());
    order.setBill_Location_ID(originalOrder.getBill_Location_ID());
    order.setBill_User_ID(originalOrder.getBill_User_ID());
    order.setSalesRep_ID(rma.getSalesRep_ID());
    order.setM_PriceList_ID(originalOrder.getM_PriceList_ID());
    order.setIsSOTrx(originalOrder.isSOTrx());
    order.setM_Warehouse_ID(originalOrder.getM_Warehouse_ID());
    order.setC_DocTypeTarget_ID(originalOrder.getC_DocTypeTarget_ID());
    order.setC_PaymentTerm_ID(originalOrder.getC_PaymentTerm_ID());
    order.setDeliveryRule(originalOrder.getDeliveryRule());
    if (!order.save()) {
        throw new IllegalStateException("Could not create order");
    }
    MRMALine[] lines = rma.getLines(true);
    for (MRMALine line : lines) {
        if (line.getShipLine() != null && line.getShipLine().getC_OrderLine_ID() != 0) {
            // Create order lines if the RMA Doc line has a shipment line 
            MOrderLine orderLine = new MOrderLine(order);
            MOrderLine originalOLine = new MOrderLine(getCtx(), line.getShipLine().getC_OrderLine_ID(), null);
            orderLine.setAD_Org_ID(line.getAD_Org_ID());
            orderLine.setM_Product_ID(originalOLine.getM_Product_ID());
            orderLine.setM_AttributeSetInstance_ID(originalOLine.getM_AttributeSetInstance_ID());
            orderLine.setC_UOM_ID(originalOLine.getC_UOM_ID());
            orderLine.setC_Tax_ID(originalOLine.getC_Tax_ID());
            orderLine.setM_Warehouse_ID(originalOLine.getM_Warehouse_ID());
            orderLine.setC_Currency_ID(originalOLine.getC_Currency_ID());
            orderLine.setQty(line.getQty());
            orderLine.setC_Project_ID(originalOLine.getC_Project_ID());
            orderLine.setC_Activity_ID(originalOLine.getC_Activity_ID());
            orderLine.setC_Campaign_ID(originalOLine.getC_Campaign_ID());
            orderLine.setPrice();
            orderLine.setPrice(line.getAmt());
            if (!orderLine.save()) {
                throw new IllegalStateException("Could not create Order Line");
            }
        }
    }
    rma.setC_Order_ID(order.getC_Order_ID());
    if (!rma.save()) {
        throw new IllegalStateException("Could not update RMA document");
    }
    return "Order Created: " + order.getDocumentNo();
}
Also used : MOrder(org.compiere.model.MOrder) MRMALine(org.compiere.model.MRMALine) MOrderLine(org.compiere.model.MOrderLine) MRMA(org.compiere.model.MRMA)

Example 2 with MRMALine

use of org.compiere.model.MRMALine in project adempiere by adempiere.

the class InOutGenerateRMA method createShipmentLines.

private MInOutLine[] createShipmentLines(MRMA rma, MInOut shipment) {
    ArrayList<MInOutLine> shipLineList = new ArrayList<MInOutLine>();
    MRMALine[] rmaLines = rma.getLines(true);
    for (MRMALine rmaLine : rmaLines) {
        if (rmaLine.getM_InOutLine_ID() != 0) {
            MInOutLine shipLine = new MInOutLine(shipment);
            shipLine.setM_RMALine_ID(rmaLine.get_ID());
            shipLine.setLine(rmaLine.getLine());
            shipLine.setDescription(rmaLine.getDescription());
            shipLine.setM_Product_ID(rmaLine.getM_Product_ID());
            shipLine.setM_AttributeSetInstance_ID(rmaLine.getM_AttributeSetInstance_ID());
            shipLine.setC_UOM_ID(rmaLine.getC_UOM_ID());
            shipLine.setQty(rmaLine.getQty());
            shipLine.setM_Locator_ID(rmaLine.getM_Locator_ID());
            shipLine.setC_Project_ID(rmaLine.getC_Project_ID());
            shipLine.setC_Campaign_ID(rmaLine.getC_Campaign_ID());
            shipLine.setC_Activity_ID(rmaLine.getC_Activity_ID());
            shipLine.setC_ProjectPhase_ID(rmaLine.getC_ProjectPhase_ID());
            shipLine.setC_ProjectTask_ID(rmaLine.getC_ProjectTask_ID());
            shipLine.setUser1_ID(rmaLine.getUser1_ID());
            shipLine.setUser2_ID(rmaLine.getUser2_ID());
            shipLine.setUser3_ID(rmaLine.getUser3_ID());
            shipLine.setUser4_ID(rmaLine.getUser4_ID());
            shipLine.saveEx();
            shipLineList.add(shipLine);
            //
            // Link to corresponding Invoice Line (if any) - teo_sarca [ 2818523 ]
            // The MMatchInv records will be automatically generated on MInOut.completeIt()
            MInvoiceLine invoiceLine = new Query(shipment.getCtx(), I_C_InvoiceLine.Table_Name, I_C_InvoiceLine.COLUMNNAME_M_RMALine_ID + "=?", shipment.get_TrxName()).setParameters(rmaLine.getM_RMALine_ID()).firstOnly();
            if (invoiceLine != null) {
                invoiceLine.setM_InOutLine_ID(shipLine.getM_InOutLine_ID());
                invoiceLine.saveEx();
            }
        }
    }
    MInOutLine[] shipLines = new MInOutLine[shipLineList.size()];
    shipLineList.toArray(shipLines);
    return shipLines;
}
Also used : Query(org.compiere.model.Query) MInOutLine(org.compiere.model.MInOutLine) MInvoiceLine(org.compiere.model.MInvoiceLine) ArrayList(java.util.ArrayList) MRMALine(org.compiere.model.MRMALine)

Example 3 with MRMALine

use of org.compiere.model.MRMALine in project adempiere by adempiere.

the class InvoiceGenerateRMA method createInvoiceLines.

private MInvoiceLine[] createInvoiceLines(MRMA rma, MInvoice invoice) {
    ArrayList<MInvoiceLine> invLineList = new ArrayList<MInvoiceLine>();
    MRMALine[] rmaLines = rma.getLines(true);
    for (MRMALine rmaLine : rmaLines) {
        if (rmaLine.getM_InOutLine_ID() == 0) {
            throw new IllegalStateException("No customer return line - RMA = " + rma.getDocumentNo() + ", Line = " + rmaLine.getLine());
        }
        MInvoiceLine invLine = new MInvoiceLine(invoice);
        invLine.setRMALine(rmaLine);
        if (!invLine.save()) {
            throw new IllegalStateException("Could not create invoice line");
        }
        invLineList.add(invLine);
    }
    MInvoiceLine[] invLines = new MInvoiceLine[invLineList.size()];
    invLineList.toArray(invLines);
    return invLines;
}
Also used : MInvoiceLine(org.compiere.model.MInvoiceLine) ArrayList(java.util.ArrayList) MRMALine(org.compiere.model.MRMALine)

Example 4 with MRMALine

use of org.compiere.model.MRMALine in project adempiere by adempiere.

the class CreateFromShipment method save.

/**
	 *  Save - Create Invoice Lines
	 *  @return true if saved
	 */
public boolean save(IMiniTable miniTable, String trxName) {
    /*
		dataTable.stopEditor(true);
		log.config("");
		TableModel model = dataTable.getModel();
		int rows = model.getRowCount();
		if (rows == 0)
			return false;
		//
		Integer defaultLoc = (Integer) locatorField.getValue();
		if (defaultLoc == null || defaultLoc.intValue() == 0) {
			locatorField.setBackground(AdempierePLAF.getFieldBackground_Error());
			return false;
		}
		*/
    int M_Locator_ID = defaultLocator_ID;
    if (M_Locator_ID == 0) {
        return false;
    }
    // Get Shipment
    MInOut inout = new MInOut(Env.getCtx(), m_Record_ID, trxName);
    log.config(inout + ", C_Locator_ID=" + M_Locator_ID);
    // Lines
    for (int i = 0; i < miniTable.getRowCount(); i++) {
        if (((Boolean) miniTable.getValueAt(i, 0)).booleanValue()) {
            // variable values
            // Qty
            BigDecimal QtyEntered = (BigDecimal) miniTable.getValueAt(i, 1);
            // UOM
            KeyNamePair pp = (KeyNamePair) miniTable.getValueAt(i, 2);
            int C_UOM_ID = pp.getKey();
            // Locator
            pp = (KeyNamePair) miniTable.getValueAt(i, 3);
            // If a locator is specified on the product, choose that otherwise default locator
            M_Locator_ID = pp != null && pp.getKey() != 0 ? pp.getKey() : defaultLocator_ID;
            // Product
            pp = (KeyNamePair) miniTable.getValueAt(i, 4);
            int M_Product_ID = pp.getKey();
            int C_OrderLine_ID = 0;
            // OrderLine
            pp = (KeyNamePair) miniTable.getValueAt(i, 6);
            if (pp != null)
                C_OrderLine_ID = pp.getKey();
            int M_RMALine_ID = 0;
            // RMA
            pp = (KeyNamePair) miniTable.getValueAt(i, 7);
            // If we have RMA
            if (pp != null)
                M_RMALine_ID = pp.getKey();
            int C_InvoiceLine_ID = 0;
            MInvoiceLine il = null;
            // InvoiceLine
            pp = (KeyNamePair) miniTable.getValueAt(i, 8);
            if (pp != null)
                C_InvoiceLine_ID = pp.getKey();
            if (C_InvoiceLine_ID != 0)
                il = new MInvoiceLine(Env.getCtx(), C_InvoiceLine_ID, trxName);
            //boolean isInvoiced = (C_InvoiceLine_ID != 0);
            //	Precision of Qty UOM
            int precision = 2;
            if (M_Product_ID != 0) {
                MProduct product = MProduct.get(Env.getCtx(), M_Product_ID);
                precision = product.getUOMPrecision();
            }
            QtyEntered = QtyEntered.setScale(precision, BigDecimal.ROUND_HALF_DOWN);
            //
            log.fine("Line QtyEntered=" + QtyEntered + ", Product=" + M_Product_ID + ", OrderLine=" + C_OrderLine_ID + ", InvoiceLine=" + C_InvoiceLine_ID);
            //	Credit Memo - negative Qty
            if (m_invoice != null && m_invoice.isCreditMemo())
                QtyEntered = QtyEntered.negate();
            //	Create new InOut Line
            MInOutLine iol = new MInOutLine(inout);
            //	Line UOM
            iol.setM_Product_ID(M_Product_ID, C_UOM_ID);
            //	Movement/Entered
            iol.setQty(QtyEntered);
            //
            MOrderLine ol = null;
            MRMALine rmal = null;
            if (C_OrderLine_ID != 0) {
                iol.setC_OrderLine_ID(C_OrderLine_ID);
                ol = new MOrderLine(Env.getCtx(), C_OrderLine_ID, trxName);
                if (ol.getQtyEntered().compareTo(ol.getQtyOrdered()) != 0) {
                    iol.setMovementQty(QtyEntered.multiply(ol.getQtyOrdered()).divide(ol.getQtyEntered(), 12, BigDecimal.ROUND_HALF_UP));
                    iol.setC_UOM_ID(ol.getC_UOM_ID());
                }
                iol.setM_AttributeSetInstance_ID(ol.getM_AttributeSetInstance_ID());
                iol.setDescription(ol.getDescription());
                //
                iol.setC_Project_ID(ol.getC_Project_ID());
                iol.setC_ProjectPhase_ID(ol.getC_ProjectPhase_ID());
                iol.setC_ProjectTask_ID(ol.getC_ProjectTask_ID());
                iol.setC_Activity_ID(ol.getC_Activity_ID());
                iol.setC_Campaign_ID(ol.getC_Campaign_ID());
                iol.setAD_OrgTrx_ID(ol.getAD_OrgTrx_ID());
                iol.setUser1_ID(ol.getUser1_ID());
                iol.setUser2_ID(ol.getUser2_ID());
                iol.setUser3_ID(ol.getUser3_ID());
                iol.setUser4_ID(ol.getUser4_ID());
            } else if (il != null) {
                if (il.getQtyEntered().compareTo(il.getQtyInvoiced()) != 0) {
                    iol.setQtyEntered(QtyEntered.multiply(il.getQtyInvoiced()).divide(il.getQtyEntered(), 12, BigDecimal.ROUND_HALF_UP));
                    iol.setC_UOM_ID(il.getC_UOM_ID());
                }
                iol.setDescription(il.getDescription());
                iol.setC_Project_ID(il.getC_Project_ID());
                iol.setC_ProjectPhase_ID(il.getC_ProjectPhase_ID());
                iol.setC_ProjectTask_ID(il.getC_ProjectTask_ID());
                iol.setC_Activity_ID(il.getC_Activity_ID());
                iol.setC_Campaign_ID(il.getC_Campaign_ID());
                iol.setAD_OrgTrx_ID(il.getAD_OrgTrx_ID());
                iol.setUser1_ID(il.getUser1_ID());
                iol.setUser2_ID(il.getUser2_ID());
                iol.setUser3_ID(il.getUser3_ID());
                iol.setUser4_ID(il.getUser4_ID());
            } else if (M_RMALine_ID != 0) {
                rmal = new MRMALine(Env.getCtx(), M_RMALine_ID, trxName);
                iol.setM_RMALine_ID(M_RMALine_ID);
                iol.setQtyEntered(QtyEntered);
                iol.setDescription(rmal.getDescription());
                iol.setM_AttributeSetInstance_ID(rmal.getM_AttributeSetInstance_ID());
                iol.setC_Project_ID(rmal.getC_Project_ID());
                iol.setC_ProjectPhase_ID(rmal.getC_ProjectPhase_ID());
                iol.setC_ProjectTask_ID(rmal.getC_ProjectTask_ID());
                iol.setC_Activity_ID(rmal.getC_Activity_ID());
                iol.setAD_OrgTrx_ID(rmal.getAD_OrgTrx_ID());
                iol.setUser1_ID(rmal.getUser1_ID());
                iol.setUser2_ID(rmal.getUser2_ID());
                iol.setUser3_ID(rmal.getUser3_ID());
                iol.setUser4_ID(rmal.getUser4_ID());
            }
            //	Charge
            if (M_Product_ID == 0) {
                if (//	from order
                ol != null && ol.getC_Charge_ID() != 0)
                    iol.setC_Charge_ID(ol.getC_Charge_ID());
                else if (//	from invoice
                il != null && il.getC_Charge_ID() != 0)
                    iol.setC_Charge_ID(il.getC_Charge_ID());
                else if (// from rma
                rmal != null && rmal.getC_Charge_ID() != 0)
                    iol.setC_Charge_ID(rmal.getC_Charge_ID());
            }
            // Set locator
            iol.setM_Locator_ID(M_Locator_ID);
            if (!iol.save())
                log.log(Level.SEVERE, "Line NOT created #" + i);
            else //	Create Invoice Line Link
            if (il != null) {
                il.setM_InOutLine_ID(iol.getM_InOutLine_ID());
                il.saveEx();
            }
        }
    //   if selected
    }
    /**
		 *  Update Header
		 *  - if linked to another order/invoice/rma - remove link
		 *  - if no link set it
		 */
    if (p_order != null && p_order.getC_Order_ID() != 0) {
        inout.setC_Order_ID(p_order.getC_Order_ID());
        inout.setAD_OrgTrx_ID(p_order.getAD_OrgTrx_ID());
        inout.setC_Project_ID(p_order.getC_Project_ID());
        inout.setC_Campaign_ID(p_order.getC_Campaign_ID());
        inout.setC_Activity_ID(p_order.getC_Activity_ID());
        inout.setUser1_ID(p_order.getUser1_ID());
        inout.setUser2_ID(p_order.getUser2_ID());
        inout.setUser3_ID(p_order.getUser3_ID());
        inout.setUser4_ID(p_order.getUser4_ID());
        if (p_order.isDropShip()) {
            inout.setM_Warehouse_ID(p_order.getM_Warehouse_ID());
            inout.setIsDropShip(p_order.isDropShip());
            inout.setDropShip_BPartner_ID(p_order.getDropShip_BPartner_ID());
            inout.setDropShip_Location_ID(p_order.getDropShip_Location_ID());
            inout.setDropShip_User_ID(p_order.getDropShip_User_ID());
        }
    }
    if (m_invoice != null && m_invoice.getC_Invoice_ID() != 0) {
        if (inout.getC_Order_ID() == 0)
            inout.setC_Order_ID(m_invoice.getC_Order_ID());
        inout.setC_Invoice_ID(m_invoice.getC_Invoice_ID());
        inout.setAD_OrgTrx_ID(m_invoice.getAD_OrgTrx_ID());
        inout.setC_Project_ID(m_invoice.getC_Project_ID());
        inout.setC_Campaign_ID(m_invoice.getC_Campaign_ID());
        inout.setC_Activity_ID(m_invoice.getC_Activity_ID());
        inout.setUser1_ID(m_invoice.getUser1_ID());
        inout.setUser2_ID(m_invoice.getUser2_ID());
        inout.setUser3_ID(m_invoice.getUser3_ID());
        inout.setUser4_ID(m_invoice.getUser4_ID());
    }
    if (m_rma != null && m_rma.getM_RMA_ID() != 0) {
        MInOut originalIO = m_rma.getShipment();
        inout.setIsSOTrx(m_rma.isSOTrx());
        inout.setC_Order_ID(0);
        inout.setC_Invoice_ID(0);
        inout.setM_RMA_ID(m_rma.getM_RMA_ID());
        inout.setAD_OrgTrx_ID(originalIO.getAD_OrgTrx_ID());
        inout.setC_Project_ID(originalIO.getC_Project_ID());
        inout.setC_Campaign_ID(originalIO.getC_Campaign_ID());
        inout.setC_Activity_ID(originalIO.getC_Activity_ID());
        inout.setUser1_ID(originalIO.getUser1_ID());
        inout.setUser2_ID(originalIO.getUser2_ID());
        inout.setUser3_ID(originalIO.getUser3_ID());
        inout.setUser4_ID(originalIO.getUser4_ID());
    }
    inout.saveEx();
    return true;
}
Also used : MInOut(org.compiere.model.MInOut) MProduct(org.compiere.model.MProduct) MInOutLine(org.compiere.model.MInOutLine) MInvoiceLine(org.compiere.model.MInvoiceLine) KeyNamePair(org.compiere.util.KeyNamePair) MOrderLine(org.compiere.model.MOrderLine) MRMALine(org.compiere.model.MRMALine) BigDecimal(java.math.BigDecimal)

Example 5 with MRMALine

use of org.compiere.model.MRMALine in project adempiere by adempiere.

the class CreateFromInvoice method save.

/**
	 *  Save - Create Invoice Lines
	 *  @return true if saved
	 */
public boolean save(IMiniTable miniTable, String trxName) {
    //  Invoice
    //	Yamel Senih FR [ 114 ] get Record ID from record
    MInvoice invoice = new MInvoice(Env.getCtx(), m_Record_ID, trxName);
    log.config(invoice.toString());
    if (p_order != null) {
        //	overwrite header values
        invoice.setOrder(p_order);
        invoice.saveEx();
    }
    if (m_rma != null) {
        invoice.setM_RMA_ID(m_rma.getM_RMA_ID());
        invoice.saveEx();
    }
    //  Lines
    for (int i = 0; i < miniTable.getRowCount(); i++) {
        if (((Boolean) miniTable.getValueAt(i, 0)).booleanValue()) {
            MProduct product = null;
            //  variable values
            //  1-Qty
            BigDecimal QtyEntered = (BigDecimal) miniTable.getValueAt(i, 1);
            //  2-UOM
            KeyNamePair pp = (KeyNamePair) miniTable.getValueAt(i, 2);
            int C_UOM_ID = pp.getKey();
            //
            //  3-Product
            pp = (KeyNamePair) miniTable.getValueAt(i, 3);
            int M_Product_ID = 0;
            if (pp != null)
                M_Product_ID = pp.getKey();
            //
            int C_OrderLine_ID = 0;
            //  5-OrderLine
            pp = (KeyNamePair) miniTable.getValueAt(i, 5);
            if (pp != null)
                C_OrderLine_ID = pp.getKey();
            int M_InOutLine_ID = 0;
            //  6-Shipment
            pp = (KeyNamePair) miniTable.getValueAt(i, 6);
            if (pp != null)
                M_InOutLine_ID = pp.getKey();
            //
            int M_RMALine_ID = 0;
            //  7-RMALine
            pp = (KeyNamePair) miniTable.getValueAt(i, 7);
            if (pp != null)
                M_RMALine_ID = pp.getKey();
            //	Precision of Qty UOM
            int precision = 2;
            if (M_Product_ID != 0) {
                product = MProduct.get(Env.getCtx(), M_Product_ID);
                precision = product.getUOMPrecision();
            }
            QtyEntered = QtyEntered.setScale(precision, BigDecimal.ROUND_HALF_DOWN);
            //
            log.fine("Line QtyEntered=" + QtyEntered + ", Product_ID=" + M_Product_ID + ", OrderLine_ID=" + C_OrderLine_ID + ", InOutLine_ID=" + M_InOutLine_ID);
            //	Create new Invoice Line
            MInvoiceLine invoiceLine = new MInvoiceLine(invoice);
            //	Line UOM
            invoiceLine.setM_Product_ID(M_Product_ID, C_UOM_ID);
            //	Invoiced/Entered
            invoiceLine.setQty(QtyEntered);
            BigDecimal QtyInvoiced = null;
            if (M_Product_ID > 0 && product.getC_UOM_ID() != C_UOM_ID) {
                QtyInvoiced = MUOMConversion.convertProductFrom(Env.getCtx(), M_Product_ID, C_UOM_ID, QtyEntered);
            }
            if (QtyInvoiced == null)
                QtyInvoiced = QtyEntered;
            invoiceLine.setQtyInvoiced(QtyInvoiced);
            //  Info
            MOrderLine orderLine = null;
            if (C_OrderLine_ID != 0)
                orderLine = new MOrderLine(Env.getCtx(), C_OrderLine_ID, trxName);
            //
            MRMALine rmaLine = null;
            if (M_RMALine_ID > 0)
                rmaLine = new MRMALine(Env.getCtx(), M_RMALine_ID, null);
            //
            MInOutLine inoutLine = null;
            if (M_InOutLine_ID != 0) {
                inoutLine = new MInOutLine(Env.getCtx(), M_InOutLine_ID, trxName);
                if (orderLine == null && inoutLine.getC_OrderLine_ID() != 0) {
                    C_OrderLine_ID = inoutLine.getC_OrderLine_ID();
                    orderLine = new MOrderLine(Env.getCtx(), C_OrderLine_ID, trxName);
                }
            } else if (C_OrderLine_ID > 0) {
                String whereClause = "EXISTS (SELECT 1 FROM M_InOut io WHERE io.M_InOut_ID=M_InOutLine.M_InOut_ID AND io.DocStatus IN ('CO','CL'))";
                MInOutLine[] lines = MInOutLine.getOfOrderLine(Env.getCtx(), C_OrderLine_ID, whereClause, trxName);
                log.fine("Receipt Lines with OrderLine = #" + lines.length);
                if (lines.length > 0) {
                    for (int j = 0; j < lines.length; j++) {
                        MInOutLine line = lines[j];
                        if (line.getQtyEntered().compareTo(QtyEntered) == 0) {
                            inoutLine = line;
                            M_InOutLine_ID = inoutLine.getM_InOutLine_ID();
                            break;
                        }
                    }
                    if (inoutLine == null) {
                        //	first as default
                        inoutLine = lines[0];
                        M_InOutLine_ID = inoutLine.getM_InOutLine_ID();
                    }
                }
            } else if (M_RMALine_ID != 0) {
                String whereClause = "EXISTS (SELECT 1 FROM M_InOut io WHERE io.M_InOut_ID=M_InOutLine.M_InOut_ID AND io.DocStatus IN ('CO','CL'))";
                MInOutLine[] lines = MInOutLine.getOfRMALine(Env.getCtx(), M_RMALine_ID, whereClause, null);
                log.fine("Receipt Lines with RMALine = #" + lines.length);
                if (lines.length > 0) {
                    for (int j = 0; j < lines.length; j++) {
                        MInOutLine line = lines[j];
                        if (rmaLine.getQty().compareTo(QtyEntered) == 0) {
                            inoutLine = line;
                            M_InOutLine_ID = inoutLine.getM_InOutLine_ID();
                            break;
                        }
                    }
                    if (rmaLine == null) {
                        //	first as default
                        inoutLine = lines[0];
                        M_InOutLine_ID = inoutLine.getM_InOutLine_ID();
                    }
                }
            }
            //	Shipment Info
            if (inoutLine != null) {
                //	overwrites
                invoiceLine.setShipLine(inoutLine);
            } else {
                log.fine("No Receipt Line");
                //	Order Info
                if (orderLine != null) {
                    //	overwrites
                    invoiceLine.setOrderLine(orderLine);
                } else {
                    log.fine("No Order Line");
                    invoiceLine.setPrice();
                    invoiceLine.setTax();
                }
                //RMA Info
                if (rmaLine != null) {
                    //	overwrites
                    invoiceLine.setRMALine(rmaLine);
                } else
                    log.fine("No RMA Line");
            }
            invoiceLine.saveEx();
        }
    //   if selected
    }
    return true;
}
Also used : MProduct(org.compiere.model.MProduct) MInOutLine(org.compiere.model.MInOutLine) MInvoiceLine(org.compiere.model.MInvoiceLine) MInvoice(org.compiere.model.MInvoice) KeyNamePair(org.compiere.util.KeyNamePair) MOrderLine(org.compiere.model.MOrderLine) MRMALine(org.compiere.model.MRMALine) BigDecimal(java.math.BigDecimal)

Aggregations

MRMALine (org.compiere.model.MRMALine)10 MInOutLine (org.compiere.model.MInOutLine)7 BigDecimal (java.math.BigDecimal)6 MInvoiceLine (org.compiere.model.MInvoiceLine)6 MOrderLine (org.compiere.model.MOrderLine)5 MInOut (org.compiere.model.MInOut)4 MProduct (org.compiere.model.MProduct)4 MInvoice (org.compiere.model.MInvoice)3 MRMA (org.compiere.model.MRMA)3 KeyNamePair (org.compiere.util.KeyNamePair)3 ArrayList (java.util.ArrayList)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 AdempiereException (org.adempiere.exceptions.AdempiereException)2 Query (org.compiere.model.Query)2 MDocType (org.compiere.model.MDocType)1 MInOutConfirm (org.compiere.model.MInOutConfirm)1 MInOutLineConfirm (org.compiere.model.MInOutLineConfirm)1 MLocator (org.compiere.model.MLocator)1 MOrder (org.compiere.model.MOrder)1