📄 morder.java
字号:
setBill_Location_ID(locs[0].getC_BPartner_Location_ID());
}
if (getC_BPartner_Location_ID() == 0)
log.log(Level.SEVERE, "MOrder.setBPartner - Has no Ship To Address: " + bp);
if (getBill_Location_ID() == 0)
log.log(Level.SEVERE, "MOrder.setBPartner - Has no Bill To Address: " + bp);
// Set Contact
MUser[] contacts = bp.getContacts(false);
if (contacts != null && contacts.length == 1)
setAD_User_ID(contacts[0].getAD_User_ID());
} // setBPartner
/**
* Copy Lines From other Order
* @param otherOrder order
* @param counter set counter info
* @param copyASI copy line attributes Attribute Set Instance, Resaouce Assignment
* @return number of lines copied
*/
public int copyLinesFrom (MOrder otherOrder, boolean counter, boolean copyASI)
{
if (isProcessed() || isPosted() || otherOrder == null)
return 0;
MOrderLine[] fromLines = otherOrder.getLines(false, null);
int count = 0;
for (int i = 0; i < fromLines.length; i++)
{
MOrderLine line = new MOrderLine (this);
PO.copyValues(fromLines[i], line, getAD_Client_ID(), getAD_Org_ID());
line.setC_Order_ID(getC_Order_ID());
line.setOrder(this);
line.set_ValueNoCheck ("C_OrderLine_ID", I_ZERO); // new
// References
if (!copyASI)
{
line.setM_AttributeSetInstance_ID(0);
line.setS_ResourceAssignment_ID(0);
}
if (counter)
line.setRef_OrderLine_ID(fromLines[i].getC_OrderLine_ID());
else
line.setRef_OrderLine_ID(0);
//
line.setQtyDelivered(Env.ZERO);
line.setQtyInvoiced(Env.ZERO);
line.setQtyReserved(Env.ZERO);
line.setDateDelivered(null);
line.setDateInvoiced(null);
// Tax
if (getC_BPartner_ID() != otherOrder.getC_BPartner_ID())
line.setTax(); // recalculate
//
//
line.setProcessed(false);
if (line.save(get_TrxName()))
count++;
// Cross Link
if (counter)
{
fromLines[i].setRef_OrderLine_ID(line.getC_OrderLine_ID());
fromLines[i].save(get_TrxName());
}
}
if (fromLines.length != count)
log.log(Level.SEVERE, "Line difference - From=" + fromLines.length + " <> Saved=" + count);
return count;
} // copyLinesFrom
/**************************************************************************
* String Representation
* @return info
*/
public String toString ()
{
StringBuffer sb = new StringBuffer ("MOrder[")
.append(get_ID()).append("-").append(getDocumentNo())
.append(",IsSOTrx=").append(isSOTrx())
.append(",C_DocType_ID=").append(getC_DocType_ID())
.append ("]");
return sb.toString ();
} // toString
/**
* Get Document Info
* @return document info (untranslated)
*/
public String getDocumentInfo()
{
MDocType dt = MDocType.get(getCtx(), getC_DocType_ID());
return dt.getName() + " " + getDocumentNo();
} // getDocumentInfo
/**
* Create PDF
* @return File or null
*/
public File createPDF ()
{
try
{
File temp = File.createTempFile(get_TableName()+get_ID()+"_", ".pdf");
return createPDF (temp);
}
catch (Exception e)
{
log.severe("Could not create PDF - " + e.getMessage());
}
return null;
} // getPDF
/**
* Create PDF file
* @param file output file
* @return file if success
*/
public File createPDF (File file)
{
ReportEngine re = ReportEngine.get (getCtx(), ReportEngine.ORDER, getC_Invoice_ID());
if (re == null)
return null;
return re.getPDF(file);
} // createPDF
/**
* Set Price List (and Currency, TaxIncluded) when valid
* @param M_PriceList_ID price list
*/
public void setM_PriceList_ID (int M_PriceList_ID)
{
MPriceList pl = MPriceList.get(getCtx(), M_PriceList_ID, null);
if (pl.get_ID() == M_PriceList_ID)
{
super.setM_PriceList_ID(M_PriceList_ID);
setC_Currency_ID(pl.getC_Currency_ID());
setIsTaxIncluded(pl.isTaxIncluded());
}
} // setM_PriceList_ID
/**************************************************************************
* Get Lines of Order
* @param whereClause where clause or null (starting with AND)
* @return lines
*/
public MOrderLine[] getLines (String whereClause, String orderClause)
{
ArrayList<MOrderLine> list = new ArrayList<MOrderLine> ();
StringBuffer sql = new StringBuffer("SELECT * FROM C_OrderLine WHERE C_Order_ID=? ");
if (whereClause != null)
sql.append(whereClause);
if (orderClause != null)
sql.append(" ").append(orderClause);
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql.toString(), get_TrxName());
pstmt.setInt(1, getC_Order_ID());
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
MOrderLine ol = new MOrderLine(getCtx(), rs, get_TrxName());
ol.setHeaderInfo (this);
list.add(ol);
}
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, sql.toString(), e);
}
finally
{
try
{
if (pstmt != null)
pstmt.close ();
}
catch (Exception e)
{}
pstmt = null;
}
//
MOrderLine[] lines = new MOrderLine[list.size ()];
list.toArray (lines);
return lines;
} // getLines
/**
* Get Lines of Order
* @param requery requery
* @param orderBy optional order by column
* @return lines
*/
public MOrderLine[] getLines (boolean requery, String orderBy)
{
if (m_lines != null && !requery)
return m_lines;
//
String orderClause = "ORDER BY ";
if (orderBy != null && orderBy.length() > 0)
orderClause += orderBy;
else
orderClause += "Line";
m_lines = getLines(null, orderClause);
return m_lines;
} // getLines
/**
* Get Lines of Order.
* (useb by web store)
* @return lines
*/
public MOrderLine[] getLines()
{
return getLines(false, null);
} // getLines
/**
* Renumber Lines
* @param step start and step
*/
public void renumberLines (int step)
{
int number = step;
MOrderLine[] lines = getLines(true, null); // Line is default
for (int i = 0; i < lines.length; i++)
{
MOrderLine line = lines[i];
line.setLine(number);
line.save(get_TrxName());
number += step;
}
m_lines = null;
} // renumberLines
/**
* Does the Order Line belong to this Order
* @param C_OrderLine_ID line
* @return true if part of the order
*/
public boolean isOrderLine(int C_OrderLine_ID)
{
if (m_lines == null)
getLines();
for (int i = 0; i < m_lines.length; i++)
if (m_lines[i].getC_OrderLine_ID() == C_OrderLine_ID)
return true;
return false;
} // isOrderLine
/**
* Get Taxes of Order
* @param requery requery
* @return array of taxes
*/
public MOrderTax[] getTaxes(boolean requery)
{
if (m_taxes != null && !requery)
return m_taxes;
//
ArrayList<MOrderTax> list = new ArrayList<MOrderTax>();
String sql = "SELECT * FROM C_OrderTax WHERE C_Order_ID=?";
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql, get_TrxName());
pstmt.setInt(1, getC_Order_ID());
ResultSet rs = pstmt.executeQuery();
while (rs.next())
list.add(new MOrderTax(getCtx(), rs, get_TrxName()));
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, "getTaxes", e);
}
finally
{
try
{
if (pstmt != null)
pstmt.close ();
}
catch (Exception e)
{}
pstmt = null;
}
//
m_taxes = new MOrderTax[list.size ()];
list.toArray (m_taxes);
return m_taxes;
} // getTaxes
/**
* Get Invoices of Order
* @return invoices
*/
public MInvoice[] getInvoices()
{
ArrayList<MInvoice> list = new ArrayList<MInvoice>();
String sql = "SELECT * FROM C_Invoice WHERE C_Order_ID=? ORDER BY Created DESC";
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql, get_TrxName());
pstmt.setInt(1, getC_Order_ID());
ResultSet rs = pstmt.executeQuery();
while (rs.next())
list.add(new MInvoice(getCtx(), rs, get_TrxName()));
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, "getInvoices", e);
}
finally
{
try
{
if (pstmt != null)
pstmt.close ();
}
catch (Exception e)
{}
pstmt = null;
}
//
MInvoice[] retValue = new MInvoice[list.size()];
list.toArray(retValue);
return retValue;
} // getInvoices
/**
* Get latest Invoice of Order
* @return invoice id or 0
*/
public int getC_Invoice_ID()
{
int C_Invoice_ID = 0;
ArrayList list = new ArrayList();
String sql = "SELECT C_Invoice_ID FROM C_Invoice "
+ "WHERE C_Order_ID=? AND DocStatus IN ('CO','CL') "
+ "ORDER BY Created DESC";
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql, get_TrxName());
pstmt.setInt(1, getC_Order_ID());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
C_Invoice_ID = rs.getInt(1);
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, "getC_Invoice_ID", e);
}
finally
{
try
{
if (pstmt != null)
pstmt.close ();
}
catch (Exception e)
{}
pstmt = null;
}
return C_Invoice_ID;
} // getC_Invoice_ID
/**
* Get Shipments of Order
* @return shipments
*/
public MInOut[] getShipments()
{
ArrayList<MInOut> list = new ArrayList<MInOut>();
String sql = "SELECT * FROM M_InOut WHERE C_Order_ID=? ORDER BY Created DESC";
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql, get_TrxName());
pstmt.setInt(1, getC_Order_ID());
ResultSet rs = pstmt.executeQuery();
while (rs.next())
list.add(new MInOut(getCtx(), rs, get_TrxName()));
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, "getShipments", e);
}
finally
{
try
{
if (pstmt != null)
pstmt.close ();
}
catch (Exception e)
{}
pstmt = null;
}
//
MInOut[] retValue = new MInOut[list.size()];
list.toArray(retValue);
return retValue;
} // getShipments
/**
* Get ISO Code of Currency
* @return Currency ISO
*/
public String getCurrencyISO()
{
return MCurrency.getISO_Code (getCtx(), getC_Currency_ID());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -