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

📄 msetup.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/******************************************************************************
 * 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-2001 Jorg Janke, parts
 * created by ComPiere are Copyright (C) ComPiere, Inc.;   All Rights Reserved.
 * Contributor(s): ______________________________________.
 *****************************************************************************/
package org.compiere.model;

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

import org.compiere.util.*;

/**
 * Initial Setup Model
 *
 * @author Jorg Janke
 * @version $Id: MSetup.java,v 1.19 2003/03/31 00:02:17 jjanke Exp $
 */
public final class MSetup
{
	/**
	 *  Constructor
	 *  @param ctx context
	 *  @param WindowNo window
	 */
	public MSetup(Properties ctx, int WindowNo)
	{
		m_ctx = ctx;
		m_lang = Env.getAD_Language(m_ctx);
		m_WindowNo = WindowNo;
	}   //  MSetup

	private Properties      m_ctx;
	private String          m_lang;
	private int             m_WindowNo;
	private StringBuffer    m_info;
	//
	private String          m_clientName;
	private String          m_orgName;
	//
	private String          m_stdColumns = "AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy";
	private String          m_stdValues;
	private String          m_stdValuesOrg;
	//
	private NaturalAccountMap m_nap = null;
	//
	private final String    CompiereSys = "N";           //  Should NOT be changed
	private int             AD_Client_ID = 1000000;     //  initial Client_ID
	//
	private int     AD_Org_ID;
	private int     AD_User_ID;
	private String  AD_User_Name;
	private int     AD_User_U_ID;
	private String  AD_User_U_Name;
	private int     AD_Role_ID;
	private int     C_Calendar_ID;
	private int     C_AcctSchema_ID;
	private int     C_Currency_ID;
	private int     AD_Tree_Account_ID;
	private int     C_Cycle_ID;
	//
	private boolean         m_hasProject = false;
	private boolean         m_hasMCampaign = false;
	private boolean         m_hasSRegion = false;
	private AcctSchema      m_AcctSchema = null;


	/**
	 *  Create Client Info.
	 *  - Client, Trees, Org, Role, User, User_Role
	 *  @param clientName client name
	 *  @param orgName org name
	 *  @param userClient user id client
	 *  @param userOrg user id org
	 *  @return true if created
	 */
	public boolean createClient (String clientName, String orgName,
		String userClient, String userOrg)
	{
		Log.trace(Log.l3_Util, "MSetup.createClient");
		//  info header
		m_info = new StringBuffer();
		//  Standarc columns
		String name = null;
		String sql = null;
		int no = 0;

		/**
		 *  Create Client
		 */
		Env.setContext(m_ctx, "#CompiereSys", CompiereSys);
		AD_Client_ID = DB.getKeyNextNo (AD_Client_ID, CompiereSys, "AD_Client");
		Env.setContext(m_ctx, m_WindowNo, "AD_Client_ID", AD_Client_ID);

		//	Standard Values
		m_stdValues = String.valueOf(AD_Client_ID) + ",0,'Y',SysDate,0,SysDate,0";

		//	Create Client
		name = clientName;
		if (name == null || name.length() == 0)
			name = "newClient";
		name = name.trim();
		m_clientName = name;
		sql = "INSERT INTO AD_Client(" + m_stdColumns + ",Value,Name,Description)"
			+ " VALUES (" + m_stdValues + ",'" + name + "','" + name + "','" + name + "')";
		no = DB.executeUpdate(sql);
		if (no != 1)
		{
			String err = "MSetup.createClient - Client NOT iserted";
			Log.error(err);
			m_info.append(err);
			return false;
		}
		//  Info - Client
		m_info.append(Msg.translate(m_lang, "AD_Client_ID")).append("=").append(name).append("\n");

		/**
		 *  Create Trees
		 */
		String sql2 = null;
		if (Env.isBaseLanguage(m_lang, "AD_Ref_List"))	//	Get TreeTypes & Name
			sql2 = "SELECT Value, Name FROM AD_Ref_List WHERE AD_Reference_ID=120";
		else
			sql2 = "SELECT l.Value, t.Name FROM AD_Ref_List l, AD_Ref_List_Trl t "
				+ "WHERE l.AD_Reference_ID=120 AND l.AD_Ref_List_ID=t.AD_Ref_List_ID";

		//  Tree IDs
		int AD_Tree_Org_ID=0, AD_Tree_BPartner_ID=0, AD_Tree_Project_ID=0,
			AD_Tree_SalesRegion_ID=0, AD_Tree_Product_ID=0;

		try
		{
			Statement stmt = DB.createStatement();
			ResultSet rs = stmt.executeQuery(sql2);
			while (rs.next())
			{
				String value = rs.getString(1);
				int AD_Tree_ID = 0;
				if (value.equals("OO"))
				{
					AD_Tree_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Tree");
					AD_Tree_Org_ID = AD_Tree_ID;
				}
				else if (value.equals("BP"))
				{
					AD_Tree_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Tree");
					AD_Tree_BPartner_ID = AD_Tree_ID;
				}
				else if (value.equals("PJ"))
				{
					AD_Tree_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Tree");
					AD_Tree_Project_ID = AD_Tree_ID;
				}
				else if (value.equals("SR"))
				{
					AD_Tree_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Tree");
					AD_Tree_SalesRegion_ID = AD_Tree_ID;
				}
				else if (value.equals("PR"))
				{
					AD_Tree_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Tree");
					AD_Tree_Product_ID = AD_Tree_ID;
				}
				else if (value.endsWith("EV"))
				{
					AD_Tree_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Tree");
					AD_Tree_Account_ID = AD_Tree_ID;
				}
				else if (value.equals("MM"))	//	No Menu
					;
				else
					//	PC (Product Category), BB (BOM), MC (Marketing Campaign), AY (Activity)
					AD_Tree_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Tree");

				//
				if (AD_Tree_ID != 0)
				{
					name = m_clientName + " " + rs.getString(2);
					sql = "INSERT INTO AD_Tree(" + m_stdColumns + ",AD_Tree_ID,Name,Description,TreeType)"
						+ " VALUES (" + m_stdValues + "," + AD_Tree_ID + ",'" + name + "','" + name + "','" + value + "')";
					no = DB.executeUpdate(sql);
					if (no == 1)
						m_info.append(Msg.translate(m_lang, "AD_Tree_ID")).append("=").append(name).append("\n");
					else
						Log.error("MSetup.createClient - Tree NOT created: " + name);
				}
			}
			rs.close();
			stmt.close();
		}
		catch (SQLException e1)
		{
			Log.error ("MSetup.createClient - Trees", e1);
		}

		//	Get Primary Tree
		int AD_Tree_Menu_ID = 10;	//	hardcoded

		//	Create ClientInfo
		sql = "INSERT INTO AD_ClientInfo(" + m_stdColumns + ",Acct2_Active,Acct3_Active,"
			+ "AD_Tree_Menu_ID,AD_Tree_Org_ID,AD_Tree_BPartner_ID,AD_Tree_Project_ID,AD_Tree_SalesRegion_ID,AD_Tree_Product_ID)"
			+ " VALUES (" + m_stdValues + ",'N','N',"
			+ AD_Tree_Menu_ID + "," + AD_Tree_Org_ID + "," + AD_Tree_BPartner_ID + "," + AD_Tree_Project_ID + "," + AD_Tree_SalesRegion_ID + "," + AD_Tree_Product_ID + ")";
		no = DB.executeUpdate(sql);
		if (no != 1)
		{
			String err = "MSetup.createClient - ClientInfo NOT iserted";
			Log.error(err);
			m_info.append(err);
			return false;
		}
		//  Info
	//	m_info.append(Msg.translate(m_lang, "AD_ClientInfo")).append("\n");

		/**
		 *  Create Org
		 */
		AD_Org_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Org");
		m_stdValuesOrg = AD_Client_ID + "," + AD_Org_ID + ",'Y',SysDate,0,SysDate,0";

		name = orgName;
		if (name == null || name.length() == 0)
			name = "newOrg";
		m_orgName = name;
		sql = "INSERT INTO AD_Org (" + m_stdColumns + ",Value,Name,IsSummary)"
			+ " VALUES (" +	m_stdValuesOrg + ",'" + name + "','" + name + "','N')";
		no = DB.executeUpdate(sql);
		if (no != 1)
		{
			String err = "MSetup.createClient - Org NOT iserted";
			Log.error(err);
			m_info.append(err);
			return false;
		}
		//  Info
		m_info.append(Msg.translate(m_lang, "AD_Org_ID")).append("=").append(name).append("\n");

		/**
		 *  Create Roles
		 *  - Admin
		 *  - User
		 */
		name = m_clientName + " Admin";
		AD_Role_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Role");
		sql = "INSERT INTO AD_Role(" + m_stdColumns + ",AD_Role_ID,"
			+ "Name,Description,UserLevel,ClientList,OrgList)"
			+ " VALUES (" + m_stdValues + "," + AD_Role_ID + ","
			+ "'" + name + "','" + name + "',' CO','" + AD_Client_ID + "','0," + AD_Org_ID + "')";
		no = DB.executeUpdate(sql);
		if (no != 1)
		{
			String err = "MSetup.createClient - Admin Role A NOT iserted";
			Log.error(err);
			m_info.append(err);
			return false;
		}
		//  OrgAccess x,0
		sql = "INSERT INTO AD_Role_OrgAccess(" + m_stdColumns + ",AD_Role_ID) VALUES ("
			+ m_stdValues + "," + AD_Role_ID + ")";
		no = DB.executeUpdate(sql);
		if (no != 1)
			Log.error("MSetup.createClient - Admin Role_OrgAccess 0 NOT created");
		//  OrgAccess x,y
		sql = "INSERT INTO AD_Role_OrgAccess(" + m_stdColumns + ",AD_Role_ID) VALUES ("
			+ m_stdValuesOrg + "," + AD_Role_ID + ")";
		no = DB.executeUpdate(sql);
		if (no != 1)
			Log.error("MSetup.createClient - Admin Role_OrgAccess NOT created");
		//  Info - Admin Role
		m_info.append(Msg.translate(m_lang, "AD_Role_ID")).append("=").append(name).append("\n");

		//
		name = m_clientName + " User";
		int AD_Role_ID_U = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Role");
		sql = "INSERT INTO AD_Role(" + m_stdColumns + ",AD_Role_ID,"
			+ "Name,Description,UserLevel,ClientList,OrgList)"
			+ " VALUES (" + m_stdValues + "," + AD_Role_ID_U + ","
			+ "'" + name + "','" + name + "','  O','" + AD_Client_ID + "','" + AD_Org_ID + "')";
		no = DB.executeUpdate(sql);
		if (no != 1)
		{
			String err = "MSetup.createClient - User Role A NOT iserted";
			Log.error(err);
			m_info.append(err);
			return false;
		}
		//  OrgAccess x,y
		sql = "INSERT INTO AD_Role_OrgAccess(" + m_stdColumns + ",AD_Role_ID) VALUES ("
			+ m_stdValuesOrg + "," + AD_Role_ID_U + ")";
		no = DB.executeUpdate(sql);

⌨️ 快捷键说明

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