@Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public Boolean remove(Long id) throws IabakoActionForbiddenException { saleDAO.deleteAttachedObjects(id); Sale sale = saleDAO.findById(id); if (sale == null) { log.warn("No sale found with id :" + id); return false; } stockRollBack(sale); Client client = sale.getClient(); boolean result = super.remove(id); if (client != null) { clientService.calculateStatus(client); } trackingService.addTrackingToUserSession(TrackingType.saleDelete, sale); return result; }
/** * This method is used by SaleModificationForm * * @param sale * @return * @throws IabakoActionForbiddenException */ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public Sale save(Sale sale) throws IabakoActionForbiddenException, IabakoUniqueConstraintException { Enterprise enterprise = getEnterpriseFromSessionUser(); if (sale.getId() != null && enterprise.getAllRelatedEnterprises().size() > 1) { // Do not change Enterprise! sale.setEnterprise(saleDAO.findById(sale.getId()).getEnterprise()); } else { sale.setEnterprise(enterprise); } if (enterprise != null && enterprise.isDemo()) { throw new IabakoActionForbiddenException( "action_forbidden_for_demo_title", "action_forbidden_for_demo_text", true); } if (!getDAO().isUniqueNumber(sale)) { throw new IabakoUniqueConstraintException( messages.getLabel("validation_sale_unique_constraint_error_title"), messages.getLabel("validation_sale_unique_constraint_error_text", sale.getNumber()), true, true); } Sale saleFromDB = saleDAO.findById(sale.getId()); setAttributesFromDB(sale, saleFromDB); if (!enterprise.getPaymentRequestConfig().isEnabled() || (sale.getClient() != null && sale.getClient().isPaymentRequestDisabled())) { // If paymentRequest disable, then do not change initial value (it doesn't come from client // world) sale.setPaymentRequestDisabled(saleFromDB.isPaymentRequestDisabled()); } sale.setDate(GenericTools.getDateFromString(sale.getDateString())); trackingService.addTrackingToUserSession(TrackingType.saleModify, sale); return rawSave(sale); }
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public void duplicateEnMasse(QueryDefinitionDTO saleList) throws IabakoUniqueConstraintException, IabakoActionForbiddenException, IabakoPackageForbiddenException, IabakoStockException { saleList.setPageSize(-1); saleList.excludeAllColumns(); queryDefinitionDAO.executeQueryDefinition(saleList); Map<Long, QueryResultDTO> sales = saleList.getResults(); for (Long idSale : sales.keySet()) { Sale sale = saleDAO.findById(idSale); duplicate(sale); } }
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; }