📄 weborder.java
字号:
/******************************************************************************
* The contents of this file are subject to the Compiere License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the License at http://www.compiere.org/license.html
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is Compiere ERP & CRM Smart Business Solution
* The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
* Portions created by Jorg Janke are Copyright (C) 1999-2003 Jorg Janke, parts
* created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
* Contributor(s): ______________________________________.
*****************************************************************************/
package org.compiere.wstore;
import java.util.*;
import java.sql.*;
import java.math.*;
import org.apache.log4j.Logger;
import org.compiere.model.*;
import org.compiere.util.DB;
import org.compiere.util.Env;
import org.compiere.www.*;
/**
* Web Order
*
* @author Jorg Janke
* @version $Id: WebOrder.java,v 1.8 2003/05/04 06:47:28 jjanke Exp $
*/
public class WebOrder
{
/**
* Constructor
* @param wu web User
* @param wb web basket
* @param ctx context
*/
public WebOrder(WebUser wu, WebBasket wb, Properties ctx)
{
createOrder (wu, wb, ctx);
} // WebOrder
/** Attribute Name */
public static final String NAME = "webOrder";
/** Logging */
private Logger log = Logger.getLogger(getClass());
/** Order */
private MOrder m_order;
/**
* Create Order from Basket
* @param wu web User
* @param wb web basket
* @param ctx context
* @return true if created & processed
*/
private boolean createOrder (WebUser wu, WebBasket wb, Properties ctx)
{
log.debug("createOrder");
//
m_order = new MOrder (ctx, 0);
log.debug("createOrder - AD_Client_ID=" + m_order.getAD_Client_ID()
+ ",AD_Org_ID=" + m_order.getAD_Org_ID() + " - " + ctx + " - " + m_order);
//
m_order.setC_DocTypeTarget_ID(MOrder.DocSubTypeSO_Prepay);
m_order.setPaymentRule(MOrder.PaymentRule_CreditCard);
m_order.setDeliveryRule(MOrder.DeliveryRule_Receipt);
m_order.setInvoiceRule(MOrder.InvoiceRule_Immediate);
if (wb.getM_PriceList_ID() > 0)
m_order.setM_PriceList_ID(wb.getM_PriceList_ID());
// BPartner
m_order.setC_BPartner_ID(wu.getC_BPartner_ID());
m_order.setBillTo_ID(wu.getC_BPartner_Location_ID());
m_order.setC_BPartner_Location_ID(wu.getC_BPartner_Location_ID());
m_order.setC_BPartner_Contact_ID(wu.getC_BPartner_Contact_ID());
//
m_order.setSendEMail(true);
m_order.setDocAction(MOrder.DocAction_Complete);
m_order.save();
log.debug ("createOrder - ID=" + m_order.getC_Order_ID()
+ ", DocNo=" + m_order.getDocumentNo());
ArrayList lines = wb.getLines();
for (int i = 0; i < lines.size(); i++)
{
WebBasketLine wbl = (WebBasketLine)lines.get(i);
MOrderLine ol = new MOrderLine(ctx, 0, m_order.getC_Order_ID());
ol.setM_Product_ID(wbl.getM_Product_ID());
ol.setPrice();
ol.setPriceActual(wbl.getPrice());
ol.setQtyOrdered(wbl.getQuantity());
ol.setTax();
ol.save();
} // for all lines
boolean ok = m_order.process(MOrder.DocAction_Complete);
BigDecimal amt = m_order.getGrandTotal();
log.info("createOrder " + amt);
return ok;
} // createOrder
/**
* String Representation
* @return info
*/
public String toString()
{
StringBuffer sb = new StringBuffer("WebOrder[");
sb.append(m_order)
.append("]");
return sb.toString();
} // toString
/**
* Is order processed
* @return true if processed
*/
public boolean isProcessed()
{
if (m_order == null)
return false;
return m_order.isProcessed();
} // isProcessed
/*************************************************************************/
/**
* Get Document No
* @return Document No
*/
public String getDocumentNo()
{
return m_order.getDocumentNo();
}
public BigDecimal getTotalLines()
{
return m_order.getTotalLines();
}
public BigDecimal getFreightAmt()
{
return m_order.getFreightAmt();
}
public BigDecimal getTaxAmt()
{
return m_order.getGrandTotal()
.subtract(m_order.getTotalLines())
.subtract(m_order.getFreightAmt());
}
public BigDecimal getGrandTotal()
{
return m_order.getGrandTotal();
}
protected MOrder getOrder()
{
return m_order;
}
/*************************************************************************/
private String m_invoiceInfo = null;
private int m_C_Invoice_ID = -1;
/**
* Get Invoice Info
* @return invoice document no
*/
public String getInvoiceInfo()
{
if (m_invoiceInfo == null)
{
MInvoice[] invoices = m_order.getInvoices();
int length = invoices.length;
if (length > 0) // get last invoice
{
m_C_Invoice_ID = invoices[length-1].getC_Invoice_ID();
m_invoiceInfo = invoices[length-1].getDocumentNo();
}
}
return m_invoiceInfo;
}
/**
* Get Invoice ID
* @return C_ Invoice_ID
*/
public int getInvoice_ID()
{
if (m_C_Invoice_ID == -1)
getInvoiceInfo();
return m_C_Invoice_ID;
} // getInvoice_ID
} // WebOrder
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -