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

📄 mcustomer.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
 * 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  Business Solution
 * The Initial Developer of the Original Code is Jorg Janke  and ComPiere, Inc.
 * Portions created by Jorg Janke are Copyright (C) 1999-2002 Jorg Janke, parts
 * created by ComPiere are Copyright (C) ComPiere, Inc.;   All Rights Reserved.
 * Contributor(s): ______________________________________.
 *****************************************************************************/
package org.compiere.model;

import java.sql.*;
import java.util.*;

import org.apache.log4j.Logger;

import org.compiere.util.DB;
import org.compiere.util.Env;

/**
 *	Customer Model
 *  Based on Defaults of
 *
 * 	@author 	Jorg Janke
 * 	@version 	$Id: MCustomer.java,v 1.1 2002/11/15 05:49:43 jjanke Exp $
 */
public class MCustomer
{

	/**
	 * 	Get MCustomer
	 * 	@param EMail search criteris
	 * 	@param Password optional search criteria
	 * 	@return MCustomer if found or null
	 */
	public static MCustomer get (String EMail, String Password)
	{
		int C_BPartner_ID = 0;
		int C_BPartner_Contact_ID = 0;
		//
		String sql = "SELECT C_BPartner_ID, C_BPartner_Contact_ID "
			+ "FROM C_BPartner_Contact WHERE EMail=?";
		if (Password != null)
		sql += " AND Password=?";
		try
		{
			PreparedStatement pstmt = DB.prepareStatement(sql);
			pstmt.setString (1, EMail);
			if (Password != null)
				pstmt.setString (2, Password);
			ResultSet rs = pstmt.executeQuery();
			while (rs.next())
			{
				C_BPartner_ID = rs.getInt(1);
				C_BPartner_Contact_ID = rs.getInt(2);
			}
			rs.close();
			pstmt.close();
		}
		catch (SQLException e)
		{
			log.error("get", e);
			return null;
		}
		if (C_BPartner_ID == 0)
			return null;

		//	Load it
		MCustomer customer = new MCustomer (0);
		customer.load(C_BPartner_ID, C_BPartner_Contact_ID);
		return customer;
	}	//	get



	/**
	 * 	Constructor
	 * 	@param C_BPartner_ID
	 */
	public MCustomer (int C_BPartner_ID)
	{
		load (C_BPartner_ID);
	}	//	MCustomer

	/**	Logger					*/
	private static Logger	log = Logger.getLogger(MCustomer.class);

	/**	AD_Message				*/
	private String		m_errorMessage = null;

	private int			C_BPartner_ID = 0;
	private int			C_BPartner_Contact_ID = 0;
	private int			C_BPartner_Location_ID = 0;
	private int 		C_GreetingBP_ID = 0;
	private int 		C_Greeting_ID = 0;
	private int 		C_Location_ID = 0;

	private String		Value="", Name="", Name2="", Contact="", Title="",
		Phone="", Fax="", Phone2="", EMail="", Password="";

	private String		Loc_Phone="", Loc_Phone2="", Loc_Fax="", BP_EMail="";

	/**
	 *	Load BPartner
	 *  @para C_BPartner_ID - existing BPartner or 0 for new
	 */
	private boolean load (int C_BPartner_ID)
	{
		this.C_BPartner_ID = C_BPartner_ID;
		m_errorMessage = null;

		//	we have it already or new
		if (C_BPartner_ID == this.C_BPartner_ID
			|| C_BPartner_ID == 0)
			return true;

		log.info("load - " + C_BPartner_ID);
		String SQL = "SELECT p.Value,p.C_Greeting_ID AS C_GreetingBP_ID,p.Name,p.Name2,"
			+ "c.Name AS Contact,c.C_Greeting_ID,c.Title,COALESCE(c.EMail,p.EMail),c.Password,"
			+ "COALESCE(c.Phone,l.Phone) AS Phone, COALESCE(c.Phone2,l.Phone2) AS Phone2, COALESCE(c.Fax,l.Fax) AS Fax, "
			+ "l.C_Location_ID,c.C_BPartner_Contact_ID,l.C_BPartner_Location_ID "
			+ "FROM C_BPartner p, C_BPartner_Contact c, C_BPartner_Location l "
			+ "WHERE p.C_BPartner_ID=c.C_BPartner_ID(+)"
			+ " AND p.C_BPartner_ID=l.C_BPartner_ID(+)"
			+ " AND p.C_BPartner_ID=?"	//	1
			+ " ORDER BY l.IsBillTo Desc";	//	BillTo first

		try
		{
			PreparedStatement pstmt = DB.prepareStatement(SQL);
			pstmt.setInt(1, C_BPartner_ID);
			ResultSet rs = pstmt.executeQuery();
			if (rs.next())
				load (rs);
			else
				m_errorMessage = "BPartnerNotFound";
			rs.close();
			pstmt.close();
		}
		catch (SQLException e)
		{
			m_errorMessage = "BPartnerNotFound";
			log.error("load", e);
		}
		if (m_errorMessage == null)
			this.C_BPartner_ID = 0;
		return m_errorMessage == null;
	}	//	load

	/**
	 *	Load BPartner
	 *  @para C_BPartner_ID - existing BPartner or 0 for new
	 */
	private boolean load (int C_BPartner_ID, int C_BPartner_Contact_ID)
	{
		this.C_BPartner_ID = C_BPartner_ID;
		m_errorMessage = null;

		log.info("load - " + C_BPartner_ID + ", Contact=" + C_BPartner_Contact_ID);
		String SQL = "SELECT p.Value,p.C_Greeting_ID AS C_GreetingBP_ID,p.Name,p.Name2, "
			+ "c.Name AS Contact,c.C_Greeting_ID,c.Title,COALESCE(c.EMail,p.EMail) AS EMail,c.Password, "
			+ "COALESCE(c.Phone,l.Phone) AS Phone, COALESCE(c.Phone2,l.Phone2) AS Phone2, COALESCE(c.Fax,l.Fax) AS Fax, "
			+ "l.C_Location_ID,c.C_BPartner_Contact_ID,l.C_BPartner_Location_ID "
			+ "FROM C_BPartner p, C_BPartner_Contact c, C_BPartner_Location l "
			+ "WHERE p.C_BPartner_ID=c.C_BPartner_ID(+)"
			+ " AND p.C_BPartner_ID=l.C_BPartner_ID(+)"
			+ " AND p.C_BPartner_ID=?"			//	#1
			+ " AND C_BPartner_Contact_ID=?"	//	#2
			+ " ORDER BY l.IsBillTo Desc";	//	BillTo first

		try
		{
			PreparedStatement pstmt = DB.prepareStatement(SQL);
			pstmt.setInt(1, C_BPartner_ID);
			pstmt.setInt(2, C_BPartner_Contact_ID);
			ResultSet rs = pstmt.executeQuery();
			if (rs.next())
				load (rs);
			else
				m_errorMessage = "BPartnerNotFound";
			rs.close();
			pstmt.close();
		}
		catch (SQLException e)
		{
			m_errorMessage = "BPartnerNotFound";
			log.error("load", e);
		}
		return m_errorMessage == null;
	}	//	load


	/**
	 *	Load BPartner
	 *  @para C_BPartner_ID - existing BPartner or 0 for new
	 */
	private void load (ResultSet rs) throws SQLException
	{
		setValue (rs.getString("Value"));
		setC_GreetingBP_ID (rs.getInt("C_GreetingBP_ID"));
		setName (rs.getString("Name"));
		setName2 (rs.getString("Name2"));
		setC_Greeting_ID (rs.getInt("C_Greeting_ID"));
		setContact (rs.getString("Contact"));
		setTitle (rs.getString("Title"));
		setPhone (rs.getString("Phone"));
		setPhone2 (rs.getString("Phone2"));
		setFax (rs.getString("Fax"));
		setEMail (rs.getString("EMail"));
		setPassword (rs.getString("Password"));
		setC_Location_ID (rs.getInt("C_Location_ID"));
		setC_BPartner_Contact_ID (rs.getInt("C_BPartner_Contact_ID"));
		setC_BPartner_Location_ID (rs.getInt("C_BPartner_Location_ID"));
		//
		Loc_Phone = Phone;
		Loc_Phone2 = Phone2;
		Loc_Fax = Fax;
		BP_EMail = EMail;
	}	//	load

	/**
	 *	Save
	 *	Checks mandatory fields and saves Partner, Contact and Location
	 */
	private boolean save (Properties ctx)
	{
		log.info("save " + C_BPartner_ID);

		m_errorMessage = null;

		//	Check Mandatory fields
		if (Value == null)
			Value = Name;
		if (Name == null || Value.length() == 0 || Name.length() == 0)
		{
			m_errorMessage = "FillMandatory";
			return false;
		}

		String SQL = "";
		try
		{
			Statement stmt = DB.createStatement();
			int AD_Client_ID = Integer.parseInt(Env.getContext(ctx, "#AD_Client_ID"));
			int AD_Org_ID = Integer.parseInt(Env.getContext(ctx, "#AD_Org_ID"));
			int UpdatedBy = Integer.parseInt(Env.getContext(ctx, "#AD_User_ID"));

			//	===	Insert Business Partner	===
			if (C_BPartner_ID == 0)
			{
				C_BPartner_ID = DB.getKeyNextNo(AD_Client_ID, "N", "C_BPartner");
				log.debug("save - Insert BPartner " + C_BPartner_ID);
				String gr = "NULL";
				if (C_GreetingBP_ID > 0)
					gr = String.valueOf(C_GreetingBP_ID);
				SQL = "INSERT INTO C_BPartner"
					+ "(C_BPartner_ID,"
					+ "AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,"
					+ "Value,Name,Name2,C_Greeting_ID,IsSummary,IsOneTime,IsProspect,IsVendor,IsCustomer,IsEmployee,IsSalesRep,"
					+ "AD_Language,C_BP_Group_ID,C_InvoiceSchedule_ID,C_PaymentTerm_ID,"
					+ "M_PriceList_ID,M_DiscountSchema_ID,C_Dunning_ID,DocumentCopies,PaymentRule,"
					+ "SO_CreditLimit, SO_CreditUsed, EMail) "
					//
					+ "SELECT " + C_BPartner_ID + ","
					+ AD_Client_ID + "," + AD_Org_ID + ",'Y',SysDate," + UpdatedBy + ",SysDate," + UpdatedBy + ","
					+ "'" + Value + "','" + Name + "','" + Name2 + "'," + gr + ",'N','N','N','N','Y','N','N',"
					+ "AD_Language,C_BP_Group_ID,C_InvoiceSchedule_ID,C_PaymentTerm_ID,"
					+ "M_PriceList_ID,M_DiscountSchema_ID,C_Dunning_ID,DocumentCopies,PaymentRule,"
					+ "0,0,'" + EMail + "' "
					+ "FROM C_BPartner p, AD_ClientInfo c "
					+ "WHERE c.AD_Client_ID=" + AD_Client_ID
					+ " AND p.C_BPartner_ID(+)=c.C_BPartnerCashTrx_ID";
				int i = stmt.executeUpdate(SQL);
				if (i != 1)
				{
					m_errorMessage = "BPartnerNotSaved";
					log.error("Partner Insert #=" + i + ", SQL=" + SQL);
					return false;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -