List of usage examples for java.math RoundingMode HALF_UP
RoundingMode HALF_UP
To view the source code for java.math RoundingMode HALF_UP.
Click Source Link
From source file:mx.edu.um.mateo.activos.dao.impl.ActivoDaoHibernate.java
@Override @Transactional(readOnly = true)//from w ww .j a va 2 s .c o m public Map<String, Object> concentradoDepreciacionPorCentroDeCosto(Map<String, Object> params) { Usuario usuario = (Usuario) params.get("usuario"); Query tiposDeActivoQuery = currentSession().createQuery( "select new map(ta.nombre as nombre, ta.cuenta.id.idCtaMayor as cuenta, ta.id as id) from TipoActivo ta where ta.cuenta.id.ejercicio.id.idEjercicio = :ejercicioId and ta.cuenta.id.ejercicio.id.organizacion.id = :organizacionId order by ta.cuenta.id.idCtaMayor"); tiposDeActivoQuery.setString("ejercicioId", usuario.getEjercicio().getId().getIdEjercicio()); tiposDeActivoQuery.setLong("organizacionId", usuario.getEjercicio().getId().getOrganizacion().getId()); List<Map<String, Object>> tiposDeActivo = new ArrayList<>(); Map<String, Object> totalCC = new HashMap<>(); totalCC.put("nombre", ""); totalCC.put("cuenta", "TOTAL"); totalCC.put("id", 0); totalCC.put("acumulada", BigDecimal.ZERO); totalCC.put("mensual", BigDecimal.ZERO); totalCC.put("anual", BigDecimal.ZERO); totalCC.put("valorNeto", BigDecimal.ZERO); totalCC.put("costo", BigDecimal.ZERO); tiposDeActivo.add(totalCC); tiposDeActivo.addAll(tiposDeActivoQuery.list()); Map<String, Map<String, Object>> tiposDeActivoMap = new HashMap<>(); tiposDeActivoMap.put("TOTAL", totalCC); for (Map<String, Object> tipoActivo : tiposDeActivo) { if (!tipoActivo.get("cuenta").equals("TOTAL")) { tipoActivo.put("acumulada", BigDecimal.ZERO); tipoActivo.put("mensual", BigDecimal.ZERO); tipoActivo.put("anual", BigDecimal.ZERO); tipoActivo.put("valorNeto", BigDecimal.ZERO); tipoActivo.put("costo", BigDecimal.ZERO); tiposDeActivoMap.put((String) tipoActivo.get("cuenta"), tipoActivo); } } params.put("tiposDeActivo", tiposDeActivo); Date fecha = (Date) params.get("fecha"); MathContext mc = new MathContext(16, RoundingMode.HALF_UP); Map<String, Map<String, Object>> mapa1 = new TreeMap<>(); Query query = currentSession().createQuery( "select new Activo(a.id, a.version, a.moi, a.fechaCompra, a.tipoActivo.porciento, a.tipoActivo.vidaUtil, a.inactivo, a.fechaInactivo, a.fechaReubicado, a.tipoActivo.cuenta.id.idCtaMayor, a.centroCosto.id.idCosto, a.centroCosto.nombre) from Activo a inner join a.tipoActivo where a.empresa.id = :empresaId and a.fechaCompra <= :fecha and a.fechaReubicado is null"); query.setLong("empresaId", usuario.getEmpresa().getId()); query.setDate("fecha", fecha); List<Activo> activos = query.list(); for (Activo activo : activos) { log.trace("Depreciando activo {}", activo.getId()); activo = this.deprecia(activo, fecha); this.concentradoDepreciacionPorCentroDeCosto(activo, mc, mapa1, tiposDeActivo, tiposDeActivoMap); } query = currentSession().createQuery( "select new Activo(a.id, a.version, a.moi, a.fechaCompra, a.tipoActivo.porciento, a.tipoActivo.vidaUtil, a.inactivo, a.fechaInactivo, a.fechaReubicado, a.tipoActivo.cuenta.id.idCtaMayor, a.centroCosto.id.idCosto, a.centroCosto.nombre) from Activo a inner join a.tipoActivo where a.empresa.id = :empresaId and a.fechaCompra <= :fecha and a.fechaReubicado != null"); query.setLong("empresaId", usuario.getEmpresa().getId()); query.setDate("fecha", fecha); activos = query.list(); for (Activo activo : activos) { query = currentSession().createQuery( "select r from ReubicacionActivo r where r.activo.id = :activoId order by r.fecha"); query.setLong("activoId", activo.getId()); List<ReubicacionActivo> reubicaciones = query.list(); Date fechaAnterior = null; boolean bandera1 = true; for (ReubicacionActivo reubicacion : reubicaciones) { if (reubicacion.getFecha().before(fecha)) { activo.setCentroCosto(reubicacion.getCentroCostoAnterior()); if (fechaAnterior != null) { activo.setFechaCompra(fechaAnterior); } this.deprecia(activo, reubicacion.getFecha()); fechaAnterior = reubicacion.getFecha(); } else { if (fechaAnterior != null) { activo.setFechaCompra(fechaAnterior); } activo.setCentroCosto(reubicacion.getCentroCostoAnterior()); this.deprecia(activo, fecha); bandera1 = false; } this.concentradoDepreciacionPorCentroDeCosto(activo, mc, mapa1, tiposDeActivo, tiposDeActivoMap); } if (bandera1) { activo.setFechaCompra(activo.getFechaReubicado()); this.deprecia(activo, fecha); this.concentradoDepreciacionPorCentroDeCosto(activo, mc, mapa1, tiposDeActivo, tiposDeActivoMap); } } if (log.isTraceEnabled()) { for (Map<String, Object> centroCosto : mapa1.values()) { log.trace("CentroCosto: {} : {} : {}", new Object[] { centroCosto.get("cuenta"), centroCosto.get("nombre"), centroCosto.get("totales") }); } log.trace("TiposDeActivo: {}", tiposDeActivo); } params.put("centrosDeCosto", mapa1.values()); return params; }
From source file:org.kuali.coeus.s2sgen.impl.budget.S2SBudgetCalculatorServiceImpl.java
/** * /*from w ww. j ava 2 s . c o m*/ * This method computes the CompensationInfo for given person, {@link org.kuali.coeus.common.budget.api.period.BudgetPeriodContract} and Proposal Numnber * * @param keyPerson id of the proposal person. * @param budgetPeriod given BudgetPeriod. * @param proposalNumber propsal number. * * @return {@link CompensationDto} corresponding to the personId,budgetPeriod and proposalNumber. */ protected CompensationDto getCompensation(KeyPersonDto keyPerson, BudgetPeriodContract budgetPeriod, String proposalNumber, BudgetContract budget) { CompensationDto compensationInfo = new CompensationDto(); BigDecimal summerMonths = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); BigDecimal academicMonths = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); BigDecimal calendarMonths = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); ScaleTwoDecimal totalSal = ScaleTwoDecimal.ZERO; ScaleTwoDecimal fringe = ScaleTwoDecimal.ZERO; ScaleTwoDecimal baseAmount = ScaleTwoDecimal.ZERO; ScaleTwoDecimal totalSalCostSharing = ScaleTwoDecimal.ZERO; ScaleTwoDecimal fringeCostSharing = ScaleTwoDecimal.ZERO; BigDecimal numberOfMonths = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); String budgetCatagoryCodePersonnel = s2SConfigurationService .getValueAsString(ConfigurationConstants.S2SBUDGET_BUDGET_CATEGORY_CODE_PERSONNEL); for (BudgetLineItemContract lineItem : budgetPeriod.getBudgetLineItems()) { for (BudgetPersonnelDetailsContract personDetails : lineItem.getBudgetPersonnelDetailsList()) { if (keyPersonEqualsBudgetPerson(keyPerson, personDetails)) { numberOfMonths = s2SDateTimeService .getNumberOfMonths(personDetails.getStartDate(), personDetails.getEndDate()) .bigDecimalValue(); if (personDetails.getPeriodTypeCode().equals(s2SConfigurationService .getValueAsString(ConfigurationConstants.S2SBUDGET_PERIOD_TYPE_ACADEMIC_MONTHS))) { if (lineItem.getSubmitCostSharingFlag()) { academicMonths = academicMonths.add(personDetails.getPercentEffort().bigDecimalValue() .multiply(numberOfMonths).multiply(POINT_ZERO_ONE)); } else { academicMonths = academicMonths.add(personDetails.getPercentCharged().bigDecimalValue() .multiply(numberOfMonths).multiply(POINT_ZERO_ONE)); } } else if (personDetails.getPeriodTypeCode().equals(s2SConfigurationService .getValueAsString(ConfigurationConstants.S2SBUDGET_PERIOD_TYPE_SUMMER_MONTHS))) { if (lineItem.getSubmitCostSharingFlag()) { summerMonths = summerMonths.add(personDetails.getPercentEffort().bigDecimalValue() .multiply(numberOfMonths).multiply(POINT_ZERO_ONE)); } else { summerMonths = summerMonths.add(personDetails.getPercentCharged().bigDecimalValue() .multiply(numberOfMonths).multiply(POINT_ZERO_ONE)); } } else { if (StringUtils.isNotBlank(personDetails.getBudgetPerson().getTbnId())) { if (lineItem.getBudgetCategory().getCode().equals(budgetCatagoryCodePersonnel)) { if (lineItem.getSubmitCostSharingFlag()) { calendarMonths = calendarMonths.add(personDetails.getPercentEffort() .bigDecimalValue().multiply(numberOfMonths).multiply(POINT_ZERO_ONE)); } else { calendarMonths = calendarMonths.add(personDetails.getPercentCharged() .bigDecimalValue().multiply(numberOfMonths).multiply(POINT_ZERO_ONE)); } } } else { if (lineItem.getSubmitCostSharingFlag()) { calendarMonths = calendarMonths.add(personDetails.getPercentEffort() .bigDecimalValue().multiply(numberOfMonths).multiply(POINT_ZERO_ONE)); } else { calendarMonths = calendarMonths.add(personDetails.getPercentCharged() .bigDecimalValue().multiply(numberOfMonths).multiply(POINT_ZERO_ONE)); } } } if (StringUtils.isNotBlank(personDetails.getBudgetPerson().getTbnId())) { if (lineItem.getBudgetCategory().getCode().equals(budgetCatagoryCodePersonnel)) { totalSal = totalSal.add(personDetails.getSalaryRequested()); } } else { totalSal = totalSal.add(personDetails.getSalaryRequested()); } if (canBudgetLineItemCostSharingInclude(budget, lineItem)) { if (StringUtils.isNotBlank(personDetails.getBudgetPerson().getTbnId())) { if (lineItem.getBudgetCategory().getCode().equals(budgetCatagoryCodePersonnel)) { totalSalCostSharing = totalSalCostSharing.add(personDetails.getCostSharingAmount()); } } else { totalSalCostSharing = totalSalCostSharing.add(personDetails.getCostSharingAmount()); } } for (BudgetPersonnelCalculatedAmountContract personCalculatedAmt : personDetails .getBudgetPersonnelCalculatedAmounts()) { if ((personCalculatedAmt.getRateClass().getRateClassType().getCode() .equals(s2SConfigurationService.getValueAsString( ConfigurationConstants.S2SBUDGET_RATE_CLASS_TYPE_EMPLOYEE_BENEFITS)) && !personCalculatedAmt.getRateTypeCode() .equals(s2SConfigurationService.getValueAsString( ConfigurationConstants.S2SBUDGET_RATE_TYPE_SUPPORT_STAFF_SALARIES))) || (personCalculatedAmt.getRateClass().getRateClassType().getCode() .equals(s2SConfigurationService.getValueAsString( ConfigurationConstants.S2SBUDGET_RATE_CLASS_TYPE_VACATION)) && !personCalculatedAmt.getRateTypeCode() .equals(s2SConfigurationService.getValueAsString( ConfigurationConstants.S2SBUDGET_RATE_TYPE_ADMINISTRATIVE_SALARIES)))) { if (StringUtils.isNotBlank(personDetails.getBudgetPerson().getTbnId())) { if (lineItem.getBudgetCategory().getCode().equals(budgetCatagoryCodePersonnel)) { fringe = fringe.add(personCalculatedAmt.getCalculatedCost()); } } else { fringe = fringe.add(personCalculatedAmt.getCalculatedCost()); } if (canBudgetLineItemCostSharingInclude(budget, lineItem)) { if (StringUtils.isNotBlank(personDetails.getBudgetPerson().getTbnId())) { if (lineItem.getBudgetCategory().getCode() .equals(budgetCatagoryCodePersonnel)) { fringeCostSharing = fringeCostSharing .add(personCalculatedAmt.getCalculatedCostSharing()); } } else { fringeCostSharing = fringeCostSharing .add(personCalculatedAmt.getCalculatedCostSharing()); } } } } BudgetPersonContract budgetPerson = personDetails.getBudgetPerson(); if (budgetPerson != null) { baseAmount = budgetPerson.getCalculationBase(); // baseAmount must be set to the first record value in // case // the execution doesnt enter the if condition below String apptTypeCode = budgetPerson.getAppointmentType().getCode(); if (!apptTypeCode.equals(s2SConfigurationService .getValueAsString(ConfigurationConstants.S2SBUDGET_APPOINTMENT_TYPE_SUM_EMPLOYEE)) && !apptTypeCode.equals(s2SConfigurationService.getValueAsString( ConfigurationConstants.S2SBUDGET_APPOINTMENT_TYPE_TMP_EMPLOYEE))) { baseAmount = budgetPerson.getCalculationBase(); } } } } } compensationInfo.setAcademicMonths(new ScaleTwoDecimal(academicMonths)); compensationInfo.setCalendarMonths(new ScaleTwoDecimal(calendarMonths)); compensationInfo.setSummerMonths(new ScaleTwoDecimal(summerMonths)); compensationInfo.setRequestedSalary(totalSal); compensationInfo.setBaseSalary(baseAmount); compensationInfo.setCostSharingAmount(totalSalCostSharing); compensationInfo.setFringe(fringe); compensationInfo.setFundsRequested(totalSal.add(fringe)); compensationInfo.setFringeCostSharing(fringeCostSharing); compensationInfo.setNonFundsRequested(totalSalCostSharing.add(fringeCostSharing)); return compensationInfo; }
From source file:org.wso2.carbon.apimgt.impl.utils.APIUtil.java
/** * This method used to get API from governance artifact specific to copyAPI * * @param artifact API artifact//w w w. j a va 2 s. com * @param registry Registry * @return API * @throws APIManagementException if failed to get API from artifact */ public static API getAPI(GovernanceArtifact artifact, Registry registry, APIIdentifier oldId, String oldContext) throws APIManagementException { API api; try { String providerName = artifact.getAttribute(APIConstants.API_OVERVIEW_PROVIDER); String apiName = artifact.getAttribute(APIConstants.API_OVERVIEW_NAME); String apiVersion = artifact.getAttribute(APIConstants.API_OVERVIEW_VERSION); api = new API(new APIIdentifier(providerName, apiName, apiVersion)); int apiId = ApiMgtDAO.getInstance().getAPIID(oldId, null); if (apiId == -1) { return null; } // set rating String artifactPath = GovernanceUtils.getArtifactPath(registry, artifact.getId()); BigDecimal bigDecimal = BigDecimal.valueOf(registry.getAverageRating(artifactPath)); BigDecimal res = bigDecimal.setScale(1, RoundingMode.HALF_UP); api.setRating(res.floatValue()); //set description api.setDescription(artifact.getAttribute(APIConstants.API_OVERVIEW_DESCRIPTION)); //set last access time api.setLastUpdated(registry.get(artifactPath).getLastModified()); //set uuid api.setUUID(artifact.getId()); // set url api.setStatus(getApiStatus(artifact.getAttribute(APIConstants.API_OVERVIEW_STATUS))); api.setThumbnailUrl(artifact.getAttribute(APIConstants.API_OVERVIEW_THUMBNAIL_URL)); api.setWsdlUrl(artifact.getAttribute(APIConstants.API_OVERVIEW_WSDL)); api.setWadlUrl(artifact.getAttribute(APIConstants.API_OVERVIEW_WADL)); api.setTechnicalOwner(artifact.getAttribute(APIConstants.API_OVERVIEW_TEC_OWNER)); api.setTechnicalOwnerEmail(artifact.getAttribute(APIConstants.API_OVERVIEW_TEC_OWNER_EMAIL)); api.setBusinessOwner(artifact.getAttribute(APIConstants.API_OVERVIEW_BUSS_OWNER)); api.setBusinessOwnerEmail(artifact.getAttribute(APIConstants.API_OVERVIEW_BUSS_OWNER_EMAIL)); api.setEndpointSecured( Boolean.parseBoolean(artifact.getAttribute(APIConstants.API_OVERVIEW_ENDPOINT_SECURED))); api.setEndpointAuthDigest( Boolean.parseBoolean(artifact.getAttribute(APIConstants.API_OVERVIEW_ENDPOINT_AUTH_DIGEST))); api.setEndpointUTUsername(artifact.getAttribute(APIConstants.API_OVERVIEW_ENDPOINT_USERNAME)); api.setEndpointUTPassword(artifact.getAttribute(APIConstants.API_OVERVIEW_ENDPOINT_PASSWORD)); api.setTransports(artifact.getAttribute(APIConstants.API_OVERVIEW_TRANSPORTS)); api.setEndpointConfig(artifact.getAttribute(APIConstants.API_OVERVIEW_ENDPOINT_CONFIG)); api.setRedirectURL(artifact.getAttribute(APIConstants.API_OVERVIEW_REDIRECT_URL)); api.setApiOwner(artifact.getAttribute(APIConstants.API_OVERVIEW_OWNER)); api.setAdvertiseOnly( Boolean.parseBoolean(artifact.getAttribute(APIConstants.API_OVERVIEW_ADVERTISE_ONLY))); api.setSubscriptionAvailability( artifact.getAttribute(APIConstants.API_OVERVIEW_SUBSCRIPTION_AVAILABILITY)); api.setSubscriptionAvailableTenants( artifact.getAttribute(APIConstants.API_OVERVIEW_SUBSCRIPTION_AVAILABLE_TENANTS)); api.setResponseCache(artifact.getAttribute(APIConstants.API_OVERVIEW_RESPONSE_CACHING)); api.setImplementation(artifact.getAttribute(APIConstants.PROTOTYPE_OVERVIEW_IMPLEMENTATION)); api.setVisibility(artifact.getAttribute(APIConstants.API_OVERVIEW_VISIBILITY)); String tenantDomainName = MultitenantUtils.getTenantDomain(replaceEmailDomainBack(providerName)); int tenantId = ServiceReferenceHolder.getInstance().getRealmService().getTenantManager() .getTenantId(tenantDomainName); boolean isGlobalThrottlingEnabled = APIUtil.isAdvanceThrottlingEnabled(); if (isGlobalThrottlingEnabled) { String apiLevelTier = ApiMgtDAO.getInstance().getAPILevelTier(apiId); api.setApiLevelPolicy(apiLevelTier); } String tiers = artifact.getAttribute(APIConstants.API_OVERVIEW_TIER); Map<String, Tier> definedTiers = getTiers(tenantId); Set<Tier> availableTier = getAvailableTiers(definedTiers, tiers, apiName); api.addAvailableTiers(availableTier); api.setContext(artifact.getAttribute(APIConstants.API_OVERVIEW_CONTEXT)); api.setContextTemplate(artifact.getAttribute(APIConstants.API_OVERVIEW_CONTEXT_TEMPLATE)); api.setLatest(Boolean.parseBoolean(artifact.getAttribute(APIConstants.API_OVERVIEW_IS_LATEST))); ArrayList<URITemplate> urlPatternsList; Set<Scope> scopes = ApiMgtDAO.getInstance().getAPIScopes(oldId); api.setScopes(scopes); HashMap<String, String> resourceScopes; resourceScopes = ApiMgtDAO.getInstance().getResourceToScopeMapping(oldId); urlPatternsList = ApiMgtDAO.getInstance().getAllURITemplates(oldContext, oldId.getVersion()); Set<URITemplate> uriTemplates = new HashSet<URITemplate>(urlPatternsList); for (URITemplate uriTemplate : uriTemplates) { uriTemplate.setResourceURI(api.getUrl()); uriTemplate.setResourceSandboxURI(api.getSandboxUrl()); String resourceScopeKey = APIUtil.getResourceKey(oldContext, oldId.getVersion(), uriTemplate.getUriTemplate(), uriTemplate.getHTTPVerb()); uriTemplate.setScope(findScopeByKey(scopes, resourceScopes.get(resourceScopeKey))); } api.setUriTemplates(uriTemplates); Set<String> tags = new HashSet<String>(); Tag[] tag = registry.getTags(artifactPath); for (Tag tag1 : tag) { tags.add(tag1.getTagName()); } api.addTags(tags); api.setLastUpdated(registry.get(artifactPath).getLastModified()); api.setAsDefaultVersion( Boolean.parseBoolean(artifact.getAttribute(APIConstants.API_OVERVIEW_IS_DEFAULT_VERSION))); String environments = artifact.getAttribute(APIConstants.API_OVERVIEW_ENVIRONMENTS); api.setEnvironments(extractEnvironmentsForAPI(environments)); api.setCorsConfiguration(getCorsConfigurationFromArtifact(artifact)); } catch (GovernanceException e) { String msg = "Failed to get API fro artifact "; throw new APIManagementException(msg, e); } catch (RegistryException e) { String msg = "Failed to get LastAccess time or Rating"; throw new APIManagementException(msg, e); } catch (UserStoreException e) { String msg = "Failed to get User Realm of API Provider"; throw new APIManagementException(msg, e); } return api; }
From source file:org.kuali.ole.select.document.service.impl.OleInvoiceServiceImpl.java
/** * This method prepares the warning message for the Invoice Document based on the Invoice Amount * and the Grand Total/*from w w w. ja v a 2s . c o m*/ */ public String createInvoiceNoMatchQuestionText(OleInvoiceDocument invoiceDocument) { String questionText = null; StringBuffer questionTextBuffer = new StringBuffer(""); if (invoiceDocument.getInvoiceAmount() != null && invoiceDocument.getInvoicedGrandTotal() != null) { KualiDecimal invoiceAmount = new KualiDecimal(invoiceDocument.getInvoiceAmount()); KualiDecimal invoiceGrandTotal = new KualiDecimal(invoiceDocument.getInvoicedGrandTotal()); if (!invoiceAmount.equals(invoiceGrandTotal)) { questionText = SpringContext.getBean(ConfigurationService.class) .getPropertyValueAsString(PurapKeyConstants.AP_QUESTION_CONFIRM_INVOICE_MISMATCH); questionText = StringUtils.replace(questionText, "{0}", ""); //String questionText = super.createInvoiceNoMatchQuestionText(invoiceDocument); CurrencyFormatter cf = new CurrencyFormatter(); //PaymentRequestDocument preq = (PaymentRequestDocument) invoiceDocument; questionTextBuffer.append(questionText); if (StringUtils.isNotBlank(invoiceDocument.getInvoiceCurrencyType())) { String currencyType = getCurrencyType(invoiceDocument.getInvoiceCurrencyType()); if (StringUtils.isNotBlank(currencyType)) { if (!currencyType.equalsIgnoreCase(OleSelectConstant.CURRENCY_TYPE_NAME) && invoiceDocument.getForeignVendorInvoiceAmount() != null) { if (StringUtils.isNotBlank(invoiceDocument.getInvoiceCurrencyExchangeRate())) { try { Double.parseDouble(invoiceDocument.getInvoiceCurrencyExchangeRate()); } catch (NumberFormatException nfe) { throw new RuntimeException("Invalid Exchange Rate", nfe); } invoiceDocument.setVendorInvoiceAmount( new KualiDecimal(invoiceDocument.getForeignVendorInvoiceAmount().divide( new BigDecimal(invoiceDocument.getInvoiceCurrencyExchangeRate()), 4, RoundingMode.HALF_UP))); } else { BigDecimal exchangeRate = getExchangeRate(invoiceDocument.getInvoiceCurrencyType()) .getExchangeRate(); invoiceDocument.setVendorInvoiceAmount( new KualiDecimal(invoiceDocument.getForeignVendorInvoiceAmount() .divide(exchangeRate, 4, RoundingMode.HALF_UP))); } } } } questionTextBuffer.append("[br][br][b]Summary Detail Below:[b][br][br][table questionTable]"); questionTextBuffer.append("[tr][td leftTd]Vendor Invoice Amount :[/td][td rightTd]" + (String) cf.format(invoiceDocument.getVendorInvoiceAmount()) + "[/td][/tr]"); questionTextBuffer .append("[tr][td leftTd]Invoice Total Prior to Additional Charges:[/td][td rightTd]" + (String) cf.format(new KualiDecimal(invoiceDocument.getInvoicedItemTotal())) + "[/td][/tr]"); //only add this line if payment request has a discount if (invoiceDocument.isDiscount()) { questionTextBuffer.append("[tr][td leftTd]Total Before Discount:[/td][td rightTd]" + (String) cf.format(invoiceDocument.getGrandPreTaxTotalExcludingDiscount()) + "[/td][/tr]"); } //if sales tax is enabled, show additional summary lines boolean salesTaxInd = SpringContext.getBean(ParameterService.class).getParameterValueAsBoolean( OleParameterConstants.PURCHASING_DOCUMENT.class, PurapParameterConstants.ENABLE_SALES_TAX_IND); if (salesTaxInd) { questionTextBuffer.append("[tr][td leftTd]Grand Total Prior to Tax:[/td][td rightTd]" + (String) cf.format(invoiceDocument.getGrandPreTaxTotal()) + "[/td][/tr]"); questionTextBuffer.append("[tr][td leftTd]Grand Total Tax:[/td][td rightTd]" + (String) cf.format(invoiceDocument.getGrandTaxAmount()) + "[/td][/tr]"); } questionTextBuffer.append("[tr][td leftTd]Grand Total:[/td][td rightTd]" + (String) cf.format(new KualiDecimal(invoiceDocument.getInvoicedGrandTotal())) + "[/td][/tr]"); if (StringUtils.isNotBlank(invoiceDocument.getInvoiceCurrencyType())) { String currencyType = getCurrencyType(invoiceDocument.getInvoiceCurrencyType()); if (StringUtils.isNotBlank(currencyType)) { if (!currencyType.equalsIgnoreCase(OleSelectConstant.CURRENCY_TYPE_NAME)) { questionTextBuffer.append("[tr][td] [/td][/tr]"); questionTextBuffer .append("[tr][td leftTd]Foreign Vendor Invoice Amount :[/td][td rightTd]" + (String) cf.format(new KualiDecimal( invoiceDocument.getForeignVendorInvoiceAmount())) + "[/td][/tr]"); questionTextBuffer.append( "[tr][td leftTd]Foreign Invoice Total Prior to Additional Charges:[/td][td rightTd]" + (String) cf.format( new KualiDecimal(invoiceDocument.getInvoicedForeignItemTotal())) + "[/td][/tr]"); questionTextBuffer.append("[tr][td leftTd]Foreign Grand Total:[/td][td rightTd]" + (String) cf.format( new KualiDecimal(invoiceDocument.getInvoicedForeignGrandTotal())) + "[/td][/tr]"); } } } questionTextBuffer.append("[/table]"); } } return questionTextBuffer.toString(); }
From source file:org.mifos.application.servicefacade.LoanAccountServiceFacadeWebTier.java
private String computeDiffBetweenCumulativeAndInstallment(DateTime dateOfCashFlow, BigDecimal cashflow, LoanScheduleDto loanScheduleDto) { BigDecimal totalInstallmentForMonth = cumulativeTotalForMonth(dateOfCashFlow, loanScheduleDto); return String.valueOf(cashflow.subtract(totalInstallmentForMonth) .setScale(AccountingRules.getDigitsAfterDecimal(), RoundingMode.HALF_UP)); }
From source file:org.mifos.application.servicefacade.LoanAccountServiceFacadeWebTier.java
private String computeDiffBetweenCumulativeAndInstallmentPercent(DateTime dateOfCashFlow, BigDecimal cashflow, LoanScheduleDto loanScheduleDto) { BigDecimal totalInstallmentForMonth = cumulativeTotalForMonth(dateOfCashFlow, loanScheduleDto); String value;//from ww w . ja v a2 s . c o m if (cashflow.doubleValue() != 0) { value = String.valueOf(totalInstallmentForMonth.multiply(BigDecimal.valueOf(100)).divide(cashflow, AccountingRules.getDigitsAfterDecimal(), RoundingMode.HALF_UP)); } else { value = "Infinity"; } return value; }
From source file:org.kuali.ole.select.document.service.impl.OleInvoiceServiceImpl.java
private void checkForForeignCurrency(OleInvoiceRecord oleInvoiceRecord) { if (!StringUtils.isBlank(oleInvoiceRecord.getCurrencyType())) { if (!oleInvoiceRecord.getCurrencyType().equalsIgnoreCase(OleSelectConstant.CURRENCY_TYPE_NAME)) { if (oleInvoiceRecord.getForeignListPrice() != null && !oleInvoiceRecord.getForeignListPrice().isEmpty() && oleInvoiceRecord.getInvoiceCurrencyExchangeRate() != null && !oleInvoiceRecord.getInvoiceCurrencyExchangeRate().isEmpty()) { oleInvoiceRecord.setListPrice((new BigDecimal(oleInvoiceRecord.getForeignListPrice()).divide( new BigDecimal(oleInvoiceRecord.getInvoiceCurrencyExchangeRate()), 4, RoundingMode.HALF_UP)).toString()); }/*from w w w . j a va 2s . com*/ } } }
From source file:com.lp.server.fertigung.ejbfac.FertigungFacBean.java
@TransactionAttribute(TransactionAttributeType.NEVER) public KapazitaetsvorschauDto getKapazitaetsvorschau(TheClientDto theClientDto) throws EJBExceptionLP { KapazitaetsvorschauDto kapDto = null; Session session = null;/*ww w . j av a 2s .c om*/ try { // ------------------------------------------------------------------ // ----- // Benoetigte Parameter holen // ------------------------------------------------------------------ // ----- // Default Sicht nach Wochen // final int iSicht = FertigungFac.KAPAZITAETSVORSCHAU_NACH_WOCHEN; // Anzahl der angezeigten Vatergruppen. Alles andere wird nach // "Sonstige" verdichtet final ParametermandantDto parameterAnzahlGruppen = getParameterFac().getMandantparameter( theClientDto.getMandant(), ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_FERTIGUNG_KAPAZITAETSVORSCHAU_ANZAHL_GRUPPEN); final int iParamAnzahlGruppen = (Integer) parameterAnzahlGruppen.getCWertAsObject(); // Angezeigter Zeitraum = Anzahl der Spalten final ParametermandantDto parameterZeitraum = getParameterFac().getMandantparameter( theClientDto.getMandant(), ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_FERTIGUNG_KAPAZITAETSVORSCHAU_ZEITRAUM); final int iParamZeitraum = (Integer) parameterZeitraum.getCWertAsObject(); // ------------------------------------------------------------------ // ----- // Hibernate-Session erstellen // ------------------------------------------------------------------ // ----- SessionFactory factory = FLRSessionFactory.getFactory(); session = factory.openSession(); // ------------------------------------------------------------------ // ----- // Artikel- / Maschinen-Vatergruppen holen // ------------------------------------------------------------------ // ----- // Alle Artikel-Vatergruppen Criteria cArtikelVatergruppen = session.createCriteria(FLRArtikelgruppe.class); cArtikelVatergruppen.add(Restrictions.isNull(ArtikelFac.FLR_ARTIKELGRUPPE_FLRARTIKELGRUPPE)); List<?> listArtikelgruppen = cArtikelVatergruppen.list(); // Alle Maschinen-Vatergruppen Criteria cMaschinengruppen = session.createCriteria(FLRMaschinengruppe.class); List<?> listMaschinengruppen = cMaschinengruppen.list(); // ------------------------------------------------------------------ // ----- // Anzahl der sub-Diagramme bestimmen // das ist grundsaetzlich (iParamAnzahlGruppen + 1) x 2 ... // (Anzahl d. anzuzeigenden Vatergruppen + Sonstige) f. AZ und // Maschinen // wenn es weniger Vatergruppen als anzuzeigende gibt, reduziert // sich das aber // Gibt es keine Vatergruppe, wird daher alles nach "Sonstige" // verdichtet // ------------------------------------------------------------------ // ----- final int iAnzuzeigendeArtikelgruppen = Math.min(iParamAnzahlGruppen, listArtikelgruppen.size()); final int iAnzuzeigendeMaschinengruppen = Math.min(iParamAnzahlGruppen, listMaschinengruppen.size()); final int iAnzahlZeilen = iAnzuzeigendeArtikelgruppen + 1 + iAnzuzeigendeMaschinengruppen + 1; // ------------------------------------------------------------------ // ----- // Dto initialisieren // ------------------------------------------------------------------ // ----- kapDto = new KapazitaetsvorschauDto(iAnzahlZeilen, iParamZeitraum); // ------------------------------------------------------------------ // ----- // Beschriftung der x-Achse ermitteln. das sind die Kalenderwochen // ------------------------------------------------------------------ // ----- HashMap<Integer, Integer> hmKWIndizes = new HashMap<Integer, Integer>(); String[] kw = new String[iParamZeitraum]; GregorianCalendar gc = new GregorianCalendar(); for (int i = 0; i < kw.length; i++) { int iKw = gc.get(GregorianCalendar.WEEK_OF_YEAR); kw[i] = "" + iKw; kapDto.setISpaltenueberschrift(i, kw[i]); hmKWIndizes.put(gc.get(GregorianCalendar.WEEK_OF_YEAR), i); gc.setTimeInMillis(gc.getTimeInMillis() + 7 * 24 * 60 * 60 * 1000); // 1 Woche dazu } // ------------------------------------------------------------------ // ----- // Beschriftung der y-Achse ermitteln. das sind die Namen der // Vatergruppen bzw. 2 x "Sonstige". // Weiters werden die Indizes im Daten-Array fuer die jeweiligen // Gruppen festgelegt. // ------------------------------------------------------------------ // ----- String sSonstige = getTextRespectUISpr("lp.sonstige", theClientDto.getMandant(), theClientDto.getLocUi()); HashMap<Integer, Integer> hmArtikelGruppenIndizes = new HashMap<Integer, Integer>(); HashMap<Integer, Integer> hmMaschinenGruppenIndizes = new HashMap<Integer, Integer>(); // zuerst die Artikelvatergruppen for (int i = 0; i < iAnzuzeigendeArtikelgruppen; i++) { FLRArtikelgruppe item = (FLRArtikelgruppe) listArtikelgruppen.get(i); kapDto.setIZeilenueberschrift(i, item.getC_nr()); hmArtikelGruppenIndizes.put(item.getI_id(), i); } // Dann Sonstige Artikelgruppen final int indexSonstigeArtikelGruppen = iAnzuzeigendeArtikelgruppen; kapDto.setIZeilenueberschrift(indexSonstigeArtikelGruppen, sSonstige); // Maschinengruppen for (int i = 0; i < iAnzuzeigendeMaschinengruppen; i++) { FLRMaschinengruppe item = (FLRMaschinengruppe) listMaschinengruppen.get(i); int index = iAnzuzeigendeArtikelgruppen + 1 + i; kapDto.setIZeilenueberschrift(index, item.getC_bez()); hmMaschinenGruppenIndizes.put(item.getI_id(), index); } // zuletzt Sonstige Maschinengruppen final int indexSonstigeMaschinenGruppen = iAnzuzeigendeArtikelgruppen + 1 + iAnzuzeigendeMaschinengruppen; kapDto.setIZeilenueberschrift(indexSonstigeMaschinenGruppen, sSonstige); // ------------------------------------------------------------------ // ----- // Lose holen // ------------------------------------------------------------------ // ----- Criteria cLose = session.createCriteria(FLRLos.class); // Filter nach Mandant cLose.add(Restrictions.eq(FertigungFac.FLR_LOS_MANDANT_C_NR, theClientDto.getMandant())); // Alle Stati ausser Erledigt, Gestoppt, Storniert Collection<String> cLoseStati = new LinkedList<String>(); cLoseStati.add(FertigungFac.STATUS_ERLEDIGT); cLoseStati.add(FertigungFac.STATUS_GESTOPPT); cLoseStati.add(FertigungFac.STATUS_STORNIERT); cLose.add(Restrictions.not(Restrictions.in(FertigungFac.FLR_LOS_STATUS_C_NR, cLoseStati))); List<?> listLose = cLose.list(); // ------------------------------------------------------------------ // ----- // Auswertungszeitraum und verfuegbare Kapazitaeten ermitteln // ------------------------------------------------------------------ // ----- // 3 Monate in die zukunft Calendar c = Calendar.getInstance(); c.setTimeInMillis(System.currentTimeMillis()); c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 3); java.util.Date dMax = Helper.cutDate(new java.sql.Date(c.getTimeInMillis())); java.sql.Timestamp tVon = Helper.cutTimestamp(new java.sql.Timestamp(System.currentTimeMillis())); java.sql.Timestamp tBis = Helper.cutTimestamp(new java.sql.Timestamp(dMax.getTime())); // Verfuegbare Zeiten holen SollverfuegbarkeitDto[] oVerfuegbar = getZeiterfassungFac().getVerfuegbareSollzeit(tVon, tBis, theClientDto); // diese nun aufteilen for (int i = 0; i < oVerfuegbar.length; i++) { SollverfuegbarkeitDto svDto = oVerfuegbar[i]; // "normale" AZ if (svDto.isBMannarbeitszeit()) { // die sind einer Artikelgruppe zugeordnet if (svDto.getIGruppeid() != null) { Integer iZeile = hmArtikelGruppenIndizes.get(svDto.getIGruppeid()); // ist das eine sichtbare Gruppe if (iZeile != null) { for (int iSpalte = 0; iSpalte < kapDto.getDetails()[iZeile].length; iSpalte++) { // mal 5 Tage kapDto.addBdVerfuegbareStunden(iZeile, iSpalte, svDto.getNSollstunden().multiply(new BigDecimal(5))); } } // wenn nicht, dann zu den sonstigen else { for (int iSpalte = 0; iSpalte < kapDto .getDetails()[indexSonstigeArtikelGruppen].length; iSpalte++) { // mal 5 Tage kapDto.addBdVerfuegbareStunden(indexSonstigeArtikelGruppen, iSpalte, svDto.getNSollstunden().multiply(new BigDecimal(5))); } } } // Rest = Sonstige Artikelgruppen else { if (svDto.getTDatum() != null) { // Die KW dieses Datums ermitteln, damit das // zugeordnet werden kann GregorianCalendar gcSV = new GregorianCalendar(); gcSV.setTime(svDto.getTDatum()); int kwSV = gcSV.get(Calendar.WEEK_OF_YEAR); Integer iIndexDerKW = hmKWIndizes.get(kwSV); if (iIndexDerKW != null) { // Hier nicht mit 5 multiplizieren, da es fuer // jeden Tag einen eigenen Eintrag gibt kapDto.addBdVerfuegbareStunden(indexSonstigeArtikelGruppen, iIndexDerKW, svDto.getNSollstunden()); } else { // diese KW wird nicht mehr angezeigt - brauch // ich nicht einrechnen } } } } // Maschinenzeit - die Verfuegbarkeit ist jeden Tag gleich else { Integer iZeile = hmMaschinenGruppenIndizes.get(svDto.getIGruppeid()); // ist das eine sichtbare Gruppe if (iZeile != null) { for (int iSpalte = 0; iSpalte < kapDto.getDetails()[iZeile].length; iSpalte++) { // mal 5 Tage kapDto.addBdVerfuegbareStunden(iZeile, iSpalte, svDto.getNSollstunden().multiply(new BigDecimal(5))); } } // wenn nicht, dann zu den sonstigen else { for (int iSpalte = 0; iSpalte < kapDto .getDetails()[indexSonstigeMaschinenGruppen].length; iSpalte++) { // mal 5 Tage kapDto.addBdVerfuegbareStunden(indexSonstigeMaschinenGruppen, iSpalte, svDto.getNSollstunden().multiply(new BigDecimal(5))); } } } } // ------------------------------------------------------------------ // ----- // Offene Zeiten ermitteln // ------------------------------------------------------------------ // ----- for (Iterator<?> iter = listLose.iterator(); iter.hasNext();) { FLRLos los = (FLRLos) iter.next(); // Offene Menge ermitteln BigDecimal bdOffen = los.getN_losgroesse(); for (Iterator<?> iterAblieferung = los.getAblieferungset().iterator(); iterAblieferung.hasNext();) { FLRLosablieferung item = (FLRLosablieferung) iterAblieferung.next(); bdOffen = bdOffen.subtract(item.getN_menge()); } // nur Lose mit tatsaechlich offener Menge>0 if (bdOffen.compareTo(new BigDecimal(0)) > 0) { // Faktor zur Berechnung der offenen Zeiten = offene Menge / // Losgroesse. 2 Nachkommastellen sollten reichen. BigDecimal bdFaktor = bdOffen.divide(los.getN_losgroesse(), 2, BigDecimal.ROUND_HALF_EVEN); // Arbeitsplan holen Criteria cLosAZ = session.createCriteria(FLRLossollarbeitsplan.class); cLosAZ.add(Restrictions.eq(FertigungFac.FLR_LOSSOLLARBEITSPLAN_LOS_I_ID, los.getI_id())); List<?> listLosAZ = cLosAZ.list(); // fuer alle Taetigkeiten for (Iterator<?> iterAZ = listLosAZ.iterator(); iterAZ.hasNext();) { FLRLossollarbeitsplan losAZ = (FLRLossollarbeitsplan) iterAZ.next(); BigDecimal bdOffeneStunden = losAZ.getN_gesamtzeit().multiply(bdFaktor); // ------------------------------------------------------ // ----------------- // Index der Gruppe bestimmen, der ich das zuordnen muss // ------------------------------------------------------ // ----------------- int iZeilenIndex; // 1. nach Maschinengruppe // 2. nach Artikelgruppe der Taetigkeit FLRMaschine flrMaschine = losAZ.getFlrmaschine(); Integer iMaschinengruppeIId = null; Integer iArtikelgruppeIId = null; if (flrMaschine != null) { FLRMaschinengruppe flrMaschinengruppe = flrMaschine.getFlrmaschinengruppe(); if (flrMaschinengruppe != null) { // Wenn diese Maschinengruppe dargestellt wird, // dann kommt hier der index raus. Integer i = hmMaschinenGruppenIndizes.get(flrMaschinengruppe.getI_id()); iMaschinengruppeIId = flrMaschinengruppe.getI_id(); if (i != null) { iZeilenIndex = i; } // wenn nicht -> sonstige. else { iZeilenIndex = indexSonstigeMaschinenGruppen; } } // Maschinen ohne Maschinengruppe werden nach // "Sonstige" verdichtet. else { iZeilenIndex = indexSonstigeMaschinenGruppen; } } else { FLRArtikel flrArtikel = losAZ.getFlrartikel(); FLRArtikelgruppe flrArtikelgruppe = flrArtikel.getFlrartikelgruppe(); if (flrArtikelgruppe != null) { // Wenn diese Artikelgruppe dargestellt wird, // dann kommt hier der index raus. Integer i = hmArtikelGruppenIndizes.get(flrArtikelgruppe.getI_id()); iArtikelgruppeIId = flrArtikelgruppe.getI_id(); if (i != null) { iZeilenIndex = i; } // wenn nicht -> sonstige. else { iZeilenIndex = indexSonstigeArtikelGruppen; } } // Taetigkeiten ohne Artikelgruppe werden nach // "Sonstige" verdichtet. else { iZeilenIndex = indexSonstigeArtikelGruppen; } } // ------------------------------------------------------ // ----------------- // Jetzt hab ich die Gruppe, der ich das zuordnen muss // nun muss die Zeit aufgeteilt werden // ------------------------------------------------------ // ----------------- java.util.Date tLosStarttermin = los.getT_produktionsbeginn(); java.util.Date tLosEndetermin = los.getT_produktionsende(); // beide Termine duerfen nicht vor heute liegen if (tLosStarttermin.before(getDate())) { tLosStarttermin = getDate(); } if (tLosEndetermin.before(getDate())) { tLosEndetermin = getDate(); } // Anzahl der betroffenen Kalenderwochen bestimmen GregorianCalendar gcStart = new GregorianCalendar(); gcStart.setTime(tLosStarttermin); GregorianCalendar gcEnde = new GregorianCalendar(); gcEnde.setTime(tLosEndetermin); int iStartKW = gcStart.get(Calendar.WEEK_OF_YEAR); int iEndeKW = gcEnde.get(Calendar.WEEK_OF_YEAR); int iAnzahlKW = 1 + iEndeKW - iStartKW; // nun auf die Wochen aufteilen BigDecimal bdOffeneStundenJeWoche = bdOffeneStunden; if (iAnzahlKW > 0) { bdOffeneStundenJeWoche = bdOffeneStunden.divide(new BigDecimal(iAnzahlKW), 2, RoundingMode.HALF_UP); } for (int iAktuelleKW = iStartKW; iAktuelleKW <= iEndeKW; iAktuelleKW++) { Integer indexDerKW = hmKWIndizes.get(iAktuelleKW); // wird diese Woche auch angezeigt? if (indexDerKW != null) { KapazitaetsvorschauDetailDto detailDto = new KapazitaetsvorschauDetailDto(); detailDto.setArtikelgruppeIId(iArtikelgruppeIId); detailDto.setArtikelIIdTaetigkeit(losAZ.getFlrartikel().getI_id()); detailDto.setBdDauer(bdOffeneStundenJeWoche); detailDto.setLosIId(los.getI_id()); detailDto.setLossollarbeitsplanIId(losAZ.getI_id()); detailDto.setMaschinengruppeIId(iMaschinengruppeIId); kapDto.addDetail(iZeilenIndex, indexDerKW, detailDto); } } } } } // ------------------------------------------------------------------ // ----- // Diagramm aus den Daten erstellen // ------------------------------------------------------------------ // ----- SymbolAxis xAchse = new SymbolAxis("KW", kw); CombinedDomainXYPlot plot = new CombinedDomainXYPlot(xAchse); for (int iZeile = 0; iZeile < kapDto.getDetails().length; iZeile++) { XYSeries datenZeile = new XYSeries(kapDto.getIZeilenueberschrift(iZeile)); // Balkenfarben festlegen ( >100% = rot, sonst hellgrau) // fuer jede zeile und jede spalte Paint[][] paints = new Paint[1][kapDto.getDetails()[iZeile].length]; for (int iSpalte = 0; iSpalte < kapDto.getDetails()[iZeile].length; iSpalte++) { BigDecimal bdVerfuegbar = kapDto.getBdVerfuegbareStunden()[iZeile][iSpalte]; BigDecimal bdBenoetigt = new BigDecimal(0); // Benoetigte Zeit jet Gruppe je Woche ermitteln for (Iterator<?> iter = kapDto.getDetails()[iZeile][iSpalte].iterator(); iter.hasNext();) { KapazitaetsvorschauDetailDto item = (KapazitaetsvorschauDetailDto) iter.next(); bdBenoetigt = bdBenoetigt.add(item.getBdDauer()); } BigDecimal value = new BigDecimal(0); if (bdVerfuegbar.compareTo(new BigDecimal(0)) > 0) { value = (bdBenoetigt.multiply(new BigDecimal(100))).divide(bdVerfuegbar, 4, BigDecimal.ROUND_HALF_EVEN); if (value.doubleValue() > 100.0) { paints[0][iSpalte] = Color.red; } else { paints[0][iSpalte] = Color.lightGray; } } // tage ohne Verfuegbarkeit mach ich 100% und weisz else { value = new BigDecimal(100.0); // Wochen ohne Kapazitaet aber mit geplanter Zeit if (bdBenoetigt.compareTo(new BigDecimal(0)) > 0) { paints[0][iSpalte] = Color.MAGENTA; } // Wenn nichts verfuegbar aber auch nichts benoetigt -> // weiss else { paints[0][iSpalte] = Color.white; } } XYDataItem data = new XYDataItem(iSpalte, value.doubleValue()); datenZeile.add(data); } // Zur Collection XYSeriesCollection xyDataset = new XYSeriesCollection(); xyDataset.addSeries(datenZeile); // subplot erstellen XYItemRenderer renderer1 = new CustomXYBarRenderer(paints); // renderer1.setItemLabelsVisible(true); // Legende nicht anzeigen renderer1.setBaseSeriesVisibleInLegend(false); NumberAxis zeilenAchse = new NumberAxis(kapDto.getIZeilenueberschrift(iZeile)); // Beschriftung der Y-Achse um 90 grad drehen zeilenAchse.setLabelAngle(Math.PI / 2.0); zeilenAchse.setAutoRange(true); XYPlot subplot1 = new XYPlot(xyDataset, null, zeilenAchse, renderer1); subplot1.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); // Markierung bei 100% final Marker target = new ValueMarker(100.0); target.setPaint(Color.darkGray); // target.setLabel("100 %"); // Label // target.setLabelAnchor(RectangleAnchor.TOP_RIGHT); // target.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT); subplot1.addRangeMarker(target); plot.add(subplot1); // plot.add(subplot1, 1); } JFreeChart lStackedBarChart = new JFreeChart(plot); kapDto.setJfcKapazitaetsvorschau(lStackedBarChart); } catch (RemoteException ex) { throwEJBExceptionLPRespectOld(ex); } finally { if (session != null) { session.close(); } } return kapDto; }