/* (non-Javadoc) * @see #updateTaxMap(org.mifosplatform.infrastructure.core.api.JsonCommand, java.lang.Long) */ @Transactional @Override public CommandProcessingResult updateTaxMap(final JsonCommand command, final Long taxMapId) { TaxMap taxMap = null; try { this.context.authenticatedUser(); this.apiJsonDeserializer.validateForCreate(command); taxMap = retrieveTaxMapById(taxMapId); final Map<String, Object> changes = taxMap.update(command); if (!changes.isEmpty()) { this.taxMapRepository.saveAndFlush(taxMap); } return new CommandProcessingResultBuilder() .withCommandId(command.commandId()) .withEntityId(taxMap.getId()) .with(changes) .build(); } catch (final DataIntegrityViolationException dve) { if (dve.getCause() instanceof ConstraintViolationException) { handleDataIntegrityIssues(command, dve); } return new CommandProcessingResult(Long.valueOf(-1)); } }
/* (non-Javadoc) * @see #createTaxMap(org.mifosplatform.infrastructure.core.api.JsonCommand) */ @Transactional @Override public CommandProcessingResult createTaxMap(final JsonCommand command) { TaxMap taxmap = null; try { this.context.authenticatedUser(); this.apiJsonDeserializer.validateForCreate(command); String taxMapString = command.stringValueOfParameterNamed("taxCode"); TaxMap oldTaxmap = this.taxMapRepository.findByTaxCode(taxMapString); if (null != oldTaxmap) { oldTaxmap.setEndDate(new Date()); oldTaxmap.setIsNew(0); this.taxMapRepository.save(oldTaxmap); } taxmap = TaxMap.fromJson(command); this.taxMapRepository.save(taxmap); if (null == oldTaxmap) { return new CommandProcessingResultBuilder().withEntityId(taxmap.getId()).build(); } Collection<LoanProductTaxData> productDatas = this.loanProductReadPlatformService.retrieveLoanProductIds(oldTaxmap.getId()); for (LoanProductTaxData productData : productDatas) { LoanProduct loanProduct = this.loanProductRepository.findOne(productData.getProductId()); Collection<TaxMap> taxMaps = loanProduct.getTaxes(); for (TaxMap taxMapData : taxMaps) { if (taxMapData.getId() == oldTaxmap.getId()) { taxMaps.remove(taxMapData); break; } } taxMaps.add(taxmap); loanProduct.updateTaxes(taxMaps); this.loanProductRepository.save(loanProduct); } } catch (final DataIntegrityViolationException dve) { handleDataIntegrityIssues(command, dve); return new CommandProcessingResult(Long.valueOf(-1)); } return new CommandProcessingResultBuilder().withEntityId(taxmap.getId()).build(); }