/** * Create shipment/receipt line * * @param invoice * @param invoiceLine * @return shipment/receipt line */ private MInOutLine createLine(MInvoice invoice, MInvoiceLine invoiceLine) { BigDecimal qtyMatched = invoiceLine.getMatchedQty(); BigDecimal qtyInvoiced = invoiceLine.getQtyInvoiced(); BigDecimal qtyNotMatched = qtyInvoiced.subtract(qtyMatched); // If is fully matched don't create anything if (qtyNotMatched.signum() == 0) { return null; } MInOut inout = getCreateHeader(invoice); MInOutLine sLine = new MInOutLine(inout); sLine.setInvoiceLine( invoiceLine, 0, // Locator invoice.isSOTrx() ? qtyNotMatched : Env.ZERO); sLine.setQtyEntered(qtyNotMatched); sLine.setMovementQty(qtyNotMatched); if (invoice.isCreditMemo()) { sLine.setQtyEntered(sLine.getQtyEntered().negate()); sLine.setMovementQty(sLine.getMovementQty().negate()); } sLine.saveEx(); // invoiceLine.setM_InOutLine_ID(sLine.getM_InOutLine_ID()); invoiceLine.saveEx(); // return sLine; }