List of usage examples for org.joda.time DateTime plusDays
public DateTime plusDays(int days)
From source file:org.cast.cwm.admin.EventLog.java
License:Open Source License
protected Date midnightEnd(Date olddate) { DateTime dateTime = new DateTime(olddate); DateTime adjustedDateTime = dateTime.plusDays(1).withTimeAtStartOfDay(); return adjustedDateTime.toDate(); }
From source file:org.ecocean.Shepherd.java
License:Open Source License
public ArrayList<Encounter> getEncounterArrayWithShortDate(String sd) { sd = sd.replace("/", "-"); sd = sd.replace(".", "-"); sd = sd.trim();// www . j a v a2 s . c o m DateFormat fm = new SimpleDateFormat("yyyy-MM-dd"); Date d = null; try { d = (Date) fm.parse(sd); } catch (ParseException pe) { pe.printStackTrace(); } DateTime dt = new DateTime(d); DateTime nextDay = dt.plusDays(1).toDateTime(); // Since the query involves a date but no time, we need to get the millis of the next day at 12:00AM as well and find all encounters that occurred in between. String milliString = String.valueOf(dt.getMillis()); String millisNext = String.valueOf(nextDay.getMillis()); System.out.println("Trying to get encounter with date in Millis : " + milliString); String keywordQueryString = "SELECT FROM org.ecocean.Encounter WHERE dateInMilliseconds >= " + milliString + " && dateInMilliseconds <= " + millisNext + ""; Collection col = null; Query encQuery = null; try { encQuery = pm.newQuery(keywordQueryString); if (encQuery.execute() != null) { col = (Collection) encQuery.execute(); } } catch (Exception e) { e.printStackTrace(); System.out.println("Exception on query : " + keywordQueryString); return null; } ArrayList<Encounter> encs = new ArrayList<Encounter>(col); encQuery.closeAll(); if (encs != null) { return encs; } else { return null; } }
From source file:org.efaps.esjp.accounting.Period_Base.java
License:Apache License
/** * Called from a tree menu command to present the documents related with * stock movement that are not connected with the period and therefor * must be worked on still.//from w w w .j a v a2 s. c o m * * @param _parameter Paremeter * @return List if Instances * @throws EFapsException on error */ public Return getStockToBook(final Parameter _parameter) throws EFapsException { final Return ret = new Return(); final Instance instance = _parameter.getInstance(); final PrintQuery print = new PrintQuery(instance); print.addAttribute(CIAccounting.Period.FromDate); print.addAttribute(CIAccounting.Period.ToDate); print.execute(); final DateTime from = print.<DateTime>getAttribute(CIAccounting.Period.FromDate); final DateTime to = print.<DateTime>getAttribute(CIAccounting.Period.ToDate); final QueryBuilder attrQueryBldr = new QueryBuilder(CIAccounting.Transaction2SalesDocument); final AttributeQuery attrQuery = attrQueryBldr .getAttributeQuery(CIAccounting.Transaction2SalesDocument.ToLink); final QueryBuilder queryBldr = new QueryBuilder(CISales.DocumentStockAbstract); queryBldr.addWhereAttrEqValue(CISales.DocumentStockAbstract.StatusAbstract, Status.find(CISales.DeliveryNoteStatus.Closed), Status.find(CISales.ReturnSlipStatus.Closed)); queryBldr.addWhereAttrGreaterValue(CISales.DocumentStockAbstract.Date, from.minusMinutes(1)); queryBldr.addWhereAttrLessValue(CISales.DocumentStockAbstract.Date, to.plusDays(1)); queryBldr.addWhereAttrNotInQuery(CISales.DocumentStockAbstract.ID, attrQuery); final IFilterList filterlist = (IFilterList) _parameter.get(ParameterValues.OTHERS); final DocMulti multi = new DocMulti(); multi.analyzeTable(_parameter, filterlist, queryBldr, CISales.DocumentStockAbstract.getType()); final InstanceQuery query = queryBldr.getQuery(); final List<Instance> instances = query.execute(); ret.put(ReturnValues.VALUES, instances); return ret; }
From source file:org.efaps.esjp.accounting.report.AccountDataSource_Base.java
License:Apache License
/** * @see org.efaps.esjp.common.jasperreport.EFapsDataSource_Base#init(net.sf.jasperreports.engine.JasperReport) * @param _jasperReport JasperReport/*from w w w .j av a 2 s.c om*/ * @param _parameter Parameter * @param _parentSource JRDataSource * @param _jrParameters map that contains the report parameters * @throws EFapsException on error */ @Override public void init(final JasperReport _jasperReport, final Parameter _parameter, final JRDataSource _parentSource, final Map<String, Object> _jrParameters) throws EFapsException { final List<Instance> instances = new ArrayList<>(); if (_parameter.getInstance() != null && _parameter.getInstance().isValid() && _parameter.getInstance().getType().isKindOf(CIAccounting.AccountAbstract.getType())) { instances.add(_parameter.getInstance()); final PrintQuery printRep = new PrintQuery(_parameter.getInstance()); printRep.addAttribute(CIAccounting.AccountAbstract.Name); printRep.execute(); final String name = printRep.<String>getAttribute(CIAccounting.ReportAbstract.Name).replaceAll(" ", "_"); _jrParameters.put("FileName", name); } else { final String[] oids = (String[]) Context.getThreadContext().getSessionAttribute("selectedOIDs"); final Set<Instance> instSet = new LinkedHashSet<>(); for (final String oid : oids) { final Instance instancetmp = Instance.get(oid); if (instancetmp.isValid()) { instSet.addAll(getAccountInstances(_parameter, instancetmp)); } } instances.addAll(instSet); } final List<Instance> posInstances = new ArrayList<>(); final DateTime dateFrom = new DateTime(_parameter.getParameterValue("dateFrom")); final DateTime dateTo = new DateTime(_parameter.getParameterValue("dateTo")); final Map<DateTime, BigDecimal> rates = new HashMap<>(); _jrParameters.put("Rates", rates); if ("true".equalsIgnoreCase(_parameter.getParameterValue("filterActive"))) { final Instance curr = Instance.get(CIERP.Currency.getType(), Long.valueOf(_parameter.getParameterValue("currency"))); if (curr.isValid()) { final CurrencyInst curInst = new CurrencyInst(curr); _jrParameters.put("TargetCurrencyId", curr.getId()); _jrParameters.put("TargetCurrencyLabel", curInst.getName()); rates.putAll(getRates4DateRange(_parameter, curInst.getInstance(), dateFrom, dateTo)); } } else { _jrParameters.put("TargetCurrencyId", null); } for (final Instance accInst : instances) { final QueryBuilder attrQueryBldr = new QueryBuilder(CIAccounting.TransactionAbstract); attrQueryBldr.addWhereAttrLessValue(CIAccounting.TransactionAbstract.Date, dateTo.plusDays(1)); attrQueryBldr.addWhereAttrGreaterValue(CIAccounting.TransactionAbstract.Date, dateFrom.minusSeconds(1)); final AttributeQuery attrQuery = attrQueryBldr.getAttributeQuery(CIAccounting.TransactionAbstract.ID); final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.TransactionPositionAbstract); queryBldr.addWhereAttrEqValue(CIAccounting.TransactionPositionAbstract.AccountLink, accInst.getId()); queryBldr.addWhereAttrInQuery(CIAccounting.TransactionPositionAbstract.TransactionLink, attrQuery); final InstanceQuery query = queryBldr.getQuery(); posInstances.addAll(query.execute()); } if (posInstances.size() > 0) { final MultiPrintQuery multi = new MultiPrintQuery(posInstances); for (final JRField field : _jasperReport.getMainDataset().getFields()) { final String select = field.getPropertiesMap().getProperty("Select"); if (select != null) { multi.addSelect(select); } } multi.setEnforceSorted(true); multi.execute(); setPrint(multi); } final SystemConfiguration config = ERP.getSysConfig(); if (config != null) { final String companyName = ERP.COMPANY_NAME.get(); final String companyTaxNumb = ERP.COMPANY_TAX.get(); if (companyName != null && companyTaxNumb != null && !companyName.isEmpty() && !companyTaxNumb.isEmpty()) { _jrParameters.put("CompanyName", companyName); _jrParameters.put("CompanyTaxNum", companyTaxNumb); } } }
From source file:org.efaps.esjp.accounting.report.AccountDataSource_Base.java
License:Apache License
protected Map<DateTime, BigDecimal> getRates4DateRange(final Parameter _parameter, final Instance _curInst, final DateTime _from, final DateTime _to) throws EFapsException { final Map<DateTime, BigDecimal> map = new HashMap<>(); DateTime fromAux = _from; final Currency currency = getCurrency(_parameter); while (fromAux.isBefore(_to)) { final RateInfo rateInfo = currency.evaluateRateInfo(_parameter, fromAux, _curInst); final BigDecimal rate = RateInfo.getRate(_parameter, rateInfo, AccountDataSource.class.getName()); map.put(fromAux, rate);/* ww w . ja v a2 s . co m*/ fromAux = fromAux.plusDays(1); } return map; }
From source file:org.efaps.esjp.accounting.report.DocTransactionsSource_Base.java
License:Apache License
/** * @see org.efaps.esjp.common.jasperreport.EFapsDataSource_Base#init(net.sf.jasperreports.engine.JasperReport) * @param _jasperReport JasperReport//from w w w. j av a 2 s.c om * @param _parameter Parameter * @param _parentSource JRDataSource * @param _jrParameters map that contains the report parameters * @throws EFapsException on error */ @SuppressWarnings("unchecked") @Override public void init(final JasperReport _jasperReport, final Parameter _parameter, final JRDataSource _parentSource, final Map<String, Object> _jrParameters) throws EFapsException { final Instance instance = _parameter.getInstance(); final DateTime dateFrom = new DateTime( _parameter.getParameterValue(CIFormAccounting.Accounting_DocTransactionsForm.dateFrom.name)); final DateTime dateTo = new DateTime( _parameter.getParameterValue(CIFormAccounting.Accounting_DocTransactionsForm.dateTo.name)); _jrParameters.put("FromDate", dateFrom.toDate()); _jrParameters.put("ToDate", dateTo.toDate()); _jrParameters.put("Mime", _parameter.getParameterValue("mime")); final boolean filter = "true".equalsIgnoreCase( _parameter.getParameterValue(CIFormAccounting.Accounting_DocTransactionsForm.filterActive.name)); final Instance contactInst = Instance .get(_parameter.getParameterValue(CIFormAccounting.Accounting_DocTransactionsForm.contact.name)); final String[] creditAccount = _parameter .getParameterValues(CIFormAccounting.Accounting_DocTransactionsForm.creditAccount.name); final String[] debitAccount = _parameter .getParameterValues(CIFormAccounting.Accounting_DocTransactionsForm.debitAccount.name); // filter the documents by the given dates final QueryBuilder docAttrQueryBldr = new QueryBuilder(CIERP.DocumentAbstract); docAttrQueryBldr.addWhereAttrLessValue(CIERP.DocumentAbstract.Date, dateTo.plusDays(1)); docAttrQueryBldr.addWhereAttrGreaterValue(CIERP.DocumentAbstract.Date, dateFrom.minusSeconds(1)); if (filter && contactInst.isValid() && contactInst.getType().isKindOf(CIContacts.Contact.getType())) { docAttrQueryBldr.addWhereAttrEqValue(CIERP.DocumentAbstract.Contact, contactInst.getId()); } final AttributeQuery docAttrQuery = docAttrQueryBldr.getAttributeQuery(CIERP.DocumentAbstract.ID); final QueryBuilder attrQuerBldr = new QueryBuilder(CIAccounting.Transaction2SalesDocument); attrQuerBldr.addWhereAttrInQuery(CIAccounting.Transaction2SalesDocument.ToLink, docAttrQuery); final AttributeQuery attrQuery = attrQuerBldr .getAttributeQuery(CIAccounting.Transaction2SalesDocument.FromLink); final QueryBuilder queryBuilder = new QueryBuilder(CIAccounting.Transaction); queryBuilder.addWhereAttrInQuery(CIAccounting.Transaction.ID, attrQuery); queryBuilder.addWhereAttrEqValue(CIAccounting.Transaction.PeriodLink, instance.getId()); final MultiPrintQuery multi = queryBuilder.getPrint(); final SelectBuilder selDoc = new SelectBuilder() .linkfrom(CIAccounting.Transaction2SalesDocument, CIAccounting.Transaction2SalesDocument.FromLink) .linkto(CIAccounting.Transaction2SalesDocument.ToLink); final SelectBuilder selDocName = new SelectBuilder(selDoc).attribute(CIERP.DocumentAbstract.Name); final SelectBuilder selDocDate = new SelectBuilder(selDoc).attribute(CIERP.DocumentAbstract.Date); final SelectBuilder selDocType = new SelectBuilder(selDoc).type().label(); final SelectBuilder selDocContactName = new SelectBuilder(selDoc).linkto(CIERP.DocumentAbstract.Contact) .attribute(CIContacts.Contact.Name); final SelectBuilder selDocContactTaxNumber = new SelectBuilder(selDoc) .linkto(CIERP.DocumentAbstract.Contact).clazz(CIContacts.ClassOrganisation) .attribute(CIContacts.ClassOrganisation.TaxNumber); multi.addSelect(selDocName, selDocContactName, selDocContactTaxNumber, selDocType, selDocDate); multi.addAttribute(CIAccounting.Transaction.Date, CIAccounting.Transaction.Description, CIAccounting.Transaction.Name); multi.execute(); while (multi.next()) { final String docType = multi.<String>getSelect(selDocType); final String docName = multi.<String>getSelect(selDocName); final DateTime docDate = multi.<DateTime>getSelect(selDocDate); final String contactName = multi.<String>getSelect(selDocContactName); final String taxNumber = multi.<String>getSelect(selDocContactTaxNumber); final DateTime transDate = multi.<DateTime>getAttribute(CIAccounting.Transaction.Date); final String transDescr = multi.<String>getAttribute(CIAccounting.Transaction.Description); final String transOID = multi.getCurrentInstance().getOid(); final String transName = multi.<String>getAttribute(CIAccounting.Transaction.Name); final QueryBuilder posQueryBldr = new QueryBuilder(CIAccounting.TransactionPositionAbstract); posQueryBldr.addWhereAttrEqValue(CIAccounting.TransactionPositionAbstract.TransactionLink, multi.getCurrentInstance().getId()); final MultiPrintQuery posMulti = posQueryBldr.getPrint(); final SelectBuilder selAcc = new SelectBuilder() .linkto(CIAccounting.TransactionPositionAbstract.AccountLink); final SelectBuilder selAccName = new SelectBuilder(selAcc).attribute(CIAccounting.AccountAbstract.Name); final SelectBuilder selAccDesc = new SelectBuilder(selAcc) .attribute(CIAccounting.AccountAbstract.Description); posMulti.addSelect(selAccName, selAccDesc); posMulti.addAttribute(CIAccounting.TransactionPositionAbstract.Amount); posMulti.execute(); while (posMulti.next()) { final String accName = posMulti.<String>getSelect(selAccName); if (!filter || (filter && add(accName, posMulti.getCurrentInstance().getType() .isKindOf(CIAccounting.TransactionPositionCredit.getType()) ? creditAccount : debitAccount))) { final Map<String, Object> row = new HashMap<>(); row.put("docName", docName); row.put("docType", docType); row.put("docDate", docDate); row.put("contactName", contactName); row.put("taxNumber", taxNumber); row.put("transOID", transOID); row.put("transDate", transDate); row.put("transName", transName); row.put("transDescr", transDescr); row.put("amount", posMulti.getAttribute(CIAccounting.TransactionPositionAbstract.Amount)); row.put("accName", accName); row.put("accDescr", posMulti.getSelect(selAccDesc)); getValues().add(row); } } } final ComparatorChain chain = new ComparatorChain(); chain.addComparator(new Comparator<Map<String, Object>>() { @Override public int compare(final Map<String, Object> _arg0, final Map<String, Object> _arg1) { return String.valueOf(_arg0.get("taxNumber")).compareTo(String.valueOf(_arg1.get("taxNumber"))); } }); chain.addComparator(new Comparator<Map<String, Object>>() { @Override public int compare(final Map<String, Object> _arg0, final Map<String, Object> _arg1) { return String.valueOf(_arg0.get("docName")).compareTo(String.valueOf(_arg1.get("docName"))); } }); chain.addComparator(new Comparator<Map<String, Object>>() { @Override public int compare(final Map<String, Object> _arg0, final Map<String, Object> _arg1) { return ((DateTime) _arg0.get("transDate")).compareTo((DateTime) _arg1.get("transDate")); } }); chain.addComparator(new Comparator<Map<String, Object>>() { @Override public int compare(final Map<String, Object> _arg0, final Map<String, Object> _arg1) { return String.valueOf(_arg0.get("transOID")).compareTo(String.valueOf(_arg1.get("transOID"))); } }); chain.addComparator(new Comparator<Map<String, Object>>() { @Override public int compare(final Map<String, Object> _arg0, final Map<String, Object> _arg1) { return String.valueOf(_arg0.get("accName")).compareTo(String.valueOf(_arg1.get("accName"))); } }); Collections.sort(getValues(), chain); final SystemConfiguration config = ERP.getSysConfig(); if (config != null) { final String companyName = ERP.COMPANY_NAME.get(); final String companyTaxNumb = ERP.COMPANY_TAX.get(); if (companyName != null && companyTaxNumb != null && !companyName.isEmpty() && !companyTaxNumb.isEmpty()) { _jrParameters.put("CompanyName", companyName); _jrParameters.put("CompanyTaxNum", companyTaxNumb); } } }
From source file:org.efaps.esjp.accounting.report.ExpenseReport_Base.java
License:Apache License
/** * Gets the instances.// ww w . jav a2 s.co m * * @param _parameter Parameter as passed by the eFaps API * @param _from the from * @param _to the to * @return the instances * @throws EFapsException on error */ protected List<Instance> getInstances(final Parameter _parameter, final DateTime _from, final DateTime _to) throws EFapsException { final QueryBuilder attrQuerBldr = new QueryBuilder(CIAccounting.Transaction2SalesDocument); final AttributeQuery attrQuery = attrQuerBldr .getAttributeQuery(CIAccounting.Transaction2SalesDocument.FromLink); final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.TransactionAbstract); queryBldr.addWhereAttrInQuery(CIAccounting.TransactionAbstract.ID, attrQuery); queryBldr.addWhereAttrGreaterValue(CIERP.DocumentAbstract.Date, _from.minusMinutes(1)); queryBldr.addWhereAttrLessValue(CIERP.DocumentAbstract.Date, _to.plusDays(1)); queryBldr.addWhereAttrEqValue(CIAccounting.TransactionAbstract.PeriodLink, _parameter.getInstance().getId()); final InstanceQuery query = queryBldr.getQuery(); query.execute(); return query.getValues(); }
From source file:org.efaps.esjp.accounting.report.JournalDataSource_Base.java
License:Apache License
@Override protected void analyze() throws EFapsException { if (isSubDataSource()) { super.analyze(); } else {//from ww w . j a v a2 s . c o m final DateTime dateFrom = new DateTime(getParameter().getParameterValue("dateFrom")); final DateTime dateTo = new DateTime(getParameter().getParameterValue("dateTo")); final Map<?, ?> props = (Map<?, ?>) getParameter().get(ParameterValues.PROPERTIES); final QueryBuilder queryBuilder = new QueryBuilder(CIAccounting.TransactionAbstract); if (getParameter().getInstance().isValid() && getParameter().getInstance().getType().isKindOf(CIAccounting.ReportSubJournal.getType())) { final QueryBuilder attrQueryBldr = new QueryBuilder(CIAccounting.Report2Transaction); attrQueryBldr.addWhereAttrEqValue(CIAccounting.Report2Transaction.FromLinkAbstract, getParameter().getInstance().getId()); final AttributeQuery attrQuery = attrQueryBldr .getAttributeQuery(CIAccounting.Report2Transaction.ToLinkAbstract); queryBuilder.addWhereAttrInQuery(CIAccounting.TransactionAbstract.ID, attrQuery); final QueryBuilder attrQueryBldr2 = new QueryBuilder(CIAccounting.ReportSubJournal); attrQueryBldr2.addWhereAttrEqValue(CIAccounting.ReportSubJournal.ID, getInstance()); final AttributeQuery attrQuery2 = attrQueryBldr2 .getAttributeQuery(CIAccounting.ReportSubJournal.PeriodLink); queryBuilder.addWhereAttrInQuery(CIAccounting.TransactionAbstract.PeriodLink, attrQuery2); } else { queryBuilder.addWhereAttrEqValue(CIAccounting.TransactionAbstract.PeriodLink, getInstance()); } queryBuilder.addWhereAttrLessValue(CIAccounting.TransactionAbstract.Date, dateTo.plusDays(1)); queryBuilder.addWhereAttrGreaterValue(CIAccounting.TransactionAbstract.Date, dateFrom.minusSeconds(1)); queryBuilder.addOrderByAttributeAsc(CIAccounting.TransactionAbstract.Date); queryBuilder.addOrderByAttributeAsc(CIAccounting.TransactionAbstract.Name); queryBuilder.addOrderByAttributeAsc(CIAccounting.TransactionAbstract.Description); if (props.containsKey("Classifications")) { final String classStr = (String) props.get("Classifications"); final String[] clazzes = classStr.split(";"); for (final String clazz : clazzes) { final Classification classif = (Classification) Type.get(clazz); if (classif != null) { queryBuilder.addWhereClassification(classif); } } } setPrint(queryBuilder.getPrint()); getPrint().setEnforceSorted(true); if (getJasperReport().getMainDataset().getFields() != null) { for (final JRField field : getJasperReport().getMainDataset().getFields()) { final String select = field.getPropertiesMap().getProperty("Select"); if (select != null) { getPrint().addSelect(select); getSelects().add(select); } } } getPrint().execute(); } }
From source file:org.efaps.esjp.accounting.report.ReportAccountDataSource_Base.java
License:Apache License
/** * Recursive method to get the Debit and Credit Amount of all Transactions * of the given account and the accounts children. * * @param _accInst Instance of the Account * @param _dateFrom dateFrom//from w w w .ja v a2s. c o m * @param _dateTo date To * @return Array of BigDecimal { Debit Amount, Credit Amount} * @throws EFapsException on error */ protected BigDecimal[] getDebitCredit(final Parameter _parameter, final Instance _accInst, final DateTime _dateFrom, final DateTime _dateTo) throws EFapsException { final boolean active = Boolean.parseBoolean(_parameter.getParameterValue("filterActive")); final String currency = _parameter.getParameterValue("currency"); final Instance curBase = Currency.getBaseCurrency(); BigDecimal debit = BigDecimal.ZERO; BigDecimal credit = BigDecimal.ZERO; // get the transactions fot the given account instance final QueryBuilder attrQueryBldr = new QueryBuilder(CIAccounting.TransactionAbstract); attrQueryBldr.addWhereAttrLessValue(CIAccounting.TransactionAbstract.Date, _dateTo.plusDays(1)); attrQueryBldr.addWhereAttrGreaterValue(CIAccounting.TransactionAbstract.Date, _dateFrom.minusSeconds(1)); final AttributeQuery attrQuery = attrQueryBldr.getAttributeQuery(CIAccounting.TransactionAbstract.ID); final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.TransactionPositionAbstract); queryBldr.addWhereAttrEqValue(CIAccounting.TransactionPositionAbstract.AccountLink, _accInst.getId()); queryBldr.addWhereAttrInQuery(CIAccounting.TransactionPositionAbstract.TransactionLink, attrQuery); final MultiPrintQuery multi = queryBldr.getPrint(); multi.addAttribute(CIAccounting.TransactionPositionAbstract.Amount, CIAccounting.TransactionPositionAbstract.RateAmount); final SelectBuilder selRateCur = new SelectBuilder() .linkto(CIAccounting.TransactionPositionAbstract.RateCurrencyLink).instance(); final SelectBuilder selTxnDate = new SelectBuilder() .linkto(CIAccounting.TransactionPositionAbstract.TransactionLink) .attribute(CIAccounting.TransactionAbstract.Date); multi.addSelect(selRateCur, selTxnDate); multi.execute(); while (multi.next()) { final CurrencyInst curInstTxnPos = new CurrencyInst(multi.<Instance>getSelect(selRateCur)); final DateTime date = multi.<DateTime>getSelect(selTxnDate); BigDecimal amount = BigDecimal.ZERO; if (active) { final Long rateCurType = Long.parseLong(_parameter.getParameterValue("rateCurrencyType")); final CurrencyInst curInst = new CurrencyInst(Instance.get(CIERP.Currency.getType(), currency)); if (curInstTxnPos.getInstance().getId() != curInst.getInstance().getId()) { if (curInstTxnPos.getInstance().getId() != curBase.getId()) { RateInfo rateInfo = getCurrency(_parameter).evaluateRateInfo(_parameter, date, curInstTxnPos.getInstance()); BigDecimal rate = RateInfo.getRate(_parameter, rateInfo, ReportAccountDataSource.class.getName()); final BigDecimal amountTmp = multi .<BigDecimal>getAttribute(CIAccounting.TransactionPositionAbstract.RateAmount) .divide(rate, BigDecimal.ROUND_HALF_UP); rateInfo = getCurrency(_parameter).evaluateRateInfo(_parameter, date, curInst.getInstance()); rate = RateInfo.getRate(_parameter, rateInfo, Report.class.getName()); amount = amountTmp.divide(rate, BigDecimal.ROUND_HALF_UP); } else { final RateInfo rateInfo = getCurrency(_parameter).evaluateRateInfo(_parameter, date, curInst.getInstance()); final BigDecimal rate = RateInfo.getRate(_parameter, rateInfo, Report.class.getName()); amount = multi.<BigDecimal>getAttribute(CIAccounting.TransactionPositionAbstract.RateAmount) .divide(rate, BigDecimal.ROUND_HALF_UP); } } else { amount = multi.<BigDecimal>getAttribute(CIAccounting.TransactionPositionAbstract.RateAmount); } } else { amount = multi.<BigDecimal>getAttribute(CIAccounting.TransactionPositionAbstract.Amount); } if (multi.getCurrentInstance().getType().equals(CIAccounting.TransactionPositionCredit.getType())) { credit = credit.add(amount); } else { debit = debit.add(amount); } } // get the child accounts, andd the amounts by calling recursive final QueryBuilder accQueryBldr = new QueryBuilder(CIAccounting.AccountAbstract); accQueryBldr.addWhereAttrEqValue(CIAccounting.AccountAbstract.ParentLink, _accInst.getId()); final InstanceQuery accQuery = accQueryBldr.getQuery(); accQuery.execute(); while (accQuery.next()) { final BigDecimal[] amounts = getDebitCredit(_parameter, accQuery.getCurrentValue(), _dateFrom, _dateTo); debit = debit.add(amounts[0]); credit = credit.add(amounts[1]); } return new BigDecimal[] { debit, credit }; }
From source file:org.efaps.esjp.accounting.report.ReportJournalDataSource_Base.java
License:Apache License
@Override protected void analyze() throws EFapsException { if (isSubDataSource()) { super.analyze(); } else {/*w w w .jav a 2 s .c om*/ final Instance instance = getParameter().getInstance(); final DateTime dateFrom = new DateTime(getParameter().getParameterValue("dateFrom")); final DateTime dateTo = new DateTime(getParameter().getParameterValue("dateTo")); this.jrParameters.put("FromDate", dateFrom.toDate()); this.jrParameters.put("ToDate", dateTo.toDate()); this.jrParameters.put("Mime", getParameter().getParameterValue("mime")); final PrintQuery printRep = new PrintQuery(instance); printRep.addAttribute(CIAccounting.ReportAbstract.Name); printRep.execute(); final String name = printRep.<String>getAttribute(CIAccounting.ReportAbstract.Name).replaceAll(" ", "_"); this.jrParameters.put("FileName", name); // get the root node, only the first one will be used final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.ReportNodeRoot); queryBldr.addWhereAttrEqValue(CIAccounting.ReportNodeRoot.ReportLink, instance.getId()); final InstanceQuery query = queryBldr.getQuery(); query.execute(); if (query.next()) { // only the ReportAccounts will be evaluated final QueryBuilder accQueryBldr = new QueryBuilder(CIAccounting.ReportNodeAccount); accQueryBldr.addWhereAttrEqValue(CIAccounting.ReportNodeAccount.ParentLink, query.getCurrentValue().getId()); final AttributeQuery attrQuery = accQueryBldr .getAttributeQuery(CIAccounting.ReportNodeAccount.AccountLink); final QueryBuilder tpQueryBldr = new QueryBuilder(CIAccounting.TransactionPositionAbstract); tpQueryBldr.addWhereAttrInQuery(CIAccounting.TransactionPositionAbstract.AccountLink, attrQuery); final AttributeQuery tpAttrQuery = tpQueryBldr .getAttributeQuery(CIAccounting.TransactionPositionAbstract.TransactionLink); final QueryBuilder queryBuilder = new QueryBuilder(CIAccounting.TransactionAbstract); queryBuilder.addWhereAttrLessValue(CIAccounting.TransactionAbstract.Date, dateTo.plusDays(1)); queryBuilder.addWhereAttrGreaterValue(CIAccounting.TransactionAbstract.Date, dateFrom.minusSeconds(1)); queryBuilder.addOrderByAttributeAsc(CIAccounting.TransactionAbstract.Date); queryBuilder.addWhereAttrInQuery(CIAccounting.TransactionAbstract.ID, tpAttrQuery); setPrint(queryBuilder.getPrint()); getPrint().setEnforceSorted(true); if (getJasperReport().getMainDataset().getFields() != null) { for (final JRField field : getJasperReport().getMainDataset().getFields()) { final String select = field.getPropertiesMap().getProperty("Select"); if (select != null) { getPrint().addSelect(select); getSelects().add(select); } } } getPrint().execute(); } } }