📄 mcountry.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.sql.*;
import java.io.Serializable;
import java.util.*;
import org.compiere.util.*;
/**
* Location Country Model (Value Object)
*
* @author Jorg Janke
* @version $Id: MCountry.java,v 1.2 2003/03/10 05:37:53 jjanke Exp $
*/
public final class MCountry
implements Comparator, Serializable
{
/**
* Create empty Country
*/
public MCountry ()
{
} // MCountry
/**
* Create Country from current row in ResultSet
* @param rs ResultSet
*/
public MCountry (ResultSet rs)
{
if (rs == null)
return;
try
{
C_Country_ID = rs.getInt("C_Country_ID");
CountryCode = rs.getString("CountryCode");
Name = rs.getString("Name");
Description = rs.getString("Description");
if (Description == null)
Description = "";
RegionName = rs.getString("RegionName");
if (RegionName == null)
RegionName = "";
DisplaySequence = rs.getString("DisplaySequence");
if (DisplaySequence == null)
DisplaySequence = "";
ExpressionPostal = rs.getString("ExpressionPostal");
if (ExpressionPostal == null)
ExpressionPostal = "";
ExpressionPostal_Add = rs.getString("ExpressionPostal_Add");
if (ExpressionPostal_Add == null)
ExpressionPostal_Add = "";
HasRegion = rs.getString("HasRegion").equals("Y");
HasPostal_Add = rs.getString("HasPostal_Add").equals("Y");
}
catch (SQLException e)
{
Log.error("MCountry", e);
C_Country_ID = 0;
}
} // MCountry
public int C_Country_ID = 0;
public String CountryCode = "";
public String Name = "";
public String Description = "";
public String RegionName = "";
public String DisplaySequence = "";
public String ExpressionPostal = "";
public String ExpressionPostal_Add = "";
public boolean HasRegion = false;
public boolean HasPostal_Add = false;
/**
* Return Name
* @return Name
*/
public String toString()
{
return Name;
} // toString
/**
* Compare based on Name
* @param o1 object 1
* @param o2 object 2
* @return -1,0, 1
*/
public int compare(Object o1, Object o2)
{
String s1 = o1.toString();
if (s1 == null)
s1 = "";
String s2 = o2.toString();
if (s2 == null)
s2 = "";
return s1.compareTo(s2);
} // compare
/**
* Save Region
* @param ctx properties
* @return true if saved
*/
public boolean save (Properties ctx)
{
// Create Country Code if missing
if (CountryCode == null || CountryCode.length() == 0)
CountryCode = Name.substring(0,1);
// Create Display Sequence if missing
if (DisplaySequence == null || DisplaySequence.length() == 0)
{
DisplaySequence = "@C@, ";
if (HasRegion)
DisplaySequence += " @R@";
DisplaySequence += " @P@";
}
String sql = "";
// new
if (C_Country_ID == 0)
{
sql = "INSERT INTO C_Country "
+ "(Updated,UpdatedBy," // 1..2
+ "CountryCode, Name,Description," // 3..5
+ "DisplaySequence," // 6
+ "C_Country_ID," // 7
+ "AD_Client_ID,AD_Org_ID,IsActive,"// 8..9
+ "Created,CreatedBy) " // 10..11
+ "VALUES(?,?, ?,?,?, ?, ?, ?,?,'Y', ?,?)";
}
else
{
sql = "UPDATE C_Location SET "
+ "Updated=?,UpdatedBy=?,"
+ "CountryCode=?,Name=?,Description=?,"
+ "DisplaySequence=? "
+ "WHERE C_Country_ID=?";
}
try
{
PreparedStatement pstmt = DB.prepareStatement(sql);
// fill variables
java.sql.Date date = new java.sql.Date(System.currentTimeMillis());
pstmt.setDate(1, date);
int user = Env.getContextAsInt(ctx, "#AD_User_ID");
pstmt.setInt(2, user);
//
pstmt.setString(3, CountryCode);
pstmt.setString(4, Name);
pstmt.setString(5, Description);
pstmt.setString(6, DisplaySequence);
//
// if new, get addl info
if (C_Country_ID == 0)
{
// get new ID
int AD_Client_ID = Env.getContextAsInt(ctx, 0, "AD_Client_ID");
C_Country_ID = DB.getKeyNextNo(ctx, AD_Client_ID, "C_Country");
// fill "New" variables 8-11
pstmt.setInt(8, AD_Client_ID);
pstmt.setInt(9, Env.getContextAsInt(ctx, 0, "AD_Org_ID"));
//
pstmt.setDate(10, date);
pstmt.setInt(11, user);
}
pstmt.setInt(7, C_Country_ID);
int no = pstmt.executeUpdate();
if (no != 1)
{
Log.error("MCountry.save - No record updated/inserted");
return false;
}
}
catch (SQLException e)
{
Log.error("MCountry.save", e);
return false;
}
//
Log.trace(Log.l3_Util, "MCountry.save - ID=" + C_Country_ID);
return true;
} // save
/**
* Insert Countries
* @param args none
*/
public static void main (String[] args)
{
/** Migration before
UPDATE C_Country SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID<>0 OR AD_Org_ID<>0;
UPDATE C_Region SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID<>0 OR AD_Org_ID<>0;
IDs migration for C_Location, C_City, C_Tax (C_Country, C_Region)
**/
// from http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1-semic.txt
String countries = "AFGHANISTAN;AF, ALBANIA;AL, ALGERIA;DZ, AMERICAN SAMOA;AS, ANDORRA;AD, ANGOLA;AO, ANGUILLA;AI, ANTARCTICA;AQ, ANTIGUA AND BARBUDA;AG, ARGENTINA;AR,"
+ "ARMENIA;AM, ARUBA;AW, AUSTRALIA;AU, AUSTRIA;AT, AZERBAIJAN;AZ, BAHAMAS;BS, BAHRAIN;BH, BANGLADESH;BD, BARBADOS;BB, BELARUS;BY, BELGIUM;BE, BELIZE;BZ,"
+ "BENIN;BJ, BERMUDA;BM, BHUTAN;BT, BOLIVIA;BO, BOSNIA AND HERZEGOVINA;BA, BOTSWANA;BW, BOUVET ISLAND;BV, BRAZIL;BR, BRITISH INDIAN OCEAN TERRITORY;IO, BRUNEI DARUSSALAM;BN,"
+ "BULGARIA;BG, BURKINA FASO;BF, BURUNDI;BI, CAMBODIA;KH, CAMEROON;CM, CANADA;CA, CAPE VERDE;CV, CAYMAN ISLANDS;KY, CENTRAL AFRICAN REPUBLIC;CF, CHAD;TD, CHILE;CL,"
+ "CHINA;CN, CHRISTMAS ISLAND;CX, COCOS (KEELING) ISLANDS;CC, COLOMBIA;CO, COMOROS;KM, CONGO;CG, CONGO THE DEMOCRATIC REPUBLIC OF THE;CD, COOK ISLANDS;CK,"
+ "COSTA RICA;CR, COTE D'IVOIRE;CI, CROATIA;HR, CUBA;CU, CYPRUS;CY, CZECH REPUBLIC;CZ, DENMARK;DK, DJIBOUTI;DJ, DOMINICA;DM, DOMINICAN REPUBLIC;DO, ECUADOR;EC,"
+ "EGYPT;EG, EL SALVADOR;SV, EQUATORIAL GUINEA;GQ, ERITREA;ER, ESTONIA;EE, ETHIOPIA;ET, FALKLAND ISLANDS (MALVINAS);FK, FAROE ISLANDS;FO, FIJI;FJ,"
+ "FINLAND;FI, FRANCE;FR, FRENCH GUIANA;GF, FRENCH POLYNESIA;PF, FRENCH SOUTHERN TERRITORIES;TF, GABON;GA, GAMBIA;GM, GEORGIA;GE, GERMANY;DE, GHANA;GH,"
+ "GIBRALTAR;GI, GREECE;GR, GREENLAND;GL, GRENADA;GD, GUADELOUPE;GP, GUAM;GU, GUATEMALA;GT, GUINEA;GN, GUINEA-BISSAU;GW, GUYANA;GY, HAITI;HT,"
+ "HEARD ISLAND AND MCDONALD ISLANDS;HM, HOLY SEE (VATICAN CITY STATE);VA, HONDURAS;HN, HONG KONG;HK, HUNGARY;HU, ICELAND;IS, INDIA;IN, INDONESIA;ID,"
+ "IRAN ISLAMIC REPUBLIC OF;IR, IRAQ;IQ, IRELAND;IE, ISRAEL;IL, ITALY;IT, JAMAICA;JM, JAPAN;JP, JORDAN;JO, KAZAKHSTAN;KZ, KENYA;KE, KIRIBATI;KI, KOREA DEMOCRATIC PEOPLE'S REPUBLIC OF;KP,"
+ "KOREA REPUBLIC OF;KR, KUWAIT;KW, KYRGYZSTAN;KG, LAO PEOPLE'S DEMOCRATIC REPUBLIC;LA, LATVIA;LV, LEBANON;LB, LESOTHO;LS, LIBERIA;LR, LIBYAN ARAB JAMAHIRIYA;LY,"
+ "LIECHTENSTEIN;LI, LITHUANIA;LT, LUXEMBOURG;LU, MACAO;MO, MACEDONIA FORMER YUGOSLAV REPUBLIC OF;MK, MADAGASCAR;MG, MALAWI;MW, MALAYSIA;MY, MALDIVES;MV, "
+ "MALI;ML, MALTA;MT, MARSHALL ISLANDS;MH, MARTINIQUE;MQ, MAURITANIA;MR, MAURITIUS;MU, MAYOTTE;YT, MEXICO;MX, MICRONESIA FEDERATED STATES OF;FM,"
+ "MOLDOVA REPUBLIC OF;MD, MONACO;MC, MONGOLIA;MN, MONTSERRAT;MS, MOROCCO;MA, MOZAMBIQUE;MZ, MYANMAR;MM, NAMIBIA;NA, NAURU;NR, NEPAL;NP,"
+ "NETHERLANDS;NL, NETHERLANDS ANTILLES;AN, NEW CALEDONIA;NC, NEW ZEALAND;NZ, NICARAGUA;NI, NIGER;NE, NIGERIA;NG, NIUE;NU, NORFOLK ISLAND;NF,"
+ "NORTHERN MARIANA ISLANDS;MP, NORWAY;NO, OMAN;OM, PAKISTAN;PK, PALAU;PW, PALESTINIAN TERRITORY OCCUPIED;PS, PANAMA;PA, PAPUA NEW GUINEA;PG,"
+ "PARAGUAY;PY, PERU;PE, PHILIPPINES;PH, PITCAIRN;PN, POLAND;PL, PORTUGAL;PT, PUERTO RICO;PR, QATAR;QA, REUNION;RE, ROMANIA;RO, RUSSIAN FEDERATION;RU,"
+ "RWANDA;RW, SAINT HELENA;SH, SAINT KITTS AND NEVIS;KN, SAINT LUCIA;LC, SAINT PIERRE AND MIQUELON;PM, SAINT VINCENT AND THE GRENADINES;VC,"
+ "SAMOA;WS, SAN MARINO;SM, SAO TOME AND PRINCIPE;ST, SAUDI ARABIA;SA, SENEGAL;SN, SEYCHELLES;SC, SIERRA LEONE;SL, SINGAPORE;SG, SLOVAKIA;SK,"
+ "SLOVENIA;SI, SOLOMON ISLANDS;SB, SOMALIA;SO, SOUTH AFRICA;ZA, SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS;GS, SPAIN;ES, SRI LANKA;LK,"
+ "SUDAN;SD, SURINAME;SR, SVALBARD AND JAN MAYEN;SJ, SWAZILAND;SZ, SWEDEN;SE, SWITZERLAND;CH, SYRIAN ARAB REPUBLIC;SY, TAIWAN;TW,"
+ "TAJIKISTAN;TJ, TANZANIA UNITED REPUBLIC OF;TZ, THAILAND;TH, TIMOR-LESTE;TL, TOGO;TG, TOKELAU;TK, TONGA;TO, TRINIDAD AND TOBAGO;TT,"
+ "TUNISIA;TN, TURKEY;TR, TURKMENISTAN;TM, TURKS AND CAICOS ISLANDS;TC, TUVALU;TV, UGANDA;UG, UKRAINE;UA, UNITED ARAB EMIRATES;AE, UNITED KINGDOM;GB,"
+ "UNITED STATES;US, UNITED STATES MINOR OUTLYING ISLANDS;UM, URUGUAY;UY, UZBEKISTAN;UZ, VANUATU;VU, VENEZUELA;VE, VIET NAM;VN, VIRGIN ISLANDS BRITISH;VG,"
+ "VIRGIN ISLANDS U.S.;VI, WALLIS AND FUTUNA;WF, WESTERN SAHARA;EH, YEMEN;YE, YUGOSLAVIA;YU, ZAMBIA;ZM, ZIMBABWE;ZW";
//
org.compiere.Compiere.startupClient();
StringTokenizer st = new StringTokenizer(countries, ",", false);
while (st.hasMoreTokens())
{
String s = st.nextToken().trim();
int pos = s.indexOf(";");
String name = Util.initCap(s.substring(0,pos));
String cc = s.substring(pos+1);
System.out.println(cc + " - " + name);
//
MCountry mc = new MCountry();
mc.CountryCode = cc;
mc.Name = name;
mc.Description = name;
mc.save(Env.getCtx());
}
} // main
} // MCountry
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -