use of org.compiere.model.MInOutLine in project adempiere by adempiere.
the class SB_InvoiceGenerateFromOrderLine method generate.
// doIt
/**
* Generate Shipments
* @param pstmt order query
* @return info
*/
private String generate(MOrder order) {
try {
{
// New Invoice Location
if (!p_ConsolidateDocument || (m_invoice != null && m_invoice.getC_BPartner_Location_ID() != order.getBill_Location_ID()))
completeInvoice();
boolean completeOrder = MOrder.INVOICERULE_AfterOrderDelivered.equals(order.getInvoiceRule());
// Schedule After Delivery
boolean doInvoice = false;
if (MOrder.INVOICERULE_CustomerScheduleAfterDelivery.equals(order.getInvoiceRule())) {
m_bp = new MBPartner(getCtx(), order.getBill_BPartner_ID(), null);
if (m_bp.getC_InvoiceSchedule_ID() == 0) {
log.warning("BPartner has no Schedule - set to After Delivery");
order.setInvoiceRule(MOrder.INVOICERULE_AfterDelivery);
order.saveEx();
} else {
MInvoiceSchedule is = MInvoiceSchedule.get(getCtx(), m_bp.getC_InvoiceSchedule_ID(), get_TrxName());
if (is.canInvoice(order.getDateOrdered(), order.getGrandTotal()))
doInvoice = true;
else
return "";
}
}
// After Delivery
if (doInvoice || MOrder.INVOICERULE_AfterDelivery.equals(order.getInvoiceRule())) {
MInOut[] shipments = order.getShipments();
for (int i = 0; i < shipments.length; i++) {
MInOut ship = shipments[i];
if (// ignore incomplete or reversals
!ship.isComplete() || ship.getDocStatus().equals(MInOut.DOCSTATUS_Reversed))
continue;
MInOutLine[] shipLines = ship.getLines(false);
for (int j = 0; j < shipLines.length; j++) {
MInOutLine shipLine = shipLines[j];
if (!order.isOrderLine(shipLine.getC_OrderLine_ID()))
continue;
if (!getSelectionKeys().contains(shipLine.getC_OrderLine_ID()))
continue;
if (!shipLine.isInvoiced())
createLine(order, ship, shipLine);
}
m_line += 1000;
}
} else // After Order Delivered, Immediate
{
MOrderLine[] oLines = order.getLines(true, null);
for (int i = 0; i < oLines.length; i++) {
MOrderLine oLine = oLines[i];
if (!getSelectionKeys().contains(oLine.getC_OrderLine_ID()))
continue;
BigDecimal toInvoice = oLine.getQtyOrdered().subtract(oLine.getQtyInvoiced());
if (toInvoice.compareTo(Env.ZERO) == 0 && oLine.getM_Product_ID() != 0)
continue;
BigDecimal notInvoicedShipment = oLine.getQtyDelivered().subtract(oLine.getQtyInvoiced());
//
boolean fullyDelivered = oLine.getQtyOrdered().compareTo(oLine.getQtyDelivered()) == 0;
// Complete Order
if (completeOrder && !fullyDelivered) {
log.fine("Failed CompleteOrder - " + oLine);
// Elaine 2008/11/25
addLog("Failed CompleteOrder - " + oLine);
completeOrder = false;
break;
} else // Immediate
if (MOrder.INVOICERULE_Immediate.equals(order.getInvoiceRule())) {
log.fine("Immediate - ToInvoice=" + toInvoice + " - " + oLine);
BigDecimal qtyEntered = toInvoice;
if (oLine.getQtyEntered().compareTo(oLine.getQtyOrdered()) != 0)
qtyEntered = toInvoice.multiply(oLine.getQtyEntered()).divide(oLine.getQtyOrdered(), 12, BigDecimal.ROUND_HALF_UP);
createLine(order, oLine, toInvoice, qtyEntered);
} else {
log.fine("Failed: " + order.getInvoiceRule() + " - ToInvoice=" + toInvoice + " - " + oLine);
addLog("Failed: " + order.getInvoiceRule() + " - ToInvoice=" + toInvoice + " - " + oLine);
}
}
// for all order lines
if (MOrder.INVOICERULE_Immediate.equals(order.getInvoiceRule()))
m_line += 1000;
}
// Complete Order successful
if (completeOrder && MOrder.INVOICERULE_AfterOrderDelivered.equals(order.getInvoiceRule())) {
MInOut[] shipments = order.getShipments();
for (int i = 0; i < shipments.length; i++) {
MInOut ship = shipments[i];
if (// ignore incomplete or reversals
!ship.isComplete() || ship.getDocStatus().equals(MInOut.DOCSTATUS_Reversed))
continue;
MInOutLine[] shipLines = ship.getLines(false);
for (int j = 0; j < shipLines.length; j++) {
MInOutLine shipLine = shipLines[j];
if (!order.isOrderLine(shipLine.getC_OrderLine_ID()))
continue;
if (!shipLine.isInvoiced())
createLine(order, ship, shipLine);
}
m_line += 1000;
}
}
// complete Order
}
// for all orders
} catch (Exception e) {
log.log(Level.SEVERE, "", e);
}
completeInvoice();
return "@Created@ = " + m_created;
}
use of org.compiere.model.MInOutLine 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;
}
use of org.compiere.model.MInOutLine 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;
}
use of org.compiere.model.MInOutLine 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;
}
use of org.compiere.model.MInOutLine in project adempiere by adempiere.
the class MInvoiceTest method testQuery.
public void testQuery() throws Exception {
MInvoice.setIsPaid(getCtx(), BPARTNER_TreeFarm, getTrxName());
MInvoice[] invoices = MInvoice.getOfBPartner(getCtx(), BPARTNER_TreeFarm, getTrxName());
assertTrue("Partner " + BPARTNER_TreeFarm + " should have invoices", invoices.length > 0);
for (MInvoice invoice : invoices) {
// test query
invoice.getLines(true);
// test query
invoice.getTaxes(true);
}
//test MinvoiceLine getOfInOutLine
//get InOutLine thats from InvoiceLine
MInOutLine iol = new MInOutLine(getCtx(), 101, getTrxName());
MInvoiceLine invl = MInvoiceLine.getOfInOutLine(iol);
assertTrue("getOfInOutLine must work", invl.get_ID() > 0);
}
Aggregations