⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 weborder.java

📁 Java写的ERP系统
💻 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 + -