details: https://code.openbravo.com/erp/devel/pi/rev/97cfc7c98353 changeset: 23417:97cfc7c98353 user: RM packaging bot <staff.rm <at> openbravo.com> date: Mon Jun 02 11:30:59 2014 +0000 summary: CI: update AD_MODULE to version 23413
details: https://code.openbravo.com/erp/devel/pi/rev/36002d545d45 changeset: 23418:36002d545d45 user: RM packaging bot <staff.rm <at> openbravo.com> date: Mon Jun 02 11:46:53 2014 +0000 summary: CI: merge back from main diffstat: modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 4 +- modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS.xml | 24 + modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/RecordID2Filling.java | 461 + modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 8 +- modules/org.openbravo.client.application/web/org.openbravo.client.application/js/process/ob-parameter-window-view.js | 2 +- modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 6 +- modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 4 +- modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 10 +- modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.service.integration.google/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 4 +- modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.service.integration.openid/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 12 +- modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 2 +- modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 6 +- modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.v3.datasets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 6 +- modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.v3.framework/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 24 +- modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE.xml | 2 +- modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 18 +- referencedata/sampledata/F_B_International_Group/FACT_ACCT.xml | 21427 ++++++--- src-db/database/model/tables/FACT_ACCT.xml | 13 + src-db/database/sourcedata/AD_COLUMN.xml | 45 +- src-db/database/sourcedata/AD_ELEMENT.xml | 14 + src-db/database/sourcedata/AD_MODULE.xml | 2 +- src-db/database/sourcedata/AD_TEXTINTERFACES.xml | 11 + src-test/org/openbravo/test/AllAntTaskTests.java | 4 + src-test/org/openbravo/test/accounting/RecordID2Test.java | 663 + src/org/openbravo/erpCommon/ad_forms/AcctServer.java | 2 + src/org/openbravo/erpCommon/ad_forms/DocFINFinAccTransaction.java | 11 +- src/org/openbravo/erpCommon/ad_forms/DocFINPayment.java | 8 +- src/org/openbravo/erpCommon/ad_forms/DocFINReconciliation.java | 14 +- src/org/openbravo/erpCommon/ad_forms/DocInvoice.java | 2 +- src/org/openbravo/erpCommon/ad_forms/DocInvoice_data.xsql | 10 +- src/org/openbravo/erpCommon/ad_forms/FactLine.java | 6 + src/org/openbravo/erpCommon/ad_forms/FactLine_data.xsql | 25 + src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedger.html | 3 + src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedger.java | 45 +- src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedger.xml | 2 + src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedger_data.xsql | 2 + src/org/openbravo/financial/ResetAccounting.java | 14 +- 64 files changed, 14757 insertions(+), 8213 deletions(-) diffs (truncated from 66106 to 300 lines): diff -r 33522813fc10 -r 36002d545d45 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml Mon Jun 02 09:31:33 2014 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml Mon Jun 02 11:46:53 2014 +0000 @@ -6,7 +6,7 @@ <!--A918E3331C404B889D69AA9BFAFB23AC--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> <!--A918E3331C404B889D69AA9BFAFB23AC--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--A918E3331C404B889D69AA9BFAFB23AC--> <NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></NAME> -<!--A918E3331C404B889D69AA9BFAFB23AC--> <VERSION><![CDATA[3.0.23408]]></VERSION> +<!--A918E3331C404B889D69AA9BFAFB23AC--> <VERSION><![CDATA[3.0.23413]]></VERSION> <!--A918E3331C404B889D69AA9BFAFB23AC--> <DESCRIPTION><![CDATA[Managing your finances with an ERP does not have to be difficult. Enjoy a radically improved user experience that combines the power of an enterprise grade financial application with the simplicity and ease of a web 2.0 personal accounting service.]]></DESCRIPTION> <!--A918E3331C404B889D69AA9BFAFB23AC--> <HELP><![CDATA[Advanced Payables and Receivables Management simplifies and automates the business processes around the management of financial accounts, from the receipt and issue of payment, to the reconciliation of those events with bank statements. If you would like to help shape this module you are welcome to take part in the forum discussions or register feature requests or issues in the corresponding (Forum and Bug Tracking) sections in the Advanced Payables and Receivable project in the OB Forge.]]></HELP> diff -r 33522813fc10 -r 36002d545d45 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml Mon Jun 02 09:31:33 2014 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml Mon Jun 02 11:46:53 2014 +0000 @@ -7,7 +7,7 @@ <!--89326AE95DAD449D85DFAB2C5B1C6683--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID> -<!--89326AE95DAD449D85DFAB2C5B1C6683--> <STARTVERSION><![CDATA[2.1.23408]]></STARTVERSION> +<!--89326AE95DAD449D85DFAB2C5B1C6683--> <STARTVERSION><![CDATA[2.1.23413]]></STARTVERSION> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <ISINCLUDED><![CDATA[N]]></ISINCLUDED> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <DEPENDANT_MODULE_NAME><![CDATA[User Interface Selector]]></DEPENDANT_MODULE_NAME> <!--89326AE95DAD449D85DFAB2C5B1C6683--> <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT> @@ -21,7 +21,7 @@ <!--B97FC854C6DD41E692161585645A900F--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--B97FC854C6DD41E692161585645A900F--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> <!--B97FC854C6DD41E692161585645A900F--> <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID> -<!--B97FC854C6DD41E692161585645A900F--> <STARTVERSION><![CDATA[3.0.23408]]></STARTVERSION> +<!--B97FC854C6DD41E692161585645A900F--> <STARTVERSION><![CDATA[3.0.23413]]></STARTVERSION> <!--B97FC854C6DD41E692161585645A900F--> <ISINCLUDED><![CDATA[N]]></ISINCLUDED> <!--B97FC854C6DD41E692161585645A900F--> <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME> <!--B97FC854C6DD41E692161585645A900F--> <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT> diff -r 33522813fc10 -r 36002d545d45 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS.xml --- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS.xml Mon Jun 02 09:31:33 2014 +0530 +++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PROCESS.xml Mon Jun 02 11:46:53 2014 +0000 @@ -345,6 +345,30 @@ <!--7AC7BE9024E448A0BB863C159DA762F9--> <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS> <!--7AC7BE9024E448A0BB863C159DA762F9--></AD_PROCESS> +<!--AA64E3BA23F24D4F8E6B06970500FC70--><AD_PROCESS> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <AD_PROCESS_ID><![CDATA[AA64E3BA23F24D4F8E6B06970500FC70]]></AD_PROCESS_ID> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <VALUE><![CDATA[recordid2]]></VALUE> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <NAME><![CDATA[Open Balances: Review historical data]]></NAME> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <DESCRIPTION><![CDATA[Review historical data to fulfill required information for 'Open Balances' project]]></DESCRIPTION> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <HELP><![CDATA[Open Balances: Record_ID2 and DateBalanced Filling]]></HELP> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ACCESSLEVEL><![CDATA[3]]></ACCESSLEVEL> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ISUSERSTARTABLE><![CDATA[N]]></ISUSERSTARTABLE> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ISREPORT><![CDATA[N]]></ISREPORT> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ISDIRECTPRINT><![CDATA[N]]></ISDIRECTPRINT> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <CLASSNAME><![CDATA[org.openbravo.advpaymentmngt.process.RecordID2Filling]]></CLASSNAME> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ISBACKGROUND><![CDATA[Y]]></ISBACKGROUND> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ISJASPER><![CDATA[N]]></ISJASPER> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ISEXTERNALSERVICE><![CDATA[N]]></ISEXTERNALSERVICE> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <UIPATTERN><![CDATA[M]]></UIPATTERN> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <ISADVANCEDFEATURE><![CDATA[N]]></ISADVANCEDFEATURE> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <PREVENTCONCURRENT><![CDATA[Y]]></PREVENTCONCURRENT> +<!--AA64E3BA23F24D4F8E6B06970500FC70--> <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS> +<!--AA64E3BA23F24D4F8E6B06970500FC70--></AD_PROCESS> + <!--B54318B49E984B9CB855AEFB1F474CD6--><AD_PROCESS> <!--B54318B49E984B9CB855AEFB1F474CD6--> <AD_PROCESS_ID><![CDATA[B54318B49E984B9CB855AEFB1F474CD6]]></AD_PROCESS_ID> <!--B54318B49E984B9CB855AEFB1F474CD6--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID> diff -r 33522813fc10 -r 36002d545d45 modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/RecordID2Filling.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/RecordID2Filling.java Mon Jun 02 11:46:53 2014 +0000 @@ -0,0 +1,461 @@ +package org.openbravo.advpaymentmngt.process; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.hibernate.Query; +import org.hibernate.ScrollMode; +import org.hibernate.ScrollableResults; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; +import org.openbravo.dal.core.OBContext; +import org.openbravo.dal.service.OBCriteria; +import org.openbravo.dal.service.OBDal; +import org.openbravo.dal.service.OBQuery; +import org.openbravo.model.financialmgmt.accounting.AccountingFact; +import org.openbravo.model.financialmgmt.accounting.coa.AccountingCombination; +import org.openbravo.model.financialmgmt.accounting.coa.AcctSchema; +import org.openbravo.model.financialmgmt.payment.FIN_FinaccTransaction; +import org.openbravo.model.financialmgmt.payment.FIN_FinancialAccount; +import org.openbravo.model.financialmgmt.payment.FIN_Payment; +import org.openbravo.model.financialmgmt.payment.FIN_PaymentMethod; +import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail; +import org.openbravo.model.financialmgmt.payment.FinAccPaymentMethod; +import org.openbravo.scheduling.ProcessBundle; +import org.openbravo.scheduling.ProcessLogger; +import org.openbravo.service.db.DalBaseProcess; + +public class RecordID2Filling extends DalBaseProcess { + + private static final Object TRANSACTION_TABLE_ID = "4D8C3B3C31D1410DA046140C9F024D17"; + private ProcessLogger logger; + + @Override + protected void doExecute(ProcessBundle bundle) throws Exception { + logger = bundle.getLogger(); + final StringBuilder hqlInvoices = new StringBuilder(); + Set<AcctSchema> schemas = getSchemas(); + Set<String> bpAccounts = new HashSet<String>(); + Set<String> faAccounts = new HashSet<String>(); + for (AcctSchema acctSchema : schemas) { + bpAccounts.addAll(getBPAccountList(true, acctSchema.getId())); + bpAccounts.addAll(getBPAccountList(false, acctSchema.getId())); + faAccounts.addAll(getFAAccountList(true, acctSchema.getId())); + faAccounts.addAll(getFAAccountList(false, acctSchema.getId())); + } + + hqlInvoices.append(" update FinancialMgmtAccountingFact as f set f.recordID2 = f.lineID "); + hqlInvoices.append(" where f.table.id = '318' "); + hqlInvoices + .append(" and exists (select 1 from FIN_Payment_Schedule as ps where ps.id = f.lineID)"); + hqlInvoices.append(" and f.account.id in :accounts"); + hqlInvoices.append(" and f.recordID2 is null"); + Query updateInvoices = OBDal.getInstance().getSession().createQuery(hqlInvoices.toString()); + updateInvoices.setParameterList("accounts", bpAccounts); + int numberInvoices = updateInvoices.executeUpdate(); + logger.logln("Number of invoice entries updated: " + numberInvoices); + OBDal.getInstance().flush(); + + final StringBuilder hqlPayments = new StringBuilder(); + hqlPayments + .append(" update FinancialMgmtAccountingFact as f set f.recordID2 = (" + + "select case when psd.invoicePaymentSchedule is null then psd.orderPaymentSchedule else psd.invoicePaymentSchedule end " + + "from FIN_Payment_ScheduleDetail as psd join psd.paymentDetails as pd" + + " where pd.id = f.lineID)"); + hqlPayments.append("where f.table.id = 'D1A97202E832470285C9B1EB026D54E2' "); + hqlPayments.append(" and f.account.id in :accounts"); + hqlPayments.append(" and f.recordID2 is null"); + Query updatePayments = OBDal.getInstance().getSession().createQuery(hqlPayments.toString()); + updatePayments.setParameterList("accounts", bpAccounts); + int numberPayments = updatePayments.executeUpdate(); + + logger.logln("Number of payment entries updated: " + numberPayments); + OBDal.getInstance().flush(); + + // Updates in transit accounts (record_id2) + final StringBuilder hqlPaymentsInTransit = new StringBuilder(); + hqlPaymentsInTransit + .append(" update FinancialMgmtAccountingFact as f set f.recordID2 = f.recordID"); + hqlPaymentsInTransit.append(" where f.lineID is null "); + hqlPaymentsInTransit.append(" and f.recordID2 is null"); + hqlPaymentsInTransit + .append(" and exists (select 1 from FIN_Payment as p where p.id = f.recordID " + + "and not exists( select 1 from FIN_Payment_Credit as pc where pc.creditPaymentUsed = p))"); + Query updatePaymentsinTransit = OBDal.getInstance().getSession() + .createQuery(hqlPaymentsInTransit.toString()); + int numberPaymentsInTransit = updatePaymentsinTransit.executeUpdate(); + + System.out + .println("Number of payment entries updated (In Transit): " + numberPaymentsInTransit); + OBDal.getInstance().flush(); + + final StringBuilder hqlTrxRec = new StringBuilder(); + hqlTrxRec.append(" select f from FinancialMgmtAccountingFact as f "); + hqlTrxRec.append(" where f.recordID2 is null "); + hqlTrxRec + .append(" and exists (select 1 from FIN_Finacc_Transaction as t where t.id = f.lineID)"); + hqlTrxRec.append(" and account.id in :accounts"); + Query query = OBDal.getInstance().getSession().createQuery(hqlTrxRec.toString()); + + query.setParameterList("accounts", bpAccounts); + int i = 0; + int j = 0; + query.setFetchSize(1000); + final ScrollableResults scroller = query.scroll(ScrollMode.FORWARD_ONLY); + try { + while (scroller.next()) { + OBContext.setAdminMode(false); + final AccountingFact accountingEntry = (AccountingFact) scroller.get()[0]; + try { + FIN_FinaccTransaction trx = OBDal.getInstance().get(FIN_FinaccTransaction.class, + accountingEntry.getLineID()); + if (trx != null && trx.getFinPayment() != null) { + if (trx.getFinPayment().getFINPaymentDetailList().size() == 1 + && (trx.getFinPayment().getFINPaymentDetailList().get(0) + .getFINPaymentScheduleDetailList().get(0).getInvoicePaymentSchedule() != null || trx + .getFinPayment().getFINPaymentDetailList().get(0) + .getFINPaymentScheduleDetailList().get(0).getOrderPaymentSchedule() != null)) { + accountingEntry + .setRecordID2(trx.getFinPayment().getFINPaymentDetailList().get(0) + .getFINPaymentScheduleDetailList().get(0).getInvoicePaymentSchedule() == null ? trx + .getFinPayment().getFINPaymentDetailList().get(0) + .getFINPaymentScheduleDetailList().get(0).getOrderPaymentSchedule().getId() + : trx.getFinPayment().getFINPaymentDetailList().get(0) + .getFINPaymentScheduleDetailList().get(0).getInvoicePaymentSchedule() + .getId()); + OBDal.getInstance().save(accountingEntry); + j++; + } else { + FIN_PaymentScheduleDetail psd = getOrderedPSDs(trx.getFinPayment()).get( + getAccountingEntryPosition(accountingEntry, bpAccounts)); + accountingEntry.setRecordID2(psd.getPaymentDetails().isPrepayment() ? psd + .getOrderPaymentSchedule().getId() : psd.getInvoicePaymentSchedule().getId()); + OBDal.getInstance().save(accountingEntry); + j++; + } + } + // clear the session every 100 records + if ((i % 100) == 0 && i != 0) { + logger.logln(String.valueOf(i + 1) + " - " + String.valueOf(j)); + logger.logln(String.valueOf(i + 1) + " - " + String.valueOf(j)); + OBDal.getInstance().flush(); + OBDal.getInstance().getSession().clear(); + } + i++; + } catch (Exception e) { + logger.logln("Entry not updated: " + accountingEntry.getId()); + continue; + } + } + OBDal.getInstance().flush(); + OBDal.getInstance().getSession().clear(); + } finally { + OBContext.restorePreviousMode(); + scroller.close(); + } + // Update Transactions and Reconciliations + final StringBuilder hqlTrxRecInTransit = new StringBuilder(); + hqlTrxRecInTransit.append(" select f from FinancialMgmtAccountingFact as f "); + hqlTrxRecInTransit.append(" where f.recordID2 is null "); + hqlTrxRecInTransit + .append(" and (exists (select 1 from FIN_Finacc_Transaction as t where t.id = f.lineID) or (f.lineID is null and f.table.id = '" + + TRANSACTION_TABLE_ID + "'))"); + hqlTrxRecInTransit.append(" and account.id in :accounts"); + Query queryInTransit = OBDal.getInstance().getSession() + .createQuery(hqlTrxRecInTransit.toString()); + + queryInTransit.setParameterList("accounts", faAccounts); + i = 0; + j = 0; + queryInTransit.setFetchSize(1000); + final ScrollableResults scrollerInTransit = queryInTransit.scroll(ScrollMode.FORWARD_ONLY); + try { + while (scrollerInTransit.next()) { + OBContext.setAdminMode(false); + final AccountingFact accountingEntry = (AccountingFact) scrollerInTransit.get()[0]; + try { + FIN_FinaccTransaction trx = OBDal.getInstance().get( + FIN_FinaccTransaction.class, + accountingEntry.getLineID() == null ? accountingEntry.getRecordID() : accountingEntry + .getLineID()); + if (trx != null && trx.getFinPayment() != null) { + // logger.logln("Table: " + accountingEntry.getTable().getName()); + // logger.logln("Accounting entry: "); + // logger.logln(accountingEntry.getAccountingEntryDescription() + " - " + // + accountingEntry.getDebit().toString() + " - " + // + accountingEntry.getCredit().toString()); + // logger.logln("Payment Method: " + trx.getFinPayment().getPaymentMethod().getName()); + // logger.logln("Financial Account: " + trx.getAccount().getName()); + + Set<String> paymentAccount = getFAAccountList(trx.getFinPayment().isReceipt(), + accountingEntry.getAccountingSchema().getId(), trx.getAccount().getId(), trx + .getFinPayment().getPaymentMethod().getId(), "PAY"); + Set<String> transactionAccount = getFAAccountList(trx.getFinPayment().isReceipt(), + accountingEntry.getAccountingSchema().getId(), trx.getAccount().getId(), trx + .getFinPayment().getPaymentMethod().getId(), "TRX"); + + // logger.logln("Payment event account: " + paymentAccount); + // logger.logln("Transaction event account: " + transactionAccount); + if (paymentAccount.contains(accountingEntry.getAccount().getId())) { + logger.logln("Use: Payment ID= " + trx.getFinPayment().getId()); + accountingEntry.setRecordID2(trx.getFinPayment().getId()); + OBDal.getInstance().save(accountingEntry); + j++; + } else if (transactionAccount.contains(accountingEntry.getAccount().getId())) { + logger.logln("Use: Transaction ID= " + trx.getId()); + accountingEntry.setRecordID2(trx.getId()); + OBDal.getInstance().save(accountingEntry); + j++; + } + } + // clear the session every 100 records + if ((i % 100) == 0 && i != 0) { + logger.logln(String.valueOf(i + 1) + " - " + String.valueOf(j)); + logger.logln(String.valueOf(i + 1) + " - " + String.valueOf(j)); + OBDal.getInstance().flush(); + OBDal.getInstance().getSession().clear(); + } + i++; + } catch (Exception e) { + logger.logln("Entry not updated: " + accountingEntry.getId()); + continue; + } + } + OBDal.getInstance().flush(); + OBDal.getInstance().getSession().clear(); + } finally { + OBContext.restorePreviousMode(); + scrollerInTransit.close(); ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/NeoTech _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
