KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > erpCommon > ad_forms > DocLine


1 /*
2  ******************************************************************************
3  * The contents of this file are subject to the Compiere License Version 1.1
4  * ("License"); You may not use this file except in compliance with the License
5  * You may obtain a copy of the License at http://www.compiere.org/license.html
6  * Software distributed under the License is distributed on an "AS IS" basis,
7  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
8  * the specific language governing rights and limitations under the License.
9  * The Original Code is Compiere ERP & CRM Business Solution
10  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
11  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
12  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
13  * Contributor(s): Openbravo SL
14  * Contributions are Copyright (C) 2001-2006 Openbravo S.L.
15  ******************************************************************************
16 */

17 package org.openbravo.erpCommon.ad_forms;
18
19 import java.math.*;
20 import javax.servlet.*;
21 import org.apache.log4j.Logger ;
22 // imports for transactions
23
import org.openbravo.database.ConnectionProvider;
24 import org.openbravo.data.FieldProvider;
25
26
27 public class DocLine {
28   static Logger log4jDocLine = Logger.getLogger(DocLine.class);
29
30     public BigDecimal ZERO = new BigDecimal("0");
31
32
33     public String JavaDoc p_DocumentType = "";
34     /** ID - Trx Header */
35     public String JavaDoc m_TrxHeader_ID = "";
36     /** ID - Line ID */
37     public String JavaDoc m_TrxLine_ID = "";
38     /** Line */
39     public String JavaDoc m_Line = "";
40
41     /** Qty UOM */
42     public String JavaDoc m_C_UOM_ID = "";
43     /** Qty */
44     public String JavaDoc m_qty = "";
45
46
47     /** Currency */
48     public String JavaDoc m_C_Currency_ID = "";
49
50     // -- GL Amounts
51
/** Debit Journal Amt */
52     public String JavaDoc m_AmtSourceDr = "0";
53     /** Credit Journal Amt */
54     public String JavaDoc m_AmtSourceCr = "0";
55
56     /** Converted Amounts */
57     public String JavaDoc m_AmtAcctDr = "";
58     public String JavaDoc m_AmtAcctCr = "";
59     public String JavaDoc m_C_AcctSchema_ID = "";
60
61     public ProductInfo p_productInfo = null;
62
63     /** Account used only for GL Journal */
64     public Account m_account = null;
65
66     // Dimensions
67
public String JavaDoc m_AD_Org_ID = "";
68     public String JavaDoc m_A_Asset_ID = "";
69     public String JavaDoc m_C_BPartner_ID = "";
70     public String JavaDoc m_M_Product_ID = "";
71     public String JavaDoc m_AD_OrgTrx_ID = "";
72     public String JavaDoc m_C_SalesRegion_ID = "";
73     public String JavaDoc m_C_Project_ID = "";
74     public String JavaDoc m_C_Campaign_ID = "";
75     public String JavaDoc m_C_Activity_ID = "";
76     public String JavaDoc m_C_LocFrom_ID = "";
77     public String JavaDoc m_C_LocTo_ID = "";
78     public String JavaDoc m_User1_ID = "";
79     public String JavaDoc m_User2_ID = "";
80     //
81
public String JavaDoc m_C_Charge_ID = "";
82     public String JavaDoc m_ChargeAmt = "";
83     /** Description */
84     public String JavaDoc m_description = "";
85     /** Tax ID */
86     public String JavaDoc m_C_Tax_ID = "";
87
88     public String JavaDoc m_DateAcct = "";
89     public String JavaDoc m_DateDoc = "";
90     public String JavaDoc m_Record_Id2 = "";
91
92     public DocLine(String JavaDoc DocumentType, String JavaDoc TrxHeader_ID, String JavaDoc TrxLine_ID){
93         if (DocumentType == null)
94             throw new IllegalArgumentException JavaDoc("DocLine - DocumentType is null");
95         p_DocumentType = DocumentType;
96         m_TrxHeader_ID = TrxHeader_ID;
97         m_TrxLine_ID = TrxLine_ID;
98     } // DocLine
99

100     public void loadAttributes (FieldProvider data, AcctServer vo){
101                 m_Record_Id2 = data.getField("cDebtpaymentId");
102                 m_AD_Org_ID = data.getField("adOrgId");
103                 m_C_BPartner_ID = data.getField("cBpartnerId");
104                 m_M_Product_ID = data.getField("mProductId");
105                 m_AD_OrgTrx_ID = data.getField("adOrgtrxId");
106                 m_C_SalesRegion_ID = data.getField("cSalesregionId");
107                 m_C_Project_ID = data.getField("cProjectId");
108                 m_A_Asset_ID = data.getField("aAssetId");
109                 m_C_Campaign_ID = data.getField("cCampaignId");
110                 m_C_Activity_ID = data.getField("cActivityId");
111                 m_C_LocFrom_ID =data.getField("cLocfromId");
112                 m_C_LocTo_ID = data.getField("cLoctoId");
113                 m_User1_ID = data.getField("user1Id");
114                 m_User2_ID = data.getField("user2Id");
115             // Line, Description, Currency
116
m_Line = data.getField("line");
117                 m_description = data.getField("description");
118                 m_C_Currency_ID = data.getField("cCurrencyId");
119                 log4jDocLine.debug("loadAttributes - C_CURRENCY_ID = " + m_C_Currency_ID);
120             // Qty
121
m_C_UOM_ID = data.getField("cUomId");
122                 m_qty = data.getField("qty");
123             //
124
m_C_Tax_ID = data.getField("cTaxId");
125                 m_C_Charge_ID = data.getField("cChargeId");
126                 m_ChargeAmt = data.getField("chargeamt");
127             //
128
m_DateAcct = data.getField("dateacct");
129                 m_DateDoc = data.getField("datedoc");
130                 //
131
// Product Info
132
p_productInfo = new ProductInfo(m_M_Product_ID, vo);
133
134         // Document Consistency
135
if (m_AD_Org_ID == "")
136             m_AD_Org_ID = vo.AD_Org_ID;
137         if (m_C_Currency_ID == "")
138             m_C_Currency_ID = vo.C_Currency_ID;
139     } // loadAttributes
140

141
142     public void setAmount (String JavaDoc amtSourceDr, String JavaDoc amtSourceCr){
143         m_AmtSourceDr = amtSourceDr == "" ? "0" : amtSourceDr;
144         m_AmtSourceCr = amtSourceCr == "" ? "0" : amtSourceCr;
145     } // setAmounts
146

147     /**
148      * Set Converted Amounts
149      * @param C_AcctSchema_ID acct schema
150      * @param amtAcctDr acct amount dr
151      * @param amtAcctCr acct amount cr
152      */

153     public void setConvertedAmt (String JavaDoc C_AcctSchema_ID, String JavaDoc amtAcctDr, String JavaDoc amtAcctCr){
154         m_C_AcctSchema_ID = C_AcctSchema_ID;
155         m_AmtAcctDr = amtAcctDr;
156         m_AmtAcctCr = amtAcctCr;
157     } // setConvertedAmt
158

159     /**
160      * Set Journal Account
161      * @param acct account
162      */

163     public void setAccount (Account acct){
164         m_account = acct;
165     } // setAccount
166

167     /**
168      * Set AD_Org_ID.
169      * For GL Journal overwrite
170      * @param AD_Org_ID org
171      */

172     public void setAD_Org_ID(String JavaDoc AD_Org_ID){
173         m_AD_Org_ID = AD_Org_ID;
174     } // setAD_Org_ID
175

176     /**
177      * Get Charge Account
178      * @param as account schema
179      * @param amount amount for expense(+)/revenue(-)
180      * @return Charge Account or null
181      */

182     public Account getChargeAccount (AcctSchema as, BigDecimal amount, ConnectionProvider conn){
183         if (m_C_Charge_ID.equals(""))
184             return null;
185         String JavaDoc Account_ID = "";
186         DocLineData [] data = null;
187         Account acct =null;
188         try{
189             data = DocLineData.select(conn, m_C_Charge_ID, as.getC_AcctSchema_ID());
190             if (data.length>0){
191                 Account_ID = data[0].expense; // Expense (positive amt)
192
if (amount != null && amount.signum() < 0)
193                     Account_ID = data[0].revenue; // Revenue (negative amt)
194
}
195             // No account
196
if (Account_ID.equals("")){
197                 log4jDocLine.warn ("getChargeAccount - NO account for C_Charge_ID=" + m_C_Charge_ID);
198                 return null;
199             }
200             // Return Account
201
acct = Account.getAccount (conn,Account_ID);
202         }catch(ServletException e){
203             log4jDocLine.warn(e);
204         }
205         return acct;
206     } // getChargeAccount
207

208     /**
209      * Get (Journal) AcctSchema
210      * @return C_AcctSchema_ID
211      */

212     public String JavaDoc getC_AcctSchema_ID(){
213         return m_C_AcctSchema_ID;
214     } // getC_AcctSchema_ID
215

216     /**
217      * Get Journal Account
218      * @return account
219      */

220     public Account getAccount(){
221         return m_account;
222     } // getAccount
223

224     /**
225      * Get (Journal) Line Source Dr Amount
226      * @return DR source amount
227      */

228     public String JavaDoc getAmtSourceDr(){
229         return m_AmtSourceDr;
230     } // getAmtSourceDr
231

232     /**
233      * Get (Journal) Line Source Cr Amount
234      * @return CR source amount
235      */

236     public String JavaDoc getAmtSourceCr(){
237         return m_AmtSourceCr;
238     } // getAmtSourceCr
239

240     /**
241      * Get Revenue Recognition
242      * @return C_RevenueRecognition_ID
243      */

244     public String JavaDoc getC_RevenueRecognition_ID(){
245       try {
246         return (p_productInfo.m_C_RevenueRecognition_ID==null)?"":p_productInfo.m_C_RevenueRecognition_ID;
247       } catch (Exception JavaDoc e) {
248         log4jDocLine.error("getC_RevenueRecognition_ID Error:"+e.toString());
249         return "";
250       }
251     } // getC_RevenueRecognition_ID
252

253     /**
254      * Quantity
255      * @param qty transaction Qty
256      */

257     public void setQty (String JavaDoc qty){
258         m_qty = qty.equals("") ? "0" : qty;
259     } // getQty
260

261     /**
262      * Line Net Amount or Dr-Cr
263      * @return balance
264      */

265     public String JavaDoc getAmount(){
266         BigDecimal AmtSourceDr = new BigDecimal(m_AmtSourceDr);
267         BigDecimal AmtSourceCr = new BigDecimal(m_AmtSourceCr);
268         return AmtSourceDr.subtract(AmtSourceCr).toString();
269     } // getAmount
270

271     /**
272      * Set Amount (DR)
273      * @param sourceAmt source amt
274      */

275     public void setAmount (String JavaDoc sourceAmt){
276         m_AmtSourceDr = sourceAmt == "" ? ZERO.toString() : sourceAmt;
277         m_AmtSourceCr = ZERO.toString();
278     } // setAmounts
279

280
281
282     public String JavaDoc getServletInfo() {
283     return "Servlet for the accounting";
284   } // end of getServletInfo() method
285
}
286
Popular Tags