1 17 package org.openbravo.erpCommon.ad_forms; 18 19 import java.io.Serializable ; 20 import org.openbravo.database.ConnectionProvider; 21 import org.apache.log4j.Logger ; 22 import javax.servlet.*; 23 import java.util.ArrayList ; 24 25 26 public final class AcctSchema implements Serializable { 27 static Logger log4jAcctSchema = Logger.getLogger(AcctSchema.class); 28 29 public AcctSchema(ConnectionProvider conn, String C_AcctSchema_ID) { 30 m_C_AcctSchema_ID = ""; 31 m_Name = null; 32 m_GAAP = null; 33 m_IsAccrual = "N"; 34 m_HasAlias = "Y"; 35 m_CostingMethod = null; 36 m_C_Currency_ID = ""; 37 m_AD_Client_ID = ""; 38 m_IsTradeDiscountPosted = "N"; 39 m_IsDiscountCorrectsTax = "N"; 40 m_CurrencyRateType = "S"; 41 m_UseSuspenseBalancing = "N"; 42 m_SuspenseBalancing_Acct = null; 43 m_UseSuspenseError = "N"; 44 m_SuspenseError_Acct = null; 45 m_UseCurrencyBalancing = "N"; 46 m_CurrencyBalancing_Acct = null; 47 m_DueTo_Acct = null; 48 m_DueFrom_Acct = null; 49 m_elementList = null; 50 log4jAcctSchema.debug("AcctSchema - " + C_AcctSchema_ID); 51 load(conn, C_AcctSchema_ID); 52 } 53 54 55 public void load(ConnectionProvider conn, String newC_AcctSchema_ID) { 56 log4jAcctSchema.debug("AcctSchema.load - " + newC_AcctSchema_ID); 57 m_C_AcctSchema_ID = newC_AcctSchema_ID; 58 AcctSchemaData [] data ; 59 try { 60 data = AcctSchemaData.select(conn, m_C_AcctSchema_ID); 61 if(data.length==1) { 62 m_Name = data[0].name; 63 m_GAAP = data[0].gaap; 64 m_IsAccrual = data[0].isaccrual; 65 m_CostingMethod = data[0].costingmethod; 66 m_C_Currency_ID = data[0].cCurrencyId; 67 m_HasAlias = data[0].hasalias; 68 m_IsTradeDiscountPosted = data[0].istradediscountposted; 69 m_IsDiscountCorrectsTax = data[0].isdiscountcorrectstax; 70 m_AD_Client_ID = data[0].adClientId; 71 } 72 data = AcctSchemaData.selectAcctSchemaGL(conn, m_C_AcctSchema_ID); 73 if(data.length==1) { 74 m_UseSuspenseBalancing = data[0].usesuspensebalancing; 75 String ID = data[0].suspensebalancingAcct; 76 if(m_UseSuspenseBalancing.equals("Y") && ID != "") m_SuspenseBalancing_Acct = Account.getAccount(conn, ID); 78 else 79 m_UseSuspenseBalancing = "N"; 80 log4jAcctSchema.debug("SuspenseBalancing=" + m_UseSuspenseBalancing + " " + m_SuspenseBalancing_Acct); 81 m_UseSuspenseError = data[0].usesuspenseerror; 82 ID = data[0].suspenseerrorAcct; 83 if(m_UseSuspenseError.equals("Y") && ID != "") m_SuspenseError_Acct = Account.getAccount(conn, ID); 85 else 86 m_UseSuspenseError = "N"; 87 log4jAcctSchema.debug("SuspenseError=" + m_UseSuspenseError + " " + m_SuspenseError_Acct); 88 m_UseCurrencyBalancing = data[0].usecurrencybalancing; 89 ID = data[0].currencybalancingAcct; 90 if(m_UseCurrencyBalancing.equals("Y") && ID != "") m_CurrencyBalancing_Acct = Account.getAccount(conn, ID); 92 else 93 m_UseCurrencyBalancing = "N"; 94 log4jAcctSchema.debug("CurrencyBalancing=" + m_UseCurrencyBalancing + " " + m_CurrencyBalancing_Acct); 95 ID = data[0].intercompanyduetoAcct; 96 if(ID != "") m_DueTo_Acct = Account.getAccount(conn, ID); 98 ID = data[0].intercompanyduefromAcct; 99 if(ID != "") m_DueFrom_Acct = Account.getAccount(conn, ID); 101 } 102 m_elementList = AcctSchemaElement.getAcctSchemaElementList(conn, m_C_AcctSchema_ID); 103 } 104 catch(ServletException e) { 105 log4jAcctSchema.warn("AcctSchema : " + e); 106 m_C_AcctSchema_ID = ""; 107 } 108 } 109 110 114 public boolean isCurrencyBalancing(){ 115 return m_UseCurrencyBalancing.equals("Y"); 116 } 118 122 public Account getCurrencyBalancing_Acct(){ 123 return m_CurrencyBalancing_Acct; 124 } 126 131 public AcctSchemaElement getAcctSchemaElement (String segmentType){ 132 int size = m_elementList.size(); 133 for (int i = 0; i < size; i++){ 134 AcctSchemaElement ase = (AcctSchemaElement)m_elementList.get(i); 135 if (ase.m_segmentType.equals(segmentType)) 136 return ase; 137 } 138 return null; 139 } 141 145 public String getC_AcctSchema_ID(){ 146 return m_C_AcctSchema_ID; 147 } 149 153 public String getC_Currency_ID(){ 154 return m_C_Currency_ID; 155 } 157 161 public String getCurrencyRateType(){ 162 return m_CurrencyRateType; 163 } 165 169 public boolean isSuspenseBalancing(){ 170 return m_UseSuspenseBalancing.equals("Y"); 171 } 173 177 public boolean isAccrual(){ 178 return m_IsAccrual.equals("Y"); 179 } 181 186 public boolean isAcctSchemaElement (String segmentType){ 187 return getAcctSchemaElement(segmentType) != null; 188 } 190 194 public Account getSuspenseBalancing_Acct(){ 195 return m_SuspenseBalancing_Acct; 196 } 198 203 public static AcctSchema[] getAcctSchemaArray(ConnectionProvider conn, String AD_Client_ID){ 204 ArrayList <Object > list = getAcctSchemaList (conn, AD_Client_ID); 205 AcctSchema[] retValue = new AcctSchema [list.size()]; 206 list.toArray(retValue); 207 return retValue; 208 } 210 215 public static synchronized ArrayList <Object > getAcctSchemaList (ConnectionProvider conn, String AD_Client_ID){ 216 ArrayList <Object > list = new ArrayList <Object >(); 218 AcctSchemaData [] data = null; 219 try{ 220 data = AcctSchemaData.selectAcctSchema123(conn, AD_Client_ID); 221 }catch(ServletException e){ 222 log4jAcctSchema.warn(e); 223 } 224 if (data.length>0){ 225 String as = data[0].cAcctschema1Id; 226 list.add(new AcctSchema(conn, as)); 227 if ( data[0].acct2Active.equals("Y")){ 229 as = data[0].cAcctschema2Id; 230 if (!as.equals("")) 231 list.add(new AcctSchema(conn,as)); 232 } 233 if (data[0].acct3Active.equals("Y")){ 234 as = data[0].cAcctschema3Id; 235 if (!as.equals("")) 236 list.add(new AcctSchema(conn,as)); 237 } 238 } 239 return list; 241 } 243 public String m_C_AcctSchema_ID; 244 public String m_Name; 245 public String m_GAAP; 246 public String m_IsAccrual; 247 public String m_HasAlias; 248 public String m_CostingMethod; 249 public String m_C_Currency_ID; 250 public String m_AD_Client_ID; 251 public String m_IsTradeDiscountPosted; 252 public String m_IsDiscountCorrectsTax; 253 public String m_CurrencyRateType; 254 public String m_UseSuspenseBalancing; 255 public Account m_SuspenseBalancing_Acct; 256 public String m_UseSuspenseError; 257 public Account m_SuspenseError_Acct; 258 public String m_UseCurrencyBalancing; 259 public Account m_CurrencyBalancing_Acct; 260 public Account m_DueTo_Acct; 261 public Account m_DueFrom_Acct; 262 ArrayList <Object > m_elementList; 263 264 public static final String COSTING_AVERAGE = "A"; 266 public static final String COSTING_STANDARD = "S"; 267 public static final String COSTING_LASTPO = "P"; 270 271 272 273 } 274 | Popular Tags |