private void setAttributesFromDB(Sale sale, Sale saleFromDB) { sale.setStatus(saleFromDB.getStatus()); sale.setRecalculatedTotal(saleFromDB.getRecalculatedTotal()); sale.setTotalBeforeTax(saleFromDB.getTotalBeforeTax()); sale.setTotalAfterTax(saleFromDB.getTotalAfterTax()); sale.setTotalNoTax(saleFromDB.getTotalNoTax()); }
private Sale checkIfQuote(Sale sale) { if (sale.getSaleQuoteId() != null) { Sale saleQuote = saleDAO.findById(Long.parseLong(sale.getSaleQuoteId())); if (saleQuote != null && saleQuote.isQuote()) { saleQuote.setSaleQuoteId( sale.getStatus() == FinancialStatusSale._0_draft ? "_draft_" + sale.getId() : sale.getId() + ""); saleQuote.setStatus(FinancialStatusSale._2_quote_transformed); } else { sale.setSaleQuoteId(null); } saleDAO.merge(saleQuote); return saleQuote; } return null; }
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public Sale duplicate(Sale sale) throws IabakoUniqueConstraintException, IabakoPackageForbiddenException, IabakoActionForbiddenException, IabakoStockException { // get ProdSer from DB sale.setProductsServices(saleDAO.getProductServiceList(sale)); if (sale.getInstallmentsDefinition() != null && sale.getInstallmentsDefinition().getInstallmentsFrequency() == InstallmentsFrequency.custom && GenericTools.isEmpty(sale.getInstallmentsDefinition().getInstallments())) { // initialize empty relation coming from GWT world before clone() call sale.getInstallmentsDefinition() .setInstallments(saleDAO.getCustomInstallmentsDefinition(sale)); } Sale newSale = sale.customClone(); newSale.setDate(new Date()); newSale.setDateString(GenericTools.formatDateToString(newSale.getDate())); newSale.setClient(sale.getClient()); if (sale.getStatus() != FinancialStatusSale._0_draft) { newSale.setSaleStep(SaleStep.confirmation); } newSale.getPayments().clear(); newSale.getInstallments().clear(); List<Installment> installments = newSale.getInstallmentsDefinition() != null ? newSale.getInstallmentsDefinition().getInstallments() : null; return save( true, newSale, newSale.getProductsServices(), newSale.getExpenses(), null, installments); }