List of usage examples for org.joda.time DateTime plusDays
public DateTime plusDays(int days)
From source file:org.efaps.esjp.accounting.report.TrialBalanceDS_Base.java
License:Apache License
@Override public void init(final JasperReport _jasperReport, final Parameter _parameter, final JRDataSource _parentSource, final Map<String, Object> _jrParameters) throws EFapsException { super.init(_jasperReport, _parameter, _parentSource, _jrParameters); final Map<Instance, DataBean> mapping = new HashMap<>(); final List<Instance> instances = new ArrayList<>(); final DateTime dateFrom = new DateTime( _parameter.getParameterValue(CIFormAccounting.Accounting_PReportTrialBalanceForm.dateFrom.name)); final DateTime dateTo = new DateTime( _parameter.getParameterValue(CIFormAccounting.Accounting_PReportTrialBalanceForm.dateTo.name)); final boolean includeInit = Boolean.parseBoolean( _parameter.getParameterValue(CIFormAccounting.Accounting_PReportTrialBalanceForm.includeInit.name)); int level = 2; final String levelStr = _parameter .getParameterValue(CIFormAccounting.Accounting_PReportTrialBalanceForm.level.name); if (levelStr != null && !levelStr.isEmpty()) { level = Integer.parseInt(levelStr); }//www . ja v a 2s . c o m _jrParameters.put("IncludeInit", includeInit); _jrParameters.put("DateFrom", dateFrom); _jrParameters.put("DateTo", dateTo); final String[] oids = (String[]) Context.getThreadContext().getSessionAttribute("selectedOIDs"); for (final String oid : oids) { final Instance instancetmp = Instance.get(oid); if (instancetmp.isValid()) { instances.addAll(getAccountInst(_parameter, instancetmp, false)); } } final QueryBuilder attrQueryBldr = new QueryBuilder(CIAccounting.TransactionAbstract); attrQueryBldr.addWhereAttrLessValue(CIAccounting.TransactionAbstract.Date, dateTo.plusDays(1)); if (!includeInit) { attrQueryBldr.addWhereAttrGreaterValue(CIAccounting.TransactionAbstract.Date, dateFrom.minusSeconds(1)); } final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.TransactionPositionAbstract); queryBldr.addWhereAttrInQuery(CIAccounting.TransactionPositionAbstract.TransactionLink, attrQueryBldr.getAttributeQuery(CIAccounting.TransactionAbstract.ID)); queryBldr.addWhereAttrEqValue(CIAccounting.TransactionPositionAbstract.AccountLink, instances.toArray()); final MultiPrintQuery multi = queryBldr.getPrint(); final SelectBuilder selTrans = SelectBuilder.get() .linkto(CIAccounting.TransactionPositionAbstract.TransactionLink); final SelectBuilder selTransDate = new SelectBuilder(selTrans) .attribute(CIAccounting.TransactionAbstract.Date); final SelectBuilder selAcc = SelectBuilder.get() .linkto(CIAccounting.TransactionPositionAbstract.AccountLink); final SelectBuilder selAccInst = new SelectBuilder(selAcc).instance(); final SelectBuilder selAccName = new SelectBuilder(selAcc).attribute(CIAccounting.AccountAbstract.Name); final SelectBuilder selAccDescr = new SelectBuilder(selAcc) .attribute(CIAccounting.AccountAbstract.Description); multi.addSelect(selTransDate, selAccInst, selAccName, selAccDescr); multi.addAttribute(CIAccounting.TransactionPositionAbstract.Amount); multi.execute(); while (multi.next()) { final DateTime date = multi.<DateTime>getSelect(selTransDate); final BigDecimal amount = multi .<BigDecimal>getAttribute(CIAccounting.TransactionPositionAbstract.Amount); final Instance accInst = multi.getSelect(selAccInst); DataBean bean; if (mapping.containsKey(accInst)) { bean = mapping.get(accInst); } else { bean = new DataBean(); mapping.put(accInst, bean); bean.setAccName(multi.<String>getSelect(selAccName)); bean.setAccDescr(multi.<String>getSelect(selAccDescr)); } if (multi.getCurrentInstance().getType().isKindOf(CIAccounting.TransactionPositionDebit.getType())) { if (includeInit && date.isBefore(dateFrom.plusSeconds(1))) { bean.addInitDebit(amount); } else { bean.addDebit(amount); } } else { if (includeInit && date.isBefore(dateFrom.plusSeconds(1))) { bean.addInitCredit(amount); } else { bean.addCredit(amount); } } } final List<DataBean> values; if (level > 0) { values = new ArrayList<>(); final Map<Instance, Leveler> accMap = new HashMap<>(); for (final Entry<Instance, DataBean> entry : mapping.entrySet()) { final Leveler accInfo = getLeveler(_parameter).setInstance(entry.getKey()).setLevel(level); if (accMap.containsKey(accInfo.getInstance())) { accMap.get(accInfo.getInstance()).addBean(entry.getValue()); } else { accInfo.addBean(entry.getValue()); accMap.put(accInfo.getInstance(), accInfo); } } for (final Leveler leveler : accMap.values()) { values.add(leveler.getDataBean()); } } else { values = new ArrayList<>(mapping.values()); } final ComparatorChain<DataBean> chain = new ComparatorChain<>(); chain.addComparator(new Comparator<DataBean>() { @Override public int compare(final DataBean _arg0, final DataBean _arg1) { return _arg0.getAccName().compareTo(_arg1.getAccName()); } }); Collections.sort(values, chain); setData(values); }
From source file:org.efaps.esjp.accounting.SubPeriod_Base.java
License:Apache License
/** * Called from a tree menu command to present the documents that are not * included in accounting yet./* w w w.ja v a 2 s .c o m*/ * * @param _parameter Paremeter * @return List if Instances * @throws EFapsException on error */ public Return getDocuments(final Parameter _parameter) throws EFapsException { final MultiPrint multi = new MultiPrint() { @Override protected void add2QueryBldr(final Parameter _parameter, final QueryBuilder _queryBldr) throws EFapsException { final Instance instance = _parameter.getInstance(); final PrintQuery print = new CachedPrintQuery(instance, SubPeriod_Base.CACHEKEY); print.addAttribute(CIAccounting.SubPeriod.FromDate); print.addAttribute(CIAccounting.SubPeriod.ToDate); print.execute(); final DateTime from = print.<DateTime>getAttribute(CIAccounting.SubPeriod.FromDate); final DateTime to = print.<DateTime>getAttribute(CIAccounting.SubPeriod.ToDate); final QueryBuilder attrQueryBldr = new QueryBuilder(CIAccounting.Transaction2SalesDocument); final AttributeQuery attrQuery = attrQueryBldr .getAttributeQuery(CIAccounting.Transaction2SalesDocument.ToLink); _queryBldr.addWhereAttrGreaterValue(CISales.DocumentSumAbstract.Date, from.minusMinutes(1)); _queryBldr.addWhereAttrLessValue(CISales.DocumentSumAbstract.Date, to.plusDays(1)); _queryBldr.addWhereAttrNotInQuery(CISales.DocumentSumAbstract.ID, attrQuery); } }; return multi.execute(_parameter); }
From source file:org.efaps.esjp.accounting.SubPeriod_Base.java
License:Apache License
/** * Called from a tree menu command to present the documents that are with status * booked and therefor must be worked on still. * * @param _parameter Paremeter//ww w. j a v a 2s . c o m * @return List if Instances * @throws EFapsException on error */ public Return getExternals(final Parameter _parameter) throws EFapsException { final MultiPrint multi = new MultiPrint() { @Override protected void add2QueryBldr(final Parameter _parameter, final QueryBuilder _queryBldr) throws EFapsException { final Instance instance = _parameter.getInstance(); final PrintQuery print = new CachedPrintQuery(instance, SubPeriod_Base.CACHEKEY); print.addAttribute(CIAccounting.SubPeriod.FromDate); print.addAttribute(CIAccounting.SubPeriod.ToDate); print.execute(); final DateTime from = print.<DateTime>getAttribute(CIAccounting.SubPeriod.FromDate); final DateTime to = print.<DateTime>getAttribute(CIAccounting.SubPeriod.ToDate); final QueryBuilder attrQueryBldr = new QueryBuilder(CIAccounting.Transaction2SalesDocument); final AttributeQuery attrQuery = attrQueryBldr .getAttributeQuery(CIAccounting.Transaction2SalesDocument.ToLink); _queryBldr.addWhereAttrGreaterValue(CISales.DocumentSumAbstract.Date, from.minusMinutes(1)); _queryBldr.addWhereAttrLessValue(CISales.DocumentSumAbstract.Date, to.plusDays(1)); _queryBldr.addWhereAttrNotInQuery(CISales.DocumentSumAbstract.ID, attrQuery); } }; return multi.execute(_parameter); }
From source file:org.efaps.esjp.accounting.transaction.Action_Base.java
License:Apache License
/** * Eval action def4 incoming./*from ww w.j ava2 s . com*/ * * @param _parameter Parameter as passed by the eFaps API * @param _actionRelInst relation Instance * @return the incoming action def * @throws EFapsException on error */ protected IncomingActionDef evalActionDef4Incoming(final Parameter _parameter, final Instance _actionRelInst) throws EFapsException { final IncomingActionDef ret = getIncomingActionDef(_parameter); final PrintQuery print = new PrintQuery(_actionRelInst); final SelectBuilder selActionInst = SelectBuilder.get() .linkto(CIERP.ActionDefinition2DocumentAbstract.FromLinkAbstract).instance(); final SelectBuilder selDocInst = SelectBuilder.get() .linkto(CIERP.ActionDefinition2DocumentAbstract.ToLinkAbstract).instance(); final SelectBuilder selDocTypeInst = SelectBuilder.get() .linkto(CIERP.ActionDefinition2DocumentAbstract.ToLinkAbstract) .linkfrom(CIERP.Document2DocumentTypeAbstract.DocumentLinkAbstract) .linkto(CIERP.Document2DocumentTypeAbstract.DocumentTypeLinkAbstract).instance(); final SelectBuilder selDocDate = SelectBuilder.get() .linkto(CIERP.ActionDefinition2DocumentAbstract.ToLinkAbstract) .attribute(CIERP.DocumentAbstract.Date); print.addSelect(selActionInst, selDocInst, selDocTypeInst, selDocDate); print.addAttribute(CIERP.ActionDefinition2DocumentAbstract.Date); print.execute(); final DateTime acdDate = print.getAttribute(CIERP.ActionDefinition2DocumentAbstract.Date); if (acdDate != null) { ParameterUtil.setParameterValues(ret.getParameter(), "date", acdDate.toString()); } ret.setActionInst(print.<Instance>getSelect(selActionInst)); ret.setDocInst(print.<Instance>getSelect(selDocInst)); ret.setDocTypeInst(print.<Instance>getSelect(selDocTypeInst)); final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.ActionDefinition2Case4IncomingAbstract); queryBldr.addWhereAttrEqValue(CIAccounting.ActionDefinition2Case4IncomingAbstract.FromLinkAbstract, ret.getActionInst()); final MultiPrintQuery multi = queryBldr.getPrint(); final SelectBuilder selCaseInst = SelectBuilder.get() .linkto(CIAccounting.ActionDefinition2Case4IncomingAbstract.ToLinkAbstract).instance(); final SelectBuilder selLabelInst = SelectBuilder.get() .linkto(CIAccounting.ActionDefinition2Case4IncomingAbstract.LabelLink).instance(); multi.addSelect(selCaseInst, selLabelInst); multi.addAttribute(CIAccounting.ActionDefinition2Case4IncomingAbstract.Config); multi.execute(); while (multi.next()) { final List<ActDef2Case4IncomingConfig> configs = multi .getAttribute(CIAccounting.ActionDefinition2Case4IncomingAbstract.Config); if (configs != null) { final Instance caseInst = multi.getSelect(selCaseInst); DateTime periodDate = null; if (multi.getInstanceList().size() > 1) { if (configs.contains(ActDef2Case4DocConfig.PERIOD4ACTIONDATE)) { periodDate = acdDate == null ? new DateTime() : acdDate; } else if (configs.contains(ActDef2Case4DocConfig.PERIOD4DOCDATE)) { periodDate = print.getSelect(selDocDate); } } final Instance periodInst = evalSelectedPeriod(_parameter, caseInst, periodDate); if (InstanceUtils.isValid(periodInst)) { boolean execute = true; // for pettyCash receipt evaluation if legal document or not if (ret.getDocInst().getType().isKindOf(CISales.PettyCashReceipt)) { if (ret.getDocTypeInst() == null) { execute = configs.contains(ActDef2Case4IncomingConfig.WITHOUTDOC); } else { execute = !configs.contains(ActDef2Case4IncomingConfig.WITHOUTDOC); } } else if (ret.getDocInst().getType().isKindOf(CISales.FundsToBeSettledReceipt)) { if (ret.getDocTypeInst() == null) { execute = configs.contains(ActDef2Case4IncomingConfig.WITHOUTDOC); } else { execute = !configs.contains(ActDef2Case4IncomingConfig.WITHOUTDOC); } } if (execute) { final Instance labelInst = multi.getSelect(selLabelInst); if (labelInst != null && labelInst.isValid()) { final List<Instance> labels = new Label().getLabelInst4Documents(_parameter, ret.getDocInst()); if (labels.contains(labelInst)) { ret.setConfigs(configs); ret.setCaseInst(caseInst); break; } } else { ret.setConfigs(configs); ret.setCaseInst(caseInst); } break; } } } } if (ret.getCaseInst() != null && ret.getCaseInst().isValid()) { ret.setExecute(true); if (ret.getConfigs().contains(ActDef2Case4IncomingConfig.PURCHASERECORD)) { final DateTime date = new DateTime(); final QueryBuilder prQueryBldr = new QueryBuilder(CIAccounting.PurchaseRecord); prQueryBldr.addWhereAttrLessValue(CIAccounting.PurchaseRecord.Date, date.plusDays(1)); prQueryBldr.addWhereAttrGreaterValue(CIAccounting.PurchaseRecord.DueDate, date.minusDays(1)); prQueryBldr.addWhereAttrEqValue(CIAccounting.PurchaseRecord.Status, Status.find(CIAccounting.PurchaseRecordStatus.Open)); final InstanceQuery prQuery = prQueryBldr.getQuery(); prQuery.execute(); if (prQuery.next()) { ParameterUtil.setParameterValues(ret.getParameter(), "purchaseRecord", prQuery.getCurrentValue().getOid()); } } if (ret.getConfigs().contains(ActDef2Case4IncomingConfig.TRANSACTION)) { ParameterUtil.setParameterValues(ret.getParameter(), "case", ret.getCaseInst().getOid()); ParameterUtil.setParameterValues(ret.getParameter(), "document", ret.getDocInst().getOid()); if (ret.getConfigs().contains(ActDef2Case4IncomingConfig.SUBJOURNAL)) { final QueryBuilder sjQueryBldr = new QueryBuilder(CIAccounting.Report2Case); sjQueryBldr.addWhereAttrEqValue(CIAccounting.Report2Case.ToLink, ret.getCaseInst()); final MultiPrintQuery sjMulti = sjQueryBldr.getPrint(); final SelectBuilder sel = new SelectBuilder().linkto(CIAccounting.Report2Case.FromLink).oid(); sjMulti.addSelect(sel); sjMulti.execute(); if (sjMulti.next()) { ParameterUtil.setParameterValues(ret.getParameter(), "subJournal", sjMulti.<String>getSelect(sel)); } } if (ret.getConfigs().contains(ActDef2Case4IncomingConfig.SETSTATUS)) { ParameterUtil.setParameterValues(ret.getParameter(), "archiveConfig", Integer.toString(ArchiveConfig.ARCHIVED.getInt())); } } } return ret; }
From source file:org.efaps.esjp.accounting.transaction.FieldValue_Base.java
License:Apache License
/** * @param _parameter Parameter as passed from the eFaps API * @return values for dropdown/*w w w .j av a 2 s . co m*/ * @throws EFapsException on error */ public Return getPurchaseRecordFieldValue(final Parameter _parameter) throws EFapsException { final Field field = new Field() { @Override protected void add2QueryBuilder4List(final Parameter _parameter, final QueryBuilder _queryBldr) throws EFapsException { final DateTime[] dates = getDateMaxMin(_parameter); _queryBldr.addWhereAttrGreaterValue(CIAccounting.PurchaseRecord.Date, dates[0].minusDays(1)); } @Override protected void updatePositionList(final Parameter _parameter, final List<DropDownPosition> _values) throws EFapsException { super.updatePositionList(_parameter, _values); boolean select = true; final List<Instance> docInsts = getSelectedDocInst(_parameter); if (!docInsts.isEmpty()) { final QueryBuilder dtQueryBldr = new QueryBuilder(CISales.Document2DocumentType); dtQueryBldr.addWhereAttrEqValue(CISales.Document2DocumentType.DocumentLink, docInsts.toArray()); final MultiPrintQuery multi = dtQueryBldr.getPrint(); final SelectBuilder docTypeSel = new SelectBuilder() .linkto(CISales.Document2DocumentType.DocumentTypeLink) .attribute(CIERP.DocumentType.Configuration); multi.addSelect(docTypeSel); multi.executeWithoutAccessCheck(); while (multi.next()) { final List<DocTypeConfiguration> configs = multi.getSelect(docTypeSel); if (configs == null || configs != null && !configs.contains(DocTypeConfiguration.PURCHASERECORD)) { select = false; break; } } } if (select) { final DateTime date = new DateTime(); final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.PurchaseRecord); queryBldr.addWhereAttrLessValue(CIAccounting.PurchaseRecord.Date, date.plusDays(1)); queryBldr.addWhereAttrGreaterValue(CIAccounting.PurchaseRecord.DueDate, date.minusDays(1)); queryBldr.addOrderByAttributeAsc(CIAccounting.PurchaseRecord.Date); final InstanceQuery query = queryBldr.getQuery(); boolean selected = false; for (final Instance inst : query.executeWithoutAccessCheck()) { for (final DropDownPosition dd : _values) { if (inst.getOid().equals(dd.getValue())) { dd.setSelected(true); selected = true; break; } } if (selected) { break; } } } } }; return field.getOptionListFieldValue(_parameter); }
From source file:org.efaps.esjp.accounting.transaction.Recalculate_Base.java
License:Apache License
/** * @param _parameter Parameter as passed by the eFasp API * @return new Return/*from w ww . ja va2 s .c o m*/ * @throws EFapsException on error */ public Return createGainLoss4SimpleAccount(final Parameter _parameter) throws EFapsException { final PrintQuery printPer = new PrintQuery(_parameter.getInstance()); final SelectBuilder selCurrInst = SelectBuilder.get().linkto(CIAccounting.Period.CurrencyLink).instance(); printPer.addSelect(selCurrInst); printPer.addAttribute(CIAccounting.Period.FromDate, CIAccounting.Period.CurrencyLink); printPer.execute(); final DateTime dateFrom = printPer.<DateTime>getAttribute(CIAccounting.Period.FromDate); final Instance currencyInst = printPer.<Instance>getSelect(selCurrInst); final String[] relOIDs = (String[]) Context.getThreadContext() .getSessionAttribute(CIFormAccounting.Accounting_GainLoss4SimpleAccountForm.config2period.name); final DateTime dateTo = new DateTime(_parameter .getParameterValue(CIFormAccounting.Accounting_GainLoss4SimpleAccountForm.transactionDate.name)); final DateTime dateEx = new DateTime(_parameter .getParameterValue(CIFormAccounting.Accounting_GainLoss4SimpleAccountForm.exchangeDate.name)); Insert insert = null; BigDecimal totalSum = BigDecimal.ZERO; for (final String oid : relOIDs) { Instance tarCurInst = null; final Instance relInst = Instance.get(oid); final PrintQuery print = new PrintQuery(relInst); final SelectBuilder selAccount = new SelectBuilder() .linkto(CIAccounting.AccountConfigSimple2Period.FromLink).oid(); print.addSelect(selAccount); print.addAttribute(CIAccounting.AccountConfigSimple2Period.IsSale); if (print.execute()) { final Instance instAcc = Instance.get(print.<String>getSelect(selAccount)); final boolean isSale = print.<Boolean>getAttribute(CIAccounting.AccountConfigSimple2Period.IsSale); final QueryBuilder attrQuerBldr = new QueryBuilder(CIAccounting.Transaction); attrQuerBldr.addWhereAttrEqValue(CIAccounting.Transaction.PeriodLink, _parameter.getInstance()); attrQuerBldr.addWhereAttrGreaterValue(CIAccounting.Transaction.Date, dateFrom.minusMinutes(1)); attrQuerBldr.addWhereAttrLessValue(CIAccounting.Transaction.Date, dateTo.plusDays(1)); final AttributeQuery attrQuery = attrQuerBldr.getAttributeQuery(CIAccounting.Transaction.ID); final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.TransactionPositionAbstract); queryBldr.addWhereAttrEqValue(CIAccounting.TransactionPositionAbstract.AccountLink, instAcc); queryBldr.addWhereAttrInQuery(CIAccounting.TransactionPositionAbstract.TransactionLink, attrQuery); final MultiPrintQuery multi = queryBldr.getPrint(); final SelectBuilder selTRInst = SelectBuilder.get() .linkto(CIAccounting.TransactionPositionAbstract.RateCurrencyLink).instance(); multi.addSelect(selTRInst); multi.addAttribute(CIAccounting.TransactionPositionAbstract.Amount, CIAccounting.TransactionPositionAbstract.RateAmount); BigDecimal gainlossSum = BigDecimal.ZERO; multi.execute(); while (multi.next()) { final BigDecimal oldRateAmount = multi .<BigDecimal>getAttribute(CIAccounting.TransactionPositionAbstract.RateAmount); final BigDecimal oldAmount = multi .<BigDecimal>getAttribute(CIAccounting.TransactionPositionAbstract.Amount); final Instance targetCurrInst = multi.<Instance>getSelect(selTRInst); final BigDecimal rate = evaluateRate(_parameter, dateEx, currencyInst, targetCurrInst, isSale); final BigDecimal newAmount = oldRateAmount.divide(rate, BigDecimal.ROUND_HALF_UP); BigDecimal gainloss = BigDecimal.ZERO; if (!currencyInst.equals(targetCurrInst)) { gainloss = newAmount.subtract(oldAmount); tarCurInst = targetCurrInst; } else { gainloss = newAmount; } gainlossSum = gainlossSum.add(gainloss); } totalSum = totalSum.add(gainlossSum); final Map<String, String[]> map = validateInfo(_parameter, gainlossSum); final String[] accs = map.get("accs"); final String[] check = map.get("check"); if (checkAccounts(accs, 0, check).length() > 0) { if (gainlossSum.compareTo(BigDecimal.ZERO) != 0) { final String[] accOids = map.get("accountOids"); if (insert == null) { final String descr = DBProperties.getFormatedDBProperty( Recalculate.class.getName() + ".gainLoss4SimpleAccountTransDesc", dateTo.toDate()); insert = new Insert(CIAccounting.Transaction); insert.add(CIAccounting.Transaction.Description, descr); insert.add(CIAccounting.Transaction.Date, dateTo); insert.add(CIAccounting.Transaction.PeriodLink, _parameter.getInstance()); insert.add(CIAccounting.Transaction.Status, Status.find(CIAccounting.TransactionStatus.Open)); insert.execute(); } Insert insertPos = new Insert(CIAccounting.TransactionPositionDebit); insertPos.add(CIAccounting.TransactionPositionDebit.TransactionLink, insert.getInstance()); if (gainlossSum.signum() > 0) { insertPos.add(CIAccounting.TransactionPositionDebit.AccountLink, Instance.get(accOids[0])); } else { insertPos.add(CIAccounting.TransactionPositionDebit.AccountLink, instAcc); } insertPos.add(CIAccounting.TransactionPositionDebit.Amount, gainlossSum.abs().negate()); insertPos.add(CIAccounting.TransactionPositionDebit.RateAmount, BigDecimal.ZERO); insertPos.add(CIAccounting.TransactionPositionDebit.CurrencyLink, currencyInst); insertPos.add(CIAccounting.TransactionPositionDebit.RateCurrencyLink, tarCurInst); insertPos.add(CIAccounting.TransactionPositionDebit.Rate, new Object[] { BigDecimal.ONE, BigDecimal.ONE }); insertPos.execute(); insertPos = new Insert(CIAccounting.TransactionPositionCredit); insertPos.add(CIAccounting.TransactionPositionCredit.TransactionLink, insert.getInstance()); if (gainlossSum.signum() > 0) { insertPos.add(CIAccounting.TransactionPositionCredit.AccountLink, instAcc); } else { insertPos.add(CIAccounting.TransactionPositionCredit.AccountLink, Instance.get(accOids[0])); } insertPos.add(CIAccounting.TransactionPositionCredit.Amount, gainlossSum.abs()); insertPos.add(CIAccounting.TransactionPositionCredit.RateAmount, BigDecimal.ZERO); insertPos.add(CIAccounting.TransactionPositionCredit.CurrencyLink, currencyInst); insertPos.add(CIAccounting.TransactionPositionCredit.RateCurrencyLink, tarCurInst); insertPos.add(CIAccounting.TransactionPositionCredit.Rate, new Object[] { BigDecimal.ONE, BigDecimal.ONE }); insertPos.execute(); } } } } if (insert != null) { final Instance instance = insert.getInstance(); // create classifications final Classification classification1 = (Classification) CIAccounting.TransactionClass.getType(); final Insert relInsert1 = new Insert(classification1.getClassifyRelationType()); relInsert1.add(classification1.getRelLinkAttributeName(), instance); relInsert1.add(classification1.getRelTypeAttributeName(), classification1.getId()); relInsert1.execute(); final Insert classInsert1 = new Insert(classification1); classInsert1.add(classification1.getLinkAttributeName(), instance); classInsert1.execute(); final Classification classification = (Classification) CIAccounting.TransactionClassGainLoss.getType(); final Insert relInsert = new Insert(classification.getClassifyRelationType()); relInsert.add(classification.getRelLinkAttributeName(), instance); relInsert.add(classification.getRelTypeAttributeName(), classification.getId()); relInsert.execute(); final Insert classInsert = new Insert(classification); classInsert.add(classification.getLinkAttributeName(), instance); classInsert.add(CIAccounting.TransactionClassGainLoss.Amount, totalSum); classInsert.add(CIAccounting.TransactionClassGainLoss.RateAmount, totalSum); classInsert.add(CIAccounting.TransactionClassGainLoss.CurrencyLink, currencyInst); classInsert.add(CIAccounting.TransactionClassGainLoss.RateCurrencyLink, currencyInst); classInsert.add(CIAccounting.TransactionClassGainLoss.Rate, new Object[] { BigDecimal.ONE, BigDecimal.ONE }); classInsert.execute(); } // clean up Context.getThreadContext() .removeSessionAttribute(CIFormAccounting.Accounting_GainLoss4SimpleAccountForm.config2period.name); return new Return(); }
From source file:org.efaps.esjp.bpm.listener.PotentialOwnerListener_Base.java
License:Apache License
@Override public Return execute(final Parameter _parameter) throws EFapsException { final Return ret = new Return(); final List<?> owners = (List<?>) _parameter.get(ParameterValues.BPM_VALUES); if (!owners.isEmpty()) { final List<String> uuids = new ArrayList<String>(); final List<AbstractUserObject> newOwners = new ArrayList<AbstractUserObject>(); for (final Object owner : owners) { newOwners.add((AbstractUserObject) owner); uuids.add(((AbstractUserObject) owner).getUUID().toString()); }//from www.j av a 2 s . co m final DateTime date = new DateMidnight().toDateTime(); final QueryBuilder queryBldr = new QueryBuilder(CIBPM.DelegateAutomaticAbstract); queryBldr.addWhereAttrEqValue(CIBPM.DelegateAutomaticAbstract.FromUserUUID, uuids.toArray()); queryBldr.addWhereAttrGreaterValue(CIBPM.DelegateAutomaticAbstract.ValidFrom, date.minusDays(1).minusSeconds(1)); queryBldr.addWhereAttrLessValue(CIBPM.DelegateAutomaticAbstract.ValidUntil, date.plusDays(1).plusSeconds(1)); final CachedMultiPrintQuery multi = queryBldr.getCachedPrint(BPM.CACHEKEY4DELEGATE).setLifespan(8) .setLifespanUnit(TimeUnit.HOURS); multi.addAttribute(CIBPM.DelegateAutomaticAbstract.ToUserUUID, CIBPM.DelegateAutomaticAbstract.ValidFrom, CIBPM.DelegateAutomaticAbstract.ValidUntil); multi.executeWithoutAccessCheck(); while (multi.next()) { final DateTime validFrom = multi.<DateTime>getAttribute(CIBPM.DelegateAutomaticAbstract.ValidFrom); final DateTime validUntil = multi .<DateTime>getAttribute(CIBPM.DelegateAutomaticAbstract.ValidUntil); if (validFrom.toLocalDateTime().isBefore(new LocalDateTime()) && validUntil.toLocalDateTime().isAfter(new LocalDateTime())) { final String tuUserUUID = multi .<String>getAttribute(CIBPM.DelegateAutomaticAbstract.ToUserUUID); newOwners.add(AbstractUserObject.getUserObject(UUID.fromString(tuUserUUID))); } } ret.put(ReturnValues.VALUES, newOwners); } return ret; }
From source file:org.efaps.esjp.common.uiform.Field_Base.java
License:Apache License
/** * Method to get a Datevalue for a field on create to set a more "intelligent" * value like "monday of current week" etc. * Properties://from w ww . j a v a 2 s . c o m * <table> * <tr><th>Property</th><th>Value</th><th>Description</th></tr> * <tr><td>withDayOfWeek</td><td>1,2,3,4,5,6,7</td> * <td>the Integer represents on of the weekdays starting with Monday, Tuesday...</td></tr> * <tr><td>withDayOfMonth</td><td>Integer</td><td>day of month</td></tr> * <tr><td>minusDays</td><td>Integer</td><td>days to subtract</td></tr> * <tr><td>plusDays</td><td>Integer</td><td>days to add</td></tr> * <tr><td>minusWeeks</td><td>Integer</td><td>weeks to subtract</td></tr> * <tr><td>plusWeeks</td><td>Integer</td><td>weeks to add</td></tr> * </table> * * @param _parameter Parameter as passed by the eFaps API * @return ReturnValue containing the date * @throws EFapsException on error */ public Return getDefault4DateFieldValue(final Parameter _parameter) throws EFapsException { final Return ret = new Return(); final TargetMode mode = (TargetMode) _parameter.get(ParameterValues.ACCESSMODE); final Collection<TargetMode> modes = new ArrayList<>(); for (final String aMode : analyseProperty(_parameter, "TargetMode").values()) { modes.add(EnumUtils.getEnum(TargetMode.class, aMode.toUpperCase())); } if ((TargetMode.CREATE.equals(mode) || TargetMode.EDIT.equals(mode)) && (modes.isEmpty() || modes.contains(mode))) { DateTime date = new DateTime(); if (containsProperty(_parameter, "withDayOfWeek")) { final int dayOfWeek = Integer.parseInt(getProperty(_parameter, "withDayOfWeek")); date = date.withDayOfWeek(dayOfWeek); } if (containsProperty(_parameter, "withDayOfMonth")) { final int dayOfMonth = Integer.parseInt(getProperty(_parameter, "withDayOfMonth")); date = date.withDayOfMonth(dayOfMonth); } if (containsProperty(_parameter, "days")) { final int days = Integer.parseInt(getProperty(_parameter, "days")); date = date.plusDays(days); } if (containsProperty(_parameter, "weeks")) { final int weeks = Integer.parseInt(getProperty(_parameter, "weeks")); date = date.plusWeeks(weeks); } if (containsProperty(_parameter, "months")) { final int months = Integer.parseInt(getProperty(_parameter, "months")); date = date.plusMonths(months); } if (containsProperty(_parameter, "years")) { final int years = Integer.parseInt(getProperty(_parameter, "years")); date = date.plusYears(years); } ret.put(ReturnValues.VALUES, date); } return ret; }
From source file:org.efaps.esjp.common.uitable.MultiPrint_Base.java
License:Apache License
/** * @param _field Field the date is wanted for * @return datetime array/* www . jav a 2 s.co m*/ * @throws EFapsException on error */ protected Object[] getFilter(final Field _field) throws EFapsException { Object[] ret = null; final String filter = _field.getFilter().getDefaultValue(); if (filter != null) { final String[] parts = filter.split(":"); final String range = parts[0]; final int fromSub = parts.length > 1 ? Integer.parseInt(parts[1]) : 0; final int rangeCount = parts.length > 2 ? Integer.parseInt(parts[2]) : 1; DateTime dateFrom = new DateTime(); DateTime dateTo = new DateTime(); if (range != null) { final FilterDefault def = FilterDefault.valueOf(range.toUpperCase()); // to get a timezone dependent DateTim DateTime tmp = DateTimeUtil.translateFromUI(new DateTime()).withTimeAtStartOfDay(); switch (def) { case TODAY: dateFrom = tmp.toDateTime().minusDays(fromSub).minusMinutes(1); dateTo = dateFrom.plusDays(rangeCount).plusSeconds(1); ret = new DateTime[] { dateFrom, dateTo }; break; case WEEK: // the first of the current week tmp = tmp.minusDays(tmp.getDayOfWeek() - 1); dateFrom = tmp.minusWeeks(fromSub).minusMinutes(1); dateTo = tmp.plusWeeks(rangeCount); ret = new DateTime[] { dateFrom, dateTo }; break; case MONTH: // the first of the current month tmp = tmp.minusDays(tmp.getDayOfMonth() - 1); // substract the month and a minute before dateFrom = tmp.minusMonths(fromSub).minusMinutes(1); // add the month dateTo = tmp.plusMonths(rangeCount); ret = new DateTime[] { dateFrom, dateTo }; break; case YEAR: tmp = tmp.minusDays(tmp.getDayOfYear() - 1); dateFrom = tmp.minusYears(fromSub).minusMinutes(1); dateTo = tmp.plusYears(rangeCount); ret = new DateTime[] { dateFrom, dateTo }; break; case ALL: ret = new String[] { "*" }; break; case NONE: break; default: ret = new String[] { range + "*" }; break; } } } return ret; }
From source file:org.egov.collection.service.ReceiptHeaderService.java
License:Open Source License
/** * This method persists the given <code>ReceiptPayeeDetails</code> entity. If the receipt number for all of the receipts is * generated, if not already present.// w w w . jav a 2s.c om */ @Transactional public ReceiptHeader persistChallan(final ReceiptHeader receiptHeader, final Position position, final String actionName, final String approvalRemarks) { final Integer validUpto = Integer .valueOf(collectionsUtil.getAppConfigValue(CollectionConstants.MODULE_NAME_COLLECTIONS_CONFIG, CollectionConstants.APPCONFIG_VALUE_CHALLANVALIDUPTO)); final Challan challan = receiptHeader.getChallan(); DateTime date = new DateTime(challan.getChallanDate()); date = date.plusDays(validUpto); challan.setValidUpto(date.toDate()); if (challan.getChallanNumber() == null) setChallanNumber(challan); challan.setReceiptHeader(receiptHeader); receiptHeader.setChallan(challan); super.persist(receiptHeader); LOGGER.info("Persisting challan with challan number " + challan.getChallanNumber()); challanService.workflowtransition(receiptHeader.getChallan(), position, actionName, approvalRemarks); return receiptHeader; }