📄 importorder.java
字号:
bpl = bpls[i];
// Same Location ID
else if (imp.getC_Location_ID() == bpls[i].getC_Location_ID())
bpl = bpls[i];
// Same Location Info
else if (imp.getC_Location_ID() == 0)
{
MLocation loc = bpl.getLocation(false);
if (loc.equals(imp.getC_Country_ID(), imp.getC_Region_ID(),
imp.getPostal(), "", imp.getCity(),
imp.getAddress1(), imp.getAddress2()))
bpl = bpls[i];
}
}
if (bpl == null)
{
// New Location
MLocation loc = new MLocation (getCtx (), 0, get_TrxName());
loc.setAddress1 (imp.getAddress1 ());
loc.setAddress2 (imp.getAddress2 ());
loc.setCity (imp.getCity ());
loc.setPostal (imp.getPostal ());
if (imp.getC_Region_ID () != 0)
loc.setC_Region_ID (imp.getC_Region_ID ());
loc.setC_Country_ID (imp.getC_Country_ID ());
if (!loc.save ())
continue;
//
bpl = new MBPartnerLocation (bp);
bpl.setC_Location_ID (imp.getC_Location_ID ());
if (!bpl.save ())
continue;
}
imp.setC_Location_ID (bpl.getC_Location_ID ());
imp.setBillTo_ID (bpl.getC_BPartner_Location_ID ());
imp.setC_BPartner_Location_ID (bpl.getC_BPartner_Location_ID ());
// User/Contact
if (imp.getContactName () != null
|| imp.getEMail () != null
|| imp.getPhone () != null)
{
MUser[] users = bp.getContacts(true);
MUser user = null;
for (int i = 0; user == null && i < users.length; i++)
{
String name = users[i].getName();
if (name.equals(imp.getContactName())
|| name.equals(imp.getName()))
{
user = users[i];
imp.setAD_User_ID (user.getAD_User_ID ());
}
}
if (user == null)
{
user = new MUser (bp);
if (imp.getContactName () == null)
user.setName (imp.getName ());
else
user.setName (imp.getContactName ());
user.setEMail (imp.getEMail ());
user.setPhone (imp.getPhone ());
if (user.save ())
imp.setAD_User_ID (user.getAD_User_ID ());
}
}
imp.save ();
} // for all new BPartners
rs.close ();
pstmt.close ();
//
}
catch (SQLException e)
{
log.log(Level.SEVERE, "BP - " + sql.toString(), e);
}
sql = new StringBuffer ("UPDATE I_Order "
+ "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=No BPartner, ' "
+ "WHERE C_BPartner_ID IS NULL"
+ " AND I_IsImported<>'Y'").append (clientCheck);
no = DB.executeUpdate(sql.toString(), get_TrxName());
if (no != 0)
log.warning ("No BPartner=" + no);
commit();
// -- New Orders -----------------------------------------------------
int noInsert = 0;
int noInsertLine = 0;
// Go through Order Records w/o
sql = new StringBuffer ("SELECT * FROM I_Order "
+ "WHERE I_IsImported='N'").append (clientCheck)
.append(" ORDER BY C_BPartner_ID, BillTo_ID, C_BPartner_Location_ID, I_Order_ID");
try
{
PreparedStatement pstmt = DB.prepareStatement (sql.toString(), get_TrxName());
ResultSet rs = pstmt.executeQuery ();
//
int oldC_BPartner_ID = 0;
int oldBillTo_ID = 0;
int oldC_BPartner_Location_ID = 0;
String oldDocumentNo = "";
//
MOrder order = null;
int lineNo = 0;
while (rs.next ())
{
X_I_Order imp = new X_I_Order (getCtx (), rs, get_TrxName());
String cmpDocumentNo = imp.getDocumentNo();
if (cmpDocumentNo == null)
cmpDocumentNo = "";
// New Order
if (oldC_BPartner_ID != imp.getC_BPartner_ID()
|| oldC_BPartner_Location_ID != imp.getC_BPartner_Location_ID()
|| oldBillTo_ID != imp.getBillTo_ID()
|| !oldDocumentNo.equals(cmpDocumentNo))
{
if (order != null)
{
if (m_docAction != null && m_docAction.length() > 0)
{
order.setDocAction(m_docAction);
order.processIt (m_docAction);
}
order.save();
}
oldC_BPartner_ID = imp.getC_BPartner_ID();
oldC_BPartner_Location_ID = imp.getC_BPartner_Location_ID();
oldBillTo_ID = imp.getBillTo_ID();
oldDocumentNo = imp.getDocumentNo();
if (oldDocumentNo == null)
oldDocumentNo = "";
//
order = new MOrder (getCtx(), 0, get_TrxName());
order.setClientOrg (imp.getAD_Client_ID(), imp.getAD_Org_ID());
order.setC_DocTypeTarget_ID(imp.getC_DocType_ID());
order.setIsSOTrx(imp.isSOTrx());
if (imp.getDocumentNo() != null)
order.setDocumentNo(imp.getDocumentNo());
// Ship Partner
order.setC_BPartner_ID(imp.getC_BPartner_ID());
order.setC_BPartner_Location_ID(imp.getC_BPartner_Location_ID());
if (imp.getAD_User_ID() != 0)
order.setAD_User_ID(imp.getAD_User_ID());
// Bill Partner
order.setBill_BPartner_ID(imp.getC_BPartner_ID());
order.setBill_Location_ID(imp.getBillTo_ID());
//
if (imp.getDescription() != null)
order.setDescription(imp.getDescription());
order.setC_PaymentTerm_ID(imp.getC_PaymentTerm_ID());
order.setM_PriceList_ID(imp.getM_PriceList_ID());
order.setM_Warehouse_ID(imp.getM_Warehouse_ID());
if (imp.getM_Shipper_ID() != 0)
order.setM_Shipper_ID(imp.getM_Shipper_ID());
// SalesRep from Import or the person running the import
if (imp.getSalesRep_ID() != 0)
order.setSalesRep_ID(imp.getSalesRep_ID());
if (order.getSalesRep_ID() == 0)
order.setSalesRep_ID(getAD_User_ID());
//
if (imp.getAD_OrgTrx_ID() != 0)
order.setAD_OrgTrx_ID(imp.getAD_OrgTrx_ID());
if (imp.getC_Activity_ID() != 0)
order.setC_Activity_ID(imp.getC_Activity_ID());
if (imp.getC_Campaign_ID() != 0)
order.setC_Campaign_ID(imp.getC_Campaign_ID());
if (imp.getC_Project_ID() != 0)
order.setC_Project_ID(imp.getC_Project_ID());
//
if (imp.getDateOrdered() != null)
order.setDateOrdered(imp.getDateOrdered());
if (imp.getDateAcct() != null)
order.setDateAcct(imp.getDateAcct());
//
order.save();
noInsert++;
lineNo = 10;
}
imp.setC_Order_ID(order.getC_Order_ID());
// New OrderLine
MOrderLine line = new MOrderLine (order);
line.setLine(lineNo);
lineNo += 10;
if (imp.getM_Product_ID() != 0)
line.setM_Product_ID(imp.getM_Product_ID(), true);
line.setQty(imp.getQtyOrdered());
line.setPrice();
if (imp.getPriceActual().compareTo(Env.ZERO) != 0)
line.setPrice(imp.getPriceActual());
if (imp.getC_Tax_ID() != 0)
line.setC_Tax_ID(imp.getC_Tax_ID());
else
{
line.setTax();
imp.setC_Tax_ID(line.getC_Tax_ID());
}
if (imp.getFreightAmt() != null)
line.setFreightAmt(imp.getFreightAmt());
if (imp.getLineDescription() != null)
line.setDescription(imp.getLineDescription());
line.save();
imp.setC_OrderLine_ID(line.getC_OrderLine_ID());
imp.setI_IsImported(true);
imp.setProcessed(true);
//
if (imp.save())
noInsertLine++;
}
if (order != null)
{
if (m_docAction != null && m_docAction.length() > 0)
{
order.setDocAction(m_docAction);
order.processIt (m_docAction);
}
order.save();
}
rs.close();
pstmt.close();
}
catch (Exception e)
{
log.log(Level.SEVERE, "Order - " + sql.toString(), e);
}
// Set Error to indicator to not imported
sql = new StringBuffer ("UPDATE I_Order "
+ "SET I_IsImported='N', Updated=SysDate "
+ "WHERE I_IsImported<>'Y'").append(clientCheck);
no = DB.executeUpdate(sql.toString(), get_TrxName());
addLog (0, null, new BigDecimal (no), "@Errors@");
//
addLog (0, null, new BigDecimal (noInsert), "@C_Order_ID@: @Inserted@");
addLog (0, null, new BigDecimal (noInsertLine), "@C_OrderLine_ID@: @Inserted@");
return "#" + noInsert + "/" + noInsertLine;
} // doIt
} // ImportOrder
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -