📄 msetup.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 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 + -