diff --git a/org.adempiere.base/src/org/compiere/FA/AssetDisposed.java b/org.adempiere.base/src/org/compiere/FA/AssetDisposed.java deleted file mode 100644 index bf34a407ef..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/AssetDisposed.java +++ /dev/null @@ -1,221 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; - -import org.compiere.model.MAssetChange; -import org.compiere.model.MRefList; -import org.compiere.model.X_A_Asset_Disposed; -import org.compiere.model.X_A_Depreciation_Exp; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - - -/** - * Dispose Asset - * - * @author Rob klein - * @version $Id: AssetDisposed.java,v 1.0$ - */ -public class AssetDisposed extends SvrProcess -{ - /** Record ID */ - private int p_Asset_Disposed_ID = 0; - private boolean m_DeleteOld = false; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("DeleteOld")) - m_DeleteOld = "Y".equals(para[i].getParameter()); - else - log.info("prepare - Unknown Parameter: " + name); - } - p_Asset_Disposed_ID = getRecord_ID(); - - - } // prepare - - - /** - * Build Depreciation Workfile - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("doIt - Asset_Disposed_ID=" + p_Asset_Disposed_ID); - if (p_Asset_Disposed_ID == 0) - throw new IllegalArgumentException("No Record"); - - String sql = null; - - // - int no = 0; - BigDecimal v_Balance = new BigDecimal("0.0"); - X_A_Asset_Disposed AssetDisposed = new X_A_Asset_Disposed (getCtx(), p_Asset_Disposed_ID, null); - String clientCheck = " AND AD_Client_ID=" + AssetDisposed.getAD_Client_ID(); - - if (m_DeleteOld) - { - sql = "DELETE A_DEPRECIATION_EXP " - + "WHERE Processed='Y'" - + " AND A_Entry_Type = 'DIS'" + clientCheck; - - no = DB.executeUpdate (sql,null); - log.info ("doIt - Delete old processed entries =" + no); - } - - sql = null; - log.info("doIt - Starting Disposal = " + no); - - sql = "SELECT A.A_ASSET_ID, A.POSTINGTYPE, A.A_DEPRECIATION_ACCT, " - + " A.A_ACCUMDEPRECIATION_ACCT, A.A_DISPOSAL_LOSS, A.A_DISPOSAL_REVENUE, " - + " A.A_ASSET_ACCT, A.A_SPLIT_PERCENT, A.AD_ORG_ID, A.AD_CLIENT_ID, " - + " B.A_ASSET_COST, B.A_ACCUMULATED_DEPR " - + " FROM A_ASSET_ACCT A, A_DEPRECIATION_WORKFILE B " - + " WHERE A.A_ASSET_ID = " + AssetDisposed.getA_Asset_ID() - + " and B.A_ASSET_ID = " + AssetDisposed.getA_Asset_ID() - + " and A.POSTINGTYPE = B.POSTINGTYPE" - + " and A.AD_CLIENT_ID = B.AD_CLIENT_ID"; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sql,null); - log.info("doIt - SQL=" + sql); - String v_PostingType = null; - //X_A_Depreciation_Exp depexp = new X_A_Depreciation_Exp (getCtx(), 0, null); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - if (v_PostingType != null && (!v_PostingType.equals(rs.getString("PostingType")))) - { - sql = "UPDATE A_DEPRECIATION_WORKFILE " - + "SET A_ACCUMULATED_DEPR = " + v_Balance - + "WHERE A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + AssetDisposed.getA_Asset_ID() - + "AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + v_PostingType + "'"; - DB.executeUpdate(sql,null); - - v_Balance = new BigDecimal("0.0"); - v_PostingType = rs.getString("PostingType"); - } - else if (v_PostingType == null) - { - v_PostingType = rs.getString("PostingType"); - } - - // Create JV for the asset disposal - remove cost of asset on balance sheet - X_A_Depreciation_Exp depexp0 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp0.setPostingType(rs.getString("PostingType")); - depexp0.setA_Asset_ID(AssetDisposed.getA_Asset_ID()); - depexp0.setExpense(rs.getBigDecimal("A_Asset_Cost").multiply(new BigDecimal(-1)).multiply(rs.getBigDecimal("A_Split_Percent"))); - depexp0.setDateAcct(AssetDisposed.getDateAcct()); - depexp0.setA_Account_Number(rs.getInt("A_Asset_Acct")); - depexp0.setDescription("Asset Disposed - Cost of Asset"); - depexp0.setIsDepreciated(true); - depexp0.setA_Period(AssetDisposed.getC_Period_ID()); - depexp0.setA_Entry_Type("DIS"); - depexp0.saveEx(); - - X_A_Depreciation_Exp depexp1 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp1.setPostingType(rs.getString("PostingType")); - depexp1.setA_Asset_ID(AssetDisposed.getA_Asset_ID()); - depexp1.setExpense(rs.getBigDecimal("A_Asset_Cost").multiply(rs.getBigDecimal("A_Split_Percent"))); - depexp1.setDateAcct(AssetDisposed.getDateAcct()); - depexp1.setA_Account_Number(rs.getInt("A_Disposal_Loss")); - depexp1.setDescription("Asset Disposed - Cost of Asset"); - depexp1.setIsDepreciated(false); - depexp1.setA_Period(AssetDisposed.getC_Period_ID()); - depexp1.setA_Entry_Type("DIS"); - depexp1.saveEx(); - - v_Balance = v_Balance.add(rs.getBigDecimal("A_Asset_Cost").multiply(rs.getBigDecimal("A_Split_Percent"))); - - // Create JV for the asset disposal - remove accumulated depreciation of the asset on balance sheet - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp2.setPostingType(rs.getString("PostingType")); - depexp2.setA_Asset_ID(AssetDisposed.getA_Asset_ID()); - depexp2.setExpense(rs.getBigDecimal("A_Accumulated_Depr").multiply(rs.getBigDecimal("A_Split_Percent"))); - depexp2.setDateAcct(AssetDisposed.getDateAcct()); - depexp2.setA_Account_Number(rs.getInt("A_Accumdepreciation_Acct")); - depexp2.setDescription("Asset Disposed - Accum Depr"); - depexp2.setIsDepreciated(true); - depexp2.setA_Period(AssetDisposed.getC_Period_ID()); - depexp2.setA_Entry_Type("DIS"); - depexp2.saveEx(); - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp3.setPostingType(rs.getString("PostingType")); - depexp3.setA_Asset_ID(AssetDisposed.getA_Asset_ID()); - depexp3.setExpense(rs.getBigDecimal("A_Accumulated_Depr").multiply(new BigDecimal(-1)).multiply(rs.getBigDecimal("A_Split_Percent"))); - depexp3.setDateAcct(AssetDisposed.getDateAcct()); - depexp3.setA_Account_Number(rs.getInt("A_Disposal_Loss")); - depexp3.setDescription("Asset Disposed - Accum Depr"); - depexp3.setIsDepreciated(false); - depexp3.setA_Period(AssetDisposed.getC_Period_ID()); - depexp3.setA_Entry_Type("DIS"); - depexp3.saveEx(); - } - - sql = "UPDATE A_ASSET " - + "SET ISDISPOSED = 'Y'," - + " ASSETDISPOSALDATE = " + DB.TO_DATE(AssetDisposed.getA_Disposed_Date()) - + " WHERE A_ASSET_ID = " + AssetDisposed.getA_Asset_ID(); - - DB.executeUpdate(sql,null); - - sql = "UPDATE A_DEPRECIATION_WORKFILE " - + "SET A_ACCUMULATED_DEPR = " + v_Balance - + "WHERE A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + AssetDisposed.getA_Asset_ID() - + "AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + v_PostingType + "'"; - DB.executeUpdate(sql,null); - - MAssetChange change = new MAssetChange (getCtx(), 0, null); - change.setA_Asset_ID(AssetDisposed.getA_Asset_ID()); - change.setChangeType("DIS"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "DIS")); - change.setAssetDisposalDate(AssetDisposed.getA_Disposed_Date()); - change.setAssetAccumDepreciationAmt(v_Balance); - change.setIsFullyDepreciated(true); - change.setIsDisposed(true); - change.saveEx(); - - } - catch (Exception e) - { - log.info("getDeliveries"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - - } - - return ""; - } // doIt - -} // AssetDisposed diff --git a/org.adempiere.base/src/org/compiere/FA/AssetRevalEntry.java b/org.adempiere.base/src/org/compiere/FA/AssetRevalEntry.java deleted file mode 100644 index da7591f1db..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/AssetRevalEntry.java +++ /dev/null @@ -1,410 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; - -import org.compiere.model.MAsset; -import org.compiere.model.X_A_Asset_Reval_Entry; -import org.compiere.model.X_A_Asset_Reval_Index; -import org.compiere.model.X_A_Depreciation_Exp; -import org.compiere.model.X_C_Period; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - - -/** - * Asset Revaluation Entry - * - * @author Rob Klein - * @version $Id: AssetRevalEntry.java,v 1.0$ - */ -public class AssetRevalEntry extends SvrProcess -{ - /** Record ID */ - private int p_Asset_Reval_Entry_ID = 0; - private boolean m_DeleteOld = false; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("DeleteOld")) - m_DeleteOld = "Y".equals(para[i].getParameter()); - else - log.info("prepare - Unknown Parameter: " + name); - } - p_Asset_Reval_Entry_ID = getRecord_ID(); - } // prepare - - - /** - * Build Depreciation Workfile - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("doIt - Asset_Reval_Entry_ID=" + p_Asset_Reval_Entry_ID); - if (p_Asset_Reval_Entry_ID == 0) - throw new IllegalArgumentException("No Record"); - - // - int no = 0; - BigDecimal v_Cost_reval = new BigDecimal("0.0"); - BigDecimal v_Cost_reval_pior = new BigDecimal("0.0"); - BigDecimal v_Accum_reval = new BigDecimal("0.0"); - BigDecimal v_Accum_reval_prior = new BigDecimal("0.0"); - BigDecimal v_Current_exp_reval = new BigDecimal("0.0"); - BigDecimal v_Multipler = new BigDecimal("0.0"); - BigDecimal v_Dep_Exp_reval = new BigDecimal("0.0"); - - X_A_Asset_Reval_Entry AssetReval = new X_A_Asset_Reval_Entry (getCtx(), p_Asset_Reval_Entry_ID, null); - X_C_Period Period = new X_C_Period (getCtx(), AssetReval.getC_Period_ID(), null); - - String sql = null; - log.info("doIt - Starting Transfer = " + no); - String clientCheck = " AND AD_Client_ID=" + AssetReval.getAD_Client_ID(); - - sql = "SELECT A.A_REVAL_COST_OFFSET, A.A_REVAL_ACCUMDEP_OFFSET_CUR, A.A_REVAL_DEPEXP_OFFSET " - + " A.A_ACCUMDEPRECIATION_ACCT, A.A_ASSET_ACCT, A.A_DEPRECIATION_ACCT, " - + " A.A_REVAL_ACCUMDEP_OFFSET_PRIOR, A.A_REVAL_COST_OFFSET_PRIOR " - + " B.A_ASSET_ID, B.A_ASSET_COST, B.A_ACCUMULATED_DEPR, B.A_ASSET_COST_REVAL, B.A_ACCUMULATED_DEPR_REVAL" - + " FROM A_ASSET_ACCT A, A_DEPRECIATION_WORKFILE B" - + " WHERE A.POSTINGTYPE = '" + AssetReval.getPostingType() - + " AND B.POSTINGTYPE = '" + AssetReval.getPostingType() - + " AND A.AD_Client_ID=" + AssetReval.getAD_Client_ID() - + " AND B.AD_Client_ID=" + AssetReval.getAD_Client_ID() - + " AND A.AD_Asset_ID = A.AD_Asset_ID"; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sql,null); - log.info("doIt - SQL=" + sql); - ResultSet rs = null; - X_A_Depreciation_Exp depexp = new X_A_Depreciation_Exp (getCtx(), 0, null); - - if (m_DeleteOld) - { - sql = "DELETE A_DEPRECIATION_EXP " - + "WHERE Processed='Y'" - + " AND A_Entry_Type = 'RVL'" + clientCheck; - - no = DB.executeUpdate (sql,null); - log.info ("doIt - Delete old processed entries =" + no); - } - try { - - rs = pstmt.executeQuery(); - - while (rs.next()){ - - String sql2 = "select A_ASSET_REVAL_INDEX_ID from A_ASSET_REVAL_INDEX where A_REVAL_CODE = " + AssetReval.getA_Rev_Code() - + " and A_EFFECTIVE_DATE = (select MAX(A_EFFECTIVE_DATE) from A_ASSET_REVAL_INDEX where A_EFFECTIVE_DATE < " - + AssetReval.getA_Effective_Date() - + ")"; - - X_A_Asset_Reval_Index ARevalIndex = new X_A_Asset_Reval_Index (getCtx(), DB.getSQLValue(null ,sql), null); - MAsset Asset = new MAsset (getCtx(), rs.getInt("A_Asset_ID"), null); - - if (AssetReval.getA_Reval_Multiplier().equals(X_A_Asset_Reval_Entry.A_REVAL_MULTIPLIER_Index)) - { - - if (AssetReval.getA_Reval_Effective_Date().equals(X_A_Asset_Reval_Entry.A_REVAL_EFFECTIVE_DATE_DateAquired)){ - sql2 = "Select A_REVAL_MULTIPLIER from A_ASSET_REVAL_INDEX where A_REVAL_CODE = " + AssetReval.getA_Rev_Code() - + " and A_EFFECTIVE_DATE = (select MAX(A_EFFECTIVE_DATE) from A_ASSET_REVAL_INDEX where A_EFFECTIVE_DATE < " - + Asset.getA_Asset_CreateDate() - + ")"; - - } - else if (AssetReval.getA_Reval_Effective_Date().equals(X_A_Asset_Reval_Entry.A_REVAL_EFFECTIVE_DATE_RevaluationDate)){ - sql2 = "Select A_REVAL_MULTIPLIER from A_ASSET_REVAL_INDEX where A_REVAL_CODE = " + AssetReval.getA_Rev_Code() - + " and A_EFFECTIVE_DATE = (select MAX(A_EFFECTIVE_DATE) from A_ASSET_REVAL_INDEX where A_EFFECTIVE_DATE < " - + Asset.getA_Asset_RevalDate() - + ")"; - - } - else if (AssetReval.getA_Reval_Effective_Date().equals(X_A_Asset_Reval_Entry.A_REVAL_EFFECTIVE_DATE_DateDepreciationStarted)){ - sql2 = "Select A_REVAL_MULTIPLIER from A_ASSET_REVAL_INDEX where A_REVAL_CODE = " + AssetReval.getA_Rev_Code() - + " and A_EFFECTIVE_DATE = (select MAX(A_EFFECTIVE_DATE) from A_ASSET_REVAL_INDEX where A_EFFECTIVE_DATE < " - + Asset.getAssetServiceDate() - + ")"; - - } - PreparedStatement pstmt2 = null; - pstmt2 = DB.prepareStatement (sql2,null); - ResultSet rs2 = null; - log.info("doIt - SQL2=" + sql2); - try { - rs2 = pstmt2.executeQuery(); - while (rs2.next()){ - v_Multipler = ARevalIndex.getA_Reval_Rate().divide(rs2.getBigDecimal("A_REVAL_MULTIPLIER"),8); - } - - v_Cost_reval = ((rs.getBigDecimal("A_Asset_Cost").subtract(rs.getBigDecimal("A_ASSET_COST_REVAL"))).multiply( v_Multipler)).subtract(rs.getBigDecimal("A_Asset_Cost")); - v_Accum_reval = ((rs.getBigDecimal("A_ACCUMULATED_DEPR").subtract(rs.getBigDecimal("A_ACCUMULATED_DEPR_REVAL"))).multiply( v_Multipler)).subtract(rs.getBigDecimal("A_ACCUMULATED_DEPR")); - - sql2 = "SELECT SUM(CHANGEAMT) AS SUM_CHANGEAMT FROM A_ASSET_CHANGE WHERE A_ASSET_ID = " - + rs.getInt("A_Asset_ID")+ " AND CHANGETYPE = 'D'"; - pstmt2 = DB.prepareStatement (sql2,null); - log.info("doIt - SQL2=" + sql2); - try { - rs2 = pstmt2.executeQuery(); - while (rs2.next()){ - v_Dep_Exp_reval = (rs2.getBigDecimal("SUM_CHANGEAMT").multiply( v_Multipler)).subtract(rs.getBigDecimal("SUM_CHANGEAMT")); - } - } - catch (Exception e) - { - log.info("getDeliveries"+ e); - } - finally - { - DB.close(rs, pstmt2); - rs2 = null; pstmt2 = null; - } - -// Create JV for the Reval Cost Amounts - X_A_Depreciation_Exp depexp0 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp0.setPostingType(AssetReval.getPostingType()); - depexp0.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp0.setExpense(v_Cost_reval); - depexp0.setDateAcct(AssetReval.getDateAcct()); - depexp0.setA_Account_Number(rs.getInt("A_ASSET_ACCT")); - depexp0.setDescription("Asset Revaluation"); - depexp0.setIsDepreciated(false); - depexp0.setA_Period(AssetReval.getC_Period_ID()); - depexp0.setA_Entry_Type("RVL"); - depexp0.saveEx(); - - X_A_Depreciation_Exp depexp1 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp1.setPostingType(AssetReval.getPostingType()); - depexp1.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp1.setExpense(v_Cost_reval.multiply(new BigDecimal(-1))); - depexp1.setDateAcct(AssetReval.getDateAcct()); - depexp1.setA_Account_Number(rs.getInt("A_REVAL_COST_OFFSET")); - depexp1.setDescription("Asset Revaluation"); - depexp1.setIsDepreciated(false); - depexp1.setA_Period(AssetReval.getC_Period_ID()); - depexp1.setA_Entry_Type("RVL"); - depexp1.saveEx(); - -// Create JV for the Reval Accum Depr Amounts - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp2.setPostingType(AssetReval.getPostingType()); - depexp2.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp2.setExpense(v_Accum_reval); - depexp2.setDateAcct(AssetReval.getDateAcct()); - depexp2.setA_Account_Number(rs.getInt("A_ACCUMDEPRECIATION_ACCT")); - depexp2.setDescription("Asset Revaluation"); - depexp2.setIsDepreciated(false); - depexp2.setA_Period(AssetReval.getC_Period_ID()); - depexp2.setA_Entry_Type("RVL"); - depexp2.saveEx(); - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp3.setPostingType(AssetReval.getPostingType()); - depexp3.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp3.setExpense(v_Accum_reval.multiply(new BigDecimal(-1))); - depexp3.setDateAcct(AssetReval.getDateAcct()); - depexp3.setA_Account_Number(rs.getInt("A_ACCUMULATED_DEPR_REVAL")); - depexp3.setDescription("Asset Revaluation"); - depexp3.setIsDepreciated(false); - depexp3.setA_Period(AssetReval.getC_Period_ID()); - depexp3.setA_Entry_Type("RVL"); - depexp3.saveEx(); - -// Create JV for the Reval Depreciation Expense Amounts - X_A_Depreciation_Exp depexp4 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp4.setPostingType(AssetReval.getPostingType()); - depexp4.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp4.setExpense(v_Dep_Exp_reval); - depexp4.setDateAcct(AssetReval.getDateAcct()); - depexp4.setA_Account_Number(rs.getInt("A_DEPRECIATION_ACCT")); - depexp4.setDescription("Asset Revaluation"); - depexp4.setIsDepreciated(false); - depexp4.setA_Period(AssetReval.getC_Period_ID()); - depexp4.setA_Entry_Type("RVL"); - depexp4.saveEx(); - - X_A_Depreciation_Exp depexp5 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp5.setPostingType(AssetReval.getPostingType()); - depexp5.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp5.setExpense(v_Dep_Exp_reval.multiply(new BigDecimal(-1))); - depexp5.setDateAcct(AssetReval.getDateAcct()); - depexp5.setA_Account_Number(rs.getInt("A_REVAL_DEPEXP_OFFSET")); - depexp5.setDescription("Asset Revaluation"); - depexp5.setIsDepreciated(false); - depexp5.setA_Period(AssetReval.getC_Period_ID()); - depexp5.setA_Entry_Type("RVL"); - depexp5.saveEx(); - - } - catch (Exception e) - { - log.info("getDeliveries"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } } - else if (AssetReval.getA_Reval_Multiplier().equals(X_A_Asset_Reval_Entry.A_REVAL_MULTIPLIER_Factor)) - { - - - if (AssetReval.getA_Reval_Effective_Date().equals(X_A_Asset_Reval_Entry.A_REVAL_EFFECTIVE_DATE_DateAquired)){ - sql2 = "Select A_REVAL_MULTIPLIER from A_ASSET_REVAL_INDEX where A_REVAL_CODE = " + AssetReval.getA_Rev_Code() - + " and A_EFFECTIVE_DATE = (select MAX(A_EFFECTIVE_DATE) from A_ASSET_REVAL_INDEX where A_EFFECTIVE_DATE < " - + Asset.getA_Asset_CreateDate() - + ")"; - - } - else if (AssetReval.getA_Reval_Effective_Date().equals(X_A_Asset_Reval_Entry.A_REVAL_EFFECTIVE_DATE_RevaluationDate)){ - sql2 = "Select A_REVAL_MULTIPLIER from A_ASSET_REVAL_INDEX where A_REVAL_CODE = " + AssetReval.getA_Rev_Code() - + " and A_EFFECTIVE_DATE = (select MAX(A_EFFECTIVE_DATE) from A_ASSET_REVAL_INDEX where A_EFFECTIVE_DATE < " - + Asset.getA_Asset_RevalDate() - + ")"; - - } - else if (AssetReval.getA_Reval_Effective_Date().equals(X_A_Asset_Reval_Entry.A_REVAL_EFFECTIVE_DATE_DateDepreciationStarted)){ - sql2 = "Select A_REVAL_MULTIPLIER from A_ASSET_REVAL_INDEX where A_REVAL_CODE = " + AssetReval.getA_Rev_Code() - + " and A_EFFECTIVE_DATE = (select MAX(A_EFFECTIVE_DATE) from A_ASSET_REVAL_INDEX where A_EFFECTIVE_DATE < " - + Asset.getAssetServiceDate() - + ")"; - - } - PreparedStatement pstmt2 = null; - pstmt2 = DB.prepareStatement (sql2,null); - log.info("doIt - SQL2=" + sql2); - try { - ResultSet rs2 = pstmt2.executeQuery(); - while (rs2.next()){ - v_Multipler = rs2.getBigDecimal("A_REVAL_MULTIPLIER"); - } - v_Cost_reval = ((rs.getBigDecimal("A_Asset_Cost").subtract(rs.getBigDecimal("A_ASSET_COST_REVAL"))).multiply( v_Multipler)).subtract(rs.getBigDecimal("A_Asset_Cost")); - v_Accum_reval = ((rs.getBigDecimal("A_ACCUMULATED_DEPR").subtract(rs.getBigDecimal("A_ACCUMULATED_DEPR_REVAL"))).multiply( v_Multipler)).subtract(rs.getBigDecimal("A_ACCUMULATED_DEPR")); - - } - catch (Exception e) - { - log.info("getDeliveries"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } } - - v_Cost_reval = ((rs.getBigDecimal("A_Asset_Cost").subtract(rs.getBigDecimal("A_ASSET_COST_REVAL"))).multiply( v_Multipler)).subtract(rs.getBigDecimal("A_Asset_Cost")); - v_Accum_reval = ((rs.getBigDecimal("A_ACCUMULATED_DEPR").subtract(rs.getBigDecimal("A_ACCUMULATED_DEPR_REVAL"))).multiply( v_Multipler)).subtract(rs.getBigDecimal("A_ACCUMULATED_DEPR")); - - // Create JV for the Reval Cost Amounts - X_A_Depreciation_Exp depexp0 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp0.setPostingType(AssetReval.getPostingType()); - depexp0.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp0.setExpense(v_Cost_reval); - depexp0.setDateAcct(AssetReval.getDateAcct()); - depexp0.setA_Account_Number(rs.getInt("A_ASSET_ACCT")); - depexp0.setDescription("Asset Revaluation"); - depexp0.setIsDepreciated(false); - depexp0.setA_Period(AssetReval.getC_Period_ID()); - depexp0.setA_Entry_Type("RVL"); - depexp0.saveEx(); - - X_A_Depreciation_Exp depexp1 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp1.setPostingType(AssetReval.getPostingType()); - depexp1.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp1.setExpense(v_Cost_reval.multiply(new BigDecimal(-1))); - depexp1.setDateAcct(AssetReval.getDateAcct()); - depexp1.setA_Account_Number(rs.getInt("A_REVAL_COST_OFFSET")); - depexp1.setDescription("Asset Revaluation"); - depexp1.setIsDepreciated(false); - depexp1.setA_Period(AssetReval.getC_Period_ID()); - depexp1.setA_Entry_Type("RVL"); - depexp1.saveEx(); - -// Create JV for the Reval Accum Depr Amounts - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp2.setPostingType(AssetReval.getPostingType()); - depexp2.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp2.setExpense(v_Accum_reval); - depexp2.setDateAcct(AssetReval.getDateAcct()); - depexp2.setA_Account_Number(rs.getInt("A_ACCUMDEPRECIATION_ACCT")); - depexp2.setDescription("Asset Revaluation"); - depexp2.setIsDepreciated(false); - depexp2.setA_Period(AssetReval.getC_Period_ID()); - depexp2.setA_Entry_Type("RVL"); - depexp2.saveEx(); - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp3.setPostingType(AssetReval.getPostingType()); - depexp3.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp3.setExpense(v_Accum_reval.multiply(new BigDecimal(-1))); - depexp3.setDateAcct(AssetReval.getDateAcct()); - depexp3.setA_Account_Number(rs.getInt("A_ACCUMULATED_DEPR_REVAL")); - depexp3.setDescription("Asset Revaluation"); - depexp3.setIsDepreciated(false); - depexp3.setA_Period(AssetReval.getC_Period_ID()); - depexp3.setA_Entry_Type("RVL"); - depexp3.saveEx(); - -// Create JV for the Reval Depreciation Expense Amounts - X_A_Depreciation_Exp depexp4 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp4.setPostingType(AssetReval.getPostingType()); - depexp4.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp4.setExpense(v_Accum_reval); - depexp4.setDateAcct(AssetReval.getDateAcct()); - depexp4.setA_Account_Number(rs.getInt("A_DEPRECIATION_ACCT")); - depexp4.setDescription("Asset Revaluation"); - depexp4.setIsDepreciated(false); - depexp4.setA_Period(AssetReval.getC_Period_ID()); - depexp4.setA_Entry_Type("RVL"); - depexp4.saveEx(); - - X_A_Depreciation_Exp depexp5 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp5.setPostingType(AssetReval.getPostingType()); - depexp5.setA_Asset_ID(Asset.getA_Asset_ID()); - depexp5.setExpense(v_Accum_reval.multiply(new BigDecimal(-1))); - depexp5.setDateAcct(AssetReval.getDateAcct()); - depexp5.setA_Account_Number(rs.getInt("A_REVAL_DEPEXP_OFFSET")); - depexp5.setDescription("Asset Revaluation"); - depexp5.setIsDepreciated(false); - depexp5.setA_Period(AssetReval.getC_Period_ID()); - depexp5.setA_Entry_Type("RVL"); - depexp5.saveEx(); - } - } - catch (Exception e) - { - log.info("getDeliveries"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return ""; - } // doIt - -} // AssetRevalEntry diff --git a/org.adempiere.base/src/org/compiere/FA/AssetSplit.java b/org.adempiere.base/src/org/compiere/FA/AssetSplit.java deleted file mode 100644 index cd493c155d..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/AssetSplit.java +++ /dev/null @@ -1,601 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; - -import org.compiere.model.MAsset; -import org.compiere.model.MAssetAcct; -import org.compiere.model.MAssetAddition; -import org.compiere.model.MAssetChange; -import org.compiere.model.MDepreciationWorkfile; -import org.compiere.model.MRefList; -import org.compiere.model.X_A_Asset_Split; -import org.compiere.model.X_A_Depreciation_Exp; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - - -/** - * Split an Asset - * - * @author Rob Klein - * @version $Id: AssetSplit,v 1.0 $ - */ -public class AssetSplit extends SvrProcess -{ - /** Record ID */ - private int p_Asset_Split_ID = 0; - //private boolean m_DeleteOld = false; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - //ProcessInfoParameter[] para = getParameter(); - p_Asset_Split_ID = getRecord_ID(); - } // prepare - - - /** - * Transfer Asset - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("doIt - Asset_Split_ID=" + p_Asset_Split_ID); - if (p_Asset_Split_ID == 0) - throw new IllegalArgumentException("No Record"); - - // - int no = 0; - BigDecimal v_AccumBalance_New = new BigDecimal("0.0"); - BigDecimal v_CostBalance_New = new BigDecimal("0.0"); - BigDecimal v_QTY_New = new BigDecimal("0.0"); - BigDecimal v_SalvageValue_New = new BigDecimal("0.0"); - BigDecimal v_AccumBalance_Org = new BigDecimal("0.0"); - BigDecimal v_CostBalance_Org = new BigDecimal("0.0"); - BigDecimal v_QTY_Org = new BigDecimal("0.0"); - BigDecimal v_SalvageValue_Org = new BigDecimal("0.0"); - BigDecimal v_multiplier_New = new BigDecimal("0.0"); - BigDecimal v_ManDep_Org = new BigDecimal("0.0"); - BigDecimal v_ManDep_New = new BigDecimal("0.0"); - - int v_AssetNumber = 0, A_Accumdepreciation_Acct = 0; - int A_Cost_Acct = 0, A_DepExp_Acct = 0; - - log.info("doIt - Starting Split = " + no); - - X_A_Asset_Split AssetSplit = new X_A_Asset_Split (getCtx(), p_Asset_Split_ID, null); - MAsset Asset = new MAsset (getCtx(), AssetSplit.getA_Asset_ID(), null); - MDepreciationWorkfile assetwk = new MDepreciationWorkfile (getCtx(), AssetSplit.getA_Depreciation_Workfile_ID(), null); - MAssetAcct assetacct = new MAssetAcct (getCtx(), AssetSplit.getA_Asset_Acct_ID(), null); - - v_AccumBalance_Org = assetwk.getA_Accumulated_Depr(); - v_SalvageValue_Org = assetwk.getA_Salvage_Value(); - v_CostBalance_Org = assetwk.getA_Asset_Cost(); - v_QTY_Org = AssetSplit.getA_QTY_Current(); - v_ManDep_Org = assetacct.getA_Depreciation_Manual_Amount(); - - if (AssetSplit.getA_Split_Type().compareTo("PER") == 0){ - v_multiplier_New = AssetSplit.getA_Percent_Split(); - v_AccumBalance_New = v_AccumBalance_Org.multiply(AssetSplit.getA_Percent_Split()); - v_CostBalance_New = v_CostBalance_Org.multiply(AssetSplit.getA_Percent_Split()); - v_QTY_New = v_QTY_Org.multiply(AssetSplit.getA_Percent_Split()); - v_SalvageValue_New = v_SalvageValue_Org.multiply(AssetSplit.getA_Percent_Split()); - v_AccumBalance_Org = v_AccumBalance_Org.subtract(v_AccumBalance_New); - v_CostBalance_Org = v_CostBalance_Org.subtract(v_CostBalance_New); - v_QTY_Org = v_QTY_Org.subtract(v_QTY_New); - v_SalvageValue_Org = v_SalvageValue_Org.subtract(v_SalvageValue_New); - v_ManDep_New = v_ManDep_Org.multiply(AssetSplit.getA_Percent_Split()); - v_ManDep_Org =v_ManDep_Org.subtract(v_ManDep_New); - } - else if (AssetSplit.getA_Split_Type().compareTo("QTY")==0) { - v_multiplier_New = AssetSplit.getA_QTY_Split().setScale(5, BigDecimal.ROUND_HALF_UP).divide(v_QTY_Org.setScale(5, BigDecimal.ROUND_HALF_UP), 0); - v_AccumBalance_New = v_AccumBalance_Org .multiply(v_multiplier_New); - v_CostBalance_New = v_CostBalance_Org .multiply(v_multiplier_New); - v_QTY_New = AssetSplit.getA_QTY_Split(); - v_SalvageValue_New = v_SalvageValue_Org.multiply(v_multiplier_New); - v_AccumBalance_Org = v_AccumBalance_Org.subtract(v_AccumBalance_New); - v_CostBalance_Org = v_CostBalance_Org .subtract(v_CostBalance_New); - v_QTY_Org = v_QTY_Org .subtract(v_QTY_New); - v_SalvageValue_Org = v_SalvageValue_Org .subtract(v_SalvageValue_New); - v_ManDep_New = v_ManDep_Org.multiply(v_multiplier_New); - v_ManDep_Org =v_ManDep_Org.subtract(v_ManDep_New); - } - else if (AssetSplit.getA_Split_Type().compareTo("AMT")==0) { - v_multiplier_New = AssetSplit.getA_Amount_Split().setScale(5, BigDecimal.ROUND_HALF_UP).divide(v_CostBalance_Org.setScale(5, BigDecimal.ROUND_HALF_UP), 0); - v_AccumBalance_New = v_AccumBalance_Org .multiply(v_multiplier_New); - v_CostBalance_New = AssetSplit.getA_Amount_Split(); - v_QTY_New = v_QTY_Org .multiply(v_multiplier_New); - v_SalvageValue_New = v_SalvageValue_Org.multiply(v_multiplier_New); - v_AccumBalance_Org = v_AccumBalance_Org.subtract(v_AccumBalance_New); - v_CostBalance_Org = v_CostBalance_Org.subtract(v_CostBalance_New); - v_QTY_Org = v_QTY_Org.subtract(v_QTY_New); - v_SalvageValue_Org = v_SalvageValue_Org.subtract(v_SalvageValue_New); - v_ManDep_New = v_ManDep_Org.multiply(v_multiplier_New); - v_ManDep_Org =v_ManDep_Org.subtract(v_ManDep_New); - } - - - if (AssetSplit.getA_Asset_ID_To() == 0) - { - //Insert New Asset - MAsset AssetNew = new MAsset (getCtx(), 0, null); - AssetNew.setValue(Asset.getValue()); - AssetNew.setA_Parent_Asset_ID(Asset.getA_Asset_ID()); - AssetNew.setName(Asset.getName()); - AssetNew.setDescription(Asset.getDescription()); - AssetNew.setHelp(Asset.getHelp()); - AssetNew.setA_Asset_Group_ID(Asset.getA_Asset_Group_ID()); - AssetNew.setM_Product_ID(Asset.getM_Product_ID()); - AssetNew.setSerNo(Asset.getSerNo()); - AssetNew.setLot(Asset.getLot()); - AssetNew.setVersionNo(Asset.getVersionNo()); - AssetNew.setGuaranteeDate(Asset.getGuaranteeDate()); - AssetNew.setAssetServiceDate(Asset.getAssetServiceDate()); - AssetNew.setUseLifeMonths(Asset.getUseLifeMonths()); - AssetNew.setUseLifeYears(Asset.getUseLifeYears()); - AssetNew.setUseUnits(Asset.getUseUnits()); - AssetNew.setIsOwned(Asset.isOwned()); - AssetNew.setIsDepreciated(Asset.isDepreciated()); - AssetNew.setAssetDepreciationDate(Asset.getAssetDepreciationDate()); - AssetNew.setIsInPosession(Asset.isInPosession()); - AssetNew.setLocationComment( "Split from Asset #" +AssetSplit.getA_Asset_ID()); - AssetNew.setC_BPartner_ID(Asset.getC_BPartner_ID()); - AssetNew.setC_BPartner_Location_ID(Asset.getC_BPartner_Location_ID()); - AssetNew.setA_QTY_Current(v_QTY_New); - AssetNew.setA_QTY_Original(v_QTY_New); - AssetNew.saveEx(); - - - v_AssetNumber = AssetNew.getA_Asset_ID(); - - //Create Asset Addition Record - MAssetAddition assetadd = new MAssetAddition (getCtx(), 0, null); - assetadd.setA_Asset_ID(AssetNew.getA_Asset_ID()); - assetadd.setAssetValueAmt(v_CostBalance_New ); - assetadd.setDescription("Split from Asset #" + AssetSplit.getA_Asset_ID()); - assetadd.setA_CapvsExp("Cap"); - assetadd.setA_SourceType("MAN"); - assetadd.setA_QTY_Current(v_QTY_New); - assetadd.setPostingType(AssetSplit.getPostingType()); - assetadd.setM_InOutLine_ID(1); - assetadd.saveEx(); - - - String sql2 = "SELECT A_Asset_Acct_ID " - + "FROM A_Asset_Acct " - + "WHERE A_Asset_ID= " + v_AssetNumber - + "AND PostingType = '" + AssetSplit.getPostingType() +"'"; - - int v_NewAssetAcctID = 0; - v_NewAssetAcctID = DB.getSQLValue(null, sql2); - - //Insert the New Asset in the Account File - MAssetAcct assetacctnew = new MAssetAcct (getCtx(), v_NewAssetAcctID, null); - assetacctnew.setA_Asset_ID(v_AssetNumber); - assetacctnew.setC_AcctSchema_ID(assetacct.getC_AcctSchema_ID()); - assetacctnew.setA_Depreciation_ID(assetacct.getA_Depreciation_ID()); - assetacctnew.setA_Depreciation_Acct(assetacct.getA_Depreciation_Acct()); - assetacctnew.setA_Accumdepreciation_Acct(assetacct.getA_Accumdepreciation_Acct()); - assetacctnew.setA_Disposal_Loss(assetacct.getA_Disposal_Loss()); - assetacctnew.setA_Disposal_Revenue(assetacct.getA_Disposal_Revenue()); - assetacctnew.setA_Asset_Acct(assetacct.getA_Asset_Acct()); - assetacctnew.setA_Asset_Spread_ID(assetacct.getA_Asset_Spread_ID()); - assetacctnew.setA_Depreciation_Method_ID(assetacct.getA_Depreciation_Method_ID()); - assetacctnew.setA_Period_Start(assetacct.getA_Period_Start()); - assetacctnew.setA_Period_End(assetacct.getA_Period_End()); - assetacctnew.setA_Split_Percent(assetacct.getA_Split_Percent()); - assetacctnew.setA_Reval_Cal_Method(assetacct.getA_Reval_Cal_Method()); - assetacctnew.setA_Salvage_Value(v_SalvageValue_New); - assetacctnew.setPostingType(assetacct.getPostingType()); - assetacctnew.setA_Depreciation_Conv_ID(assetacct.getA_Depreciation_Conv_ID()); - assetacctnew.setA_Depreciation_Manual_Amount(v_ManDep_New); - assetacctnew.setA_Depreciation_Manual_Period(assetacct.getA_Depreciation_Manual_Period()); - if (assetacct.getA_Depreciation_Manual_Period() == null) - assetacctnew.setA_Depreciation_Manual_Period(" "); - else - assetacctnew.setA_Depreciation_Manual_Period(assetacct.getA_Depreciation_Manual_Period()); - assetacctnew.saveEx(); - - - sql2 = null; - sql2 = "SELECT A_Depreciation_Workfile_ID " - + "FROM A_Depreciation_Workfile " - + "WHERE A_Asset_ID= " + v_AssetNumber - + " AND PostingType = '" + AssetSplit.getPostingType() +"'"; - - int v_NewWorkfileID = 0; - v_NewWorkfileID = DB.getSQLValue(null, sql2); - - - //Insert the New Asset in the Deprecation Workfile - MDepreciationWorkfile assetwknew = new MDepreciationWorkfile (getCtx(), v_NewWorkfileID, null); - assetwknew.setA_Asset_ID(v_AssetNumber); - assetwknew.setA_Asset_Cost(assetwknew.getA_Asset_Cost().add(v_CostBalance_New)); - assetwknew.setA_Accumulated_Depr(v_AccumBalance_New); - assetwknew.setA_Life_Period(assetwk.getA_Life_Period()); - assetwknew.setA_Period_Posted(assetwk.getA_Period_Posted()); - assetwknew.setA_Salvage_Value(v_SalvageValue_New); - assetwknew.setA_Asset_Life_Years(assetwk.getA_Asset_Life_Years()); - assetwknew.setPostingType(assetwk.getPostingType()); - assetwknew.setA_QTY_Current(assetwknew.getA_QTY_Current().add(v_QTY_New)); - assetwknew.setIsDepreciated(assetwk.isDepreciated()); - assetwknew.setA_Asset_Life_Current_Year(assetwk.getA_Asset_Life_Current_Year()); - assetwknew.setA_Curr_Dep_Exp(new BigDecimal (0.0)); - assetwknew.saveEx(); - - - //Record transaction in Asset History - MAssetChange change = new MAssetChange (getCtx(), 0, null); - change.setAssetValueAmt(v_CostBalance_New ); - change.setPostingType(assetacct.getPostingType()); - change.setA_Asset_ID(AssetNew.getA_Asset_ID()); - change.setAssetAccumDepreciationAmt(v_AccumBalance_New); - change.setA_Salvage_Value(v_SalvageValue_New); - change.setPostingType(assetacct.getPostingType()); - change.setA_Split_Percent(assetacct.getA_Split_Percent()); - change.setConventionType(assetacct.getA_Depreciation_Conv_ID()); - change.setA_Asset_ID(AssetNew.getA_Asset_ID()); - change.setDepreciationType(assetacct.getA_Depreciation_ID()); - change.setA_Asset_Spread_Type(assetacct.getA_Asset_Spread_ID()); - change.setA_Period_Start(assetacct.getA_Period_Start()); - change.setA_Period_End(assetacct.getA_Period_End()); - change.setIsInPosession(AssetNew.isOwned()); - change.setIsDisposed(AssetNew.isDisposed()); - change.setIsDepreciated(AssetNew.isDepreciated()); - change.setIsFullyDepreciated(AssetNew.isFullyDepreciated()); - change.setA_Depreciation_Calc_Type(assetacct.getA_Depreciation_Method_ID()); - change.setA_Asset_Acct(assetacct.getA_Asset_Acct()); - change.setC_AcctSchema_ID(assetacct.getC_AcctSchema_ID()); - change.setA_Accumdepreciation_Acct(assetacct.getA_Accumdepreciation_Acct()); - change.setA_Depreciation_Acct(assetacct.getA_Depreciation_Acct()); - change.setA_Disposal_Revenue(assetacct.getA_Disposal_Revenue()); - change.setA_Disposal_Loss(assetacct.getA_Disposal_Loss()); - change.setA_Reval_Accumdep_Offset_Cur(assetacct.getA_Reval_Accumdep_Offset_Cur()); - change.setA_Reval_Accumdep_Offset_Prior(assetacct.getA_Reval_Accumdep_Offset_Prior()); - if (assetacct.getA_Reval_Cal_Method() == null) - change.setA_Reval_Cal_Method(" "); - else - change.setA_Reval_Cal_Method(assetacct.getA_Reval_Cal_Method()); - change.setA_Reval_Cost_Offset(assetacct.getA_Reval_Cost_Offset()); - change.setA_Reval_Cost_Offset_Prior(assetacct.getA_Reval_Cost_Offset_Prior()); - change.setA_Reval_Depexp_Offset(assetacct.getA_Reval_Depexp_Offset()); - change.setA_Depreciation_Manual_Amount(assetacct.getA_Depreciation_Manual_Amount()); - if (assetacct.getA_Depreciation_Manual_Period() == null) - change.setA_Depreciation_Manual_Period(" "); - else - change.setA_Depreciation_Manual_Period(assetacct.getA_Depreciation_Manual_Period()); - change.setA_Depreciation_Table_Header_ID(assetacct.getA_Depreciation_Table_Header_ID()); - change.setA_Depreciation_Variable_Perc(assetacct.getA_Depreciation_Variable_Perc()); - change.setA_Parent_Asset_ID(Asset.getA_Parent_Asset_ID()); - change.setChangeType("SPL"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "SPL")); - change.setLot(AssetNew.getLot()); - change.setSerNo(AssetNew.getSerNo()); - change.setVersionNo(AssetNew.getVersionNo()); - change.setUseLifeMonths(AssetNew.getUseLifeMonths()); - change.setUseLifeYears(AssetNew.getUseLifeYears()); - change.setLifeUseUnits(AssetNew.getLifeUseUnits()); - change.setAssetDisposalDate(AssetNew.getAssetDisposalDate()); - change.setAssetServiceDate(AssetNew.getAssetServiceDate()); - change.setC_BPartner_Location_ID(AssetNew.getC_BPartner_Location_ID()); - change.setC_BPartner_ID(AssetNew.getC_BPartner_ID()); - change.setA_QTY_Current(AssetNew.getA_QTY_Current()); - change.setA_QTY_Original(AssetNew.getA_QTY_Original()); - change.saveEx(); - - - //Record Account Numbers for JE's - A_Accumdepreciation_Acct = assetacctnew.getA_Accumdepreciation_Acct(); - A_Cost_Acct = assetacctnew.getA_Asset_Acct(); - A_DepExp_Acct = assetacctnew.getA_Depreciation_Acct(); - } - else - { - v_AssetNumber = AssetSplit.getA_Asset_ID_To(); - - //Update Target Asset Record - MAsset AssetNew = new MAsset (getCtx(), v_AssetNumber, null); - AssetNew.setA_QTY_Current(AssetNew.getA_QTY_Current().add(v_QTY_New)); - AssetNew.setA_QTY_Original(AssetNew.getA_QTY_Original().add(v_QTY_New)); - AssetNew.saveEx(); - - //Create Asset Addition Record - MAssetAddition assetadd = new MAssetAddition (getCtx(), 0, null); - assetadd.setA_Asset_ID(v_AssetNumber); - assetadd.setAssetValueAmt(v_CostBalance_New ); - assetadd.setDescription("Split from Asset #" + AssetSplit.getA_Asset_ID()); - assetadd.setA_CapvsExp("Cap"); - assetadd.setA_SourceType("MAN"); - assetadd.setA_QTY_Current(v_QTY_New); - assetadd.setPostingType(AssetSplit.getPostingType()); - assetadd.setM_InOutLine_ID(1); - assetadd.saveEx(); - - - String sql2 = "SELECT A_Asset_Acct_ID " - + "FROM A_Asset_Acct " - + "WHERE A_Asset_ID= " + v_AssetNumber - + "AND PostingType = '" + AssetSplit.getPostingType() +"'"; - - int v_NewAssetAcctID = 0; - v_NewAssetAcctID = DB.getSQLValue(null, sql2); - - //Update Target Asset in the Account File - MAssetAcct assetacctnew = new MAssetAcct (getCtx(), v_NewAssetAcctID, null); - assetacctnew.setA_Salvage_Value(assetacctnew.getA_Salvage_Value().add(v_SalvageValue_New)); - assetacctnew.setA_Depreciation_Manual_Amount(assetacctnew.getA_Depreciation_Manual_Amount().add(v_ManDep_New)); - assetacctnew.saveEx(); - - - sql2 = null; - sql2 = "SELECT A_Depreciation_Workfile_ID " - + "FROM A_Depreciation_Workfile " - + "WHERE A_Asset_ID= " + v_AssetNumber - + " AND PostingType = '" + AssetSplit.getPostingType() +"'"; - - int v_NewWorkfileID = 0; - v_NewWorkfileID = DB.getSQLValue(null, sql2); - - - //Update Target Asset in the Deprecation Workfile - MDepreciationWorkfile assetwknew = new MDepreciationWorkfile (getCtx(), v_NewWorkfileID, null); - assetwknew.setA_Asset_Cost(assetwknew.getA_Asset_Cost().add(v_CostBalance_New)); - assetwknew.setA_Accumulated_Depr(assetwknew.getA_Accumulated_Depr().add(v_AccumBalance_New)); - assetwknew.setA_Salvage_Value(assetwknew.getA_Salvage_Value().add(v_SalvageValue_New)); - assetwknew.setA_QTY_Current(assetwknew.getA_QTY_Current().add(v_QTY_New)); - assetwknew.saveEx(); - - - //Record transaction in Asset History - MAssetChange change = new MAssetChange (getCtx(), 0, null); - change.setAssetValueAmt(v_CostBalance_New ); - change.setPostingType(assetacct.getPostingType()); - change.setA_Asset_ID(AssetNew.getA_Asset_ID()); - change.setAssetAccumDepreciationAmt(v_AccumBalance_New); - change.setA_Salvage_Value(v_SalvageValue_New); - change.setPostingType(assetacct.getPostingType()); - change.setA_Split_Percent(assetacct.getA_Split_Percent()); - change.setConventionType(assetacct.getA_Depreciation_Conv_ID()); - change.setA_Asset_ID(AssetNew.getA_Asset_ID()); - change.setDepreciationType(assetacct.getA_Depreciation_ID()); - change.setA_Asset_Spread_Type(assetacct.getA_Asset_Spread_ID()); - change.setA_Period_Start(assetacct.getA_Period_Start()); - change.setA_Period_End(assetacct.getA_Period_End()); - change.setIsInPosession(AssetNew.isOwned()); - change.setIsDisposed(AssetNew.isDisposed()); - change.setIsDepreciated(AssetNew.isDepreciated()); - change.setIsFullyDepreciated(AssetNew.isFullyDepreciated()); - change.setA_Depreciation_Calc_Type(assetacct.getA_Depreciation_Method_ID()); - change.setA_Asset_Acct(assetacct.getA_Asset_Acct()); - change.setC_AcctSchema_ID(assetacct.getC_AcctSchema_ID()); - change.setA_Accumdepreciation_Acct(assetacct.getA_Accumdepreciation_Acct()); - change.setA_Depreciation_Acct(assetacct.getA_Depreciation_Acct()); - change.setA_Disposal_Revenue(assetacct.getA_Disposal_Revenue()); - change.setA_Disposal_Loss(assetacct.getA_Disposal_Loss()); - change.setA_Reval_Accumdep_Offset_Cur(assetacct.getA_Reval_Accumdep_Offset_Cur()); - change.setA_Reval_Accumdep_Offset_Prior(assetacct.getA_Reval_Accumdep_Offset_Prior()); - change.setA_Reval_Cal_Method(assetacct.getA_Reval_Cal_Method()); - change.setA_Reval_Cost_Offset(assetacct.getA_Reval_Cost_Offset()); - change.setA_Reval_Cost_Offset_Prior(assetacct.getA_Reval_Cost_Offset_Prior()); - change.setA_Reval_Depexp_Offset(assetacct.getA_Reval_Depexp_Offset()); - change.setA_Depreciation_Manual_Amount(assetacct.getA_Depreciation_Manual_Amount()); - if (assetacct.getA_Reval_Cal_Method() == null) - change.setA_Reval_Cal_Method(" "); - else - change.setA_Reval_Cal_Method(assetacct.getA_Reval_Cal_Method()); - if (assetacct.getA_Depreciation_Manual_Period() == null) - change.setA_Depreciation_Manual_Period(" "); - else - change.setA_Depreciation_Manual_Period(assetacct.getA_Depreciation_Manual_Period()); - change.setA_Depreciation_Table_Header_ID(assetacct.getA_Depreciation_Table_Header_ID()); - change.setA_Depreciation_Variable_Perc(assetacct.getA_Depreciation_Variable_Perc()); - change.setA_Parent_Asset_ID(Asset.getA_Parent_Asset_ID()); - change.setChangeType("SPL"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "SPL")); - change.setLot(AssetNew.getLot()); - change.setSerNo(AssetNew.getSerNo()); - change.setVersionNo(AssetNew.getVersionNo()); - change.setUseLifeMonths(AssetNew.getUseLifeMonths()); - change.setUseLifeYears(AssetNew.getUseLifeYears()); - change.setLifeUseUnits(AssetNew.getLifeUseUnits()); - change.setAssetDisposalDate(AssetNew.getAssetDisposalDate()); - change.setAssetServiceDate(AssetNew.getAssetServiceDate()); - change.setC_BPartner_Location_ID(AssetNew.getC_BPartner_Location_ID()); - change.setC_BPartner_ID(AssetNew.getC_BPartner_ID()); - change.setA_QTY_Current(AssetNew.getA_QTY_Current()); - change.setA_QTY_Original(AssetNew.getA_QTY_Original()); - change.saveEx(); - - - //Record Account Numbers for JE's - A_Accumdepreciation_Acct = assetacctnew.getA_Accumdepreciation_Acct(); - A_Cost_Acct = assetacctnew.getA_Asset_Acct(); - A_DepExp_Acct = assetacctnew.getA_Depreciation_Acct(); - - } - - // Update original Asset - Asset.setA_QTY_Current(v_QTY_Org); - Asset.saveEx(); - - // Update original asset for the split - MAssetAddition assetaddold = new MAssetAddition (getCtx(), 0, null); - assetaddold.setA_Asset_ID(Asset.getA_Asset_ID()); - assetaddold.setAssetValueAmt(v_CostBalance_New.multiply( new BigDecimal(-1))); - assetaddold.setDescription("Split to Asset #" + v_AssetNumber); - assetaddold.setA_CapvsExp("Cap"); - assetaddold.setA_SourceType("MAN"); - assetaddold.setA_QTY_Current(v_QTY_New.multiply( new BigDecimal(-1))); - assetaddold.setPostingType(AssetSplit.getPostingType()); - assetaddold.setM_InOutLine_ID(1); - assetaddold.saveEx(); - - //Update the Original Asset in the Account File - assetacct.setA_Salvage_Value(v_SalvageValue_Org); - assetacct.setA_Depreciation_Manual_Amount(v_ManDep_Org); - assetacct.saveEx(); - - //Update the Original Asset in the Deprecation Workfile - assetwk.setA_Asset_Cost(v_CostBalance_Org); - assetwk.setA_Accumulated_Depr(v_AccumBalance_Org); - assetwk.setA_Salvage_Value(v_SalvageValue_Org); - assetwk.setA_QTY_Current(v_QTY_Org); - assetwk.saveEx(); - - MAssetChange change1 = new MAssetChange (getCtx(), 0, null); - change1.setChangeType("SPL"); - change1.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "SPL")); - change1.setAssetValueAmt(v_CostBalance_New.multiply(new BigDecimal(-1))); - change1.setPostingType(assetacct.getPostingType()); - if (assetacct.getA_Reval_Cal_Method() == null) - change1.setA_Reval_Cal_Method(" "); - else - change1.setA_Reval_Cal_Method(assetacct.getA_Reval_Cal_Method()); - if (assetacct.getA_Depreciation_Manual_Period() == null) - change1.setA_Depreciation_Manual_Period(" "); - else - change1.setA_Depreciation_Manual_Period(assetacct.getA_Depreciation_Manual_Period()); - change1.setA_Asset_ID(Asset.getA_Asset_ID()); - change1.setAssetAccumDepreciationAmt(v_AccumBalance_New.multiply(new BigDecimal(-1))); - change1.setA_Salvage_Value(v_SalvageValue_New.multiply(new BigDecimal(-1))); - change1.setA_QTY_Current(v_QTY_New.multiply(new BigDecimal(-1))); - change1.saveEx(); - - //Create Journal Entries for the split - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, null); - //Create JV for the accumulated depreciation of the asset - depexp2.setPostingType(AssetSplit.getPostingType()); - depexp2.setA_Asset_ID(v_AssetNumber); - depexp2.setExpense(v_AccumBalance_New.multiply(new BigDecimal(-1))); - depexp2.setDateAcct(AssetSplit.getDateAcct()); - depexp2.setA_Account_Number(A_Accumdepreciation_Acct); - depexp2.setDescription("Asset Split Accum Dep"); - depexp2.setIsDepreciated(false); - depexp2.setA_Period(AssetSplit.getC_Period_ID()); - depexp2.setA_Entry_Type("SPL"); - depexp2.saveEx(); - - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp3.setPostingType(AssetSplit.getPostingType()); - depexp3.setA_Asset_ID(AssetSplit.getA_Asset_ID()); - depexp3.setExpense(v_AccumBalance_New); - depexp3.setDateAcct(AssetSplit.getDateAcct()); - depexp3.setA_Account_Number(assetacct.getA_Accumdepreciation_Acct()); - depexp3.setDescription("Asset Split Accum Dep"); - depexp3.setIsDepreciated(false); - depexp3.setA_Period(AssetSplit.getC_Period_ID()); - depexp3.setA_Entry_Type("SPL"); - depexp3.saveEx(); - - X_A_Depreciation_Exp depexp4 = new X_A_Depreciation_Exp (getCtx(), 0, null); - //Create JV for the Cost of the asset - depexp4.setPostingType(AssetSplit.getPostingType()); - depexp4.setA_Asset_ID(v_AssetNumber); - depexp4.setExpense(v_CostBalance_New); - depexp4.setDateAcct(AssetSplit.getDateAcct()); - depexp4.setA_Account_Number(A_Cost_Acct); - depexp4.setDescription("Asset Split Cost"); - depexp4.setIsDepreciated(false); - depexp4.setA_Period(AssetSplit.getC_Period_ID()); - depexp4.setA_Entry_Type("SPL"); - depexp4.saveEx(); - - X_A_Depreciation_Exp depexp5 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp5.setPostingType(AssetSplit.getPostingType()); - depexp5.setA_Asset_ID(AssetSplit.getA_Asset_ID()); - depexp5.setExpense(v_CostBalance_New.multiply(new BigDecimal(-1))); - depexp5.setDateAcct(AssetSplit.getDateAcct()); - depexp5.setA_Account_Number(assetacct.getA_Asset_Acct()); - depexp5.setDescription("Asset Split Cost"); - depexp5.setIsDepreciated(false); - depexp5.setA_Period(AssetSplit.getC_Period_ID()); - depexp5.setA_Entry_Type("SPL"); - depexp5.saveEx(); - - - String sql = null; - log.info("doIt - Finishing Split = " + no); - - sql = "SELECT A_ASSET_ID, CHANGEAMT " - + "FROM A_ASSET_CHANGE " - + "WHERE A_ASSET_CHANGE.A_ASSET_ID = " + AssetSplit.getA_Asset_ID() - + " AND A_ASSET_CHANGE.POSTINGTYPE = '" + AssetSplit.getPostingType() - + "' AND A_ASSET_CHANGE.CHANGETYPE= 'D' " - + "AND TRUNC(A_ASSET_CHANGE.DATEACCT, 'YY') = TRUNC( " + DB.TO_DATE(AssetSplit.getDateAcct()) + ", 'YY') " - + "AND TRUNC(A_ASSET_CHANGE.DATEACCT, 'MM') <= TRUNC( " + DB.TO_DATE(AssetSplit.getDateAcct()) + ", 'MM') " - + "AND A_ASSET_CHANGE.C_VALIDCOMBINATION_ID = " + assetacct.getA_Depreciation_Acct(); - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sql,null); - log.info("doIt - SQL=" + sql); - BigDecimal v_Balance = new BigDecimal("0.0"); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - if (AssetSplit.isA_Transfer_Balance_IS()==true) - { - while (rs.next()); - v_Balance = v_Balance.add(rs.getBigDecimal("ChangeAmt")); - - // Create JV for YTD Depreciation Expense - X_A_Depreciation_Exp depexp0 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp0.setPostingType(AssetSplit.getPostingType()); - depexp0.setA_Asset_ID(v_AssetNumber); - depexp0.setExpense(v_Balance.multiply(v_multiplier_New)); - depexp0.setDateAcct(AssetSplit.getDateAcct()); - depexp0.setA_Account_Number(A_DepExp_Acct); - depexp0.setDescription("Asset Split YTD Depreciation Expense"); - depexp0.setIsDepreciated(false); - depexp0.setA_Period(AssetSplit.getC_Period_ID()); - depexp0.setA_Entry_Type("SPL"); - depexp0.saveEx(); - - X_A_Depreciation_Exp depexp1 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp1.setPostingType(AssetSplit.getPostingType()); - depexp1.setA_Asset_ID(AssetSplit.getA_Asset_ID()); - depexp1.setExpense(v_Balance.multiply(new BigDecimal(-1)).multiply(v_multiplier_New)); - depexp1.setDateAcct(AssetSplit.getDateAcct()); - depexp1.setA_Account_Number(assetacct.getA_Depreciation_Acct()); - depexp1.setDescription("Asset Split YTD Depreciation Expense"); - depexp1.setIsDepreciated(false); - depexp1.setA_Period(AssetSplit.getC_Period_ID()); - depexp1.setA_Entry_Type("SPL"); - depexp1.saveEx(); - } - - rs.close(); - pstmt.close(); - pstmt = null; - } - catch (Exception e) - { - log.info("AssetSplit"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return ""; - } // doIt - -} // AssetSplit diff --git a/org.adempiere.base/src/org/compiere/FA/AssetTransfer.java b/org.adempiere.base/src/org/compiere/FA/AssetTransfer.java deleted file mode 100644 index df0f2c7d21..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/AssetTransfer.java +++ /dev/null @@ -1,273 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; - -import org.compiere.model.MAssetChange; -import org.compiere.model.MAssetTransfer; -import org.compiere.model.MRefList; -import org.compiere.model.X_A_Depreciation_Exp; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - -/** - * Asset Transfer - * - * @author Rob Klein - * @version $Id: AssetTransfer.java,v 1.0 $ - */ -public class AssetTransfer extends SvrProcess -{ - /** Record ID */ - private int p_Asset_Transfer_ID = 0; - private boolean m_DeleteOld = false; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("DeleteOld")) - m_DeleteOld = "Y".equals(para[i].getParameter()); - else - log.info("prepare - Unknown Parameter: " + name); - } - p_Asset_Transfer_ID = getRecord_ID(); - } // prepare - - - /** - * Build Depreciation Workfile - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("doIt - Asset_Transfer_ID=" + p_Asset_Transfer_ID); - if (p_Asset_Transfer_ID == 0) - throw new IllegalArgumentException("No Record"); - - // - int no = 0; - BigDecimal v_Balance = new BigDecimal("0.0"); - - MAssetTransfer AssetTransfer = new MAssetTransfer (getCtx(), p_Asset_Transfer_ID, null); - //X_C_Period Period = new X_C_Period (getCtx(), AssetTransfer.getC_Period_ID(), null); - - String sql = null; - log.info("doIt - Starting Transfer = " + no); - - sql = "SELECT A_ASSET_ID, CHANGEAMT " - + "FROM A_ASSET_CHANGE " - + "WHERE A_ASSET_CHANGE.A_ASSET_ID = " + AssetTransfer.getA_Asset_ID() - + " AND A_ASSET_CHANGE.POSTINGTYPE = '" + AssetTransfer.getPostingType() - + "' AND A_ASSET_CHANGE.CHANGETYPE= 'D' " - + "AND TRUNC(A_ASSET_CHANGE.DATEACCT, 'YY') = TRUNC( " + DB.TO_DATE(AssetTransfer.getDateAcct()) + ", 'YY') " - + "AND TRUNC(A_ASSET_CHANGE.DATEACCT, 'MM') <= TRUNC( " + DB.TO_DATE(AssetTransfer.getDateAcct()) + ", 'MM') " - + "AND A_ASSET_CHANGE.C_VALIDCOMBINATION_ID = " + AssetTransfer.getA_Depreciation_Acct(); - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sql,null); - log.info("doIt - SQL=" + sql); - ResultSet rs = null; - //X_A_Depreciation_Exp depexp = new X_A_Depreciation_Exp (getCtx(), 0, null); - - String clientCheck = " AND AD_Client_ID=" + AssetTransfer.getAD_Client_ID(); - - if (m_DeleteOld) - { - sql = "DELETE A_DEPRECIATION_EXP " - + "WHERE Processed='Y'" - + " AND A_Entry_Type = 'TRN'" + clientCheck; - - no = DB.executeUpdate (sql,null); - log.info ("doIt - Delete old processed entries =" + no); - } - try { - - rs = pstmt.executeQuery(); - if (AssetTransfer.isA_Transfer_Balance_IS()==true) - { - while (rs.next()); - v_Balance = v_Balance.add(rs.getBigDecimal("ChangeAmt")); - - // Create JV for the Income Statement Amounts - X_A_Depreciation_Exp depexp0 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp0.setPostingType(AssetTransfer.getPostingType()); - depexp0.setA_Asset_ID(AssetTransfer.getA_Asset_ID()); - depexp0.setExpense(v_Balance); - depexp0.setDateAcct(AssetTransfer.getDateAcct()); - depexp0.setA_Account_Number(AssetTransfer.getA_Depreciation_Acct_New()); - depexp0.setDescription("Asset Transfer"); - depexp0.setIsDepreciated(false); - depexp0.setA_Period(AssetTransfer.getC_Period_ID()); - depexp0.setA_Entry_Type("TRN"); - depexp0.saveEx(); - - X_A_Depreciation_Exp depexp1 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp1.setPostingType(AssetTransfer.getPostingType()); - depexp1.setA_Asset_ID(AssetTransfer.getA_Asset_ID()); - depexp1.setExpense(v_Balance.multiply(new BigDecimal(-1))); - depexp1.setDateAcct(AssetTransfer.getDateAcct()); - depexp1.setA_Account_Number(AssetTransfer.getA_Depreciation_Acct_New()); - depexp1.setDescription("Asset Transfer"); - depexp1.setIsDepreciated(false); - depexp1.setA_Period(AssetTransfer.getC_Period_ID()); - depexp1.setA_Entry_Type("TRN"); - depexp1.saveEx(); - } - } - catch (Exception e) - { - log.info("getDeliveries"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - - sql = null; - - sql = "SELECT A_ASSET_COST, A_ACCUMULATED_DEPR " - + "FROM A_DEPRECIATION_WORKFILE " - + "WHERE A_ASSET_ID = " + AssetTransfer.getA_Asset_ID() - + " AND POSTINGTYPE = '" + AssetTransfer.getPostingType() - + "' AND AD_CLIENT_ID = " + AssetTransfer.getAD_Client_ID() - + " AND AD_ORG_ID = " + AssetTransfer.getAD_Org_ID(); - - pstmt = null; - pstmt = DB.prepareStatement (sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE,null); - - try { - rs = pstmt.executeQuery(); - rs.first(); - - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, null); - - // Create JV for the accumulated depreciation of the asset - depexp2.setPostingType(AssetTransfer.getPostingType()); - depexp2.setA_Asset_ID(AssetTransfer.getA_Asset_ID()); - depexp2.setExpense(rs.getBigDecimal("A_ACCUMULATED_DEPR")); - depexp2.setDateAcct(AssetTransfer.getDateAcct()); - depexp2.setA_Account_Number(AssetTransfer.getA_Accumdepreciation_Acct_New()); - depexp2.setDescription("Asset Transfer Accum Dep"); - depexp2.setIsDepreciated(false); - depexp2.setA_Period(AssetTransfer.getC_Period_ID()); - depexp2.setA_Entry_Type("TRN"); - depexp2.saveEx(); - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp3.setPostingType(AssetTransfer.getPostingType()); - depexp3.setA_Asset_ID(AssetTransfer.getA_Asset_ID()); - depexp3.setExpense(rs.getBigDecimal("A_ACCUMULATED_DEPR").multiply(new BigDecimal(-1))); - depexp3.setDateAcct(AssetTransfer.getDateAcct()); - depexp3.setA_Account_Number(AssetTransfer.getA_Accumdepreciation_Acct()); - depexp3.setDescription("Asset Transfer Accum Dep"); - depexp3.setIsDepreciated(false); - depexp3.setA_Period(AssetTransfer.getC_Period_ID()); - depexp3.setA_Entry_Type("TRN"); - depexp3.saveEx(); - - X_A_Depreciation_Exp depexp4 = new X_A_Depreciation_Exp (getCtx(), 0, null); -// Create JV for the Cost of the asset - depexp4.setPostingType(AssetTransfer.getPostingType()); - depexp4.setA_Asset_ID(AssetTransfer.getA_Asset_ID()); - depexp4.setExpense(rs.getBigDecimal("A_Asset_Cost")); - depexp4.setDateAcct(AssetTransfer.getDateAcct()); - depexp4.setA_Account_Number(AssetTransfer.getA_Asset_Acct_New()); - depexp4.setDescription("Asset Transfer Cost"); - depexp4.setIsDepreciated(false); - depexp4.setA_Period(AssetTransfer.getC_Period_ID()); - depexp4.setA_Entry_Type("TRN"); - depexp4.saveEx(); - - X_A_Depreciation_Exp depexp5 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp5.setPostingType(AssetTransfer.getPostingType()); - depexp5.setA_Asset_ID(AssetTransfer.getA_Asset_ID()); - depexp5.setExpense(rs.getBigDecimal("A_Asset_Cost").multiply(new BigDecimal(-1))); - depexp5.setDateAcct(AssetTransfer.getDateAcct()); - depexp5.setA_Account_Number(AssetTransfer.getA_Asset_Acct()); - depexp5.setDescription("Asset Transfer Cost"); - depexp5.setIsDepreciated(false); - depexp5.setA_Period(AssetTransfer.getC_Period_ID()); - depexp5.setA_Entry_Type("TRN"); - depexp5.saveEx(); - - - // Update Asset Setup for New Accounts - sql = null; - - sql = "UPDATE A_ASSET_ACCT " - + "SET A_DEPRECIATION_ACCT = " + AssetTransfer.getA_Depreciation_Acct_New() - + ", A_ACCUMDEPRECIATION_ACCT = " + AssetTransfer.getA_Accumdepreciation_Acct_New() - + ", A_DISPOSAL_LOSS = " + AssetTransfer.getA_Disposal_Loss_New() - + ", A_DISPOSAL_REVENUE = " + AssetTransfer.getA_Disposal_Revenue_New() - + ", A_ASSET_ACCT = "+ AssetTransfer.getA_Asset_Acct_New() - + " WHERE A_ASSET_ID = " + AssetTransfer.getA_Asset_ID() - + " AND POSTINGTYPE = '" + AssetTransfer.getPostingType() - + "' AND A_PERIOD_START = " + AssetTransfer.getA_Period_Start() - + " AND A_PERIOD_END = " + AssetTransfer.getA_Period_End(); - - - MAssetChange change = new MAssetChange (getCtx(), 0, null); - change.setChangeType("TRN"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "TRN")); - change.setPostingType(AssetTransfer.getPostingType()); - change.setA_Split_Percent(AssetTransfer.getA_Split_Percent()); - change.setA_Asset_ID(AssetTransfer.getA_Asset_ID()); - change.setA_Period_Start(AssetTransfer.getA_Period_Start()); - change.setA_Period_End(AssetTransfer.getA_Period_End()); - change.setA_Asset_Acct(AssetTransfer.getA_Asset_Acct_New()); - change.setC_AcctSchema_ID(AssetTransfer.getC_AcctSchema_ID()); - change.setA_Accumdepreciation_Acct(AssetTransfer.getA_Accumdepreciation_Acct_New()); - change.setA_Depreciation_Acct(AssetTransfer.getA_Depreciation_Acct_New()); - change.setA_Disposal_Revenue(AssetTransfer.getA_Disposal_Revenue_New()); - change.setA_Disposal_Loss(AssetTransfer.getA_Disposal_Loss_New()); - change.setAssetAccumDepreciationAmt(rs.getBigDecimal("A_ACCUMULATED_DEPR")); - change.setAssetBookValueAmt(rs.getBigDecimal("A_Asset_Cost")); - change.setChangeAmt(v_Balance); - change.saveEx(); - - DB.executeUpdate(sql,null); - - AssetTransfer.setIsActive(false); - AssetTransfer.saveEx(); - - // Remove Entry from Processing file - - } - catch (Exception e) - { - log.info("TransferAssets"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return ""; - } // doIt - -} // AssetTransfer diff --git a/org.adempiere.base/src/org/compiere/FA/BuildDepForecastFile.java b/org.adempiere.base/src/org/compiere/FA/BuildDepForecastFile.java deleted file mode 100644 index e602b45134..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/BuildDepForecastFile.java +++ /dev/null @@ -1,388 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.Timestamp; -import java.util.Calendar; -import java.util.GregorianCalendar; - -import org.compiere.model.X_A_Depreciation; -import org.compiere.model.X_A_Depreciation_Convention; -import org.compiere.model.X_A_Depreciation_Exp; -import org.compiere.model.X_A_Depreciation_Forecast; -import org.compiere.model.X_A_Depreciation_Method; -import org.compiere.model.X_A_Depreciation_Workfile; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - -/** - * Build Depreciation Forecast File - * - * @author Rob Klein - * @version $Id: BuildDepForecastFile.java,v 1.0 $ - */ - -public class BuildDepForecastFile extends SvrProcess -{ - /** Record ID */ - private int p_Depreciation_Build_ID = 0; - private boolean m_DeleteOld = false; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("DeleteOld")) - m_DeleteOld = "Y".equals(para[i].getParameter()); - else - log.info("prepare - Unknown Parameter: " + name); - } - p_Depreciation_Build_ID = getRecord_ID(); - } // prepare - - - /** - * Build Depreciation Workfile - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("doIt - Depreciation_Build_ID=" + p_Depreciation_Build_ID); - if (p_Depreciation_Build_ID == 0) - throw new IllegalArgumentException("No Record"); - String clientCheck = " AND AD_Client_ID=" + getAD_Client_ID(); - // - int no = 0; - - if (m_DeleteOld) - { - String sql = "DELETE A_DEPRECIATION_EXP " - + "WHERE A_Entry_Type = 'FOR'" + clientCheck; - - no = DB.executeUpdate (sql,null); - log.info ("doIt - Delete old processed entries =" + no); - } - - - X_A_Depreciation_Forecast DepBuild = new X_A_Depreciation_Forecast (getCtx(), p_Depreciation_Build_ID, null); - String sql = null; - sql = "DELETE FROM A_DEPRECIATION_EXP WHERE PostingType" - + " = '" + DepBuild.getPostingType() + "' and A_Asset_ID" - + " >= " + DepBuild.getA_Start_Asset_ID() + " and A_Asset_ID " - + " <= " + DepBuild.getA_End_Asset_ID() - + " and A_Entry_Type = 'FOR'" - + clientCheck; - - no = DB.executeUpdate(sql,null); - log.info("doIt - Clear DepExpense = " + no); - - sql = null; - sql = "UPDATE A_DEPRECIATION_WORKFILE SET A_CURR_DEP_EXP = 0, A_CURRENT_PERIOD = 0 WHERE POSTINGTYPE" - + " = '" + DepBuild.getPostingType() + "' and A_Asset_ID" - + " >= " + DepBuild.getA_Start_Asset_ID() + " and A_Asset_ID " - + " <= " + DepBuild.getA_End_Asset_ID() - + clientCheck; - - no = DB.executeUpdate(sql,null); - log.info("doIt - DepExpense Reset= " + no); - - sql = null; - sql =" SELECT A_ASSET.A_ASSET_ID, A_ASSET.USELIFEYEARS, A_ASSET.USELIFEMONTHS, A_ASSET.LIFEUSEUNITS, " - +" A_ASSET.USEUNITS, A_ASSET.ISOWNED, A_ASSET.ISDISPOSED,A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED, " - +" A_DEPRECIATION_WORKFILE.A_CURR_DEP_EXP, A_ASSET.ASSETDEPRECIATIONDATE, A_ASSET.ISFULLYDEPRECIATED, " - +" A_ASSET.ASSETSERVICEDATE, A_DEPRECIATION_WORKFILE.A_ASSET_ID as v_Asset_ID, A_DEPRECIATION_WORKFILE.POSTINGTYPE, " - +" A_DEPRECIATION_FORECAST.A_START_ASSET_ID, A_DEPRECIATION_FORECAST.A_END_ASSET_ID, A_DEPRECIATION_WORKFILE.A_ACCUMULATED_DEPR," - +" A_DEPRECIATION_FORECAST.AD_CLIENT_ID, A_DEPRECIATION_FORECAST.AD_ORG_ID, A_DEPRECIATION_WORKFILE.A_SALVAGE_VALUE," - +" A_DEPRECIATION_FORECAST.CREATEDBY, A_DEPRECIATION_FORECAST.UPDATEDBY, A_DEPRECIATION_FORECAST.POSTINGTYPE as v_PostingType," - +" A_DEPRECIATION_WORKFILE.A_DEPRECIATION_WORKFILE_ID, A_DEPRECIATION_FORECAST.DATEDOC, A_DEPRECIATION_WORKFILE.A_ASSET_COST" - +" FROM A_DEPRECIATION_WORKFILE, A_ASSET, A_DEPRECIATION_FORECAST " - +" WHERE A_ASSET.A_ASSET_ID = A_DEPRECIATION_WORKFILE.A_ASSET_ID AND A_ASSET.ISOWNED = 'Y' AND A_DEPRECIATION_FORECAST.A_START_ASSET_ID <= A_ASSET.A_ASSET_ID" - +" AND A_DEPRECIATION_FORECAST.A_END_ASSET_ID >= A_ASSET.A_ASSET_ID AND A_ASSET.ISFULLYDEPRECIATED = 'N' AND A_ASSET.ISDEPRECIATED = 'Y'" - +" AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = ? "; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE,null); - try { - - pstmt.setString(1, DepBuild.getPostingType()); - ResultSet rs = pstmt.executeQuery(); - while (rs.next()){ - X_A_Depreciation_Workfile assetwk = new X_A_Depreciation_Workfile (getCtx(), rs.getInt("A_DEPRECIATION_WORKFILE_ID"), null); - String sql2 = null; - sql2 =" SELECT * FROM A_ASSET_ACCT WHERE PostingType" - + " = '" + DepBuild.getPostingType() + "' and A_Asset_ID" - + " = " + rs.getInt("A_ASSET_ID"); - - PreparedStatement pstmt2 = null; - pstmt2 = DB.prepareStatement (sql2, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE,null); - try { - - ResultSet rs2 = pstmt2.executeQuery(); - //CallableStatement cs; - BigDecimal v_Dep_Exp_Inception = new BigDecimal("0.0"); - BigDecimal v_Dep_Exp_Inception2 = new BigDecimal("0.0"); - BigDecimal v_HalfYearConv = new BigDecimal("0.0"); - BigDecimal v_HalfYearConv_Adj = new BigDecimal("0.0"); - BigDecimal v_Dep_Exp_Adjustment = new BigDecimal("0.0"); - BigDecimal v_Dep_Exp_Monthly = new BigDecimal("0.0"); - BigDecimal v_total_adjustment = new BigDecimal("0.0"); - int asset_id_current = 0; - double v_current=0; - BigDecimal v_current_adj = new BigDecimal(0.0); - - while (rs2.next()){ - //X_A_Asset_Acct assetacct = new X_A_Asset_Acct (getCtx(), rs2.getInt("A_ASSET_ACCT_ID"), null); - X_A_Depreciation depreciation = new X_A_Depreciation (getCtx(), rs2.getInt("A_DEPRECIATION_ID"), null); - X_A_Depreciation_Convention depreciation_conv = new X_A_Depreciation_Convention (getCtx(), rs2.getInt("A_DEPRECIATION_CONV_ID"), null); - X_A_Depreciation_Exp depexp = new X_A_Depreciation_Exp (getCtx(), 0, null); - //Date d1,d2; - //d1 = rs.getDate("ASSETSERVICEDATE"); - //d2 = rs.getDate("DATEDOC"); - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEDOC")); - int DateAcctYear = calendar.get(Calendar.YEAR); - int DateAcctMonth = calendar.get(Calendar.MONTH); - - double v_period = (Math.ceil(DateAcctMonth)+ (Math.floor(DateAcctYear) - Math.floor(AssetServiceDateYear))*12 - Math.floor(AssetServiceDateMonth)) ; - //Record booked depreciation expense - if (rs2.getInt("A_ASSET_ID")!=asset_id_current ) - { - v_current_adj = new BigDecimal(0.0); - depexp.setPostingType(DepBuild.getPostingType()); - depexp.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - depexp.setPostingType(rs.getString("PostingType")); - depexp.setExpense(assetwk.getA_Accumulated_Depr().setScale(5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - depexp.setDescription("Actual Depreciation Expense Booked"); - depexp.setA_Period(rs.getInt("A_Period_Posted")); - depexp.setIsDepreciated(true); - depexp.setDateAcct(assetwk.getAssetDepreciationDate()); - depexp.setA_Entry_Type("FOR"); - depexp.saveEx(); - } - else - { - v_current_adj = v_current_adj.subtract(new BigDecimal(0.0)); - } - int method = 0; - method = rs2.getInt("A_DEPRECIATION_METHOD_ID"); - - //Set depreciation date and record in workfile - Calendar cal = GregorianCalendar.getInstance(); - Timestamp ts; - ts =(rs.getTimestamp("ASSETSERVICEDATE")); - cal.setTime(ts); - assetwk.setDateAcct(ts); - assetwk.setA_Period_Forecast(new BigDecimal(assetwk.getA_Period_Posted())); - assetwk.saveEx(); - - - //Calculate life to date depreciation - while (v_current < v_period ){ - v_Dep_Exp_Inception2 = Depreciation.Dep_Type(depreciation.getDepreciationType(),rs2.getInt("A_Asset_ID"),v_current, rs2.getString("PostingType"), rs2.getInt("A_ASSET_ACCT_ID"), v_Dep_Exp_Inception); - //cs = DB.prepareCall("{ ? = call "+ depreciation.getDepreciationType() + "(" + rs2.getInt("A_Asset_ID") + "," + (v_current) + ",'" + rs2.getString("PostingType") + "'," + rs2.getInt("A_ASSET_ACCT_ID") + "," + v_Dep_Exp_Inception + ")}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_Dep_Exp_Inception2 = cs.getBigDecimal(1); - //cs.close(); - v_HalfYearConv_Adj = new BigDecimal(Conventions.Dep_Convention(depreciation_conv.getConventionType(),rs2.getInt("A_Asset_ID"), rs2.getString("PostingType"), rs2.getInt("A_ASSET_ACCT_ID"), 1, (v_current -1 ))); - //cs = DB.prepareCall("{ ? = call " + depreciation_conv.getConventionType() + "(" + rs2.getInt("A_Asset_ID") + ",'" + rs2.getString("PostingType") + "'," + rs2.getInt("A_ASSET_ACCT_ID") + ", 1 ," + (v_current -1 )+ ")}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_HalfYearConv_Adj = cs.getBigDecimal(1); - //cs.close(); - v_HalfYearConv = v_HalfYearConv.add(v_HalfYearConv_Adj); - cal.add(Calendar.MONTH, 1); - cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); - ts.setTime(cal.getTimeInMillis()); - assetwk.setDateAcct(ts); - v_current_adj = v_current_adj.add((v_HalfYearConv_Adj)); - assetwk.setA_Period_Forecast(v_current_adj); - assetwk.saveEx(); - v_Dep_Exp_Inception = v_Dep_Exp_Inception .add(v_Dep_Exp_Inception2.multiply(v_HalfYearConv_Adj)); - v_current = v_current + 1; - } - - //log.info("doIt - Booked Expense= "+assetwk.getA_Accumulated_Depr()); - //log.info("doIt - Calculated Expense= "+v_Dep_Exp_Inception); - - - //Calculate necessary adjustment per period - X_A_Depreciation_Method depreciation_method = new X_A_Depreciation_Method (getCtx(), method, null); - if (v_Dep_Exp_Inception.compareTo( assetwk.getA_Accumulated_Depr())!=0) - { - v_Dep_Exp_Adjustment = DepreciationAdj.Dep_Adj(depreciation_method.getDepreciationType(),rs2.getInt("A_Asset_ID") , (v_Dep_Exp_Inception.subtract(assetwk.getA_Accumulated_Depr())) , (Math.floor(DateAcctMonth)), rs2.getString("PostingType") , rs2.getInt("A_ASSET_ACCT_ID")); - //cs = DB.prepareCall("{ ? = call " + depreciation_method.getDepreciationType() + "(" + rs2.getInt("A_Asset_ID") + "," + (v_Dep_Exp_Inception.subtract(assetwk.getA_Accumulated_Depr())) + "," + (Math.floor(d2.getMonth()))+ ",'" + rs2.getString("PostingType") + "'," +rs2.getInt("A_ASSET_ACCT_ID") +")}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_Dep_Exp_Adjustment = cs.getBigDecimal(1); - //cs.close(); - v_total_adjustment = v_Dep_Exp_Inception.subtract(assetwk.getA_Accumulated_Depr()); - } - - v_current = v_current+1; - //v_Dep_Exp_Inception = (rs.getBigDecimal("A_ACCUMULATED_DEPR")); - BigDecimal v_period_adj = new BigDecimal(rs2.getInt("A_PERIOD_END")); - int lastdepexp2=0; - - while (v_current_adj.compareTo(v_period_adj)<0){ - //Calculation depreciation expense - v_Dep_Exp_Monthly = Depreciation.Dep_Type(depreciation.getDepreciationType(),rs2.getInt("A_Asset_ID"),v_current-1, rs2.getString("PostingType"), rs2.getInt("A_ASSET_ACCT_ID"), v_Dep_Exp_Inception); - //cs = DB.prepareCall("{ ? = call " + depreciation.getDepreciationType() + "(" + rs2.getInt("A_Asset_ID") +", "+ (v_current-1) +" ,'" + rs2.getString("PostingType") + "'," + rs2.getInt("A_ASSET_ACCT_ID") + " , " + (v_Dep_Exp_Inception) + ")}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_Dep_Exp_Monthly = cs.getBigDecimal(1); - //cs.close(); - //Adjust for half year convention - //log.info(depreciation_conv.getConventionType()); - //log.info(""+rs2.getInt("A_Asset_ID")); - v_HalfYearConv_Adj = new BigDecimal(Conventions.Dep_Convention(depreciation_conv.getConventionType(),rs2.getInt("A_Asset_ID"), rs2.getString("PostingType"), rs2.getInt("A_ASSET_ACCT_ID"), 0, 1 )); - //log.info(""+v_HalfYearConv_Adj); - //cs = DB.prepareCall("{ ? = call " + depreciation_conv.getConventionType() + "(" + rs2.getInt("A_Asset_ID") +",'" + rs2.getString("PostingType") + "'," + rs2.getInt("A_ASSET_ACCT_ID") + " , 0, 1)}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_HalfYearConv_Adj = cs.getBigDecimal(1); - //cs.close(); - v_Dep_Exp_Monthly = v_Dep_Exp_Monthly.multiply((v_HalfYearConv_Adj)); - v_HalfYearConv = v_HalfYearConv.add( v_HalfYearConv_Adj); - - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, null); - if (v_total_adjustment.setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(new BigDecimal (0.00))!=0) - { - - //Record necessary adjustments - - X_A_Depreciation_Exp depexp1 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp1.setA_Entry_Type("FOR"); - depexp1.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp1.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - depexp1.setPostingType(rs.getString("PostingType")); - depexp1.setExpense(v_Dep_Exp_Adjustment.setScale(5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - depexp1.setDescription("Forecasted Depreciation Expense Adj."); - depexp1.setA_Period((int)v_current); - depexp1.setIsDepreciated(true); - depexp1.setDateAcct(ts); - depexp1.saveEx(); - v_total_adjustment = v_total_adjustment.setScale(5, BigDecimal.ROUND_HALF_UP).subtract(v_Dep_Exp_Adjustment.setScale(5, BigDecimal.ROUND_HALF_UP)); - - //Record adjusted expense - depexp2.setPostingType(DepBuild.getPostingType()); - depexp2.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp2.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - depexp2.setPostingType(rs.getString("PostingType")); - depexp2.setExpense((v_Dep_Exp_Monthly.setScale(2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - depexp2.setDescription("Forecasted Depreciation Expense"); - depexp2.setA_Period((int)v_current); - depexp2.setIsDepreciated(true); - depexp2.setDateAcct(ts); - depexp2.setA_Entry_Type("FOR"); - depexp2.saveEx(); - v_Dep_Exp_Inception = v_Dep_Exp_Inception.add((v_Dep_Exp_Monthly.setScale(2, BigDecimal.ROUND_HALF_UP))).setScale(2, BigDecimal.ROUND_HALF_UP); - } - else - { - //Record expense - depexp2.setPostingType(DepBuild.getPostingType()); - depexp2.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp2.setExpense(v_Dep_Exp_Adjustment.setScale(2, BigDecimal.ROUND_HALF_UP)); - depexp2.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - depexp2.setPostingType(rs.getString("PostingType")); - depexp2.setExpense(v_Dep_Exp_Monthly.setScale(2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - depexp2.setDescription("Forecasted Depreciation Expense"); - depexp2.setA_Period((int)v_current); - depexp2.setIsDepreciated(true); - depexp2.setDateAcct(ts); - depexp2.setA_Entry_Type("FOR"); - depexp2.saveEx(); - v_Dep_Exp_Inception = v_Dep_Exp_Inception.add(v_Dep_Exp_Monthly).setScale(2, BigDecimal.ROUND_HALF_UP); - } - lastdepexp2 = depexp2.get_ID(); - //Advance calender - cal.add(Calendar.MONTH, 1); - cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); - ts.setTime(cal.getTimeInMillis()); - v_current_adj = v_current_adj.add((v_HalfYearConv_Adj)).setScale(2, BigDecimal.ROUND_HALF_UP); - - //record in workfile - assetwk.setA_Period_Forecast(v_current_adj); - assetwk.setDateAcct(ts); - assetwk.saveEx(); - v_current = v_current + 1; - } - //adjust last entry for rounding errors - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), lastdepexp2, null); - depexp2.setExpense(depexp2.getExpense().add(((rs.getBigDecimal("A_ASSET_COST").subtract(rs.getBigDecimal("A_SALVAGE_VALUE").subtract(v_total_adjustment))).subtract(v_Dep_Exp_Inception)).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent"))))); - depexp2.saveEx(); - asset_id_current = rs2.getInt("A_ASSET_ID"); - log.info("Asset #"+asset_id_current); - } - rs2.close(); - pstmt2.close(); - pstmt2 = null; - } - catch (Exception e) - { - log.info("getAssets"+ e); - } - finally - { - try - { - if (pstmt2 != null) - pstmt2.close (); - } - catch (Exception e) - {} - pstmt2 = null; - } - } - rs.close(); - pstmt.close(); - pstmt = null; - } - catch (Exception e) - { - log.info("getAssets"+ e); - } - finally - { - try - { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e) - {} - pstmt = null; - } - - return ""; - } // doIt - -} // BuildDepForecastFile diff --git a/org.adempiere.base/src/org/compiere/FA/BuildDepWorkFile.java b/org.adempiere.base/src/org/compiere/FA/BuildDepWorkFile.java deleted file mode 100644 index 1ef52a3bda..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/BuildDepWorkFile.java +++ /dev/null @@ -1,431 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.Timestamp; -import java.util.Calendar; -import java.util.GregorianCalendar; - -import org.compiere.model.X_A_Depreciation; -import org.compiere.model.X_A_Depreciation_Build; -import org.compiere.model.X_A_Depreciation_Convention; -import org.compiere.model.X_A_Depreciation_Exp; -import org.compiere.model.X_A_Depreciation_Method; -import org.compiere.model.X_A_Depreciation_Workfile; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - -/** - * Build Depreciation Work File - * - * @author Rob Klein - * @version $Id: BuildDepWorkFile.java,v 1.0 $ - */ - -public class BuildDepWorkFile extends SvrProcess -{ - /** Record ID */ - private int p_Depreciation_Build_ID = 0; - private boolean m_DeleteOld = false; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("DeleteOld")) - m_DeleteOld = "Y".equals(para[i].getParameter()); - else - log.info("prepare - Unknown Parameter: " + name); - } - p_Depreciation_Build_ID = getRecord_ID(); - } // prepare - - - /** - * Build Depreciation Workfile - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("doIt - Depreciation_Build_ID=" + p_Depreciation_Build_ID); - if (p_Depreciation_Build_ID == 0) - throw new IllegalArgumentException("No Record"); - String clientCheck = " AND AD_Client_ID=" + getAD_Client_ID(); - // - int no = 0; - - //if (m_DeleteOld) - //{ - // String sql = "DELETE A_DEPRECIATION_EXP " - // + "WHERE A_Entry_Type = 'FOR'" + clientCheck; - // - // no = DB.executeUpdate (sql); - // log.info ("doIt - Delete old processed entries =" + no); - //} - - - X_A_Depreciation_Build DepBuild = new X_A_Depreciation_Build (getCtx(), p_Depreciation_Build_ID, null); - String sql = null; - sql = "DELETE FROM A_DEPRECIATION_EXP WHERE PostingType" - + " = '" + DepBuild.getPostingType() + "' and A_Asset_ID" - + " >= " + DepBuild.getA_Start_Asset_ID() + " and A_Asset_ID " - + " <= " + DepBuild.getA_End_Asset_ID() - + " AND A_Entry_Type = 'DEP'" - + clientCheck; - - no = DB.executeUpdate(sql,null); - log.info("doIt - Clear DepExpense = " + no); - - sql = null; - sql = "UPDATE A_DEPRECIATION_WORKFILE SET A_CURR_DEP_EXP = 0, A_CURRENT_PERIOD = 0 WHERE POSTINGTYPE" - + " = '" + DepBuild.getPostingType() + "' and A_Asset_ID" - + " >= " + DepBuild.getA_Start_Asset_ID() + " and A_Asset_ID " - + " <= " + DepBuild.getA_End_Asset_ID() - + clientCheck; - - no = DB.executeUpdate(sql,null); - log.info("doIt - DepExpense Reset= " + no); - - sql = null; - sql =" SELECT A_ASSET.A_ASSET_ID, A_ASSET.USELIFEYEARS, A_ASSET.USELIFEMONTHS, A_ASSET.LIFEUSEUNITS, " - + "A_ASSET.USEUNITS, A_ASSET.ISOWNED, A_ASSET.ISDISPOSED,A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED, " - + " A_DEPRECIATION_WORKFILE.A_CURR_DEP_EXP, A_ASSET.ASSETDEPRECIATIONDATE, A_ASSET.ISFULLYDEPRECIATED, " - + " A_ASSET.ASSETSERVICEDATE, A_DEPRECIATION_WORKFILE.A_ASSET_ID as v_Asset_ID, A_DEPRECIATION_WORKFILE.POSTINGTYPE, " - + " A_DEPRECIATION_BUILD.A_START_ASSET_ID, A_DEPRECIATION_BUILD.A_END_ASSET_ID, A_DEPRECIATION_WORKFILE.A_ACCUMULATED_DEPR, " - + " A_DEPRECIATION_BUILD.PERIODNO, A_DEPRECIATION_BUILD.AD_CLIENT_ID, A_DEPRECIATION_BUILD.AD_ORG_ID, " - + " A_DEPRECIATION_BUILD.CREATEDBY, A_DEPRECIATION_BUILD.UPDATEDBY, A_DEPRECIATION_BUILD.POSTINGTYPE as v_PostingType, " - + " A_DEPRECIATION_BUILD.DATEACCT, A_DEPRECIATION_BUILD.C_PERIOD_ID, A_DEPRECIATION_WORKFILE.A_DEPRECIATION_WORKFILE_ID, " - + " A_DEPRECIATION_BUILD.DATEDOC " - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET, A_DEPRECIATION_BUILD " - + " WHERE A_ASSET.A_ASSET_ID = A_DEPRECIATION_WORKFILE.A_ASSET_ID AND A_ASSET.ISOWNED = 'Y' AND " - + " A_DEPRECIATION_BUILD.DATEACCT >= A_ASSET.ASSETSERVICEDATE AND A_DEPRECIATION_BUILD.A_START_ASSET_ID <= A_ASSET.A_ASSET_ID " - + " AND A_DEPRECIATION_BUILD.A_END_ASSET_ID >= A_ASSET.A_ASSET_ID AND A_ASSET.ISFULLYDEPRECIATED = 'N' AND A_ASSET.ISDEPRECIATED = 'Y' " - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = ? "; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE,null); - ResultSet rs = null; - try { - - pstmt.setString(1, DepBuild.getPostingType()); - rs = pstmt.executeQuery(); - while (rs.next()){ - X_A_Depreciation_Workfile assetwk = new X_A_Depreciation_Workfile (getCtx(), rs.getInt("A_DEPRECIATION_WORKFILE_ID"), null); - String sql2 = null; - sql2 =" SELECT * FROM A_ASSET_ACCT WHERE PostingType" - + " = '" + DepBuild.getPostingType() + "' and A_Asset_ID" - + " = " + rs.getInt("A_ASSET_ID"); - - PreparedStatement pstmt2 = null; - pstmt2 = DB.prepareStatement (sql2, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE,null); - ResultSet rs2 = null; - try { - - rs2 = pstmt2.executeQuery(); - //CallableStatement cs; - BigDecimal v_Dep_Exp_Inception = new BigDecimal("0.0"); - BigDecimal v_Dep_Exp_Inception2 = new BigDecimal("0.0"); - BigDecimal v_HalfYearConv = new BigDecimal("0.0"); - BigDecimal v_HalfYearConv_Adj = new BigDecimal("0.0"); - BigDecimal v_Dep_Exp_Adjustment = new BigDecimal("0.0"); - BigDecimal v_Dep_Exp_Monthly = new BigDecimal("0.0"); - BigDecimal v_total_adjustment = new BigDecimal("0.0"); - int asset_id_current = 0; - double v_current=0; - BigDecimal v_current_adj = new BigDecimal(0.0); - - while (rs2.next()){ - //X_A_Asset_Acct assetacct = new X_A_Asset_Acct (getCtx(), rs2.getInt("A_ASSET_ACCT_ID"), null); - X_A_Depreciation depreciation = new X_A_Depreciation (getCtx(), rs2.getInt("A_DEPRECIATION_ID"), null); - X_A_Depreciation_Convention depreciation_conv = new X_A_Depreciation_Convention (getCtx(), rs2.getInt("A_DEPRECIATION_CONV_ID"), null); - //X_A_Depreciation_Exp depexp = new X_A_Depreciation_Exp (getCtx(), 0, null); - //Date d1,d2; - //d1 = rs.getDate("ASSETSERVICEDATE"); - //d2 = rs.getDate("DATEACCT"); - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctYear = calendar.get(Calendar.YEAR); - int DateAcctMonth = calendar.get(Calendar.MONTH); - double v_period = (Math.ceil(DateAcctMonth)+ (Math.floor(DateAcctYear) - Math.floor(AssetServiceDateYear))*12 - Math.floor(AssetServiceDateMonth)) ; - //Record booked depreciation expense - - if (rs2.getInt("A_ASSET_ID")!=asset_id_current ) - { - v_current_adj = new BigDecimal(0.0); - //depexp.setPostingType(DepBuild.getPostingType()); - //depexp.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - //depexp.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - //depexp.setPostingType(rs.getString("PostingType")); - //depexp.setExpense(assetwk.getA_Accumulated_Depr().setScale(5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - //depexp.setDescription("Actual Depreciation Expense Booked"); - //depexp.setA_Period(rs.getInt("A_Period_Posted")); - //depexp.setIsDepreciated(true); - //depexp.setDateAcct(assetwk.getAssetDepreciationDate()); - //depexp.setA_Entry_Type("DEP"); - //depexp.saveEx(); - } - else - { - v_current_adj = v_current_adj.subtract(new BigDecimal(0.0)); - } - - int method = 0; - method = rs2.getInt("A_DEPRECIATION_METHOD_ID"); - - //Set depreciation date and record in workfile - Calendar cal = GregorianCalendar.getInstance(); - Timestamp ts; - ts =(rs.getTimestamp("ASSETSERVICEDATE")); - cal.setTime(ts); - assetwk.setDateAcct(ts); - assetwk.setA_Period_Forecast(new BigDecimal(assetwk.getA_Period_Posted())); - assetwk.saveEx(); - - - //Calculate life to date depreciation - while (v_current < v_period ){ - v_Dep_Exp_Inception2 = Depreciation.Dep_Type(depreciation.getDepreciationType(),rs2.getInt("A_Asset_ID"),v_current, rs2.getString("PostingType"), rs2.getInt("A_ASSET_ACCT_ID"), v_Dep_Exp_Inception); - //cs = DB.prepareCall("{ ? = call "+ depreciation.getDepreciationType() + "(" + rs2.getInt("A_Asset_ID") + "," + (v_current) + ",'" + rs2.getString("PostingType") + "'," + rs2.getInt("A_ASSET_ACCT_ID") + "," + v_Dep_Exp_Inception + ")}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_Dep_Exp_Inception2 = cs.getBigDecimal(1); - //cs.close(); - v_HalfYearConv_Adj = new BigDecimal(Conventions.Dep_Convention(depreciation_conv.getConventionType(),rs2.getInt("A_Asset_ID"), rs2.getString("PostingType"), rs2.getInt("A_ASSET_ACCT_ID"), 1, (v_current -1 ))); - //cs = DB.prepareCall("{ ? = call " + depreciation_conv.getConventionType() + "(" + rs2.getInt("A_Asset_ID") + ",'" + rs2.getString("PostingType") + "'," + rs2.getInt("A_ASSET_ACCT_ID") + ", 1 ," + (v_current -1 )+ ")}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_HalfYearConv_Adj = cs.getBigDecimal(1); - //cs.close(); - v_HalfYearConv = v_HalfYearConv.add(v_HalfYearConv_Adj); - cal.add(Calendar.MONTH, 1); - cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); - ts.setTime(cal.getTimeInMillis()); - assetwk.setDateAcct(ts); - v_current_adj = v_current_adj.add((v_HalfYearConv_Adj)); - assetwk.setA_Period_Forecast(v_current_adj); - assetwk.saveEx(); - v_Dep_Exp_Inception = v_Dep_Exp_Inception .add(v_Dep_Exp_Inception2.multiply(v_HalfYearConv_Adj)); - v_current = v_current + 1; - } - - //log.info("doIt - Booked Expense= "+assetwk.getA_Accumulated_Depr()); - //log.info("doIt - Calculated Expense= "+v_Dep_Exp_Inception); - - - //Calculate necessary adjustment per period - X_A_Depreciation_Method depreciation_method = new X_A_Depreciation_Method (getCtx(), method, null); - if (v_Dep_Exp_Inception.compareTo( assetwk.getA_Accumulated_Depr())!=0) - { - v_Dep_Exp_Adjustment = DepreciationAdj.Dep_Adj(depreciation_method.getDepreciationType(),rs2.getInt("A_Asset_ID") , (v_Dep_Exp_Inception.subtract(assetwk.getA_Accumulated_Depr())) , (Math.floor(DateAcctMonth)), rs2.getString("PostingType") , rs2.getInt("A_ASSET_ACCT_ID")); - //cs = DB.prepareCall("{ ? = call " + depreciation_method.getDepreciationType() + "(" + rs2.getInt("A_Asset_ID") + "," + (v_Dep_Exp_Inception.subtract(assetwk.getA_Accumulated_Depr())) + "," + (Math.floor(d2.getMonth()))+ ",'" + rs2.getString("PostingType") + "'," +rs2.getInt("A_ASSET_ACCT_ID") +")}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_Dep_Exp_Adjustment = cs.getBigDecimal(1); - //cs.close(); - //log.info("doIt - callable statement #3= "+v_Dep_Exp_Adjustment); - v_total_adjustment = v_Dep_Exp_Inception.subtract(assetwk.getA_Accumulated_Depr()); - } - - - //Record necessary adjustments - if (v_Dep_Exp_Adjustment.setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(new BigDecimal (0.00))!=0) - { - X_A_Depreciation_Exp depexp1 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp1.setA_Entry_Type("DEP"); - depexp1.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp1.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - depexp1.setPostingType(rs.getString("PostingType")); - depexp1.setExpense(v_Dep_Exp_Adjustment.setScale(2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - depexp1.setDescription("Depreciation Expense Adj."); - depexp1.setA_Period(rs.getInt("C_Period_ID")); - depexp1.setIsDepreciated(true); - depexp1.setDateAcct(rs.getTimestamp("DateAcct")); - depexp1.saveEx(); - - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp2.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp2.setA_Account_Number(rs2.getInt("A_AccumDepreciation_Acct")); - depexp2.setPostingType(rs.getString("PostingType")); - depexp2.setExpense(v_Dep_Exp_Adjustment.setScale(2, BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal(-1 * rs2.getFloat("A_Split_Percent")))); - depexp2.setDescription("Depreciation Expense Adj."); - depexp2.setA_Period(rs.getInt("C_Period_ID")); - depexp2.setIsDepreciated(false); - depexp2.setDateAcct(rs.getTimestamp("DateAcct")); - depexp2.setA_Entry_Type("DEP"); - depexp2.saveEx(); - - v_total_adjustment = v_total_adjustment.setScale(5, BigDecimal.ROUND_HALF_UP).subtract(v_Dep_Exp_Adjustment.setScale(5, BigDecimal.ROUND_HALF_UP)); - } - v_current = v_current+1; - //v_Dep_Exp_Inception = (rs.getBigDecimal("A_ACCUMULATED_DEPR")); - //BigDecimal v_period_adj = new BigDecimal(rs2.getInt("A_PERIOD_END")); - int lastdepexp2=0; - - - //Calculation depreciation expense - v_Dep_Exp_Monthly = Depreciation.Dep_Type(depreciation.getDepreciationType(),rs2.getInt("A_Asset_ID"),v_current-1, rs2.getString("PostingType"), rs2.getInt("A_ASSET_ACCT_ID"), v_Dep_Exp_Inception); - //cs = DB.prepareCall("{ ? = call " + depreciation.getDepreciationType() + "(" + rs2.getInt("A_Asset_ID") +", "+ (v_current-1) +" ,'" + rs2.getString("PostingType") + "'," + rs2.getInt("A_ASSET_ACCT_ID") + " , " + (v_Dep_Exp_Inception) + ")}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_Dep_Exp_Monthly = cs.getBigDecimal(1); - //cs.close(); - //log.info("This is v_Dep_Exp_Monthly "+v_Dep_Exp_Monthly); - //Adjust for half year convention - v_HalfYearConv_Adj = new BigDecimal(Conventions.Dep_Convention(depreciation_conv.getConventionType(),rs2.getInt("A_Asset_ID"), rs2.getString("PostingType"), rs2.getInt("A_ASSET_ACCT_ID"), 0, 1 )); - //cs = DB.prepareCall("{ ? = call " + depreciation_conv.getConventionType() + "(" + rs2.getInt("A_Asset_ID") +",'" + rs2.getString("PostingType") + "'," + rs2.getInt("A_ASSET_ACCT_ID") + " , 0, 1)}"); - //cs.registerOutParameter(1, java.sql.Types.DECIMAL); - //cs.execute(); - //v_HalfYearConv_Adj = cs.getBigDecimal(1); - //cs.close(); - //log.info("This is v_HalfYearConv_Adj "+v_HalfYearConv_Adj); - v_Dep_Exp_Monthly = v_Dep_Exp_Monthly.multiply((v_HalfYearConv_Adj)); - //log.info("This is v_Dep_Exp_Monthly "+v_Dep_Exp_Monthly); - v_HalfYearConv = v_HalfYearConv.add( v_HalfYearConv_Adj); - - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, null); - if (v_total_adjustment.setScale(2, BigDecimal.ROUND_HALF_UP).compareTo(new BigDecimal (0.00))!=0) - { - - //Record necessary adjustments - //X_A_Depreciation_Exp depexp1 = new X_A_Depreciation_Exp (getCtx(), 0, null); - //depexp1.setA_Entry_Type("FOR"); - //depexp1.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - //depexp1.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - //depexp1.setPostingType(rs.getString("PostingType")); - //depexp1.setExpense(v_Dep_Exp_Adjustment.setScale(5, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - //depexp1.setDescription("Forecasted Depreciation Expense Adj."); - //depexp1.setA_Period((int)v_current); - //depexp1.setIsDepreciated(true); - //depexp1.setDateAcct(ts); - //depexp1.saveEx(); - - - v_total_adjustment = v_total_adjustment.setScale(5, BigDecimal.ROUND_HALF_UP).subtract(v_Dep_Exp_Adjustment.setScale(5, BigDecimal.ROUND_HALF_UP)); - - //Record adjusted expense - depexp2.setPostingType(DepBuild.getPostingType()); - depexp2.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp2.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - depexp2.setPostingType(rs.getString("PostingType")); - depexp2.setExpense((v_Dep_Exp_Monthly.setScale(2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - depexp2.setDescription("Depreciation Expense"); - depexp2.setA_Period(rs.getInt("C_Period_ID")); - depexp2.setIsDepreciated(true); - depexp2.setDateAcct(rs.getTimestamp("DateAcct")); - depexp2.setA_Entry_Type("DEP"); - depexp2.saveEx(); - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp3.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp3.setA_Account_Number(rs2.getInt("A_AccumDepreciation_Acct")); - depexp3.setPostingType(rs.getString("PostingType")); - depexp3.setExpense(v_Dep_Exp_Monthly.setScale(2, BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal(-1 * rs2.getFloat("A_Split_Percent")))); - depexp3.setDescription("Depreciation Expense"); - depexp3.setA_Period(rs.getInt("C_Period_ID")); - depexp3.setIsDepreciated(false); - depexp3.setDateAcct(rs.getTimestamp("DateAcct")); - depexp3.setA_Entry_Type("DEP"); - depexp3.saveEx(); - - v_Dep_Exp_Inception = v_Dep_Exp_Inception.add((v_Dep_Exp_Monthly.setScale(2, BigDecimal.ROUND_HALF_UP))).setScale(2, BigDecimal.ROUND_HALF_UP); - } - else - { - //Record expense - depexp2.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp2.setA_Account_Number(rs2.getInt("A_Depreciation_Acct")); - depexp2.setPostingType(rs.getString("PostingType")); - depexp2.setExpense(v_Dep_Exp_Monthly.setScale(2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(rs2.getFloat("A_Split_Percent")))); - depexp2.setDescription("Depreciation Expense"); - depexp2.setA_Period(rs.getInt("C_Period_ID")); - depexp2.setIsDepreciated(true); - depexp2.setDateAcct(rs.getTimestamp("DateAcct")); - depexp2.setA_Entry_Type("DEP"); - depexp2.saveEx(); - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, null); - depexp3.setA_Asset_ID(rs.getInt("A_ASSET_ID")); - depexp3.setA_Account_Number(rs2.getInt("A_AccumDepreciation_Acct")); - depexp3.setPostingType(rs.getString("PostingType")); - depexp3.setExpense(v_Dep_Exp_Monthly.setScale(2, BigDecimal.ROUND_HALF_UP).multiply( new BigDecimal(-1 * rs2.getFloat("A_Split_Percent")))); - depexp3.setDescription("Depreciation Expense"); - depexp3.setA_Period(rs.getInt("C_Period_ID")); - depexp3.setIsDepreciated(false); - depexp3.setDateAcct(rs.getTimestamp("DateAcct")); - depexp3.setA_Entry_Type("DEP"); - depexp3.saveEx(); - - - v_Dep_Exp_Inception = v_Dep_Exp_Inception.add(v_Dep_Exp_Monthly).setScale(2, BigDecimal.ROUND_HALF_UP); - - } - lastdepexp2 = depexp2.get_ID(); - - //Advance calender - cal.add(Calendar.MONTH, 1); - cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); - ts.setTime(cal.getTimeInMillis()); - v_current_adj = v_current_adj.add((v_HalfYearConv_Adj)).setScale(2, BigDecimal.ROUND_HALF_UP); - - //record in workfile - assetwk.setA_Period_Forecast(v_current_adj); - assetwk.setDateAcct(ts); - assetwk.setA_Current_Period((int)v_current); - assetwk.saveEx(); - - asset_id_current = rs2.getInt("A_ASSET_ID"); - log.info(""+asset_id_current); - } - } - catch (Exception e) - { - log.info("getAssets"+ e); - } - finally - { - DB.close(rs, pstmt); - rs2 = null; pstmt2 = null; - } - } - - } - catch (Exception e) - { - log.info("getAssets"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - - return ""; - } // doIt - -} // InvoiceCreateInOut diff --git a/org.adempiere.base/src/org/compiere/FA/CalloutFA.java b/org.adempiere.base/src/org/compiere/FA/CalloutFA.java deleted file mode 100644 index a06a070350..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/CalloutFA.java +++ /dev/null @@ -1,145 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.Properties; - -import org.compiere.model.CalloutEngine; -import org.compiere.model.GridField; -import org.compiere.model.GridTab; -import org.compiere.util.DB; -import org.compiere.util.Env; - -/** - * FA Callout. - * - * @author Rob Klein - * @version $Id: CalloutFA.java,v 1.0 $ - */ -public class CalloutFA extends CalloutEngine -{ - - /** - * Table_Period. Used to set the Manual Period Field. This allows - * the Spread Field to be displayed when there is a code that - * has been setup as Yearly. - * The string in the Callout field is: - * com.compiere.custom.CalloutEngine.Table_Period - * - * @param ctx Context - * @param WindowNo current Window No - * @param mTab Model Tab - * @param mField Model Field - * @param value The new value - * @param oldValue The old value - * @return error message or "" if OK - */ - public String Table_Period (Properties ctx, int WindowNo, - GridTab mTab, GridField mField, Object value, Object oldValue) - { - Integer A_Depreciation_Table_Header_ID = (Integer)value; - - try - { - if (A_Depreciation_Table_Header_ID != null){ - String SQL = "SELECT A_Term " - + "FROM A_Depreciation_Table_Header " - + "WHERE A_Depreciation_Table_Header_ID='" - +A_Depreciation_Table_Header_ID - +"'"; - - PreparedStatement pstmt = DB.prepareStatement(SQL,null); - ResultSet rs = pstmt.executeQuery(); - if (rs.next()) - { -// Charges - Set Context - Env.setContext(ctx, WindowNo, "A_DEPRECIATION_MANUAL_PERIOD", rs.getString("A_Term")); - mTab.setValue ("A_DEPRECIATION_MANUAL_PERIOD", rs.getString("A_Term")); - - } - rs.close(); - pstmt.close(); - } - } - catch (SQLException e) - { - log.info("PeriodType "+ e); - return e.getLocalizedMessage(); - } - return ""; - } // Period Type - - /** - * Field_Clear. Used to set the Manual Period Field. This allows - * the Spread Field to be displayed when there is a code that - * has been setup as Yearly. - * The string in the Callout field is: - * com.compiere.custom.CalloutEngine.Table_Period - * - * @param ctx Context - * @param WindowNo current Window No - * @param mTab Model Tab - * @param mField Model Field - * @param value The new value - * @param oldValue The old value - * @return error message or "" if OK - */ - public String Field_Clear (Properties ctx, int WindowNo, - GridTab mTab, GridField mField, Object value, Object oldValue) - { - Object A_Depreciation_ID = value; - - try - { - String SQL = "SELECT DepreciationType " - + "FROM A_Depreciation " - + "WHERE A_Depreciation_ID=" - + A_Depreciation_ID; - - PreparedStatement pstmt = DB.prepareStatement(SQL,null); - ResultSet rs = pstmt.executeQuery(); - if (rs.next()) - { -// Charges - Set Context - if ( (!rs.getString("DepreciationType").equals("TAB")) || (!rs.getString("DepreciationType").equals("MAN")) ) - { - Env.setContext(ctx, WindowNo, "A_DEPRECIATION_MANUAL_PERIOD", ""); - //mTab.setValue ("A_Depreciation_Manual_Period", null); - mTab.setValue ("A_Depreciation_Manual_Amount", null); - mTab.setValue ("A_Depreciation_Table_Header_ID", null); - } - if (rs.getString("DepreciationType").equals("TAB")) - { - mTab.setValue ("A_Depreciation_Manual_Amount", null); - } - if (rs.getString("DepreciationType").equals("MAN")) - { - mTab.setValue ("A_Depreciation_Table_Header_ID", null); - } - } - rs.close(); - pstmt.close(); - } - catch (SQLException e) - { - log.info("PeriodType "+ e); - return e.getLocalizedMessage(); - } - return ""; - } // Period Type - -} // CalloutFA diff --git a/org.adempiere.base/src/org/compiere/FA/Conventions.java b/org.adempiere.base/src/org/compiere/FA/Conventions.java deleted file mode 100644 index 410ce56f7c..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/Conventions.java +++ /dev/null @@ -1,407 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert Klein. robeklein@hotmail.com - * _____________________________________________ - *****************************************************************************/ -package org.compiere.FA; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.Calendar; -import java.util.GregorianCalendar; - -import org.compiere.util.DB; - -/** - * Fixed Asset Conventions - * - * @author Rob Klein - * @version $Id: Conventions.java,v 1.0 $ - * - */ -public class Conventions { - - /** - * - * - */ - static public double Dep_Convention(String Type,int p_A_ASSET_ID, String p_POSTINGTYPE, int p_A_ASSET_ACCT_ID, int p_Flag, double p_Period) - { - - if(Type.compareTo("FMCON")==0) - return FMCON(p_A_ASSET_ID, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Flag, p_Period); - else if(Type.compareTo("FYCON")==0) - return FYCON(p_A_ASSET_ID, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Flag, p_Period); - else if(Type.compareTo("DYCON")==0) - return DYCON(p_A_ASSET_ID, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Flag, p_Period); - else if(Type.compareTo("MMCON")==0) - return MMCON(p_A_ASSET_ID, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Flag, p_Period); - else if(Type.compareTo("MQCON")==0) - return MQCON(p_A_ASSET_ID, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Flag, p_Period); - else if(Type.compareTo("HYCON")==0) - return HYCON(p_A_ASSET_ID, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Flag, p_Period); - else - return 0.0; - - } - - - /** - * - * - */ - static public double FMCON(int p_A_ASSET_ID, String p_POSTINGTYPE, int p_A_ASSET_ACCT_ID, int p_Flag, double p_Period) - { - return 1.0; - - } - - static public double HYCON(int p_A_ASSET_ID, String p_POSTINGTYPE, int p_A_ASSET_ACCT_ID, int p_Flag, double p_Period) - { - int v_adj=0; - StringBuffer sqlB = new StringBuffer ("SELECT A_ASSET.ASSETSERVICEDATE, A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED," - + " A_DEPRECIATION_WORKFILE.A_ASSET_LIFE_YEARS, A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD," - + " A_DEPRECIATION_WORKFILE.DATEACCT" - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET" - + " WHERE A_ASSET.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + p_POSTINGTYPE+"'"); - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctYear = calendar.get(Calendar.YEAR); - - - int v_Months_of_Half_Year = (12-(AssetServiceDateMonth)+1); - - //ADJUST PERIOD FOR MID-MONTH CONVENTION - if(DateAcctYear == AssetServiceDateYear) - v_adj = 6/v_Months_of_Half_Year; - else - v_adj = 1; - - if(p_Flag == 2){ - //ADJUST COST CORRECTIONS FOR HALF-YEAR CONVENTION - if (p_Period == AssetServiceDateYear) - v_adj = 6/v_Months_of_Half_Year; - else - v_adj = 1; - } - } - } - catch (Exception e) - { - System.out.println("HYCON"+e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return v_adj; - - } - - static public double FYCON(int p_A_ASSET_ID, String p_POSTINGTYPE, int p_A_ASSET_ACCT_ID, int p_Flag, double p_Period) - { - int v_adj=0; - StringBuffer sqlB = new StringBuffer ("SELECT A_ASSET.ASSETSERVICEDATE," - + " A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED," - + " A_DEPRECIATION_WORKFILE.A_ASSET_LIFE_YEARS, A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD," - + " A_DEPRECIATION_WORKFILE.DATEACCT" - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET" - + " WHERE A_ASSET.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + p_POSTINGTYPE+"'"); - - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()){ - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctYear = calendar.get(Calendar.YEAR); - - int v_Months_of_Full_Year = 12 - AssetServiceDateMonth; - if(p_Flag < 2){ - //ADJUST PERIOD FOR FULL-YEAR CONVENTION - if(DateAcctYear == AssetServiceDateYear) - v_adj = 12/v_Months_of_Full_Year; - else - v_adj = 1; - } - if(p_Flag == 2){ - //ADJUST COST CORRECTIONS FOR FULL-YEAR CONVENTION - v_adj = 12/v_Months_of_Full_Year; - } - - - } - - } - catch (Exception e) - { - System.out.println("FYCON"+e); - } - finally - { - try - { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e) - {} - pstmt = null; - } - - return v_adj; - - } - - static public double DYCON(int p_A_ASSET_ID, String p_POSTINGTYPE, int p_A_ASSET_ACCT_ID, int p_Flag, double p_Period) - { - int v_adj=0; - StringBuffer sqlB = new StringBuffer ("SELECT A_ASSET.ASSETSERVICEDATE," - + " A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED," - + " A_DEPRECIATION_WORKFILE.A_ASSET_LIFE_YEARS, A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD," - + " A_DEPRECIATION_WORKFILE.DATEACCT" - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET" - + " WHERE A_ASSET.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + p_POSTINGTYPE+"'"); - - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()){ - - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - int AssetServiceDateDay = calendar.get(Calendar.DAY_OF_YEAR); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctYear = calendar.get(Calendar.YEAR); - int DateAcctMonth = calendar.get(Calendar.MONTH); - - if(p_Flag ==0){ - - //ADJUST PERIOD FOR DAY CONVENTION - if(DateAcctYear == AssetServiceDateYear){ - return ((365-(double)AssetServiceDateDay)/365); - } - else if ((DateAcctYear*12 + DateAcctMonth) == (AssetServiceDateYear+rs.getInt("A_ASSET_LIFE_YEARS"))*12 + AssetServiceDateMonth) - return ((double)AssetServiceDateDay/365); - else if ((DateAcctYear*12 + DateAcctMonth) > (AssetServiceDateYear+rs.getInt("A_ASSET_LIFE_YEARS"))*12 + AssetServiceDateMonth) - return ((double)AssetServiceDateDay/365); - else - return 1; - } - - if(p_Flag ==1){ - //ADJUST PERIOD FOR DAY CONVENTION - if(DateAcctYear == AssetServiceDateYear){ - return ((365-(double)AssetServiceDateDay)/365); - } - if(DateAcctYear == (AssetServiceDateYear+rs.getInt("A_ASSET_LIFE_YEARS")+1)) - return ((double)AssetServiceDateDay/365); - else - return 1; - } - - if(p_Flag == 2){ - //ADJUST PERIOD FOR DAY CONVENTION - return ((365-(double)AssetServiceDateDay)/365); - } - } - } - catch (Exception e) - { - System.out.println("DYCON"+e); - } - finally - { - try - { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e) - {} - pstmt = null; - } - - return v_adj; - - } - static public double MMCON(int p_A_ASSET_ID, String p_POSTINGTYPE, int p_A_ASSET_ACCT_ID, int p_Flag, double p_Period) - { - int v_adj=0; - StringBuffer sqlB = new StringBuffer ("SELECT A_ASSET.ASSETSERVICEDATE," - + " A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED," - + " A_DEPRECIATION_WORKFILE.A_ASSET_LIFE_YEARS, A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD," - + " A_DEPRECIATION_WORKFILE.DATEACCT" - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET" - + " WHERE A_ASSET.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + p_POSTINGTYPE+"'"); - - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()){ - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctMonth = calendar.get(Calendar.MONTH); - if(p_Flag ==0){ - if(DateAcctMonth - AssetServiceDateMonth >1) - return 1; - else - return .5; - } - if(p_Flag ==1){ - if(p_Period == 0) - return .5; - else - return 1; - } - if(p_Flag == 2){ - if (p_Period - AssetServiceDateMonth >1) - return 1; - else - return .5; - } - } - } - catch (Exception e) - { - System.out.println("MMCON"+e); - } - finally - { - try - { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e) - {} - pstmt = null; - } - return v_adj; - } - - static public double MQCON(int p_A_ASSET_ID, String p_POSTINGTYPE, int p_A_ASSET_ACCT_ID, int p_Flag, double p_Period) - { - int v_adj=0; - StringBuffer sqlB = new StringBuffer ("SELECT A_ASSET.ASSETSERVICEDATE," - + " A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED," - + " A_DEPRECIATION_WORKFILE.A_ASSET_LIFE_YEARS, A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD," - + " A_DEPRECIATION_WORKFILE.DATEACCT" - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET" - + " WHERE A_ASSET.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + p_POSTINGTYPE+"'"); - - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()){ - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctYear = calendar.get(Calendar.YEAR); - int DateAcctMonth = calendar.get(Calendar.MONTH); - if(p_Flag <2){ - - //ADJUST PERIOD FOR MID-QUARTER CONVENTION - if(DateAcctYear == AssetServiceDateYear){ - if(AssetServiceDateMonth < 4 ) - return .875; - else if (AssetServiceDateMonth < 7 ) - return .625; - else if (AssetServiceDateMonth < 10 ) - return .375; - else if (AssetServiceDateMonth > 9 ) - return .125; - } - else if(DateAcctYear*12 + DateAcctMonth >= ((AssetServiceDateYear+rs.getInt("A_ASSET_LIFE_YEARS"))*12 + AssetServiceDateMonth)){ - if(AssetServiceDateMonth < 4 ) - return .125; - else if (AssetServiceDateMonth < 7 ) - return .375; - else if (AssetServiceDateMonth < 10 ) - return .625; - else if (AssetServiceDateMonth > 9 ) - return .875; - } - else - return 1; - } - - if(p_Flag == 2){ - if(AssetServiceDateMonth< 4 ) - return .875; - else if (AssetServiceDateMonth < 7 ) - return .625; - else if (AssetServiceDateMonth < 10 ) - return .375; - else if (AssetServiceDateMonth > 9 ) - return .125; - } - } - } - catch (Exception e) - { - System.out.println("MQCON"+e); - } - finally - { - try - { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e) - {} - pstmt = null; - } - return v_adj; - } - - - }// Conventions - diff --git a/org.adempiere.base/src/org/compiere/FA/CreateGLAsset.java b/org.adempiere.base/src/org/compiere/FA/CreateGLAsset.java deleted file mode 100644 index 30891abfcf..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/CreateGLAsset.java +++ /dev/null @@ -1,383 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; - -import org.compiere.model.MAssetAcct; -import org.compiere.model.MAssetChange; -import org.compiere.model.MRefList; -import org.compiere.model.X_A_Asset; -import org.compiere.model.X_A_Asset_Addition; -import org.compiere.model.X_A_Asset_Group_Acct; -import org.compiere.model.X_A_Depreciation_Workfile; -import org.compiere.model.X_GL_JournalLine; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - -/** - * Create Asset from FA GL Process - * - * @author Rob Klein - * @version $Id: CreateGLAsset.java,v 1.0 $ - */ -public class CreateGLAsset extends SvrProcess -{ - - private int p_client = 0; - //private int p_org = 0; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("AD_Client_ID")) - p_client = para[i].getParameterAsInt(); - else - log.info("prepare - Unknown Parameter: " + name); - } - } // prepare - - - /** - * Process Invoices - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("Starting inbound invoice process"); -// int uselifemonths = 0; -// int uselifeyears = 0; - - String sql =" SELECT * FROM GL_JOURNALLINE WHERE A_Processed <> 'Y' and AD_Client_ID = ?" - + " and A_CreateAsset = 'Y' and Processed = 'Y'"; - log.info(sql); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql,get_TrxName()); - ResultSet rs = null; - try { - pstmt.setInt(1, p_client); - rs = pstmt.executeQuery(); - - while (rs.next()){ - - X_A_Asset asset = new X_A_Asset (getCtx(), rs.getInt("A_Asset_ID"), get_TrxName()); - X_GL_JournalLine JVLine = new X_GL_JournalLine (getCtx(), rs.getInt("GL_JournalLine_ID"), get_TrxName()); - String sql2 ="SELECT C.AccountType FROM GL_JournalLine A, C_ValidCombination B, C_ElementValue C WHERE A.GL_JournalLine_ID = ?" + - " and A.C_ValidCombination_ID = B.C_ValidCombination_ID and B.Account_ID = C.C_ElementValue_ID"; - String acctType = DB.getSQLValueString(get_TrxName(),sql2, JVLine.getGL_JournalLine_ID()); - if (acctType.equals("A")){ - sql ="SELECT * FROM A_Asset_Group_Acct WHERE A_Asset_Group_ID = ? AND IsActive='Y'"; - log.info("yes"); - pstmt = null; - pstmt = DB.prepareStatement(sql,get_TrxName()); - if(asset.getA_Asset_ID()==0) { - int groupId = JVLine.getA_Asset_Group_ID(); - pstmt.setInt(1, groupId); - } else - pstmt.setInt(1, asset.getA_Asset_Group_ID()); - ResultSet rs2 = pstmt.executeQuery(); - - while (rs2.next()){ - - X_A_Asset_Group_Acct assetgrpacct = new X_A_Asset_Group_Acct (getCtx(), rs2,get_TrxName()); - MAssetAcct assetacct = new MAssetAcct (getCtx(), 0, get_TrxName()); - if (assetgrpacct.isProcessing()== true){ - sql2 = "SELECT COUNT(*) FROM A_Depreciation_Workfile WHERE A_Asset_ID=? and" - + " PostingType = '"+assetgrpacct.getPostingType()+"'"; - if (DB.getSQLValue(get_TrxName(),sql2, asset.getA_Asset_ID())== 0) - { - asset.setIsOwned(true); - asset.setIsDepreciated(assetgrpacct.isProcessing()); - asset.setA_Asset_CreateDate(JVLine.getDateAcct()); - asset.setIsInPosession(true); - if(JVLine.getDescription()!= null) - asset.setName(JVLine.getDescription()); - else - asset.setName("Asset created from JV"); - asset.setHelp("Created from JV #" + JVLine.getGL_Journal_ID() + " on line #" + JVLine.getLine()); - asset.setDescription(JVLine.getDescription()); - asset.setUseLifeMonths(assetgrpacct.getUseLifeMonths()); - asset.setUseLifeYears(assetgrpacct.getUseLifeYears()); - asset.setA_Asset_Group_ID(assetgrpacct.getA_Asset_Group_ID()); - asset.setA_QTY_Current(JVLine.getQty()); - asset.setA_QTY_Original(JVLine.getQty()); - asset.saveEx(); - asset.setA_Parent_Asset_ID(asset.getA_Asset_ID()); - asset.saveEx(); - - boolean isdepreciate = assetgrpacct.isProcessing(); - - if (isdepreciate == true) - { - assetacct.setPostingType(assetgrpacct.getPostingType()); - assetacct.setA_Split_Percent(assetgrpacct.getA_Split_Percent()); - assetacct.setA_Depreciation_Conv_ID(assetgrpacct.getConventionType()); - assetacct.setA_Asset_ID(asset.getA_Asset_ID()); - assetacct.setA_Depreciation_ID(assetgrpacct.getDepreciationType()); - assetacct.setA_Asset_Spread_ID(assetgrpacct.getA_Asset_Spread_Type()); - assetacct.setA_Period_Start(1); - - if (asset.getUseLifeMonths() == 0 & asset.getUseLifeYears() == 0){ - assetacct.setA_Period_End(assetgrpacct.getUseLifeMonths()); - asset.setUseLifeYears(assetgrpacct.getUseLifeYears()); - asset.setUseLifeMonths(assetgrpacct.getUseLifeMonths()); - asset.setIsDepreciated(true); - asset.setIsOwned(true); - asset.saveEx(); -// uselifemonths = assetgrpacct.getUseLifeMonths(); -// uselifeyears = assetgrpacct.getUseLifeYears(); - - } - else if(asset.getUseLifeMonths() == 0){ - assetacct.setA_Period_End(asset.getUseLifeYears()*12); - asset.setUseLifeMonths(asset.getUseLifeYears()*12); - asset.setIsDepreciated(true); - asset.setIsOwned(true); - asset.saveEx(); -// uselifemonths = asset.getUseLifeYears()*12; -// uselifeyears = asset.getUseLifeYears(); - } - else{ - assetacct.setA_Period_End(asset.getUseLifeMonths()); -// uselifemonths = asset.getUseLifeMonths(); -// uselifeyears = asset.getUseLifeYears(); - } - - assetacct.setA_Depreciation_Method_ID(assetgrpacct.getA_Depreciation_Calc_Type()); - assetacct.setA_Asset_Acct(assetgrpacct.getA_Asset_Acct()); - assetacct.setC_AcctSchema_ID(assetgrpacct.getC_AcctSchema_ID()); - assetacct.setA_Salvage_Value(new BigDecimal (0.0)); - assetacct.setA_Accumdepreciation_Acct(assetgrpacct.getA_Accumdepreciation_Acct()); - assetacct.setA_Depreciation_Acct(assetgrpacct.getA_Depreciation_Acct()); - assetacct.setA_Disposal_Revenue(assetgrpacct.getA_Disposal_Revenue()); - assetacct.setA_Disposal_Loss(assetgrpacct.getA_Disposal_Loss()); - assetacct.setA_Reval_Accumdep_Offset_Cur(assetgrpacct.getA_Reval_Accumdep_Offset_Cur()); - assetacct.setA_Reval_Accumdep_Offset_Prior(assetgrpacct.getA_Reval_Accumdep_Offset_Prior()); - assetacct.setA_Reval_Cal_Method(assetgrpacct.getA_Reval_Cal_Method()); - assetacct.setA_Reval_Cost_Offset(assetgrpacct.getA_Reval_Cost_Offset()); - assetacct.setA_Reval_Cost_Offset_Prior(assetgrpacct.getA_Reval_Cost_Offset_Prior()); - assetacct.setA_Reval_Depexp_Offset(assetgrpacct.getA_Reval_Depexp_Offset()); - assetacct.setA_Depreciation_Manual_Amount(assetgrpacct.getA_Depreciation_Manual_Amount()); - assetacct.setA_Depreciation_Manual_Period(assetgrpacct.getA_Depreciation_Manual_Period()); - assetacct.setA_Depreciation_Table_Header_ID(assetgrpacct.getA_Depreciation_Table_Header_ID()); - assetacct.setA_Depreciation_Variable_Perc(assetgrpacct.getA_Depreciation_Variable_Perc()); - assetacct.setProcessing(false); - assetacct.saveEx(); - - MAssetChange change = new MAssetChange (getCtx(), 0, get_TrxName()); - change.setPostingType(assetacct.getPostingType()); - change.setA_Split_Percent(assetacct.getA_Split_Percent()); - change.setConventionType(assetacct.getA_Depreciation_Conv_ID()); - change.setA_Asset_ID(asset.getA_Asset_ID()); - change.setDepreciationType(assetacct.getA_Depreciation_ID()); - change.setA_Asset_Spread_Type(assetacct.getA_Asset_Spread_ID()); - change.setA_Period_Start(assetacct.getA_Period_Start()); - change.setA_Period_End(assetacct.getA_Period_End()); - change.setIsInPosession(asset.isOwned()); - change.setIsDisposed(asset.isDisposed()); - change.setIsDepreciated(asset.isDepreciated()); - change.setIsFullyDepreciated(asset.isFullyDepreciated()); - change.setA_Depreciation_Calc_Type(assetacct.getA_Depreciation_Method_ID()); - change.setA_Asset_Acct(assetacct.getA_Asset_Acct()); - change.setC_AcctSchema_ID(assetacct.getC_AcctSchema_ID()); - change.setA_Accumdepreciation_Acct(assetacct.getA_Accumdepreciation_Acct()); - change.setA_Depreciation_Acct(assetacct.getA_Depreciation_Acct()); - change.setA_Disposal_Revenue(assetacct.getA_Disposal_Revenue()); - change.setA_Disposal_Loss(assetacct.getA_Disposal_Loss()); - change.setA_Reval_Accumdep_Offset_Cur(assetacct.getA_Reval_Accumdep_Offset_Cur()); - change.setA_Reval_Accumdep_Offset_Prior(assetacct.getA_Reval_Accumdep_Offset_Prior()); - change.setA_Reval_Cal_Method(assetacct.getA_Reval_Cal_Method()); - change.setA_Reval_Cost_Offset(assetacct.getA_Reval_Cost_Offset()); - change.setA_Reval_Cost_Offset_Prior(assetacct.getA_Reval_Cost_Offset_Prior()); - change.setA_Reval_Depexp_Offset(assetacct.getA_Reval_Depexp_Offset()); - change.setA_Depreciation_Manual_Amount(assetacct.getA_Depreciation_Manual_Amount()); - change.setA_Depreciation_Manual_Period(assetacct.getA_Depreciation_Manual_Period()); - change.setA_Depreciation_Table_Header_ID(assetacct.getA_Depreciation_Table_Header_ID()); - change.setA_Depreciation_Variable_Perc(assetacct.getA_Depreciation_Variable_Perc()); - change.setA_Parent_Asset_ID(asset.getA_Parent_Asset_ID()); - change.setChangeType("CRT"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "CRT")); - change.setIsInPosession(asset.isOwned()); - change.setIsDisposed(asset.isDisposed()); - change.setIsDepreciated(asset.isDepreciated()); - change.setIsFullyDepreciated(asset.isFullyDepreciated()); - change.setLot(asset.getLot()); - change.setSerNo(asset.getSerNo()); - change.setVersionNo(asset.getVersionNo()); - change.setUseLifeMonths(asset.getUseLifeMonths()); - change.setUseLifeYears(asset.getUseLifeYears()); - change.setLifeUseUnits(asset.getLifeUseUnits()); - change.setAssetDisposalDate(asset.getAssetDisposalDate()); - change.setAssetServiceDate(asset.getAssetServiceDate()); - change.setC_BPartner_Location_ID(asset.getC_BPartner_Location_ID()); - change.setC_BPartner_ID(asset.getC_BPartner_ID()); - change.setAssetValueAmt(JVLine.getAmtAcctDr().subtract(JVLine.getAmtAcctCr())); - change.setA_Asset_CreateDate(asset.getA_Asset_CreateDate()); - change.setAD_User_ID(asset.getAD_User_ID()); - change.setC_Location_ID(asset.getC_Location_ID()); - change.saveEx(); - } - - - - X_A_Depreciation_Workfile assetwk = new X_A_Depreciation_Workfile (getCtx(), 0, get_TrxName()); - assetwk.setA_Asset_ID(asset.getA_Asset_ID()); - assetwk.setA_Life_Period(assetgrpacct.getUseLifeMonths()); - assetwk.setA_Asset_Life_Years(assetgrpacct.getUseLifeYears()); - assetwk.setA_Asset_Cost(assetwk.getA_Asset_Cost().add(JVLine.getAmtAcctDr().subtract(JVLine.getAmtAcctCr()))); - assetwk.setA_Accumulated_Depr(new BigDecimal (0.0)); - assetwk.setA_Salvage_Value(new BigDecimal (0.0)); - assetwk.setA_Period_Posted(0); - assetwk.setA_Asset_Life_Current_Year(new BigDecimal (0.0)); - assetwk.setA_Curr_Dep_Exp(new BigDecimal (0.0)); - assetwk.setA_QTY_Current(JVLine.getQty()); - assetwk.setIsDepreciated(assetgrpacct.isProcessing()); - assetwk.setPostingType(assetgrpacct.getPostingType()); - assetwk.saveEx(); - - X_A_Asset_Addition assetadd = new X_A_Asset_Addition (getCtx(), 0, get_TrxName()); - assetadd.setA_Asset_ID(asset.getA_Asset_ID()); - assetadd.setAssetValueAmt(JVLine.getAmtAcctDr().subtract(JVLine.getAmtAcctCr())); - assetadd.setA_SourceType("JRN"); - assetadd.setA_CapvsExp("Cap"); - assetadd.setA_QTY_Current(JVLine.getQty()); - assetadd.setDocumentNo(""+JVLine.getGL_Journal_ID()); - assetadd.setGL_JournalBatch_ID(JVLine.getGL_Journal_ID()); - assetadd.setLine(JVLine.getLine()); - assetadd.setDescription(JVLine.getDescription()); - assetadd.setPostingType(assetwk.getPostingType()); - assetadd.saveEx(); - - } - else - { - sql2 ="SELECT * FROM A_Depreciation_Workfile WHERE A_Asset_ID = ? and PostingType = ?"; - PreparedStatement pstmt2 = null; - pstmt2 = DB.prepareStatement(sql2,get_TrxName()); - ResultSet rs3 = null; - log.info("no"); - try { - pstmt2.setInt(1, asset.getA_Asset_ID()); - pstmt2.setString(2, assetgrpacct.getPostingType()); - rs3 = pstmt2.executeQuery(); - while (rs3.next()){ - X_A_Depreciation_Workfile assetwk = new X_A_Depreciation_Workfile (getCtx(), rs3, get_TrxName()); - assetwk.setA_Asset_ID(asset.getA_Asset_ID()); - assetwk.setA_Life_Period(assetgrpacct.getUseLifeMonths()); - assetwk.setA_Asset_Life_Years(assetgrpacct.getUseLifeYears()); - assetwk.setA_Asset_Cost(assetwk.getA_Asset_Cost().add(JVLine.getAmtAcctDr().subtract(JVLine.getAmtAcctCr()))); - assetwk.setA_QTY_Current(assetwk.getA_QTY_Current().add(JVLine.getQty())); - assetwk.setIsDepreciated(assetgrpacct.isProcessing()); - assetwk.saveEx(); - - X_A_Asset_Addition assetadd = new X_A_Asset_Addition (getCtx(), 0, get_TrxName()); - assetadd.setA_Asset_ID(asset.getA_Asset_ID()); - assetadd.setAssetValueAmt((JVLine.getAmtAcctDr().subtract(JVLine.getAmtAcctCr()))); - assetadd.setA_SourceType("JRN"); - assetadd.setA_CapvsExp("Cap"); - assetadd.setA_QTY_Current(JVLine.getQty()); - assetadd.setDocumentNo(""+JVLine.getGL_Journal_ID()); - assetadd.setGL_JournalBatch_ID(JVLine.getGL_Journal_ID()); - assetadd.setLine(JVLine.getLine()); - assetadd.setDescription(JVLine.getDescription()); - assetadd.setPostingType(assetwk.getPostingType()); - assetadd.saveEx(); - - - asset.setA_QTY_Original(assetadd.getA_QTY_Current().add(asset.getA_QTY_Original())); - asset.setA_QTY_Current(assetadd.getA_QTY_Current().add(asset.getA_QTY_Current())); - asset.saveEx(); - - MAssetChange change = new MAssetChange (getCtx(), 0, get_TrxName()); - change.setA_Asset_ID(asset.getA_Asset_ID()); - change.setChangeType("ADD"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "ADD")); - change.setPostingType(assetwk.getPostingType()); - change.setAssetValueAmt(assetadd.getAssetValueAmt()); - change.setA_QTY_Current(assetadd.getA_QTY_Current()); - change.saveEx(); - - } - } - catch (Exception e) - { - log.info("getAssets "+ e); - } - finally - { - DB.close(rs3, pstmt2); - rs3 = null; pstmt2 = null; - } - - } - } - } - } - else if (acctType.equals("E")) - { - X_A_Asset_Addition assetadd = new X_A_Asset_Addition (getCtx(), 0, get_TrxName()); - assetadd.setA_Asset_ID(asset.getA_Asset_ID()); - assetadd.setAssetValueAmt((JVLine.getAmtAcctDr().subtract(JVLine.getAmtAcctCr()))); - assetadd.setA_SourceType("JRN"); - assetadd.setA_CapvsExp("Exp"); - assetadd.setA_QTY_Current(JVLine.getQty()); - assetadd.setDocumentNo(""+JVLine.getGL_Journal_ID()); - assetadd.setGL_JournalBatch_ID(JVLine.getGL_Journal_ID()); - assetadd.setLine(JVLine.getLine()); - assetadd.setDescription(JVLine.getDescription()); - assetadd.setPostingType("A"); - assetadd.saveEx(); - - MAssetChange change = new MAssetChange (getCtx(), 0, get_TrxName()); - change.setA_Asset_ID(asset.getA_Asset_ID()); - change.setA_QTY_Current(assetadd.getA_QTY_Current()); - change.setChangeType("EXP"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "EXP")); - assetadd.setPostingType("A"); - change.setAssetValueAmt(assetadd.getAssetValueAmt()); - change.setA_QTY_Current(assetadd.getA_QTY_Current()); - change.saveEx(); - } - JVLine.set_ValueOfColumn(I_CustomColumn.A_Processed, Boolean.TRUE); - JVLine.saveEx(); - } - rs.close(); - pstmt.close(); - pstmt = null; - } - catch (Exception e) - { - log.info("getAssets "+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return ""; - } // doIt - -} // CreateGLAsset diff --git a/org.adempiere.base/src/org/compiere/FA/CreateInvoicedAsset.java b/org.adempiere.base/src/org/compiere/FA/CreateInvoicedAsset.java deleted file mode 100644 index ffde8c307c..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/CreateInvoicedAsset.java +++ /dev/null @@ -1,648 +0,0 @@ -/****************************************************************************** - * 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-2004 Jorg Janke, parts - * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved. - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.logging.Level; - -import org.compiere.model.MAssetAcct; -import org.compiere.model.MAssetChange; -import org.compiere.model.MRefList; -import org.compiere.model.X_A_Asset; -import org.compiere.model.X_A_Asset_Addition; -import org.compiere.model.X_A_Asset_Group_Acct; -import org.compiere.model.X_A_Depreciation_Exp; -import org.compiere.model.X_A_Depreciation_Workfile; -import org.compiere.model.X_C_BPartner; -import org.compiere.model.X_C_Invoice; -import org.compiere.model.X_C_InvoiceLine; -import org.compiere.model.X_M_Product; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - -/** - * Create Asset from Invoice Process - * - * @author Rob Klein - * - */ -public class CreateInvoicedAsset extends SvrProcess -{ - - private int p_client = 0; - //private int p_org = 0; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("AD_Client_ID")) - p_client = para[i].getParameterAsInt(); - else - log.info("prepare - Unknown Parameter: " + name); - } - } // prepare - - - /** - * Process Invoices - * @return info - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("Starting inbound invoice process"); - int uselifemonths = 0; - int uselifeyears = 0; - int C_Period_ID=0; - int invoiceAcct=0; - //Yvonne: add in recordInsertedCount - int recordInsertedCount = 0; - //Yvonne: changed A_Processed is null to A_Processed='N' - String sql =" SELECT * FROM C_InvoiceLine WHERE A_Processed='N' and AD_Client_ID = ?" - + " and A_CreateAsset = 'Y' and Processed = 'Y'"; - - log.info("sql"+sql+p_client); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement(sql,get_TrxName()); - ResultSet rs = null; - try { - pstmt.setInt(1, p_client); - rs = pstmt.executeQuery(); - int i=0; - - while (rs.next()){ - i=i+1; - log.info("here is the counter "+i); - X_A_Asset asset = new X_A_Asset (getCtx(), rs.getInt("A_Asset_ID"), get_TrxName()); - - X_C_Invoice Invoice = new X_C_Invoice (getCtx(), rs.getInt("C_Invoice_ID"), get_TrxName()); - X_C_InvoiceLine InvoiceLine = new X_C_InvoiceLine (getCtx(), rs, get_TrxName()); - X_M_Product product = new X_M_Product (getCtx(), InvoiceLine.getM_Product_ID(), get_TrxName()); - //X_M_Product_Category productcat = new X_M_Product_Category (getCtx(), product.getM_Product_Category_ID(), get_TrxName()); - - - //X_A_Asset_Addition assetadd = new X_A_Asset_Addition (getCtx(), 0); - X_C_BPartner business = new X_C_BPartner (getCtx(), Invoice.getC_BPartner_ID(), get_TrxName()); - - if (rs.getString("A_CapvsExp").equals("Cap")){ - String sqla ="SELECT * FROM A_Asset_Group_Acct WHERE A_Asset_Group_ID = ? AND IsActive='Y'"; - - PreparedStatement pstmt1 = null; - pstmt1 = DB.prepareStatement(sqla,get_TrxName()); - if(asset.getA_Asset_ID()==0) { - int groupId = InvoiceLine.getA_Asset_Group_ID(); - pstmt1.setInt(1, groupId); - } else - pstmt1.setInt(1, asset.getA_Asset_Group_ID()); - ResultSet rs2 = pstmt1.executeQuery(); - - while (rs2.next()){ - - X_A_Asset_Group_Acct assetgrpacct = new X_A_Asset_Group_Acct (getCtx(), rs2,get_TrxName()); - MAssetAcct assetacct = new MAssetAcct (getCtx(), 0, get_TrxName()); - if (assetgrpacct.isProcessing()== true){ - String sql2 = "SELECT COUNT(*) FROM A_Depreciation_Workfile WHERE A_Asset_ID=? and" - + " PostingType = '"+assetgrpacct.getPostingType()+"'"; - if (DB.getSQLValue(get_TrxName(),sql2, asset.getA_Asset_ID())== 0) - { - - asset.setIsOwned(true); - asset.setIsDepreciated(assetgrpacct.isProcessing()); - asset.setA_Asset_CreateDate(Invoice.getDateInvoiced()); - asset.setIsInPosession(true); - if (InvoiceLine.getM_Product_ID()>0) - asset.setName(product.getName()+"-"+business.getName()+"-"+Invoice.getDocumentNo()); - else - asset.setName(business.getName()+"-"+Invoice.getDocumentNo()); - asset.setHelp("Created from Invoice #" + rs.getInt("C_Invoice_ID") + " on line #" + InvoiceLine.getLine()); - asset.setDescription(InvoiceLine.getDescription()); - asset.setUseLifeMonths(assetgrpacct.getUseLifeMonths()); - asset.setUseLifeYears(assetgrpacct.getUseLifeYears()); - asset.setA_Asset_Group_ID(assetgrpacct.getA_Asset_Group_ID()); - asset.setA_QTY_Current(InvoiceLine.getQtyEntered()); - asset.setA_QTY_Original(InvoiceLine.getQtyEntered()); - asset.saveEx(); - asset.setA_Parent_Asset_ID(asset.getA_Asset_ID()); - asset.saveEx(); - - boolean isdepreciate = assetgrpacct.isProcessing(); - - if (isdepreciate == true) - { - assetacct.setPostingType(assetgrpacct.getPostingType()); - assetacct.setA_Split_Percent(assetgrpacct.getA_Split_Percent()); - assetacct.setA_Depreciation_Conv_ID(assetgrpacct.getConventionType()); - assetacct.setA_Asset_ID(asset.getA_Asset_ID()); - assetacct.setA_Depreciation_ID(assetgrpacct.getDepreciationType()); - assetacct.setA_Asset_Spread_ID(assetgrpacct.getA_Asset_Spread_Type()); - assetacct.setA_Period_Start(1); - - if (asset.getUseLifeMonths() == 0 & asset.getUseLifeYears() == 0){ - assetacct.setA_Period_End(assetgrpacct.getUseLifeMonths()); - asset.setUseLifeYears(assetgrpacct.getUseLifeYears()); - asset.setUseLifeMonths(assetgrpacct.getUseLifeMonths()); - asset.setIsDepreciated(true); - asset.setIsOwned(true); - asset.saveEx(); - uselifemonths = assetgrpacct.getUseLifeMonths(); - uselifeyears = assetgrpacct.getUseLifeYears(); - - } - else if(asset.getUseLifeMonths() == 0){ - assetacct.setA_Period_End(asset.getUseLifeYears()*12); - asset.setUseLifeMonths(asset.getUseLifeYears()*12); - asset.setIsDepreciated(true); - asset.setIsOwned(true); - asset.saveEx(); - uselifemonths = asset.getUseLifeYears()*12; - uselifeyears = asset.getUseLifeYears(); - } - else{ - assetacct.setA_Period_End(asset.getUseLifeMonths()); - uselifemonths = asset.getUseLifeMonths(); - uselifeyears = asset.getUseLifeYears();} - - assetacct.setA_Depreciation_Method_ID(assetgrpacct.getA_Depreciation_Calc_Type()); - assetacct.setA_Asset_Acct(assetgrpacct.getA_Asset_Acct()); - assetacct.setC_AcctSchema_ID(assetgrpacct.getC_AcctSchema_ID()); - assetacct.setA_Accumdepreciation_Acct(assetgrpacct.getA_Accumdepreciation_Acct()); - assetacct.setA_Depreciation_Acct(assetgrpacct.getA_Depreciation_Acct()); - assetacct.setA_Disposal_Revenue(assetgrpacct.getA_Disposal_Revenue()); - assetacct.setA_Disposal_Loss(assetgrpacct.getA_Disposal_Loss()); - assetacct.setA_Salvage_Value(new BigDecimal(0.0)); - assetacct.setA_Reval_Accumdep_Offset_Cur(assetgrpacct.getA_Reval_Accumdep_Offset_Cur()); - assetacct.setA_Reval_Accumdep_Offset_Prior(assetgrpacct.getA_Reval_Accumdep_Offset_Prior()); - assetacct.setA_Reval_Cal_Method(assetgrpacct.getA_Reval_Cal_Method()); - assetacct.setA_Reval_Cost_Offset(assetgrpacct.getA_Reval_Cost_Offset()); - assetacct.setA_Reval_Cost_Offset_Prior(assetgrpacct.getA_Reval_Cost_Offset_Prior()); - assetacct.setA_Reval_Depexp_Offset(assetgrpacct.getA_Reval_Depexp_Offset()); - assetacct.setA_Depreciation_Manual_Amount(assetgrpacct.getA_Depreciation_Manual_Amount()); - assetacct.setA_Depreciation_Manual_Period(assetgrpacct.getA_Depreciation_Manual_Period()); - assetacct.setA_Depreciation_Table_Header_ID(assetgrpacct.getA_Depreciation_Table_Header_ID()); - assetacct.setA_Depreciation_Variable_Perc(assetgrpacct.getA_Depreciation_Variable_Perc()); - assetacct.setProcessing(false); - assetacct.getAD_Client_ID(); - assetacct.saveEx(); - - MAssetChange change = new MAssetChange (getCtx(), 0, get_TrxName()); - change.setPostingType(assetacct.getPostingType()); - change.setA_Split_Percent(assetacct.getA_Split_Percent()); - change.setConventionType(assetacct.getA_Depreciation_Conv_ID()); - change.setA_Asset_ID(asset.getA_Asset_ID()); - change.setDepreciationType(assetacct.getA_Depreciation_ID()); - change.setA_Asset_Spread_Type(assetacct.getA_Asset_Spread_ID()); - change.setA_Period_Start(assetacct.getA_Period_Start()); - change.setA_Period_End(assetacct.getA_Period_End()); - change.setIsInPosession(asset.isOwned()); - change.setIsDisposed(asset.isDisposed()); - change.setIsDepreciated(asset.isDepreciated()); - change.setIsFullyDepreciated(asset.isFullyDepreciated()); - change.setA_Depreciation_Calc_Type(assetacct.getA_Depreciation_Method_ID()); - change.setA_Asset_Acct(assetacct.getA_Asset_Acct()); - change.setC_AcctSchema_ID(assetacct.getC_AcctSchema_ID()); - change.setA_Accumdepreciation_Acct(assetacct.getA_Accumdepreciation_Acct()); - change.setA_Depreciation_Acct(assetacct.getA_Depreciation_Acct()); - change.setA_Disposal_Revenue(assetacct.getA_Disposal_Revenue()); - change.setA_Disposal_Loss(assetacct.getA_Disposal_Loss()); - change.setA_Reval_Accumdep_Offset_Cur(assetacct.getA_Reval_Accumdep_Offset_Cur()); - change.setA_Reval_Accumdep_Offset_Prior(assetacct.getA_Reval_Accumdep_Offset_Prior()); - change.setA_Reval_Cal_Method(assetacct.getA_Reval_Cal_Method()); - change.setA_Reval_Cost_Offset(assetacct.getA_Reval_Cost_Offset()); - change.setA_Reval_Cost_Offset_Prior(assetacct.getA_Reval_Cost_Offset_Prior()); - change.setA_Reval_Depexp_Offset(assetacct.getA_Reval_Depexp_Offset()); - change.setA_Depreciation_Manual_Amount(assetacct.getA_Depreciation_Manual_Amount()); - change.setA_Depreciation_Manual_Period(assetacct.getA_Depreciation_Manual_Period()); - change.setA_Depreciation_Table_Header_ID(assetacct.getA_Depreciation_Table_Header_ID()); - change.setA_Depreciation_Variable_Perc(assetacct.getA_Depreciation_Variable_Perc()); - change.setA_Parent_Asset_ID(asset.getA_Parent_Asset_ID()); - change.setChangeType("CRT"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "CRT")); - change.setIsInPosession(asset.isOwned()); - change.setIsDisposed(asset.isDisposed()); - change.setIsDepreciated(asset.isDepreciated()); - change.setIsFullyDepreciated(asset.isFullyDepreciated()); - change.setLot(asset.getLot()); - change.setSerNo(asset.getSerNo()); - change.setVersionNo(asset.getVersionNo()); - change.setUseLifeMonths(asset.getUseLifeMonths()); - change.setUseLifeYears(asset.getUseLifeYears()); - change.setLifeUseUnits(asset.getLifeUseUnits()); - change.setAssetDisposalDate(asset.getAssetDisposalDate()); - change.setAssetServiceDate(asset.getAssetServiceDate()); - change.setC_BPartner_Location_ID(asset.getC_BPartner_Location_ID()); - change.setC_BPartner_ID(asset.getC_BPartner_ID()); - change.setAssetValueAmt(InvoiceLine.getLineTotalAmt()); - change.setA_QTY_Current(InvoiceLine.getQtyEntered()); - change.setA_QTY_Original(InvoiceLine.getQtyEntered()); - change.setA_Asset_CreateDate(asset.getA_Asset_CreateDate()); - change.setAD_User_ID(asset.getAD_User_ID()); - change.setC_Location_ID(asset.getC_Location_ID()); - change.saveEx(); - } - - - - X_A_Depreciation_Workfile assetwk = new X_A_Depreciation_Workfile (getCtx(), 0, get_TrxName()); - assetwk.setA_Asset_ID(asset.getA_Asset_ID()); - assetwk.setA_Life_Period(assetgrpacct.getUseLifeMonths()); - assetwk.setA_Asset_Life_Years(assetgrpacct.getUseLifeYears()); - assetwk.setA_Asset_Cost(assetwk.getA_Asset_Cost().add(InvoiceLine.getLineTotalAmt())); - assetwk.setA_QTY_Current(InvoiceLine.getQtyEntered()); - assetwk.setIsDepreciated(assetgrpacct.isProcessing()); - assetwk.setPostingType(assetgrpacct.getPostingType()); - assetwk.setA_Accumulated_Depr(new BigDecimal (0.0)); - assetwk.setA_Period_Posted(0); - assetwk.setA_Asset_Life_Current_Year(new BigDecimal (0.0)); - assetwk.setA_Curr_Dep_Exp(new BigDecimal (0.0)); - assetwk.saveEx(); - - X_A_Asset_Addition assetadd = new X_A_Asset_Addition (getCtx(), 0, get_TrxName()); - assetadd.setA_Asset_ID(asset.getA_Asset_ID()); - assetadd.setAssetValueAmt(InvoiceLine.getLineTotalAmt()); - assetadd.setA_SourceType("INV"); - assetadd.setA_CapvsExp("Cap"); - assetadd.setM_InOutLine_ID(rs.getInt("C_Invoice_ID")); - assetadd.setC_Invoice_ID(rs.getInt("C_Invoice_ID")); - assetadd.setDocumentNo(Invoice.getDocumentNo()); - assetadd.setLine(InvoiceLine.getLine()); - assetadd.setDescription(InvoiceLine.getDescription()); - assetadd.setA_QTY_Current(InvoiceLine.getQtyEntered()); - assetadd.setPostingType(assetwk.getPostingType()); - assetadd.saveEx(); - - String sql1 = "SELECT C_Period_ID " - + "FROM C_Period " - + "WHERE C_Year_ID IN " - + " (SELECT C_Year_ID FROM C_Year WHERE C_Calendar_ID =" - + " (SELECT C_Calendar_ID FROM AD_ClientInfo WHERE AD_Client_ID=?))" - + " AND ? BETWEEN StartDate AND EndDate" - + " AND PeriodType='S'"; - - try - { - PreparedStatement pstmt4 = DB.prepareStatement(sql1,get_TrxName()); - pstmt4.setInt(1, asset.getAD_Client_ID()); - pstmt4.setTimestamp(2, Invoice.getDateAcct()); - ResultSet rs4 = pstmt4.executeQuery(); - if (rs4.next()) - C_Period_ID = rs4.getInt(1); - DB.close(rs4, pstmt4); - pstmt4 = null; - } - catch (SQLException e) - { - log.log(Level.SEVERE, "Journal_Period - DateAcct", e); - return e.getLocalizedMessage(); - } - - /**Code below is for future functionality - int DocumentNo = MSequence.getNextID (Env.getAD_Client_ID(Env.getCtx()), "DocumentNo_M_InOut", get_TrxName()); - - - //Adjust Inventory Quantity - X_M_InOut mInOut = new X_M_InOut (getCtx(), 0, get_TrxName()); - mInOut.setC_BPartner_ID (Invoice.getC_BPartner_ID()); - mInOut.setC_BPartner_Location_ID (Invoice.getC_BPartner_Location_ID()); - mInOut.setC_DocType_ID (Invoice.getC_DocType_ID()); - mInOut.setDateAcct (new Timestamp(System.currentTimeMillis())); // @#Date@ - mInOut.setDeliveryRule ("A"); // A - mInOut.setDeliveryViaRule ("P"); // P - mInOut.setDocAction ("CO"); // CO - mInOut.setDocStatus ("DR"); // DR - mInOut.setDescription("Invoice transfered to assets"); - mInOut.setDocumentNo (""+DocumentNo); - mInOut.setFreightCostRule ("I"); // I - mInOut.setPriorityRule("5"); - mInOut.setIsApproved (false); - mInOut.setIsInDispute (false); - mInOut.setIsInTransit (false); - mInOut.setIsPrinted (false); - mInOut.setIsSOTrx (false); // @IsSOTrx@ - mInOut.setM_InOut_ID (0); - mInOut.setM_Warehouse_ID (0); - mInOut.setMovementDate (new Timestamp(System.currentTimeMillis())); // @#Date@ - mInOut.setMovementType ("V-"); - mInOut.setPosted (false); - mInOut.setProcessed (false); - mInOut.setSendEMail (false); - mInOut.saveEx(); - - X_M_InOutLine mInOutLine = new X_M_InOutLine (getCtx(), 0, get_TrxName()); - mInOutLine.setC_UOM_ID (InvoiceLine.getC_UOM_ID()); // @#C_UOM_ID@ - mInOutLine.setIsDescription (false); // N - mInOutLine.setIsInvoiced (false); - mInOutLine.setLine (10); // @SQL=SELECT NVL(MAX(Line),0)+10 AS DefaultValue FROM M_InOutLine WHERE M_InOut_ID=@M_InOut_ID@ - mInOutLine.setM_AttributeSetInstance_ID (InvoiceLine.getM_AttributeSetInstance_ID()); - mInOutLine.setM_InOut_ID (mInOut.getM_InOut_ID()); - mInOutLine.setM_Locator_ID (0); // @M_Locator_ID@ - mInOutLine.setM_Product_ID (InvoiceLine.getM_Product_ID()); - mInOutLine.setMovementQty (InvoiceLine.getQtyInvoiced()); // 1 - mInOutLine.setProcessed (false); - mInOutLine.setQtyEntered (Env.ZERO); // 1 - **/ - - //Determine non tax accounts to credit - invoiceAcct = determineAcct (assetacct.getC_AcctSchema_ID(), InvoiceLine.getM_Product_ID(), InvoiceLine.getC_Charge_ID(), InvoiceLine.getLineNetAmt()); - - //Create Journal Entries for the new asset - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, get_TrxName()); - depexp2.setPostingType(assetacct.getPostingType()); - depexp2.setA_Asset_ID(asset.getA_Asset_ID()); - depexp2.setExpense(InvoiceLine.getLineTotalAmt()); - depexp2.setDateAcct(Invoice.getDateAcct()); - depexp2.setA_Account_Number(assetacct.getA_Asset_Acct()); - depexp2.setDescription("Create Asset from Invoice"); - depexp2.setIsDepreciated(false); - depexp2.setA_Period(C_Period_ID); - depexp2.setA_Entry_Type("NEW"); - depexp2.saveEx(); - recordInsertedCount++; - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, get_TrxName()); - depexp3.setPostingType(assetacct.getPostingType()); - depexp3.setA_Asset_ID(asset.getA_Asset_ID()); - depexp3.setExpense(InvoiceLine.getLineNetAmt().multiply(new BigDecimal (-1))); - depexp3.setDateAcct(Invoice.getDateAcct()); - depexp3.setA_Account_Number(invoiceAcct); - depexp3.setDescription("Create Asset from Invoice"); - depexp3.setIsDepreciated(false); - depexp3.setA_Period(C_Period_ID); - depexp3.setA_Entry_Type("NEW"); - depexp3.saveEx(); - recordInsertedCount++; - - //Determine if tax adjustment is necessary - if (InvoiceLine.getTaxAmt().compareTo(new BigDecimal (0))!=0){ - - invoiceAcct = determineTaxAcct (assetacct.getC_AcctSchema_ID(), InvoiceLine.getC_Tax_ID()); - - X_A_Depreciation_Exp depexp4 = new X_A_Depreciation_Exp (getCtx(), 0, get_TrxName()); - depexp4.setPostingType(assetacct.getPostingType()); - depexp4.setA_Asset_ID(asset.getA_Asset_ID()); - depexp4.setExpense(InvoiceLine.getTaxAmt().multiply(new BigDecimal (-1))); - depexp4.setDateAcct(Invoice.getDateAcct()); - depexp4.setA_Account_Number(invoiceAcct); - depexp4.setDescription("Create Asset from Invoice"); - depexp4.setIsDepreciated(false); - depexp4.setA_Period(C_Period_ID); - depexp4.setA_Entry_Type("NEW"); - depexp4.saveEx(); - recordInsertedCount++; - - } - } - else - { - sql2 ="SELECT * FROM A_Depreciation_Workfile WHERE A_Asset_ID = ? and PostingType = ?"; - PreparedStatement pstmt2 = null; - pstmt2 = DB.prepareStatement(sql2,get_TrxName()); - ResultSet rs3 = null; - try { - pstmt2.setInt(1, asset.getA_Asset_ID()); - pstmt2.setString(2, assetgrpacct.getPostingType()); - rs3 = pstmt2.executeQuery(); - while (rs3.next()){ - X_A_Depreciation_Workfile assetwk = new X_A_Depreciation_Workfile (getCtx(), rs3, get_TrxName()); - assetwk.setA_Asset_ID(asset.getA_Asset_ID()); - assetwk.setA_Life_Period(assetgrpacct.getUseLifeMonths()); - assetwk.setA_Asset_Life_Years(assetgrpacct.getUseLifeYears()); - assetwk.setA_Asset_Cost(assetwk.getA_Asset_Cost().add(InvoiceLine.getLineTotalAmt())); - assetwk.setIsDepreciated(assetgrpacct.isProcessing()); - assetwk.setA_QTY_Current(InvoiceLine.getQtyEntered()); - assetwk.saveEx(); - - X_A_Asset_Addition assetadd = new X_A_Asset_Addition (getCtx(), 0, get_TrxName()); - assetadd.setA_Asset_ID(asset.getA_Asset_ID()); - assetadd.setAssetValueAmt(InvoiceLine.getLineTotalAmt()); - assetadd.setA_SourceType("INV"); - assetadd.setA_CapvsExp("Cap"); - assetadd.setM_InOutLine_ID(rs.getInt("C_Invoice_ID")); - assetadd.setC_Invoice_ID(rs.getInt("C_Invoice_ID")); - assetadd.setDocumentNo(Invoice.getDocumentNo()); - assetadd.setLine(InvoiceLine.getLine()); - assetadd.setDescription(InvoiceLine.getDescription()); - assetadd.setA_QTY_Current(InvoiceLine.getQtyEntered()); - assetadd.setPostingType(assetwk.getPostingType()); - assetadd.saveEx(); - - - asset.setA_QTY_Original(assetadd.getA_QTY_Current().add(asset.getA_QTY_Original())); - asset.setA_QTY_Current(assetadd.getA_QTY_Current().add(asset.getA_QTY_Current())); - asset.saveEx(); - - MAssetChange change = new MAssetChange (getCtx(), 0, get_TrxName()); - change.setA_Asset_ID(asset.getA_Asset_ID()); - change.setA_QTY_Current(assetadd.getA_QTY_Current()); - change.setChangeType("ADD"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "ADD")); - change.setPostingType(assetwk.getPostingType()); - change.setAssetValueAmt(assetadd.getAssetValueAmt()); - change.setA_QTY_Current(assetadd.getA_QTY_Current()); - change.saveEx(); - - - - - //Determine non tax accounts to credit - invoiceAcct = determineAcct (assetacct.getC_AcctSchema_ID(), InvoiceLine.getM_Product_ID(), InvoiceLine.getC_Charge_ID(), InvoiceLine.getLineNetAmt()); - - //Create Journal Entries for the new asset - X_A_Depreciation_Exp depexp2 = new X_A_Depreciation_Exp (getCtx(), 0, get_TrxName()); - depexp2.setPostingType(assetacct.getPostingType()); - depexp2.setA_Asset_ID(asset.getA_Asset_ID()); - depexp2.setExpense(InvoiceLine.getLineTotalAmt()); - depexp2.setDateAcct(Invoice.getDateAcct()); - depexp2.setA_Account_Number(assetacct.getA_Asset_Acct()); - depexp2.setDescription("Create Asset from Invoice"); - depexp2.setIsDepreciated(false); - depexp2.setA_Period(C_Period_ID); - depexp2.setA_Entry_Type("NEW"); - depexp2.saveEx(); - recordInsertedCount++; - - X_A_Depreciation_Exp depexp3 = new X_A_Depreciation_Exp (getCtx(), 0, get_TrxName()); - depexp3.setPostingType(assetacct.getPostingType()); - depexp3.setA_Asset_ID(asset.getA_Asset_ID()); - depexp3.setExpense(InvoiceLine.getLineNetAmt().multiply(new BigDecimal (-1))); - depexp3.setDateAcct(Invoice.getDateAcct()); - depexp3.setA_Account_Number(invoiceAcct); - depexp3.setDescription("Create Asset from Invoice"); - depexp3.setIsDepreciated(false); - depexp3.setA_Period(C_Period_ID); - depexp3.setA_Entry_Type("NEW"); - depexp3.saveEx(); - recordInsertedCount++; - - //Determine if tax adjustment is necessary - if (InvoiceLine.getTaxAmt().compareTo(new BigDecimal (0))!=0){ - - invoiceAcct = determineTaxAcct (assetacct.getC_AcctSchema_ID(), InvoiceLine.getC_Tax_ID()); - - X_A_Depreciation_Exp depexp4 = new X_A_Depreciation_Exp (getCtx(), 0, get_TrxName()); - depexp4.setPostingType(assetacct.getPostingType()); - depexp4.setA_Asset_ID(asset.getA_Asset_ID()); - depexp4.setExpense(InvoiceLine.getTaxAmt().multiply(new BigDecimal (-1))); - depexp4.setDateAcct(Invoice.getDateAcct()); - depexp4.setA_Account_Number(invoiceAcct); - depexp4.setDescription("Create Asset from Invoice"); - depexp4.setIsDepreciated(false); - depexp4.setA_Period(C_Period_ID); - depexp4.setA_Entry_Type("NEW"); - depexp4.saveEx(); - recordInsertedCount++; - } - - } - } - catch (Exception e) - { - log.info("getAssets "+ e); - } - finally - { - DB.close(rs3, pstmt2); - pstmt2 = null; - } - } - } - - } - DB.close(rs2, pstmt1); - pstmt1 = null; - } - else if (rs.getString("A_CapvsExp").equals("Exp")) - { - X_A_Asset_Addition assetadd = new X_A_Asset_Addition (getCtx(), 0, get_TrxName()); - assetadd.setA_Asset_ID(asset.getA_Asset_ID()); - assetadd.setAssetValueAmt(InvoiceLine.getLineTotalAmt()); - assetadd.setA_SourceType("INV"); - assetadd.setA_CapvsExp("Exp"); - assetadd.setM_InOutLine_ID(rs.getInt("C_Invoice_ID")); - assetadd.setC_Invoice_ID(rs.getInt("C_Invoice_ID")); - assetadd.setDocumentNo(Invoice.getDocumentNo()); - assetadd.setLine(InvoiceLine.getLine()); - assetadd.setDescription(InvoiceLine.getDescription()); - assetadd.setA_QTY_Current(InvoiceLine.getQtyEntered()); - assetadd.setPostingType("A"); - assetadd.saveEx(); - - MAssetChange change = new MAssetChange (getCtx(), 0, get_TrxName()); - change.setA_Asset_ID(asset.getA_Asset_ID()); - change.setA_QTY_Current(assetadd.getA_QTY_Current()); - change.setChangeType("EXP"); - change.setTextDetails(MRefList.getListDescription (getCtx(),"A_Update_Type" , "EXP")); - assetadd.setPostingType("A"); - change.setAssetValueAmt(assetadd.getAssetValueAmt()); - change.setA_QTY_Current(assetadd.getA_QTY_Current()); - change.saveEx(); - } - InvoiceLine.set_ValueOfColumn(I_CustomColumn.A_Processed, Boolean.TRUE); - InvoiceLine.saveEx(); - } - - } - catch (Exception e) - { - log.info("getAssets "+ e); - } - finally - { - DB.close(rs, pstmt); - pstmt = null; - } - - if (recordInsertedCount > 0) - { - return recordInsertedCount + " record(s) inserted."; - } - else - { - return "Zero record inserted."; - } - } // doIt - - /** - * Get non tax posting accounts for invoice. - * - * - */ - private int determineAcct (int C_AcctSchema_ID, int M_Product_ID, int C_Charge_ID, BigDecimal lineAmt) - { - int invoiceAcct =0; - if (M_Product_ID == 0 && C_Charge_ID != 0) - { - String sqlb = "SELECT CH_Expense_Acct FROM C_Charge_Acct WHERE C_Charge_ID=? and C_AcctSchema_ID=?"; - invoiceAcct = DB.getSQLValue(get_TrxName(),sqlb,C_Charge_ID,C_AcctSchema_ID); - } - - else if(M_Product_ID != 0){ - if(lineAmt.signum() > 0){ - String sqlb = "SELECT P_Expense_Acct FROM M_Product_Acct WHERE M_Product_ID=? and C_AcctSchema_ID=?"; - invoiceAcct = DB.getSQLValue(get_TrxName(),sqlb,M_Product_ID,C_AcctSchema_ID); - } - else{ - String sqlb = "SELECT P_Revenue_Acct FROM M_Product_Acct WHERE M_Product_ID=? and C_AcctSchema_ID=?"; - invoiceAcct = DB.getSQLValue(get_TrxName(),sqlb,M_Product_ID,C_AcctSchema_ID); - } - } - else{ - if(lineAmt.signum() > 0){ - String sqlb = "SELECT P_Expense_Acct " - + "FROM M_Product_Category pc, M_Product_Category_Acct pca " - + "WHERE pc.M_Product_Category_ID=pca.M_Product_Category_ID" - + " AND pca.C_AcctSchema_ID=? " - + "ORDER BY pc.IsDefault DESC, pc.Created"; - invoiceAcct = DB.getSQLValue(get_TrxName(),sqlb,C_AcctSchema_ID); - } - else{ - String sqlb = "SELECT P_Revenue_Acct " - + "FROM M_Product_Category pc, M_Product_Category_Acct pca " - + "WHERE pc.M_Product_Category_ID=pca.M_Product_Category_ID" - + " AND pca.C_AcctSchema_ID=? " - + "ORDER BY pc.IsDefault DESC, pc.Created"; - invoiceAcct = DB.getSQLValue(get_TrxName(),sqlb,C_AcctSchema_ID); - } - - } - return invoiceAcct; - } - - /** - * Get tax posting accounts for invoice. - * - * - */ - private int determineTaxAcct (int C_AcctSchema_ID, int C_Tax_ID) - { - int invoiceAcct =0; - - String sqlb = "SELECT T_Expense_Acct FROM C_Tax_Acct WHERE C_AcctSchema_ID=? and C_Tax_ID=?"; - invoiceAcct = DB.getSQLValue(get_TrxName(),sqlb,C_AcctSchema_ID,C_Tax_ID); - - return invoiceAcct; - } - -} // InvoiceCreateInOut diff --git a/org.adempiere.base/src/org/compiere/FA/Depreciation.java b/org.adempiere.base/src/org/compiere/FA/Depreciation.java deleted file mode 100644 index 94b0da2c3d..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/Depreciation.java +++ /dev/null @@ -1,918 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert Klein. robeklein@hotmail.com - * _____________________________________________ - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.Calendar; -import java.util.GregorianCalendar; - -import org.compiere.util.DB; -/** - * Fixed Asset Depreciation - * - * @author Rob Klein - * @version $Id: Conventions.java,v 1.0 $ - * - */ -public class Depreciation { - - /** - * - * - */ - static public BigDecimal Dep_Type(String Type,int p_A_ASSET_ID, double p_A_CURRENT_PERIOD, String p_POSTINGTYPE, - int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - BigDecimal A_Period_Exp = new BigDecimal(0.0); - if(Type.compareTo("DB150")==0){ - A_Period_Exp = DB150( 0, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("DB150 Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("DB1SL")==0){ - A_Period_Exp = DB150( 1, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("DB1SL Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("DB200")==0){ - A_Period_Exp = DB200( 0, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("DB200 Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("DB2SL")==0){ - A_Period_Exp = DB200( 1, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("DB2SL Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("VAR")==0){ - A_Period_Exp = DBVAR( 0, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("VAR Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("VARSL")==0){ - A_Period_Exp = DBVAR( 1, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("VARSL Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("MAN")==0){ - A_Period_Exp = MAN( 1, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("MAN Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("SL")==0){ - A_Period_Exp = SL( 1, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("SL Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("SYD")==0){ - A_Period_Exp = SYD( 1, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("SYD Main: "+A_Period_Exp); - return A_Period_Exp; - } - else if(Type.compareTo("TAB")==0){ - A_Period_Exp = TAB( 1, p_A_ASSET_ID, p_A_CURRENT_PERIOD, p_POSTINGTYPE, p_A_ASSET_ACCT_ID, p_Accum_Dep); - //System.out.println("TAB Main: "+A_Period_Exp); - return A_Period_Exp; - } - else - return new BigDecimal(0.0); - - } - - - static public BigDecimal DB150(int p_SL, int p_A_ASSET_ID, double p_A_CURRENT_PERIOD, String p_POSTINGTYPE, - int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - BigDecimal v_DB = new BigDecimal(0.0); - BigDecimal v_Accum_Dep = new BigDecimal(0.0); - BigDecimal v_SL = new BigDecimal(0.0); - BigDecimal A_Period_Exp = new BigDecimal(0.0); - int v_counter = 0; - double v_months = 0; - int v_firstyr = 0; - double v_monthadj = 0; - BigDecimal v_adj = new BigDecimal(0.0); - BigDecimal v_Base_Amount = new BigDecimal(0.0); - BigDecimal v_Salvage_Amount = new BigDecimal(0.0); - double v_Life_Periods = 0; - double v_Life_Years = 0; - String v_con_type = null; - - StringBuffer sqlB = new StringBuffer ("SELECT A.A_ASSET_COST, A.A_SALVAGE_VALUE, A.A_LIFE_PERIOD, A.A_ASSET_LIFE_YEARS, A.DATEACCT," - + " D.ASSETSERVICEDATE, C.CONVENTIONTYPE " - + " FROM A_DEPRECIATION_WORKFILE A, A_ASSET_ACCT B,A_ASSET D,A_DEPRECIATION_CONVENTION C " - + " WHERE A.A_ASSET_ID = " + p_A_ASSET_ID - + " AND B.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_PERIOD_POSTED+1 >= A_PERIOD_START AND A_PERIOD_POSTED+1 <= A_PERIOD_END " - + " AND A.POSTINGTYPE = '" + p_POSTINGTYPE - + "' AND B.POSTINGTYPE = '" + p_POSTINGTYPE - + "' AND B.A_ASSET_ACCT_ID = " + p_A_ASSET_ACCT_ID - + " AND D.A_ASSET_ID = " + p_A_ASSET_ID - + " AND B.A_DEPRECIATION_CONV_ID = C.A_DEPRECIATION_CONVENTION_ID"); - //System.out.println("DB150: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()){ - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctYear = calendar.get(Calendar.YEAR); - - v_Base_Amount = rs.getBigDecimal("A_ASSET_COST"); - v_Salvage_Amount = rs.getBigDecimal("A_SALVAGE_VALUE"); - v_Life_Periods = rs.getDouble("A_LIFE_PERIOD"); - v_Life_Years = rs.getDouble("A_ASSET_LIFE_YEARS"); - v_con_type = rs.getString("CONVENTIONTYPE"); - - double v_period = DateAcctYear - AssetServiceDateYear; - while (v_counter <= v_period){ - if(v_firstyr == 0){ - v_DB = (v_Base_Amount.subtract(v_Accum_Dep).subtract(v_Salvage_Amount)).multiply(new BigDecimal(1.5/v_Life_Years)); - v_months = 12 - AssetServiceDateMonth +1; - if (v_con_type.compareTo("HYCON") ==0){ - v_adj = new BigDecimal(Conventions.HYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj).multiply(new BigDecimal(v_months))); - v_monthadj = 6-v_months; - } - else if (v_con_type.compareTo("FYCON") ==0){ - v_adj = new BigDecimal(Conventions.FYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,0,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj).multiply(new BigDecimal(v_months))); - v_monthadj = 12-v_months; - } - else if (v_con_type.compareTo("DYCON") ==0){ - v_adj = new BigDecimal(Conventions.DYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_monthadj = 0; - } - else if (v_con_type.compareTo("MQCON") ==0){ - v_adj = new BigDecimal(Conventions.MQCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj)); - v_DB =(v_DB.divide(new BigDecimal(v_months),2, BigDecimal.ROUND_HALF_UP)); - v_monthadj = 0; - } - else if (v_con_type.compareTo("FMCON") ==0){ - v_adj = new BigDecimal(Conventions.FMCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(new BigDecimal(v_months))); - v_monthadj = 0; - } - else if (v_con_type.compareTo("MMCON") ==0){ - - v_Accum_Dep = v_Accum_Dep.add(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(.5)).add(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(v_months-1)); - v_adj = new BigDecimal(Conventions.MMCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateMonth+1)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)).multiply(v_adj); - v_monthadj = 0; - } - v_firstyr = 1; - } - else{ - v_DB = (v_Base_Amount.subtract(v_Accum_Dep).subtract(v_Salvage_Amount)).multiply(new BigDecimal(1.5/v_Life_Years)); - v_Accum_Dep = v_Accum_Dep.add(v_DB); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - } - v_counter = v_counter+1; - } - A_Period_Exp = v_DB; - - if (p_SL ==1 ){ - if (v_Life_Periods-(p_A_CURRENT_PERIOD+v_monthadj)>0 ) - v_SL = ((v_Base_Amount.subtract(v_Salvage_Amount).subtract(p_Accum_Dep)).divide(new BigDecimal(v_Life_Periods-(p_A_CURRENT_PERIOD+v_monthadj)),2, BigDecimal.ROUND_HALF_UP)); - - if (A_Period_Exp.compareTo(v_SL)==-1) - A_Period_Exp = v_SL; - - if (v_Base_Amount.subtract(p_Accum_Dep).subtract(A_Period_Exp).compareTo(v_Salvage_Amount)==-1 ) - A_Period_Exp =v_Base_Amount.subtract(p_Accum_Dep).subtract(v_Salvage_Amount); - } - - } - //System.out.println("DB150: "+A_Period_Exp); - return A_Period_Exp; - } - catch (Exception e) - { - System.out.println("DB150: "+e); - } - finally - { - try - { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e) - {} - pstmt = null; - } - return A_Period_Exp; - } - - static public BigDecimal DB200(int p_SL,int p_A_ASSET_ID, double p_A_CURRENT_PERIOD, String p_POSTINGTYPE, - int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - BigDecimal v_DB = new BigDecimal(0.0); - BigDecimal v_Accum_Dep = new BigDecimal(0.0); - BigDecimal v_SL = new BigDecimal(0.0); - BigDecimal A_Period_Exp = new BigDecimal(0.0); - int v_counter = 0; - double v_months = 0; - int v_firstyr = 0; - double v_monthadj = 0; - BigDecimal v_adj = new BigDecimal(0.0); - BigDecimal v_Base_Amount = new BigDecimal(0.0); - BigDecimal v_Salvage_Amount = new BigDecimal(0.0); - double v_Life_Periods = 0; - double v_Life_Years = 0; - String v_con_type = null; - - StringBuffer sqlB = new StringBuffer ("SELECT A.A_ASSET_COST, A.A_SALVAGE_VALUE, A.A_LIFE_PERIOD, A.A_ASSET_LIFE_YEARS, A.DATEACCT," - + " D.ASSETSERVICEDATE, C.CONVENTIONTYPE " - + " FROM A_DEPRECIATION_WORKFILE A, A_ASSET_ACCT B,A_ASSET D,A_DEPRECIATION_CONVENTION C " - + " WHERE A.A_ASSET_ID = " + p_A_ASSET_ID - + " AND B.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_PERIOD_POSTED+1 >= A_PERIOD_START AND A_PERIOD_POSTED+1 <= A_PERIOD_END " - + " AND A.POSTINGTYPE = '" + p_POSTINGTYPE - + "' AND B.POSTINGTYPE = '" + p_POSTINGTYPE - + "' AND B.A_ASSET_ACCT_ID = " + p_A_ASSET_ACCT_ID - + " AND D.A_ASSET_ID = " + p_A_ASSET_ID - + " AND B.A_DEPRECIATION_CONV_ID = C.A_DEPRECIATION_CONVENTION_ID"); - //System.out.println("DB200: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctYear = calendar.get(Calendar.YEAR); - v_counter = 0; - v_months = 0; - v_firstyr = 0; - v_monthadj = 0; - v_adj = new BigDecimal(0.0); - v_Base_Amount = rs.getBigDecimal("A_ASSET_COST"); - v_Salvage_Amount = rs.getBigDecimal("A_SALVAGE_VALUE"); - v_Life_Periods = rs.getDouble("A_LIFE_PERIOD"); - v_Life_Years = rs.getDouble("A_ASSET_LIFE_YEARS"); - v_con_type = rs.getString("CONVENTIONTYPE"); - - double v_period = DateAcctYear - AssetServiceDateYear; - while (v_counter <= v_period){ - if(v_firstyr == 0){ - v_DB = (v_Base_Amount.subtract(v_Accum_Dep).subtract(v_Salvage_Amount)).multiply(new BigDecimal(2/v_Life_Years)); - v_months = 12 - AssetServiceDateMonth +1; - if (v_con_type.compareTo("HYCON") ==0){ - v_adj = new BigDecimal(Conventions.HYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj).multiply(new BigDecimal(v_months))); - v_monthadj = 6-v_months; - } - else if (v_con_type.compareTo("FYCON") ==0){ - - v_adj = new BigDecimal(Conventions.FYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,0,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj).multiply(new BigDecimal(v_months))); - v_monthadj = 12-v_months; - } - else if (v_con_type.compareTo("DYCON") ==0){ - v_adj = new BigDecimal(Conventions.DYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_monthadj = 0; - } - else if (v_con_type.compareTo("MQCON") ==0){ - v_adj = new BigDecimal(Conventions.MQCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj)); - v_DB =(v_DB.divide(new BigDecimal(v_months),2, BigDecimal.ROUND_HALF_UP)); - v_monthadj = 0; - } - else if (v_con_type.compareTo("FMCON") ==0){ - v_adj = new BigDecimal(Conventions.FMCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(new BigDecimal(v_months))); - v_monthadj = 0; - } - else if (v_con_type.compareTo("MMCON") ==0){ - - v_Accum_Dep = v_Accum_Dep.add(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(.5)).add(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(v_months-1)); - v_adj = new BigDecimal(Conventions.MMCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateMonth+1)); - v_DB = (v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)).multiply(v_adj); - v_monthadj = 0; - } - v_firstyr = 1; - } - else{ - v_DB = (v_Base_Amount.subtract(v_Accum_Dep).subtract(v_Salvage_Amount)).multiply(new BigDecimal(2/v_Life_Years)); - v_Accum_Dep = v_Accum_Dep.add(v_DB); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - } - v_counter = v_counter+1; - } - A_Period_Exp = v_DB; - if (p_SL ==1 ){ - if (v_Life_Periods-(p_A_CURRENT_PERIOD+v_monthadj)>0 ) - v_SL = ((v_Base_Amount.subtract(v_Salvage_Amount).subtract(p_Accum_Dep)).divide(new BigDecimal(v_Life_Periods-(p_A_CURRENT_PERIOD+v_monthadj)),2, BigDecimal.ROUND_HALF_UP)); - - if (A_Period_Exp.compareTo(v_SL)==-1) - A_Period_Exp = v_SL; - - if (v_Base_Amount.subtract(p_Accum_Dep).subtract(A_Period_Exp).compareTo(v_Salvage_Amount)==-1 ) - A_Period_Exp =v_Base_Amount.subtract(p_Accum_Dep).subtract(v_Salvage_Amount); - } - } - //System.out.println("DB200: "+A_Period_Exp); - return A_Period_Exp; - } - catch (Exception e) - { - System.out.println("DB200: "+e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return A_Period_Exp; - } - - static public BigDecimal DBVAR(int p_SL,int p_A_ASSET_ID, double p_A_CURRENT_PERIOD, String p_POSTINGTYPE, - int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - BigDecimal v_DB = new BigDecimal(0.0); - BigDecimal v_Accum_Dep = new BigDecimal(0.0); - BigDecimal v_SL = new BigDecimal(0.0); - BigDecimal A_Period_Exp = new BigDecimal(0.0); - double v_Var = 0.0; - int v_counter = 0; - double v_months = 0; - int v_firstyr = 0; - double v_monthadj = 0; - BigDecimal v_adj = new BigDecimal(0.0); - BigDecimal v_Base_Amount = new BigDecimal(0.0); - BigDecimal v_Salvage_Amount = new BigDecimal(0.0); - double v_Life_Periods = 0; - double v_Life_Years = 0; - String v_con_type = null; - - StringBuffer sqlB = new StringBuffer ("SELECT A.A_ASSET_COST, A.A_SALVAGE_VALUE, A.A_LIFE_PERIOD, A.A_ASSET_LIFE_YEARS, A.DATEACCT," - + " D.ASSETSERVICEDATE, C.CONVENTIONTYPE, A_DEPRECIATION_VARIABLE_PERC " - + " FROM A_DEPRECIATION_WORKFILE A, A_ASSET_ACCT B,A_ASSET D,A_DEPRECIATION_CONVENTION C " - + " WHERE A.A_ASSET_ID = " + p_A_ASSET_ID - + " AND B.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_PERIOD_POSTED+1 >= A_PERIOD_START AND A_PERIOD_POSTED+1 <= A_PERIOD_END " - + " AND A.POSTINGTYPE = '" + p_POSTINGTYPE - + "' AND B.POSTINGTYPE = '" + p_POSTINGTYPE - + "' AND B.A_ASSET_ACCT_ID = " + p_A_ASSET_ACCT_ID - + " AND D.A_ASSET_ID = " + p_A_ASSET_ID - + " AND B.A_DEPRECIATION_CONV_ID = C.A_DEPRECIATION_CONVENTION_ID"); - //System.out.println("DBVAR: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - v_counter = 0; - v_months = 0; - v_firstyr = 0; - v_monthadj = 0; - v_Var=rs.getDouble("A_DEPRECIATION_VARIABLE_PERC"); - v_adj = new BigDecimal(0.0); - v_Base_Amount = rs.getBigDecimal("A_ASSET_COST"); - v_Salvage_Amount = rs.getBigDecimal("A_SALVAGE_VALUE"); - v_Life_Periods = rs.getDouble("A_LIFE_PERIOD"); - v_Life_Years = rs.getDouble("A_ASSET_LIFE_YEARS"); - v_con_type = rs.getString("CONVENTIONTYPE"); - Calendar calendar = new GregorianCalendar(); - calendar.setTime(rs.getDate("ASSETSERVICEDATE")); - int AssetServiceDateYear = calendar.get(Calendar.YEAR); - int AssetServiceDateMonth = calendar.get(Calendar.MONTH); - calendar.setTime(rs.getDate("DATEACCT")); - int DateAcctYear = calendar.get(Calendar.YEAR); - - double v_period = DateAcctYear - AssetServiceDateYear; - while (v_counter <= v_period){ - if(v_firstyr == 0){ - v_DB = (v_Base_Amount.subtract(v_Accum_Dep).subtract(v_Salvage_Amount)).multiply(new BigDecimal(v_Var/v_Life_Years)); - v_months = 12 - AssetServiceDateMonth +1; - if (v_con_type.compareTo("HYCON") ==0){ - v_adj = new BigDecimal(Conventions.HYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj).multiply(new BigDecimal(v_months))); - v_monthadj = 6-v_months; - } - else if (v_con_type.compareTo("FYCON") ==0){ - v_adj = new BigDecimal(Conventions.FYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,0,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj).multiply(new BigDecimal(v_months))); - v_monthadj = 12-v_months; - } - else if (v_con_type.compareTo("DYCON") ==0){ - v_adj = new BigDecimal(Conventions.DYCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_monthadj = 0; - } - else if (v_con_type.compareTo("MQCON") ==0){ - v_adj = new BigDecimal(Conventions.MQCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(v_adj)); - v_DB =(v_DB.divide(new BigDecimal(v_months),2, BigDecimal.ROUND_HALF_UP)); - v_monthadj = 0; - } - else if (v_con_type.compareTo("FMCON") ==0){ - v_adj = new BigDecimal(Conventions.FMCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateYear)); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - v_Accum_Dep = v_Accum_Dep.add(v_DB.multiply(new BigDecimal(v_months))); - v_monthadj = 0; - } - else if (v_con_type.compareTo("MMCON") ==0){ - - v_Accum_Dep = v_Accum_Dep.add(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(.5)).add(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(v_months-1)); - v_adj = new BigDecimal(Conventions.MMCON(p_A_ASSET_ID,p_POSTINGTYPE,p_A_ASSET_ACCT_ID,2,AssetServiceDateMonth+1)); - v_DB = (v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP).multiply(v_adj)); - v_monthadj = 0; - } - v_firstyr = 1; - } - else{ - v_DB = (v_Base_Amount.subtract(v_Accum_Dep).subtract(v_Salvage_Amount)).multiply(new BigDecimal(v_Var/v_Life_Years)); - v_Accum_Dep = v_Accum_Dep.add(v_DB); - v_DB =(v_DB.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP)); - } - v_counter = v_counter+1; - } - A_Period_Exp = v_DB; - if (p_SL ==1 ){ - if (v_Life_Periods-(p_A_CURRENT_PERIOD+v_monthadj)>0 ) - v_SL = ((v_Base_Amount.subtract(v_Salvage_Amount).subtract(p_Accum_Dep)).divide(new BigDecimal(v_Life_Periods-(p_A_CURRENT_PERIOD+v_monthadj)),2, BigDecimal.ROUND_HALF_UP)); - - if (A_Period_Exp.compareTo(v_SL)==-1) - A_Period_Exp = v_SL; - - if (v_Base_Amount.subtract(p_Accum_Dep).subtract(A_Period_Exp).compareTo(v_Salvage_Amount)==-1 ) - A_Period_Exp =v_Base_Amount.subtract(p_Accum_Dep).subtract(v_Salvage_Amount); - } - } - //System.out.println("DBVAR: "+A_Period_Exp); - return A_Period_Exp; - } - catch (Exception e) - { - System.out.println("DBVAR: "+e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return A_Period_Exp; - } - - static public BigDecimal MAN(int p_SL,int p_A_ASSET_ID, double p_A_CURRENT_PERIOD, String p_POSTINGTYPE, - int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - int v_Dep_Mon = 0; - BigDecimal v_Dep_Sprd = new BigDecimal(0.0); - BigDecimal A_Period_Exp = new BigDecimal(0.0); - - StringBuffer sqlB = new StringBuffer ("SELECT B.A_ASSET_COST, B.A_SALVAGE_VALUE, B.A_LIFE_PERIOD, " - + " A_ASSET_LIFE_YEARS, A_ASSET_LIFE_CURRENT_YEAR,A_ACCUMULATED_DEPR, A_DEPRECIATION_MANUAL_AMOUNT, " - + " A_ASSET_SPREAD_ID, A_DEPRECIATION_MANUAL_PERIOD, A.AD_Client_ID " - + " FROM A_DEPRECIATION_WORKFILE B, A_ASSET_ACCT A " - + " WHERE B.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A.A_ASSET_ID = " + p_A_ASSET_ID - + " AND B.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND A.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND A.A_ASSET_ACCT_ID = " + p_A_ASSET_ACCT_ID); - //System.out.println("MAN: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - if (rs.getString("A_DEPRECIATION_MANUAL_PERIOD").compareTo("PR")==0) - A_Period_Exp = rs.getBigDecimal("A_DEPRECIATION_MANUAL_AMOUNT"); - else if (rs.getString("A_DEPRECIATION_MANUAL_PERIOD").compareTo("YR")==0){ - if (p_A_CURRENT_PERIOD == -1){ - //System.out.println("MAN YR - A_CURRENT_PERIOD = -1 "); - StringBuffer sql3 = new StringBuffer("SELECT PeriodNo" - + " FROM C_Period WHERE C_Period_ID = 183 " - + " AND AD_Client_ID = ? "); - v_Dep_Mon = DB.getSQLValue(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else{ - //System.out.println("MAN YR - A_CURRENT_PERIOD = " + p_A_CURRENT_PERIOD); - v_Dep_Mon = (int)p_A_CURRENT_PERIOD - (int)(Math.ceil((double)p_A_CURRENT_PERIOD/12)*12-12) ; - } - //System.out.println("MAN v_Dep_Mon: "+v_Dep_Mon); - if (v_Dep_Mon==1){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_1" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==2){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_2" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==3){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_3" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==4){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_4" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==5){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_5" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==6){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_6" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==7){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_7" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==8){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_8" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==9){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_9" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==10){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_10" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==11) - { - StringBuffer sql3 = new StringBuffer("SELECT A_Period_11" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==12){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_12" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else if (v_Dep_Mon==13){ - StringBuffer sql3 = new StringBuffer("SELECT A_Period_13" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - else - { - StringBuffer sql3 = new StringBuffer("SELECT A_Period_14" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("A_ASSET_SPREAD_ID")); - //System.out.println("MAN YR - SpreadAmnt = " + sql3.toString()); - } - //System.out.println("MAN v_Dep_Sprd: "+v_Dep_Sprd); - A_Period_Exp = rs.getBigDecimal("A_DEPRECIATION_MANUAL_AMOUNT").multiply(v_Dep_Sprd); - } - - } - //System.out.println("MAN: "+A_Period_Exp); - return A_Period_Exp; - } - catch (Exception e) - { - System.out.println("MAN: "+e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return A_Period_Exp; - } - static public BigDecimal SL(int p_SL,int p_A_ASSET_ID, double p_A_CURRENT_PERIOD, String p_POSTINGTYPE, - int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - BigDecimal A_Period_Exp = new BigDecimal(0.0); - StringBuffer sqlB = new StringBuffer ("SELECT A_DEPRECIATION_WORKFILE.A_ASSET_COST, " - + " A_DEPRECIATION_WORKFILE.A_SALVAGE_VALUE, A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD" - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET_ACCT" - + " WHERE A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_ASSET_ACCT.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND A_ASSET_ACCT.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND A_ASSET_ACCT.A_ASSET_ACCT_ID = " + p_A_ASSET_ACCT_ID); - - //System.out.println("SL: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - A_Period_Exp = ((rs.getBigDecimal("A_ASSET_COST").subtract(rs.getBigDecimal("A_SALVAGE_VALUE"))).divide( rs.getBigDecimal("A_LIFE_PERIOD"),2, BigDecimal.ROUND_HALF_UP)); - } - return A_Period_Exp; - } - catch (Exception e) - { - System.out.println("SL: "+e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return A_Period_Exp; - } - - static public BigDecimal UOP(int p_SL,int p_A_ASSET_ID, int p_A_CURRENT_PERIOD, String p_POSTINGTYPE, - int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - BigDecimal A_Period_Exp = new BigDecimal(0.0); - StringBuffer sqlB = new StringBuffer ("SELECT A_DEPRECIATION_WORKFILE.A_ASSET_COST, " - + " A_DEPRECIATION_WORKFILE.A_SALVAGE_VALUE, A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD" - + " A_ASSET.LIFEUSEUNITS, A_ASSET.USEUNITS, A_DEPRECIATION_WORKFILE.A_ACCUMULATED_DEPR" - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET_ACCT" - + " WHERE A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_ASSET_ACCT.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND A_ASSET_ACCT.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND A_ASSET_ACCT.A_ASSET_ACCT_ID = " + p_A_ASSET_ACCT_ID); - //System.out.println("UOP: "+sqlB.toString()); - PreparedStatement pstmt = null; - ResultSet rs = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - A_Period_Exp = (rs.getBigDecimal("A_ASSET_COST").subtract(rs.getBigDecimal("A_SALVAGE_VALUE")) - .multiply(new BigDecimal(rs.getDouble("USEUNITS")/rs.getDouble("LIFEUSEUNITS"))) - .subtract(rs.getBigDecimal("A_ACCUMULATED_DEPR"))); - } - //System.out.println("UOP: "+A_Period_Exp); - return A_Period_Exp; - } - catch (Exception e) - { - System.out.println("UOP: "+e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return A_Period_Exp; - } - static public BigDecimal SYD(int p_SL,int p_A_ASSET_ID, double p_A_CURRENT_PERIOD, String p_POSTINGTYPE, int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - BigDecimal A_Period_Exp = new BigDecimal(0.0); - StringBuffer sqlB = new StringBuffer ("SELECT A_DEPRECIATION_WORKFILE.A_ASSET_COST, " - + " A_DEPRECIATION_WORKFILE.A_SALVAGE_VALUE, A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD, " - + " A_DEPRECIATION_WORKFILE.A_ASSET_LIFE_CURRENT_YEAR, A_DEPRECIATION_WORKFILE.A_ASSET_LIFE_YEARS, " - + " A_ASSET.ASSETSERVICEDATE, A_DEPRECIATION_BUILD.DATEACCT" - + " FROM A_DEPRECIATION_WORKFILE, A_ASSET_ACCT, A_ASSET, A_DEPRECIATION_BUILD" - + " WHERE A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_ASSET_ACCT.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_ASSET.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_PERIOD_POSTED+1 >= A_PERIOD_START AND A_PERIOD_POSTED+1 <= A_PERIOD_END " - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND A_ASSET_ACCT.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND A_ASSET_ACCT.A_ASSET_ACCT_ID = " + p_A_ASSET_ACCT_ID); - - //System.out.println("SYD: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - int v_life_current_year = (int)(p_A_CURRENT_PERIOD/(12))+1; - - - A_Period_Exp = ((rs.getBigDecimal("A_ASSET_COST").subtract(rs.getBigDecimal("A_SALVAGE_VALUE"))) - .multiply(new BigDecimal(2*(rs.getInt("A_ASSET_LIFE_YEARS")-v_life_current_year+1))) - .divide(new BigDecimal(rs.getInt("A_ASSET_LIFE_YEARS")*(rs.getInt("A_ASSET_LIFE_YEARS")+1)),2, BigDecimal.ROUND_HALF_UP)); - A_Period_Exp = A_Period_Exp.divide(new BigDecimal(12.0),2, BigDecimal.ROUND_HALF_UP); - - } - //System.out.println("SYD: "+A_Period_Exp); - return A_Period_Exp; - } - catch (Exception e) - { - System.out.println("SYD: "+e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return A_Period_Exp; - } - - static public BigDecimal TAB(int p_SL,int p_A_ASSET_ID, double p_A_CURRENT_PERIOD, String p_POSTINGTYPE, - int p_A_ASSET_ACCT_ID, BigDecimal p_Accum_Dep) - { - BigDecimal A_Period_Exp = new BigDecimal(0.0); - BigDecimal v_Dep_Rate = new BigDecimal(0.0); - BigDecimal v_Dep_Sprd = new BigDecimal(0.0); - int v_Dep_Mon = 0; - int v_Dep_Per = 0; - StringBuffer sqlB = new StringBuffer ("SELECT A.A_ASSET_COST, A.A_SALVAGE_VALUE, A.A_LIFE_PERIOD," - + " B.A_DEPRECIATION_TABLE_HEADER_ID, A.AD_Client_ID, C.A_TERM, C.A_Depreciation_Table_Code " - + " FROM A_DEPRECIATION_WORKFILE A, A_ASSET_ACCT B, A_Depreciation_Table_Header C" - + " WHERE A.A_ASSET_ID = " + p_A_ASSET_ID - + " AND B.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND B.POSTINGTYPE = '"+p_POSTINGTYPE - + "' AND B.A_ASSET_ACCT_ID = " + p_A_ASSET_ACCT_ID - + "' AND C.A_DEPRECIATION_TABLE_HEADER_ID = A_DEPRECIATION_TABLE_HEADER_ID"); - - //System.out.println("TAB: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - ResultSet rs = null; - try { - rs = pstmt.executeQuery(); - while (rs.next()){ - - - if (rs.getString("A_TERM").compareTo("PR")==0){ - StringBuffer sql3 = new StringBuffer("SELECT A_Depreciation_Rate" - + " FROM A_Depreciation_Table_Detail WHERE A_DEPRECIATION_TABLE_CODE = " + rs.getString("A_Depreciation_Table_Code") - + " AND A_Period = ? "); - v_Dep_Rate = DB.getSQLValueBD(null, sql3.toString(), (int)p_A_CURRENT_PERIOD); - A_Period_Exp = (rs.getBigDecimal("A_ASSET_COST").subtract(rs.getBigDecimal("A_SALVAGE_VALUE")).multiply(v_Dep_Rate)); - } - else if (rs.getString("A_TERM").compareTo("YR")==0){ - StringBuffer sql3 = new StringBuffer("SELECT A_Depreciation_Rate" - + " FROM A_Depreciation_Table_Detail WHERE A_DEPRECIATION_TABLE_CODE = " + rs.getString("A_Depreciation_Table_Code") - + " AND A_Period = ? "); - v_Dep_Rate = DB.getSQLValueBD(null, sql3.toString(), (int)(Math.ceil((double)p_A_CURRENT_PERIOD+1)/12)); - - sql3 = new StringBuffer("SELECT C_Period_ID" - + " FROM A_Depreciation_Build "); - v_Dep_Per = DB.getSQLValue(null, sql3.toString()); - - if (p_A_CURRENT_PERIOD == -1){ - sql3 = new StringBuffer("SELECT PeriodNo" - + " FROM C_Period WHERE C_Period_ID = " + v_Dep_Per - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else - - v_Dep_Mon = (int)p_A_CURRENT_PERIOD - (int)(Math.ceil((double)p_A_CURRENT_PERIOD)/12*12-12) ; - - if (v_Dep_Mon==1){ - sql3 = new StringBuffer("SELECT A_Period_1" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==2){ - sql3 = new StringBuffer("SELECT A_Period_2" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==3){ - sql3 = new StringBuffer("SELECT A_Period_3" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==4){ - sql3 = new StringBuffer("SELECT A_Period_4" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==5){ - sql3 = new StringBuffer("SELECT A_Period_5" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==6){ - sql3 = new StringBuffer("SELECT A_Period_6" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==7){ - sql3 = new StringBuffer("SELECT A_Period_7" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==8){ - sql3 = new StringBuffer("SELECT A_Period_8" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==9){ - sql3 = new StringBuffer("SELECT A_Period_9" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==10){ - sql3 = new StringBuffer("SELECT A_Period_10" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==11){ - sql3 = new StringBuffer("SELECT A_Period_11" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==12){ - sql3 = new StringBuffer("SELECT A_Period_12" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else if (v_Dep_Mon==13){ - sql3 = new StringBuffer("SELECT A_Period_13" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - else{ - sql3 = new StringBuffer("SELECT A_Period_14" - + " FROM A_Asset_Spread WHERE A_Asset_Spread_ID = " + rs.getString("A_Depreciation_Table_Code") - + " AND AD_Client_ID = ? "); - v_Dep_Sprd = DB.getSQLValueBD(null, sql3.toString(), rs.getInt("AD_Client_ID")); - } - - A_Period_Exp = (rs.getBigDecimal("A_ASSET_COST").subtract(rs.getBigDecimal("A_SALVAGE_VALUE")).multiply(v_Dep_Rate).multiply(v_Dep_Sprd)); - } - - } - //System.out.println("TAB: "+A_Period_Exp); - return A_Period_Exp; - } - catch (Exception e) - { - System.out.println("TAB: "+e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - - } - return A_Period_Exp; - } - - }// Depreciation diff --git a/org.adempiere.base/src/org/compiere/FA/DepreciationAdj.java b/org.adempiere.base/src/org/compiere/FA/DepreciationAdj.java deleted file mode 100644 index 6c5a317bc8..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/DepreciationAdj.java +++ /dev/null @@ -1,149 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert Klein. robeklein@hotmail.com - * _____________________________________________ - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; - -import org.compiere.util.DB; -/** - * Fixed Asset Depreciation - * - * @author Rob Klein - * @version $Id: Conventions.java,v 1.0 $ - * - */ -public class DepreciationAdj { - - /** - * - * - */ - static public BigDecimal Dep_Adj(String Type, int p_A_ASSET_ID, BigDecimal p_A_ASSET_ADJUSTMENT, double p_A_PERIODNO, - String p_POSTINGTYPE,int p_A_ASSET_ACCT_ID) - { - BigDecimal A_Dep_Adj = new BigDecimal(0.0); - if(Type.compareTo("MDI")==0){ - A_Dep_Adj = MDI( p_A_ASSET_ID, p_A_ASSET_ADJUSTMENT, p_A_PERIODNO, - p_POSTINGTYPE, p_A_ASSET_ACCT_ID); - //System.out.println("MDI Main: "+A_Dep_Adj); - return A_Dep_Adj; - } - else if(Type.compareTo("LDI")==0){ - A_Dep_Adj = LDI( p_A_ASSET_ID, p_A_ASSET_ADJUSTMENT, p_A_PERIODNO, - p_POSTINGTYPE, p_A_ASSET_ACCT_ID); - //System.out.println("LDI Main: "+A_Dep_Adj); - return A_Dep_Adj; - } - else if(Type.compareTo("YDI")==0){ - A_Dep_Adj = YDI( p_A_ASSET_ID, p_A_ASSET_ADJUSTMENT, p_A_PERIODNO, - p_POSTINGTYPE, p_A_ASSET_ACCT_ID); - //System.out.println("YDI Main: "+A_Dep_Adj); - return A_Dep_Adj; - } - else - return new BigDecimal(0.0); - - } - - - static public BigDecimal LDI( int p_A_ASSET_ID, BigDecimal p_A_ASSET_ADJUSTMENT, double p_A_PERIODNO, - String p_POSTINGTYPE,int p_A_ASSET_ACCT_ID) - { - - BigDecimal A_Dep_Adj = new BigDecimal(0.0); - - StringBuffer sqlB = new StringBuffer ("SELECT A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD, A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED" - + " FROM A_DEPRECIATION_WORKFILE" - + " WHERE A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + p_POSTINGTYPE +"'"); - - //System.out.println("LDI: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()){ - A_Dep_Adj = p_A_ASSET_ADJUSTMENT.divide(new BigDecimal(rs.getDouble("A_LIFE_PERIOD")-rs.getDouble("A_PERIOD_POSTED")+1),2, BigDecimal.ROUND_HALF_UP); - - } - //System.out.println("LDI: "+A_Period_Exp); - return A_Dep_Adj; - } - catch (Exception e) - { - System.out.println("LDI: "+e); - } - finally - { - try - { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e) - {} - pstmt = null; - } - return A_Dep_Adj; - } - - static public BigDecimal MDI( int p_A_ASSET_ID, BigDecimal p_A_ASSET_ADJUSTMENT, double p_A_PERIODNO, - String p_POSTINGTYPE,int p_A_ASSET_ACCT_ID) - { - return p_A_ASSET_ADJUSTMENT; - } - - static public BigDecimal YDI( int p_A_ASSET_ID, BigDecimal p_A_ASSET_ADJUSTMENT, double p_A_PERIODNO, - String p_POSTINGTYPE,int p_A_ASSET_ACCT_ID) - { - - BigDecimal A_Dep_Adj = new BigDecimal(0.0); - - StringBuffer sqlB = new StringBuffer ("SELECT A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD, A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED" - + " FROM A_DEPRECIATION_WORKFILE" - + " WHERE A_DEPRECIATION_WORKFILE.A_ASSET_ID = " + p_A_ASSET_ID - + " AND A_DEPRECIATION_WORKFILE.POSTINGTYPE = '" + p_POSTINGTYPE +"'"); - - //System.out.println("DB150: "+sqlB.toString()); - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlB.toString(),null); - try { - ResultSet rs = pstmt.executeQuery(); - while (rs.next()){ - A_Dep_Adj = p_A_ASSET_ADJUSTMENT.divide(new BigDecimal(12-p_A_PERIODNO),2, BigDecimal.ROUND_HALF_UP); - } - //System.out.println("LDI: "+A_Period_Exp); - return A_Dep_Adj; - } - catch (Exception e) - { - System.out.println("LDI: "+e); - } - finally - { - try - { - if (pstmt != null) - pstmt.close (); - } - catch (Exception e) - {} - pstmt = null; - } - return A_Dep_Adj; - } - - }// Depreciation diff --git a/org.adempiere.base/src/org/compiere/FA/I_CustomColumn.java b/org.adempiere.base/src/org/compiere/FA/I_CustomColumn.java deleted file mode 100644 index 2c05fc50a8..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/I_CustomColumn.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.compiere.FA; - -/** - * Column name constant for fixed asset customization to core tables. - * @author Low Heng Sin - * - */ -public interface I_CustomColumn { - - public final static String A_Asset_Group_ID = "A_Asset_Group_ID"; - public final static String A_Processed = "A_Processed"; -} diff --git a/org.adempiere.base/src/org/compiere/FA/ImportAsset.java b/org.adempiere.base/src/org/compiere/FA/ImportAsset.java deleted file mode 100644 index 7af976fa6c..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/ImportAsset.java +++ /dev/null @@ -1,485 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; - -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; - -/** - * Import Assets - * - * @author Rob Klein - * @version $Id: ImportAsset.java,v 1.0 $ - */ -public class ImportAsset extends SvrProcess -{ - /** - * Import Asset - */ - public ImportAsset() - { - super(); - - } // ImportAsset - - /** Client to be imported to */ - private int m_AD_Client_ID = 0; - /** Delete old Imported */ - private boolean m_deleteOldImported = false; - - /** Organization to be imported to */ - private int m_AD_Org_ID = 0; - /** Effective */ - private Timestamp m_DateValue = null; - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - if (name.equals("AD_Client_ID")) - m_AD_Client_ID = (para[i].getParameterAsInt()); - else if (name.equals("DeleteOldImported")) - m_deleteOldImported = "Y".equals(para[i].getParameter()); - else - log.info("ImportAsset.prepare - Unknown Parameter: " + name); - } - m_DateValue = new Timestamp (System.currentTimeMillis()); - //java.util.Date today = new java.util.Date(); - //m_DateValue = new java.sql.Date(today.getTime()); - - } // prepare - - - /** - * Perform process. - * @return Message - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - StringBuffer sql = null; - int no = 0; - String clientCheck = " AND AD_Client_ID=" + m_AD_Client_ID; - - // **** Prepare **** - - // Delete Old Imported - /**if (m_deleteOldImported) - { - sql = new StringBuffer ("DELETE I_Asset " - + "WHERE I_IsImported='Y'").append(clientCheck); - no = DB.executeUpdate(sql.toString()); - }**/ - - // Set Client, Org, IaActive, Created/Updated, ProductType - sql = new StringBuffer ("UPDATE I_Asset " - + "SET AD_Client_ID = COALESCE (AD_Client_ID, ").append(m_AD_Client_ID).append(")," - + " AD_Org_ID = COALESCE (AD_Org_ID, 0)," - + " IsActive = COALESCE (IsActive, 'Y')," - + " CreatedBy = COALESCE (CreatedBy, 0)," - + " UpdatedBy = COALESCE (UpdatedBy, 0)," - + " I_ErrorMsg = NULL," - + " I_IsImported = 'N' " - + "WHERE I_IsImported<>'Y' OR I_IsImported IS NULL"); - no = DB.executeUpdate(sql.toString(),null); - - - // Set Currency - /**sql = new StringBuffer ("UPDATE I_Asset i " - + "SET ISO_Code=(SELECT ISO_Code FROM C_Currency c" - + " INNER JOIN C_AcctSchema a ON (a.C_Currency_ID=c.C_Currency_ID)" - + " INNER JOIN AD_ClientInfo ci ON (a.C_AcctSchema_ID=ci.C_AcctSchema1_ID)" - + " WHERE ci.AD_Client_ID=i.AD_Client_ID) " - + "WHERE C_Currency_ID IS NULL AND ISO_Code IS NULL" - + " AND I_IsImported<>'Y'").append(clientCheck); - no = DB.executeUpdate(sql.toString()); - Log.trace(Log.l5_DData, "ImportAsset.doIt", "Set Currency Default=" + no); - // - sql = new StringBuffer ("UPDATE I_Asset i " - + "SET C_Currency_ID=(SELECT C_Currency_ID FROM C_Currency c" - + " WHERE i.ISO_Code=c.ISO_Code AND c.AD_Client_ID IN (0,i.AD_Client_ID)) " - + "WHERE C_Currency_ID IS NULL" - + " AND I_IsImported<>'Y'").append(clientCheck); - no = DB.executeUpdate(sql.toString()); - Log.trace(Log.l5_DData, "ImportAsset.doIt", "Set Currency=" + no); - // - sql = new StringBuffer ("UPDATE I_Asset " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Currency,' " - + "WHERE C_Currency_ID IS NULL" - + " AND I_IsImported<>'Y'").append(clientCheck); - no = DB.executeUpdate(sql.toString()); - Log.trace(Log.l3_Util, "ImportAsset.doIt", "Invalid Currency=" + no); - **/ - - // ------------------------------------------------------------------- - int noInsert = 0; - int noUpdate = 0; - //int noInsertPO = 0; - //int noUpdatePO = 0; - - // Go through Records - sql = new StringBuffer ("SELECT I_Asset_ID, A_Asset_ID " - + "FROM I_Asset WHERE I_IsImported='N'").append(clientCheck).append(" Order By I_Asset_ID"); -// Connection conn = DB.createConnection(false, Connection.TRANSACTION_READ_COMMITTED); - try - { - // Insert Asset from Import - StringBuffer sqlA = new StringBuffer ("INSERT INTO A_Asset (A_Asset_ID," - + "AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy," - + "Value,Name,Description,Help," - + "A_Asset_Group_ID,M_Product_ID,SerNo,LOT,VersionNo,GuaranteeDate," - + "AssetServiceDate,IsOwned,AssetDepreciationDate, UseLifeYears, UseLifeMonths," - + "LifeUseUnits, UseUnits, Isdisposed, AssetDisposalDate, IsInPosession," - + "LocationComment, M_Locator_ID, C_BPartner_ID, C_BPartner_Location_ID," - + "C_Location_ID, IsDepreciated, IsFullyDepreciated, AD_User_ID," - + "M_AttributeSetInstance_ID, A_Parent_Asset_ID, A_QTY_Original," - + "A_QTY_Current) " - + "SELECT ?," - + "AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy," - + "Value,Name,Description,Help," - + "A_Asset_Group_ID,M_Product_ID,SerNo,LOT,VersionNo,GuaranteeDate," - + "AssetServiceDate,IsOwned,AssetDepreciationDate, UseLifeYears, UseLifeMonths," - + "LifeUseUnits, UseUnits, Isdisposed, AssetDisposalDate, IsInPosession," - + "LocationComment, M_Locator_ID, C_BPartner_ID, C_BPartner_Location_ID," - + "C_Location_ID, IsDepreciated, IsFullyDepreciated, AD_User_ID," - + "M_AttributeSetInstance_ID, A_Parent_Asset_ID, A_QTY_Original," - + "A_QTY_Current " - + "FROM I_Asset " - + "WHERE I_Asset_ID=?"); - PreparedStatement pstmt_insertProduct = DB.prepareStatement(sqlA.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_UPDATABLE, null); - - // Update Assets from Import - StringBuffer sqlB = new StringBuffer ("UPDATE A_Asset " - + "SET (A_Asset_ID," - + "AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy," - + "Value,Name,Description,Help," - + "A_Asset_Group_ID,M_Product_ID,SerNo,LOT,VersionNo,GuaranteeDate," - + "AssetServiceDate,IsOwned,AssetDepreciationDate, UseLifeYears, UseLifeMonths," - + "LifeUseUnits, UseUnits, Isdisposed, AssetDisposalDate, IsInPosession," - + "LocationComment, M_Locator_ID, C_BPartner_ID, C_BPartner_Location_ID," - + "C_Location_ID, IsDepreciated, IsFullyDepreciated, AD_User_ID," - + "M_AttributeSetInstance_ID, A_Parent_Asset_ID, A_QTY_Original," - + "A_QTY_Current) = " - + "(SELECT A_Asset_ID," - + "AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy," - + "Value,Name,Description,Help," - + "A_Asset_Group_ID,M_Product_ID,SerNo,LOT,VersionNo,GuaranteeDate," - + "AssetServiceDate,IsOwned,AssetDepreciationDate, UseLifeYears, UseLifeMonths," - + "LifeUseUnits, UseUnits, Isdisposed, AssetDisposalDate, IsInPosession," - + "LocationComment, M_Locator_ID, C_BPartner_ID, C_BPartner_Location_ID," - + "C_Location_ID, IsDepreciated, IsFullyDepreciated, AD_User_ID," - + "M_AttributeSetInstance_ID, A_Parent_Asset_ID, A_QTY_Original," - + "A_QTY_Current " - + "FROM I_Asset " - + "WHERE I_Asset_ID=?) " - + "WHERE A_Asset_ID=?"); - PreparedStatement pstmt_updateProduct = DB.prepareStatement(sqlB.toString(), ResultSet.TYPE_SCROLL_SENSITIVE, - ResultSet.CONCUR_UPDATABLE, null); - - // Insert Asset Accounts from Import - StringBuffer sqlC = new StringBuffer ("INSERT INTO A_Asset_Acct (" - + "A_ASSET_ID, C_ACCTSCHEMA_ID, AD_CLIENT_ID," - + "AD_ORG_ID,ISACTIVE, CREATED, CREATEDBY, UPDATED ,UPDATEDBY," - + "A_DEPRECIATION_ID, A_DEPRECIATION_ACCT, A_ACCUMDEPRECIATION_ACCT," - + "A_DISPOSAL_LOSS, A_DISPOSAL_REVENUE, A_ASSET_ACCT,A_ASSET_SPREAD_ID," - + "A_DEPRECIATION_METHOD_ID,A_PERIOD_START,A_PERIOD_END, A_DEPRECIATION_CONV_ID," - + "A_SALVAGE_VALUE, POSTINGTYPE, A_SPLIT_PERCENT, A_DEPRECIATION_MANUAL_AMOUNT, " - + "A_DEPRECIATION_MANUAL_PERIOD, A_DEPRECIATION_VARIABLE_PERC, A_ASSET_ACCT_ID) " - + "SELECT ?,C_ACCTSCHEMA_ID," - + "AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy," - + "DEPRECIATIONTYPE, A_DEPRECIATION_ACCT, A_ACCUMDEPRECIATION_ACCT," - + "A_DISPOSAL_LOSS, A_DISPOSAL_REVENUE, A_ASSET_ACCT,A_ASSET_SPREAD_TYPE," - + "A_DEPRECIATION_CALC_TYPE,A_PERIOD_START,A_PERIOD_END, CONVENTIONTYPE," - + "A_SALVAGE_VALUE, POSTINGTYPE, A_SPLIT_PERCENT, A_DEPRECIATION_MANUAL_AMOUNT," - + "A_DEPRECIATION_MANUAL_PERIOD, A_DEPRECIATION_VARIABLE_PERC, ? " - + "FROM I_Asset " - + "WHERE I_Asset_ID=?"); - PreparedStatement pstmt_insertAssetAcct = DB.prepareStatement(sqlC.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_UPDATABLE, null); - - // Insert Asset Balances from Import - StringBuffer sqlD = new StringBuffer ("INSERT INTO A_DEPRECIATION_WORKFILE (" - + "A_DEPRECIATION_WORKFILE_ID, AD_CLIENT_ID, AD_ORG_ID, ISACTIVE," - + "CREATED, CREATEDBY, UPDATED, UPDATEDBY, A_ASSET_ID, A_ASSET_COST," - + "A_ACCUMULATED_DEPR, A_CALC_ACCUMULATED_DEPR, A_LIFE_PERIOD," - + "A_PERIOD_POSTED, A_CURRENT_PERIOD, A_PRIOR_YEAR_ACCUMULATED_DEPR," - + "A_BASE_AMOUNT, A_SALVAGE_VALUE, A_CURR_DEP_EXP, A_ASSET_LIFE_YEARS," - + "A_ASSET_LIFE_CURRENT_YEAR, ISDEPRECIATED, POSTINGTYPE, A_QTY_CURRENT" - + ")" - + "SELECT " - + "?, AD_CLIENT_ID, AD_ORG_ID, ISACTIVE," - + "CREATED, CREATEDBY, UPDATED, UPDATEDBY, ?, A_ASSET_COST," - + "A_ACCUMULATED_DEPR, A_CALC_ACCUMULATED_DEPR, A_LIFE_PERIOD," - + "A_PERIOD_POSTED, A_CURRENT_PERIOD, A_PRIOR_YEAR_ACCUMULATED_DEPR," - + "A_BASE_AMOUNT, A_SALVAGE_VALUE, A_CURR_DEP_EXP, A_ASSET_LIFE_YEARS," - + "A_ASSET_LIFE_CURRENT_YEAR, ISDEPRECIATED, POSTINGTYPE, A_QTY_CURRENT" - + " " - + "FROM I_Asset " - + "WHERE I_Asset_ID=?"); - PreparedStatement pstmt_insertAssetBal = DB.prepareStatement(sqlD.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_UPDATABLE, null); - - // Insert Asset Additions from Import - StringBuffer sqlE = new StringBuffer ("INSERT INTO A_Asset_Addition (" - + " A_ASSET_ADDITION_ID, AD_CLIENT_ID, AD_ORG_ID, ISACTIVE," - + " CREATED, CREATEDBY, UPDATED, UPDATEDBY, A_ASSET_ID," - + " ASSETVALUEAMT, DESCRIPTION, M_INOUTLINE_ID, " - + " POSTINGTYPE, A_QTY_CURRENT, A_SOURCETYPE, A_CAPVSEXP) " - + "SELECT " - + " ?, AD_CLIENT_ID, AD_ORG_ID, ISACTIVE," - + " CREATED, CREATEDBY, UPDATED, UPDATEDBY, ?," - + " A_ASSET_COST, 'Imported Asset', '1', " - + " POSTINGTYPE, A_QTY_CURRENT, 'IMP', 'Cap' " - + "FROM I_Asset " - + "WHERE I_Asset_ID=?"); - PreparedStatement pstmt_insertAssetAdd = DB.prepareStatement(sqlE.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_UPDATABLE, null); - - // Insert Asset Additions from Import - StringBuffer sqlF = new StringBuffer ("INSERT INTO A_Asset_Change (" - + "A_ASSET_CHANGE_ID, AD_CLIENT_ID, AD_ORG_ID, ISACTIVE, " - + "CREATED, CREATEDBY, UPDATED, UPDATEDBY, A_ASSET_ID, " - + "CHANGETYPE, USELIFEYEARS, " - + "USELIFEMONTHS, LIFEUSEUNITS, ASSETDEPRECIATIONDATE, " - + "A_ASSET_ADDITION_ID, SERNO," - + "LOT, VERSIONNO, ASSETACCUMDEPRECIATIONAMT, TEXTDETAILS, " - + "ASSETSERVICEDATE, ASSETBOOKVALUEAMT, ASSETMARKETVALUEAMT, " - + "ASSETVALUEAMT, ASSETDISPOSALDATE, A_PARENT_ASSET_ID, " - + "C_BPARTNER_ID, C_BPARTNER_LOCATION_ID, C_LOCATION_ID, " - + "A_DEPRECIATION_ACCT, A_ACCUMDEPRECIATION_ACCT, A_DISPOSAL_LOSS, " - + "A_DISPOSAL_REVENUE, A_ASSET_ACCT, A_ASSET_SPREAD_TYPE, " - + "A_DEPRECIATION_CALC_TYPE, A_PERIOD_START, A_PERIOD_END, " - + "A_SALVAGE_VALUE, POSTINGTYPE, A_ASSET_ACCT_ID, CONVENTIONTYPE, " - + "A_SPLIT_PERCENT, DEPRECIATIONTYPE, A_QTY_CURRENT, ISDEPRECIATED, " - + "ISFULLYDEPRECIATED, ISINPOSESSION, ISDISPOSED, ISOWNED) " - + "SELECT " - + "?, AD_CLIENT_ID, AD_ORG_ID, ISACTIVE, " - + "CREATED, CREATEDBY, UPDATED, UPDATEDBY, ?, " - + "'IMP', USELIFEYEARS, " - + "USELIFEMONTHS, LIFEUSEUNITS, ASSETDEPRECIATIONDATE, " - + "?, SERNO, " - + "LOT, VERSIONNO, A_ACCUMULATED_DEPR, 'Imported Fixed Asset', " - + "ASSETSERVICEDATE, A_BASE_AMOUNT, ASSETMARKETVALUEAMT, " - + "A_ASSET_COST, ASSETDISPOSALDATE, A_PARENT_ASSET_ID, " - + "C_BPARTNER_ID, C_BPARTNER_LOCATION_ID, C_LOCATION_ID, " - + "A_DEPRECIATION_ACCT, A_ACCUMDEPRECIATION_ACCT, A_DISPOSAL_LOSS, " - + "A_DISPOSAL_REVENUE, A_ASSET_ACCT, A_ASSET_SPREAD_TYPE, " - + "A_DEPRECIATION_CALC_TYPE, A_PERIOD_START, A_PERIOD_END, " - + "A_SALVAGE_VALUE, POSTINGTYPE, ?, CONVENTIONTYPE, " - + "A_SPLIT_PERCENT, DEPRECIATIONTYPE, A_QTY_CURRENT, ISDEPRECIATED, " - + "ISFULLYDEPRECIATED, ISINPOSESSION, ISDISPOSED, ISOWNED " - + "FROM I_Asset " - + "WHERE I_Asset_ID=?"); - PreparedStatement pstmt_insertAssetChg = DB.prepareStatement(sqlF.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_UPDATABLE, null); -/* - // Update Asset Accounts from Import - PreparedStatement pstmt_updateAssetAcct = conn.prepareStatement - ("UPDATE A_Asset_Acct " - + "SET(" - + "A_ASSET_ID, C_ACCTSCHEMA_ID, AD_CLIENT_ID" - + "AD_ORG_ID,ISACTIVE, CREATED, CREATEDBY, UPDATED ,UPDATEDBY" - + "A_DEPRECIATION_ID, A_DEPRECIATION_ACCT, A_ACCUMDEPRECIATION_ACCT" - + "A_DISPOSAL_LOSS, A_DISPOSAL_REVENUE, A_ASSET_ACCT,A_ASSET_SPREAD_ID" - + "A_DEPRECIATION_METHOD_ID,A_PERIOD_START,A_PERIOD_END" - + "A_SALVAGE_VALUE, POSTINGTYPE, A_SPLIT_PERCENT) = " - + "(SELECT ?,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy," - + "DEPRECIATIONTYPE, A_DEPRECIATION_ACCT, A_ACCUMDEPRECIATION_ACCT" - + "A_DISPOSAL_LOSS, A_DISPOSAL_REVENUE, A_ASSET_ACCT,A_ASSET_SPREAD_TYPE" - + "A_DEPRECIATION_METHOD_ID,A_PERIOD_START,A_PERIOD_END" - + "A_SALVAGE_VALUE, POSTINGTYPE, A_SPLIT_PERCENT" - + "FROM I_Asset " - + "WHERE I_Asset_ID=?) " - + "WHERE A_Asset_ID=?"); - -*/ - // Set Imported = Y - PreparedStatement pstmt_setImported = DB.prepareStatement - ("UPDATE I_Asset SET I_IsImported='Y', " - //+ "Updated= TO_DATE('"+m_DateValue+"','YYYY-MM-DD HH24:MI:SS.FFF') " - + "Processed='Y' WHERE I_Asset_ID=?",ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_UPDATABLE, null); - - // - PreparedStatement pstmt = DB.prepareStatement(sql.toString(),ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_UPDATABLE, null); - ResultSet rs = pstmt.executeQuery(); - int x = 0; - - while (rs.next()) - { - x=x+1; - - int I_Asset_ID = rs.getInt(1); - int A_Asset_ID = rs.getInt(2); - int A_Asset_Acct_ID = 0; - int A_DEPRECIATION_WORKFILE_ID = 0; - int A_ASSET_ADDITION_ID = 0; - int A_ASSET_CHANGE_ID = 0; - boolean newAsset = true; - - if (A_Asset_ID == 0) - { - A_Asset_ID = DB.getNextID(m_AD_Client_ID, "A_Asset", null); - A_Asset_Acct_ID = DB.getNextID(m_AD_Client_ID, "A_Asset_Acct", null); - A_DEPRECIATION_WORKFILE_ID = DB.getNextID(m_AD_Client_ID, "A_Depreciation_Workfile", null); - A_ASSET_ADDITION_ID = DB.getNextID(m_AD_Client_ID, "A_Asset_Addition", null); - A_ASSET_CHANGE_ID = DB.getNextID(m_AD_Client_ID, "A_Asset_Change", null); - - newAsset = true; - } - else - { - - // Check to see if Asset_ID exists - int found = DB.getSQLValue(null,"SELECT COUNT(*) FROM A_ASSET WHERE A_ASSET_ID = " + A_Asset_ID + clientCheck); - if (found == 0) - { - - newAsset = true; - A_DEPRECIATION_WORKFILE_ID = DB.getNextID(m_AD_Client_ID, "A_Depreciation_Workfile", null); - A_ASSET_ADDITION_ID = DB.getNextID(m_AD_Client_ID, "A_Asset_Addition", null); - A_ASSET_CHANGE_ID = DB.getNextID(m_AD_Client_ID, "A_Asset_Change", null); - A_Asset_Acct_ID = DB.getNextID(m_AD_Client_ID, "A_Asset_Acct", null); - } - else - { - - newAsset = false; - } - } - - - // Product - if (newAsset) // Insert new Asset - { - - pstmt_insertProduct.setInt(1, A_Asset_ID); - pstmt_insertProduct.setInt(2, I_Asset_ID); - - pstmt_insertAssetAcct.setInt(1, A_Asset_ID); - pstmt_insertAssetAcct.setInt(2, A_Asset_Acct_ID); - pstmt_insertAssetAcct.setInt(3, I_Asset_ID); - - pstmt_insertAssetBal.setInt(1, A_DEPRECIATION_WORKFILE_ID); - pstmt_insertAssetBal.setInt(2, A_Asset_ID); - pstmt_insertAssetBal.setInt(3, I_Asset_ID); - - pstmt_insertAssetAdd.setInt(1, A_ASSET_ADDITION_ID); - pstmt_insertAssetAdd.setInt(2, A_Asset_ID); - pstmt_insertAssetAdd.setInt(3, I_Asset_ID); - - pstmt_insertAssetChg.setInt(1, A_ASSET_CHANGE_ID); - pstmt_insertAssetChg.setInt(2, A_Asset_ID); - pstmt_insertAssetChg.setInt(3, A_ASSET_ADDITION_ID); - pstmt_insertAssetChg.setInt(4, A_Asset_Acct_ID); - pstmt_insertAssetChg.setInt(5, I_Asset_ID); - - try - { - - no = pstmt_insertProduct.executeUpdate(); - no = pstmt_insertAssetAcct.executeUpdate(); - no = pstmt_insertAssetBal.executeUpdate(); - no = pstmt_insertAssetAdd.executeUpdate(); - no = pstmt_insertAssetChg.executeUpdate(); - - noInsert++; - } - catch (SQLException ex) - { - - sql = new StringBuffer ("UPDATE I_Asset " - + "SET I_IsImported='E', I_ErrorMsg=").append(DB.TO_STRING("Insert Asset: " + ex.toString())) - .append(" WHERE I_Asset_ID=").append(I_Asset_ID); - - DB.executeUpdate(sql.toString(),null); - continue; - } - } - else // Update Asset - { - - pstmt_updateProduct.setInt(1, I_Asset_ID); - pstmt_updateProduct.setInt(2, A_Asset_ID); - - try - { - //String sqlcall = "UPDATE A_Asset SET(AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Value,Name,Description,Help,A_Asset_Group_ID,M_Product_ID,SerNo,LOT,VersionNo,GuaranteeDate,AssetServiceDate,IsOwned,AssetDepreciationDate, UseLifeYears, UseLifeMonths,LifeUseUnits, UseUnits, Isdisposed, AssetDisposalDate, IsInPosession,LocationComment, M_Locator_ID, C_BPartner_ID, C_BPartner_Location_ID,C_Location_ID, IsDepreciated, IsFullyDepreciated, AD_User_ID,M_AttributeSetInstance_ID, A_Parent_Asset_ID, A_QTY_Original,A_QTY_Current) = (SELECT AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Value,Name,Description,Help,A_Asset_Group_ID,M_Product_ID,SerNo,LOT,VersionNo,GuaranteeDate,AssetServiceDate,IsOwned,AssetDepreciationDate, UseLifeYears, UseLifeMonths,LifeUseUnits, UseUnits, Isdisposed, AssetDisposalDate, IsInPosession,LocationComment, M_Locator_ID, C_BPartner_ID, C_BPartner_Location_ID,C_Location_ID, IsDepreciated, IsFullyDepreciated, AD_User_ID,M_AttributeSetInstance_ID, A_Parent_Asset_ID, A_QTY_Original,A_QTY_Current FROM I_Asset WHERE I_Asset_ID=1000000) WHERE A_Asset_ID=2005000"; - //pstmt_updateProduct = prepareStatement(sqlB.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE, null); - pstmt_updateProduct.executeUpdate(); - noUpdate++; - } - catch (SQLException ex) - { - - sql = new StringBuffer ("UPDATE I_Asset " - + "SET I_IsImported='E', I_ErrorMsg=").append(DB.TO_STRING("Update Asset: " + ex.toString())) - .append(" WHERE I_Asset_ID=").append(I_Asset_ID); - //DB.executeUpdate(sql.toString()); - continue; - } - } - pstmt_setImported.setInt(1, I_Asset_ID); - no = pstmt_setImported.executeUpdate(); - //conn.commit(); - } // for all I_Asset - rs.close(); - pstmt.close(); - - // - pstmt_insertProduct.close(); - pstmt_updateProduct.close(); - pstmt_setImported.close(); - // - //conn.close(); - //conn = null; - } - catch (SQLException e) - { - - throw new Exception ("ImportAsset3.doIt", e); - } - finally - { - ; - } - - - // Set Error to indicator to not imported - sql = new StringBuffer ("UPDATE I_Asset " - + "SET I_IsImported='N' " - //+ "Updated= TO_DATE('"+m_DateValue+"','YYYY-MM-DD HH24:MI:SS.FFF') " - + "WHERE I_IsImported<>'Y'").append(clientCheck); - no = DB.executeUpdate(sql.toString(),null); - addLog (0, null, new BigDecimal (no), "@Errors@"); - addLog (0, null, new BigDecimal (noInsert), "@A_Asset_ID@: @Inserted@"); - addLog (0, null, new BigDecimal (noUpdate), "@A_Asset_ID@: @Updated@"); - return ""; - } // doIt - -} // ImportAsset diff --git a/org.adempiere.base/src/org/compiere/FA/ImportFAJournal2.java b/org.adempiere.base/src/org/compiere/FA/ImportFAJournal2.java deleted file mode 100644 index 2aa2d5e51e..0000000000 --- a/org.adempiere.base/src/org/compiere/FA/ImportFAJournal2.java +++ /dev/null @@ -1,980 +0,0 @@ -/****************************************************************************** - * 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. - * - * Copyright (C) 2005 Robert KLEIN. robeklein@gmail.com * - * Contributor(s): ______________________________________. - *****************************************************************************/ -package org.compiere.FA; - -import java.math.BigDecimal; -import java.sql.CallableStatement; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; - -import org.compiere.model.MAccount; -import org.compiere.model.MAssetChange; -import org.compiere.model.MJournal; -import org.compiere.model.MJournalBatch; -import org.compiere.model.MJournalLine; -import org.compiere.model.MXIFAJournal; -import org.compiere.model.X_I_FAJournal; -import org.compiere.process.ProcessInfoParameter; -import org.compiere.process.SvrProcess; -import org.compiere.util.DB; -import org.compiere.util.Env; -import org.compiere.util.TimeUtil; - - -/** - * Import GL Journal Batch/JournalLine from I_FAJournal - * - * @author Rob Klein - * @version $Id: ImportFAJournal2.java,v 1.0 $ - */ -public class ImportFAJournal2 extends SvrProcess -{ - /** Client to be imported to */ - private int m_AD_Client_ID = 0; - /** Organization to be imported to */ - private int m_AD_Org_ID = 0; - /** Acct Schema to be imported to */ - private int m_C_AcctSchema_ID = 0; - /** Default Date */ - private Timestamp m_DateAcct = null; - /** Delete old Imported */ - private boolean m_DeleteOldImported = false; - /** Don't import */ - private boolean m_IsValidateOnly = false; - /** Import if no Errors */ - private boolean m_IsImportOnlyNoErrors = true; - /** Entry Type */ - private String m_EntryType = null; - - /** Record ID */ - private int p_Depreciation_Entry_ID = 0; - - /** - * Prepare - e.g., get Parameters. - */ - - /** - * Prepare - e.g., get Parameters. - */ - protected void prepare() - { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) - { - String name = para[i].getParameterName(); - - p_Depreciation_Entry_ID = getRecord_ID(); - - if (para[i].getParameter() == null) - ; - else if (name.equals("AD_Client_ID")) - m_AD_Client_ID = ((BigDecimal)para[i].getParameter()).intValue(); - else if (name.equals("AD_Org_ID")) - m_AD_Org_ID = ((BigDecimal)para[i].getParameter()).intValue(); - else if (name.equals("C_AcctSchema_ID")) - m_C_AcctSchema_ID = ((BigDecimal)para[i].getParameter()).intValue(); - else if (name.equals("DateAcct")) - m_DateAcct = (Timestamp)para[i].getParameter(); - else if (name.equals("IsValidateOnly")) - m_IsValidateOnly = "Y".equals(para[i].getParameter()); - else if (name.equals("IsImportOnlyNoErrors")) - m_IsImportOnlyNoErrors = "Y".equals(para[i].getParameter()); - else if (name.equals("DeleteOldImported")) - m_DeleteOldImported = "Y".equals(para[i].getParameter()); - else - log.info("prepare - Unknown Parameter: " + name); - } - } // prepare - - CallableStatement cs; - - /** - * Perform process. - * @return Message - * @throws Exception - */ - protected String doIt() throws java.lang.Exception - { - log.info("IsValidateOnly=" + m_IsValidateOnly + ", IsImportOnlyNoErrors=" + m_IsImportOnlyNoErrors); - StringBuffer sql = null; - int no = 0; - String clientCheck = " AND AD_Client_ID=" + m_AD_Client_ID; - - // Clear imported and processed records - - String sqldel = null; - - sqldel = "SELECT A_ENTRY_TYPE " - + "FROM A_DEPRECIATION_ENTRY " - + "WHERE A_DEPRECIATION_ENTRY.A_DEPRECIATION_ENTRY_ID = ?"; - - m_EntryType = DB.getSQLValueString(get_TrxName(), sqldel, p_Depreciation_Entry_ID); - - if (m_DeleteOldImported) - { - sql = new StringBuffer ("DELETE I_FAJournal " - + "WHERE I_IsImported='Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Delete Old Impored =" + no); - - sql = new StringBuffer ("DELETE A_Depreciation_Exp " - + "WHERE A_Entry_Type = '"+ m_EntryType + "'" - + " AND Processed='Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Delete Old Impored =" + no); - - } - - - // **** Copy from Workfile to Entry File **** - - log.info("doIt - Depreciation_Build_Entry_ID=" + p_Depreciation_Entry_ID); - if (p_Depreciation_Entry_ID == 0) - throw new IllegalArgumentException("No Record"); - // - - //X_A_Depreciation_Build DepBuild = new X_A_Depreciation_Build (getCtx(), p_Depreciation_Entry_ID); - - String sqlst = null; - - sqlst = "SELECT A_DEPRECIATION_EXP.AD_CLIENT_ID, A_DEPRECIATION_EXP.CREATED, A_DEPRECIATION_EXP.CREATEDBY, " - + "A_DEPRECIATION_EXP.UPDATED, A_DEPRECIATION_EXP.UPDATEDBY, A_DEPRECIATION_EXP.DESCRIPTION, " - + "A_DEPRECIATION_EXP.AD_ORG_ID, A_DEPRECIATION_EXP.A_ACCOUNT_NUMBER,A_DEPRECIATION_ENTRY.C_CURRENCY_ID, " - + "A_DEPRECIATION_EXP.EXPENSE, A_DEPRECIATION_EXP.A_ASSET_ID, A_DEPRECIATION_EXP.ISDEPRECIATED, " - + "A_DEPRECIATION_EXP.PROCESSED, A_DEPRECIATION_EXP.A_DEPRECIATION_EXP_ID, A_DEPRECIATION_EXP.A_Period," - + "A_DEPRECIATION_ENTRY.DATEACCT, A_DEPRECIATION_ENTRY.POSTINGTYPE, A_DEPRECIATION_ENTRY.A_ENTRY_TYPE," - + "A_DEPRECIATION_ENTRY.PROCESSED AS ENTRY_PROCESS,A_DEPRECIATION_ENTRY.GL_CATEGORY_ID, " - + "A_DEPRECIATION_ENTRY.C_DOCTYPE_ID,A_DEPRECIATION_ENTRY.C_ACCTSCHEMA_ID, A_DEPRECIATION_ENTRY.A_DEPRECIATION_ENTRY_ID " - + "FROM A_DEPRECIATION_EXP, A_DEPRECIATION_ENTRY " - + "WHERE A_DEPRECIATION_EXP.PROCESSED = 'N' AND A_DEPRECIATION_ENTRY.PROCESSED = 'N' AND " - + "A_DEPRECIATION_EXP.A_PERIOD = A_DEPRECIATION_ENTRY.C_PERIOD_ID " - + "AND A_DEPRECIATION_ENTRY.POSTINGTYPE = A_DEPRECIATION_EXP.POSTINGTYPE AND " - + "A_DEPRECIATION_EXP.A_ENTRY_TYPE = A_DEPRECIATION_ENTRY.A_ENTRY_TYPE"; - - PreparedStatement pstmt = null; - pstmt = DB.prepareStatement (sqlst, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE,get_TrxName()); - ResultSet rs = null; - try { - int v_FirstTime = 0; - String v_C_BatchNo = ""; - BigDecimal v_AMTSOURCEDR ; - BigDecimal v_AMTSOURCECR ; - int v_ID_START = 10; - rs = pstmt.executeQuery(); - while (rs.next()) - { - - X_I_FAJournal FAInsert = new X_I_FAJournal (getCtx (), 0, get_TrxName()); - if (v_FirstTime == 0) - { - v_C_BatchNo = DB.getDocumentNo(rs.getInt("C_DOCTYPE_ID"), get_TrxName(), true, FAInsert); - - v_FirstTime = 1; - } - - String v_Line_Description = rs.getString("DESCRIPTION") + " - FA # " + rs.getInt("A_ASSET_ID"); - - if (rs.getBigDecimal("EXPENSE").compareTo(new BigDecimal("0.0"))== 1) - { - v_AMTSOURCEDR = rs.getBigDecimal("EXPENSE") ; - v_AMTSOURCECR = Env.ZERO; - } - else - { - v_AMTSOURCECR = (rs.getBigDecimal("EXPENSE").multiply(new BigDecimal("-1.0"))); - v_AMTSOURCEDR = Env.ZERO; - } - - FAInsert.setI_IsImported(false); - FAInsert.setProcessed(false); - FAInsert.setBatchDocumentNo(v_C_BatchNo); - FAInsert.setBatchDescription (rs.getString("DESCRIPTION")); - FAInsert.setPostingType(rs.getString("POSTINGTYPE")); - FAInsert.setC_AcctSchema_ID(rs.getInt("C_ACCTSCHEMA_ID")); - FAInsert.setC_DocType_ID( rs.getInt("C_DOCTYPE_ID")); - FAInsert.setGL_Category_ID(rs.getInt("GL_CATEGORY_ID")); - FAInsert.setLine( v_ID_START); - FAInsert.setDateAcct (rs.getTimestamp("DATEACCT")); - FAInsert.setC_Period_ID(rs.getInt("A_Period")); - FAInsert.setDescription ( v_Line_Description); - FAInsert.setAmtSourceDr ( v_AMTSOURCEDR); - FAInsert.setAmtSourceCr ( v_AMTSOURCECR); - FAInsert.setC_Currency_ID ( rs.getInt("C_CURRENCY_ID")); - FAInsert.setQty (Env.ZERO); - FAInsert.setC_ValidCombination_ID ( rs.getInt("A_ACCOUNT_NUMBER")); - FAInsert.setA_Asset_ID ( rs.getInt("A_ASSET_ID")); - FAInsert.setIsDepreciated ( rs.getString("ISDEPRECIATED")); - - v_ID_START = v_ID_START+10; - FAInsert.saveEx(); - - String sql4 = "UPDATE A_DEPRECIATION_EXP SET PROCESSED = 'Y' " - + " WHERE A_DEPRECIATION_EXP_ID = " + rs.getInt("A_DEPRECIATION_EXP_ID"); - no = DB.executeUpdate (sql4,get_TrxName()); - - sql4 = new String ("UPDATE A_DEPRECIATION_ENTRY SET PROCESSED = 'Y', ISACTIVE = 'N' " - + " WHERE A_DEPRECIATION_ENTRY_ID = " + rs.getInt("A_DEPRECIATION_ENTRY_ID")); - no = DB.executeUpdate (sql4,get_TrxName()); - } - } - catch (Exception e) - { - log.info("ImportFAJournal2"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - - // Set IsActive, Created/Updated - sql = new StringBuffer ("UPDATE I_FAJournal " - + "SET IsActive = COALESCE (IsActive, 'Y')," - + " Created = COALESCE (Created, SysDate)," - + " CreatedBy = COALESCE (CreatedBy, 0)," - + " Updated = COALESCE (Updated, SysDate)," - + " UpdatedBy = COALESCE (UpdatedBy, 0)," - + " I_ErrorMsg = NULL," - + " I_IsImported = 'N' " - + "WHERE I_IsImported<>'Y' OR I_IsImported IS NULL"); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Reset=" + no); - - // Set Client from Name - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET AD_Client_ID=(SELECT c.AD_Client_ID FROM AD_Client c WHERE c.Value=i.ClientValue) " - + "WHERE (AD_Client_ID IS NULL OR AD_Client_ID=0) AND ClientValue IS NOT NULL" - + " AND I_IsImported<>'Y'"); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Client from Value=" + no); - - // Set Client, Doc Org, AcctSchema, DatAcct - sql = new StringBuffer ("UPDATE I_FAJournal " - + "SET AD_Client_ID = COALESCE (AD_Client_ID,").append (m_AD_Client_ID).append (")," - + " AD_OrgDoc_ID = COALESCE (AD_OrgDoc_ID,").append (m_AD_Org_ID).append ("),"); - if (m_C_AcctSchema_ID != 0) - sql.append(" C_AcctSchema_ID = COALESCE (C_AcctSchema_ID,").append (m_C_AcctSchema_ID).append ("),"); - if (m_DateAcct != null) - sql.append(" DateAcct = COALESCE (DateAcct,").append (DB.TO_DATE(m_DateAcct)).append ("),"); - sql.append(" Updated = COALESCE (Updated, SysDate) " - + "WHERE I_IsImported<>'Y' OR I_IsImported IS NULL"); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Client/DocOrg/Default=" + no); - - // Error Doc Org - sql = new StringBuffer ("UPDATE I_FAJournal o " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid Doc Org, '" - + "WHERE (AD_OrgDoc_ID IS NULL OR AD_OrgDoc_ID=0" - + " OR EXISTS (SELECT * FROM AD_Org oo WHERE o.AD_Org_ID=oo.AD_Org_ID AND (oo.IsSummary='Y' OR oo.IsActive='N')))" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid Doc Org=" + no); - - // Set AcctSchema - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_AcctSchema_ID=(SELECT a.C_AcctSchema_ID FROM C_AcctSchema a" - + " WHERE i.AcctSchemaName=a.Name AND i.AD_Client_ID=a.AD_Client_ID) " - + "WHERE C_AcctSchema_ID IS NULL AND AcctSchemaName IS NOT NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set AcctSchema from Name=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_AcctSchema_ID=(SELECT c.C_AcctSchema1_ID FROM AD_ClientInfo c WHERE c.AD_Client_ID=i.AD_Client_ID) " - + "WHERE C_AcctSchema_ID IS NULL AND AcctSchemaName IS NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set AcctSchema from Client=" + no); - // Error AcctSchema - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid AcctSchema, '" - + "WHERE (C_AcctSchema_ID IS NULL OR C_AcctSchema_ID=0" - + " OR NOT EXISTS (SELECT * FROM C_AcctSchema a WHERE i.AD_Client_ID=a.AD_Client_ID))" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid AcctSchema=" + no); - - // Set DateAcct (mandatory) - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET DateAcct=SysDate " - + "WHERE DateAcct IS NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set DateAcct=" + no); - - // Document Type - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_DocType_ID=(SELECT d.C_DocType_ID FROM C_DocType d" - + " WHERE d.Name=i.DocTypeName AND d.DocBaseType='GLJ' AND i.AD_Client_ID=d.AD_Client_ID) " - + "WHERE C_DocType_ID IS NULL AND DocTypeName IS NOT NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set DocType=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid DocType, '" - + "WHERE (C_DocType_ID IS NULL OR C_DocType_ID=0" - + " OR NOT EXISTS (SELECT * FROM C_DocType d WHERE i.AD_Client_ID=d.AD_Client_ID AND d.DocBaseType='GLJ'))" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid DocType=" + no); - - // GL Category - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET GL_Category_ID=(SELECT c.GL_Category_ID FROM GL_Category c" - + " WHERE c.Name=i.CategoryName AND i.AD_Client_ID=c.AD_Client_ID) " - + "WHERE GL_Category_ID IS NULL AND CategoryName IS NOT NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set DocType=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid Category, '" - + "WHERE (GL_Category_ID IS NULL OR GL_Category_ID=0)" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid Category=" + no); - - // Set Currency - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_Currency_ID=(SELECT c.C_Currency_ID FROM C_Currency c" - + " WHERE c.ISO_Code=i.ISO_Code AND c.AD_Client_ID IN (0,i.AD_Client_ID)) " - + "WHERE C_Currency_ID IS NULL AND ISO_Code IS NOT NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Currency from ISO=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_Currency_ID=(SELECT a.C_Currency_ID FROM C_AcctSchema a" - + " WHERE a.C_AcctSchema_ID=i.C_AcctSchema_ID AND a.AD_Client_ID=i.AD_Client_ID)" - + "WHERE C_Currency_ID IS NULL AND ISO_Code IS NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Default Currency=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid Currency, '" - + "WHERE (C_Currency_ID IS NULL OR C_Currency_ID=0)" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid Currency=" + no); - -// Set Conversion Type - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET ConversionTypeValue='S' " - + "WHERE C_ConversionType_ID IS NULL AND ConversionTypeValue IS NULL" - + " AND I_IsImported='N'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set CurrencyType Value to Spot =" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_ConversionType_ID=(SELECT c.C_ConversionType_ID FROM C_ConversionType c" - + " WHERE c.Value=i.ConversionTypeValue AND c.AD_Client_ID IN (0,i.AD_Client_ID)) " - + "WHERE C_ConversionType_ID IS NULL AND ConversionTypeValue IS NOT NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set CurrencyType from Value=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid CurrencyType, '" - + "WHERE (C_ConversionType_ID IS NULL OR C_ConversionType_ID=0) AND ConversionTypeValue IS NOT NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid CurrencyTypeValue=" + no); - - - - // Set/Overwrite Home Currency Rate - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET CurrencyRate=1" - + "WHERE EXISTS (SELECT * FROM C_AcctSchema a" - + " WHERE a.C_AcctSchema_ID=i.C_AcctSchema_ID AND a.C_Currency_ID=i.C_Currency_ID)" - + " AND C_Currency_ID IS NOT NULL AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Home CurrencyRate=" + no); - // Set Currency Rate - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET CurrencyRate=(SELECT r.MultiplyRate FROM C_Conversion_Rate r, C_AcctSchema s" - + " WHERE s.C_AcctSchema_ID=i.C_AcctSchema_ID AND s.AD_Client_ID=i.AD_Client_ID" - + " AND r.C_Currency_ID=i.C_Currency_ID AND r.C_Currency_ID_TO=s.C_Currency_ID" - + " AND r.AD_Client_ID=i.AD_Client_ID AND r.AD_Org_ID=i.AD_OrgDoc_ID" - + " AND r.C_ConversionType_ID=i.C_ConversionType_ID" - + " AND i.DateAcct BETWEEN r.ValidFrom AND r.ValidTo AND ROWNUM=1" - // ORDER BY ValidFrom DESC - + ") WHERE CurrencyRate IS NULL OR CurrencyRate=0 AND C_Currency_ID>0" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Org Rate=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET CurrencyRate=(SELECT r.MultiplyRate FROM C_Conversion_Rate r, C_AcctSchema s" - + " WHERE s.C_AcctSchema_ID=i.C_AcctSchema_ID AND s.AD_Client_ID=i.AD_Client_ID" - + " AND r.C_Currency_ID=i.C_Currency_ID AND r.C_Currency_ID_TO=s.C_Currency_ID" - + " AND r.AD_Client_ID=i.AD_Client_ID" - + " AND r.C_ConversionType_ID=i.C_ConversionType_ID" - + " AND i.DateAcct BETWEEN r.ValidFrom AND r.ValidTo AND ROWNUM=1" - // ORDER BY ValidFrom DESC - + ") WHERE CurrencyRate IS NULL OR CurrencyRate=0 AND C_Currency_ID>0" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Client Rate=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=No Rate, '" - + "WHERE CurrencyRate IS NULL OR CurrencyRate=0" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - No Rate=" + no); - - // Set Period - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_Period_ID=(SELECT p.C_Period_ID FROM C_Period p" - + " INNER JOIN C_Year y ON (y.C_Year_ID=p.C_Year_ID)" - + " INNER JOIN AD_ClientInfo c ON (c.C_Calendar_ID=y.C_Calendar_ID)" - + " WHERE c.AD_Client_ID=i.AD_Client_ID" - + " AND i.DateAcct BETWEEN p.StartDate AND p.EndDate AND p.PeriodType='S' AND ROWNUM=1) " - + "WHERE C_Period_ID IS NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Period=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid Period, '" - + "WHERE C_Period_ID IS NULL OR C_Period_ID<>" - + "(SELECT C_Period_ID FROM C_Period p" - + " INNER JOIN C_Year y ON (y.C_Year_ID=p.C_Year_ID)" - + " INNER JOIN AD_ClientInfo c ON (c.C_Calendar_ID=y.C_Calendar_ID) " - + " WHERE c.AD_Client_ID=i.AD_Client_ID" - + " AND i.DateAcct BETWEEN p.StartDate AND p.EndDate AND p.PeriodType='S' AND ROWNUM=1)" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid Period=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_ErrorMsg=I_ErrorMsg||'WARN=Period Closed, ' " - + "WHERE C_Period_ID IS NOT NULL AND NOT EXISTS" - + " (SELECT * FROM C_PeriodControl pc WHERE pc.C_Period_ID=i.C_Period_ID AND DocBaseType='GLJ' AND PeriodStatus='O') " - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Period Closed=" + no); - - // Posting Type - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET PostingType='A' " - + "WHERE PostingType IS NULL AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Actual PostingType=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid PostingType, ' " - + "WHERE PostingType IS NULL OR NOT EXISTS" - + " (SELECT * FROM AD_Ref_List r WHERE r.AD_Reference_ID=125 AND i.PostingType=r.Value)" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid PostingTypee=" + no); - - - // ** Account Elements (optional) ** - // (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) - - // Set Org from Name - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET AD_Org_ID=(SELECT o.AD_Org_ID FROM AD_Org o" - + " WHERE o.Value=i.OrgValue AND o.IsSummary='N' AND i.AD_Client_ID=o.AD_Client_ID) " - + "WHERE (AD_Org_ID IS NULL OR AD_Org_ID=0) AND OrgValue IS NOT NULL" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'"); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Org from Value=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET AD_Org_ID=AD_OrgDoc_ID " - + "WHERE (AD_Org_ID IS NULL OR AD_Org_ID=0) AND OrgValue IS NULL AND AD_OrgDoc_ID IS NOT NULL AND AD_OrgDoc_ID<>0" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Org from Doc Org=" + no); - // Error Org - sql = new StringBuffer ("UPDATE I_FAJournal o " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid Org, '" - + "WHERE (AD_Org_ID IS NULL OR AD_Org_ID=0" - + " OR EXISTS (SELECT * FROM AD_Org oo WHERE o.AD_Org_ID=oo.AD_Org_ID AND (oo.IsSummary='Y' OR oo.IsActive='N')))" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid Org=" + no); - - // Set Account - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET Account_ID=(SELECT ev.C_ElementValue_ID FROM C_ElementValue ev" - + " INNER JOIN C_Element e ON (e.C_Element_ID=ev.C_Element_ID)" - + " INNER JOIN C_AcctSchema_Element ase ON (e.C_Element_ID=ase.C_Element_ID AND ase.ElementType='AC')" - + " WHERE ev.Value=i.AccountValue AND ev.IsSummary='N'" - + " AND i.C_AcctSchema_ID=ase.C_AcctSchema_ID AND i.AD_Client_ID=ev.AD_Client_ID AND ROWNUM=1) " - + "WHERE Account_ID IS NULL AND AccountValue IS NOT NULL" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Account from Value=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid Account, '" - + "WHERE (Account_ID IS NULL OR Account_ID=0)" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid Account=" + no); - - // Set BPartner - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_BPartner_ID=(SELECT bp.C_BPartner_ID FROM C_BPartner bp" - + " WHERE bp.Value=i.BPartnerValue AND bp.IsSummary='N' AND i.AD_Client_ID=bp.AD_Client_ID) " - + "WHERE C_BPartner_ID IS NULL AND BPartnerValue IS NOT NULL" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set BPartner from Value=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid BPartner, '" - + "WHERE C_BPartner_ID IS NULL AND BPartnerValue IS NOT NULL" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid BPartner=" + no); - - // Set Product - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET M_Product_ID=(SELECT p.M_Product_ID FROM M_Product p" - + " WHERE (p.Value=i.ProductValue OR p.UPC=i.UPC OR p.SKU=i.SKU)" - + " AND p.IsSummary='N' AND i.AD_Client_ID=p.AD_Client_ID AND ROWNUM=1) " - + "WHERE M_Product_ID IS NULL AND (ProductValue IS NOT NULL OR UPC IS NOT NULL OR SKU IS NOT NULL)" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Product from Value=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid Product, '" - + "WHERE M_Product_ID IS NULL AND (ProductValue IS NOT NULL OR UPC IS NOT NULL OR SKU IS NOT NULL)" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid Product=" + no); - - // Set Project - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET C_Project_ID=(SELECT p.C_Project_ID FROM C_Project p" - + " WHERE p.Value=i.ProjectValue AND p.IsSummary='N' AND i.AD_Client_ID=p.AD_Client_ID) " - + "WHERE C_Project_ID IS NULL AND ProjectValue IS NOT NULL" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set Project from Value=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid Project, '" - + "WHERE C_Project_ID IS NULL AND ProjectValue IS NOT NULL" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid Project=" + no); - - // Set TrxOrg - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET AD_OrgTrx_ID=(SELECT o.AD_Org_ID FROM AD_Org o" - + " WHERE o.Value=i.OrgValue AND o.IsSummary='N' AND i.AD_Client_ID=o.AD_Client_ID) " - + "WHERE AD_OrgTrx_ID IS NULL AND OrgTrxValue IS NOT NULL" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set OrgTrx from Value=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_IsImported='E', I_ErrorMsg=I_ErrorMsg||'ERR=Invalid OrgTrx, '" - + "WHERE AD_OrgTrx_ID IS NULL AND OrgTrxValue IS NOT NULL" - + " AND (C_ValidCombination_ID IS NULL OR C_ValidCombination_ID=0) AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Invalid OrgTrx=" + no); - - - // Source Amounts - sql = new StringBuffer ("UPDATE I_FAJournal " - + "SET AmtSourceDr = 0 " - + "WHERE AmtSourceDr IS NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),null); - log.info ("doIt - Set 0 Source Dr=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal " - + "SET AmtSourceCr = 0 " - + "WHERE AmtSourceCr IS NULL" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Set 0 Source Cr=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_ErrorMsg=I_ErrorMsg||'WARN=Zero Source Balance, ' " - + "WHERE (AmtSourceDr-AmtSourceCr)=0" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Zero Source Balance=" + no); - - // Accounted Amounts (Only if No Error) - sql = new StringBuffer ("UPDATE I_FAJournal " - + "SET AmtAcctDr = ROUND(AmtSourceDr * CurrencyRate, 2) " // HARDCODED rounding - + "WHERE AmtAcctDr IS NULL OR AmtAcctDr=0" - + " AND I_IsImported='N'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Calculate Acct Dr=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal " - + "SET AmtAcctCr = ROUND(AmtSourceCr * CurrencyRate, 2) " - + "WHERE AmtAcctCr IS NULL OR AmtAcctCr=0" - + " AND I_IsImported='N'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - log.info ("doIt - Calculate Acct Cr=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_ErrorMsg=I_ErrorMsg||'WARN=Zero Acct Balance, ' " - + "WHERE (AmtSourceDr-AmtSourceCr)<>0 AND (AmtAcctDr-AmtAcctCr)=0" - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Zero Acct Balance=" + no); - sql = new StringBuffer ("UPDATE I_FAJournal i " - + "SET I_ErrorMsg=I_ErrorMsg||'WARN=Check Acct Balance, ' " - + "WHERE ABS(AmtAcctDr-AmtAcctCr)>100000000" // 100 mio - + " AND I_IsImported<>'Y'").append (clientCheck); - no = DB.executeUpdate (sql.toString (),get_TrxName()); - if (no != 0) - log.info ("doIt - Chack Acct Balance=" + no); - - - /*********************************************************************/ - - // Get Balance - sql = new StringBuffer ("SELECT SUM(AmtSourceDr)-SUM(AmtSourceCr), SUM(AmtAcctDr)-SUM(AmtAcctCr) " - + "FROM I_FAJournal " - + "WHERE I_IsImported='N'").append (clientCheck); - pstmt = null; - try - { - pstmt = DB.prepareStatement (sql.toString(),get_TrxName()); - rs = pstmt.executeQuery (); - if (rs.next ()) - { - BigDecimal source = rs.getBigDecimal(1); - BigDecimal acct = rs.getBigDecimal(2); - if (source != null && source.compareTo(Env.ZERO) == 0 - && acct != null && acct.compareTo(Env.ZERO) == 0) - log.info ("doIt - Import Balance = 0"); - else - log.info("doIt - Balance Source=" + source + ", Acct=" + acct); - if (source != null) - addLog (0, null, source, "@AmtSourceDr@ - @AmtSourceCr@"); - if (acct != null) - addLog (0, null, acct, "@AmtAcctDr@- @AmtAcctCr@"); - } - } - catch (SQLException ex) - { - log.info ("doIt - get balance"+ ex); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - - // Count Errors - int errors = DB.getSQLValue(get_TrxName(), "SELECT COUNT(*) FROM I_FAJournal WHERE I_IsImported NOT IN ('Y','N')" + clientCheck); - - if (errors != 0) - { - if (m_IsValidateOnly || m_IsImportOnlyNoErrors) - throw new Exception ("@Errors@=" + errors); - } - else if (m_IsValidateOnly) - return "@Errors@=" + errors; - - log.info("doIt - Validation Errors=" + errors); - - /*********************************************************************/ - - int noInsert = 0; - int noInsertJournal = 0; - int noInsertLine = 0; - //int oldA_Asset_Id = 0; - - MJournalBatch batch = null; // Change Batch per Batch DocumentNo - String BatchDocumentNo = ""; - MJournal journal = null; - String JournalDocumentNo = ""; - Timestamp DateAcct = null; - - // Go through Journal Records - sql = new StringBuffer ("SELECT * FROM I_FAJournal " - + "WHERE I_IsImported='N'").append (clientCheck) - .append(" ORDER BY BatchDocumentNo, JournalDocumentNo, C_AcctSchema_ID, PostingType, C_DocType_ID, GL_Category_ID, C_Currency_ID, TRUNC(DateAcct), Line, I_FAJournal_ID"); - try - { - pstmt = DB.prepareStatement (sql.toString (),get_TrxName()); - rs = pstmt.executeQuery (); - // - while (rs.next()) - { - MXIFAJournal imp = new MXIFAJournal (getCtx (), rs, get_TrxName()); - - // Batch - String impBatchDocumentNo = imp.getBatchDocumentNo(); - if (impBatchDocumentNo == null) - impBatchDocumentNo = ""; - if (batch == null || !BatchDocumentNo.equals(impBatchDocumentNo)) - { - BatchDocumentNo = impBatchDocumentNo; // cannot compare real DocumentNo - batch = new MJournalBatch (getCtx(), 0, get_TrxName()); - batch.setClientOrg(imp.getAD_Client_ID(), imp.getAD_OrgDoc_ID()); - if (imp.getBatchDocumentNo() != null && imp.getBatchDocumentNo().length() > 0) - batch.setDocumentNo (imp.getBatchDocumentNo()); - batch.setC_DocType_ID(imp.getC_DocType_ID()); - batch.setDateDoc(imp.getDateAcct()); - batch.setDateAcct(imp.getDateAcct()); - batch.setGL_Category_ID(imp.getGL_Category_ID()); - batch.setC_Period_ID(imp.getC_Period_ID()); - batch.setC_Currency_ID(imp.getC_Currency_ID()); - String description = imp.getBatchDescription(); - if (description == null || description.length() == 0) - description = "*Import-"; - else - description += " *Import-"; - description += new Timestamp(System.currentTimeMillis()); - batch.setDescription(description); - if (!batch.save()) - { - log.info("doIt - Batch not saved"); - break; - } - noInsert++; - journal = null; - } - // Journal - String impJournalDocumentNo = imp.getJournalDocumentNo(); - if (impJournalDocumentNo == null) - impJournalDocumentNo = ""; - Timestamp impDateAcct = TimeUtil.getDay(imp.getDateAcct()); - if (journal == null || !JournalDocumentNo.equals(impJournalDocumentNo) - || journal.getC_AcctSchema_ID() != imp.getC_AcctSchema_ID() - || journal.getC_DocType_ID() != imp.getC_DocType_ID() - || journal.getGL_Category_ID() != imp.getGL_Category_ID() - || !journal.getPostingType().equals(imp.getPostingType()) - || journal.getC_Currency_ID() != imp.getC_Currency_ID() - || !impDateAcct.equals(DateAcct) - ) - { - JournalDocumentNo = impJournalDocumentNo; // cannot compare real DocumentNo - DateAcct = impDateAcct; - journal = new MJournal (getCtx(), 0, get_TrxName()); - journal.setGL_JournalBatch_ID(batch.getGL_JournalBatch_ID()); - journal.setClientOrg(imp.getAD_Client_ID(), imp.getAD_OrgDoc_ID()); - // - String description = imp.getBatchDescription(); - if (description == null || description.length() == 0) - description = "(Import)"; - journal.setDescription (description); - if (imp.getJournalDocumentNo() != null && imp.getJournalDocumentNo().length() > 0) - journal.setDocumentNo (imp.getJournalDocumentNo()); - // - journal.setC_AcctSchema_ID (imp.getC_AcctSchema_ID()); - journal.setC_DocType_ID (imp.getC_DocType_ID()); - journal.setGL_Category_ID (imp.getGL_Category_ID()); - journal.setPostingType (imp.getPostingType()); - journal.setC_ConversionType_ID (imp.getC_ConversionType_ID()); - // - journal.setCurrency (imp.getC_Currency_ID(), imp.getC_ConversionType_ID(), imp.getCurrencyRate()); - // - journal.setC_Period_ID(imp.getC_Period_ID()); - journal.setDateAcct(imp.getDateAcct()); // sets Period if not defined - journal.setDateDoc (imp.getDateAcct()); - // - if (!journal.save()) - { - log.info("doIt - Journal not saved"); - break; - } - noInsertJournal++; - } - - // Lines - MJournalLine line = new MJournalLine (journal); - // - line.setDescription(imp.getDescription()); - line.setCurrency (imp.getC_Currency_ID(), imp.getC_ConversionType_ID(), imp.getCurrencyRate()); -// Set/Get Account Combination - if (imp.getC_ValidCombination_ID() == 0) - { - MAccount acct = MAccount.get(getCtx(), imp.getAD_Client_ID(), imp.getAD_Org_ID(), - imp.getC_AcctSchema_ID(), imp.getAccount_ID(),imp.getC_SubAcct_ID(), - //imp.getC_AcctSchema_ID(), imp.getAccount_ID(), - imp.getM_Product_ID(), imp.getC_BPartner_ID(), imp.getAD_OrgTrx_ID(), - imp.getC_LocFrom_ID(), imp.getC_LocTo_ID(), imp.getC_SalesRegion_ID(), - imp.getC_Project_ID(), imp.getC_Campaign_ID(), imp.getC_Activity_ID(), - imp.getUser1_ID(), imp.getUser2_ID(),imp.getUserElement1_ID(),imp.getUserElement2_ID()); - //imp.getUser1_ID(), imp.getUser2_ID()); - if (acct != null && acct.get_ID() == 0) - acct.saveEx(); - if (acct == null || acct.get_ID() == 0) - { - imp.setI_ErrorMsg("ERROR creating Account"); - imp.setI_IsImported(false); - imp.saveEx(); - continue; - } - else - { - line.setC_ValidCombination_ID(acct.get_ID()); - imp.setC_ValidCombination_ID(acct.get_ID()); - } - } - else - line.setC_ValidCombination_ID (imp.getC_ValidCombination_ID()); - // - line.setLine (imp.getLine()); - line.setAmtSourceCr (imp.getAmtSourceCr()); - line.setAmtSourceDr (imp.getAmtSourceDr()); - line.setAmtAcct (imp.getAmtAcctDr(), imp.getAmtAcctCr()); - line.setDateAcct (imp.getDateAcct()); - // - line.setC_UOM_ID(imp.getC_UOM_ID()); - line.setQty(imp.getQty()); - // - if (line.save()) - { - imp.setGL_JournalBatch_ID(batch.getGL_JournalBatch_ID()); - imp.setGL_Journal_ID(journal.getGL_Journal_ID()); - imp.setGL_JournalLine_ID(line.getGL_JournalLine_ID()); - imp.setI_IsImported(true); - imp.setProcessed(true); - sql = new StringBuffer ("UPDATE A_DEPRECIATION_WORKFILE " - +"SET A_ACCUMULATED_DEPR = A_ACCUMULATED_DEPR + ") - .append(imp.getExpenseDr()).append(" - ").append(imp.getExpenseCr()) - .append(", A_PERIOD_POSTED = A_CURRENT_PERIOD") - .append(", ASSETDEPRECIATIONDATE = ").append (DB.TO_DATE(imp.getDateAcct())) - .append(" WHERE A_ASSET_ID = ").append(imp.getA_Asset_ID()) - .append(" AND ISACTIVE = '").append(imp.getIsDepreciated()) - .append("' AND POSTINGTYPE = '").append(imp.getPostingType()) - .append("'"); - no = DB.executeUpdate(sql.toString(),get_TrxName()); - log.info("doIt - SET Accumulated Depreciation =" + no); - - // Copy Expense Worktable to Import Worktable - String impgetIsDepreciated = imp.getIsDepreciated(); - //impgetIsDepreciated = impgetIsDepreciated + "STOP"; - - if(impgetIsDepreciated.equals("Y")) - { - cs = DB.prepareCall("{call AD_Sequence_Next(?,?,?)}"); - cs.setString(1, "A_Asset_Change"); - cs.setInt(2,imp.getAD_Client_ID()); - cs.registerOutParameter(3, java.sql.Types.INTEGER); - cs.execute(); - - - MAssetChange assetChange = new MAssetChange (getCtx(), 0, get_TrxName()); - assetChange.setA_Asset_Change_ID(cs.getInt(3)); - assetChange.set_ValueOfColumn("AD_CLIENT_ID", imp.getAD_Client_ID()); - assetChange.setAD_Org_ID(imp.getAD_OrgDoc_ID()); - assetChange.set_ValueOfColumn("CREATEDBY", getAD_User_ID()); - assetChange.set_ValueOfColumn("UPDATEDBY", getAD_User_ID()); - assetChange.setChangeType("DEP"); - assetChange.setChangeAmt(imp.getAmtAcctTotal()); - assetChange.setA_Asset_ID(imp.getA_Asset_ID()); - assetChange.setTextDetails(imp.getDescription()); - assetChange.setC_ValidCombination_ID(imp.getC_ValidCombination_ID()); - assetChange.setDateAcct(imp.getDateAcct()); - assetChange.setPostingType(imp.getPostingType()); - assetChange.saveEx(); - - } - else if(impgetIsDepreciated.equals("B")) - { - cs = DB.prepareCall("{call AD_Sequence_Next(?,?,?)}"); - cs.setString(1, "A_Asset_Change"); - cs.setInt(2,imp.getAD_Client_ID()); - cs.registerOutParameter(3, java.sql.Types.INTEGER); - cs.execute(); - - MAssetChange assetChange = new MAssetChange (getCtx(), 0, get_TrxName()); - assetChange.setA_Asset_Change_ID(cs.getInt(3)); - assetChange.set_ValueOfColumn("AD_CLIENT_ID", imp.getAD_Client_ID()); - assetChange.setAD_Org_ID(imp.getAD_OrgDoc_ID()); - assetChange.set_ValueOfColumn("CREATEDBY", getAD_User_ID()); - assetChange.set_ValueOfColumn("UPDATEDBY", getAD_User_ID()); - assetChange.setChangeType("BUD"); - assetChange.setChangeAmt(imp.getAmtAcctTotal()); - assetChange.setA_Asset_ID(imp.getA_Asset_ID()); - assetChange.setTextDetails(imp.getDescription()); - assetChange.setC_ValidCombination_ID(imp.getC_ValidCombination_ID()); - assetChange.setDateAcct(imp.getDateAcct()); - assetChange.setPostingType(imp.getPostingType()); - assetChange.saveEx(); - - } - - - if (imp.save()) - noInsertLine++; - } - } - } - catch (Exception e) - { - log.severe("doIt"+ e); - } - // clean up - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - - // Set Error to indicator to not imported - sql = new StringBuffer ("UPDATE I_FAJournal " - + "SET I_IsImported='N', Updated=SysDate " - + "WHERE I_IsImported<>'Y'").append(clientCheck); - no = DB.executeUpdate(sql.toString(),get_TrxName()); - addLog (0, null, new BigDecimal (no), "@Errors@"); - // - addLog (0, null, new BigDecimal (noInsert), "@GL_JournalBatch_ID@: @Inserted@"); - addLog (0, null, new BigDecimal (noInsertJournal), "@GL_Journal_ID@: @Inserted@"); - addLog (0, null, new BigDecimal (noInsertLine), "@GL_JournalLine_ID@: @Inserted@"); - //int test = DB.getSQLValue("SELECT 2*2 from dual"); - - - String sql3 = null; - - sql3 = "SELECT A_ASSET.A_ASSET_ID, A_ASSET.ISFULLYDEPRECIATED, A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED, " - + "A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD " - + "FROM A_DEPRECIATION_WORKFILE,A_ASSET " - + "WHERE A_ASSET.A_ASSET_ID = A_DEPRECIATION_WORKFILE.A_ASSET_ID " - + "AND A_DEPRECIATION_WORKFILE.A_PERIOD_POSTED = A_DEPRECIATION_WORKFILE.A_LIFE_PERIOD "; - - try - { - pstmt = DB.prepareStatement(sql3,get_TrxName()); - rs = pstmt.executeQuery(); - while (rs.next()){ - - String sql4 = "UPDATE A_ASSET SET ISFULLYDEPRECIATED = 'Y' WHERE A_Asset_ID = " + rs.getInt("A_ASSET_ID"); - no = DB.executeUpdate (sql4,get_TrxName()); - } - } - catch (Exception e) - { - log.info("Post Depreciation"+ e); - } - finally - { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - return ""; - } // doIt - -} // ImportFAJournal2