update : add IExceptionMessage and check if next operation alredy exist

This commit is contained in:
zakaria.hachem
2025-11-04 15:44:53 +01:00
parent 2d681f27f5
commit 0a9e03261b
2 changed files with 68 additions and 25 deletions

View File

@ -0,0 +1,26 @@
/*
* Axelor Business Solutions
*
* Copyright (C) 2019 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.qvm.exception;
/** Interface of Exceptions. Enum all exception of axelor-human-resource. */
public interface IExceptionMessage {
static final String ORIGIN_ALREDY_USED = /*$$(*/
"origin alredy used : %s" /*)*/;
}

View File

@ -28,11 +28,18 @@ import com.axelor.i18n.I18n;
import com.axelor.inject.Beans;
import com.google.inject.Inject;
import com.google.inject.persist.Transactional;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.axelor.apps.qvm.exception.IExceptionMessage;
public class QvmOperationServiceImpl implements QvmOperationService {
private final Logger log = LoggerFactory.getLogger(QvmOperationServiceImpl.class);
@Inject protected SequenceService sequenceService;
@Inject
private QvmOperationRepository qvmOperationRepo;
@Transactional
public QvmOperation createCalibrationSeq(Company company) throws AxelorException {
@ -103,36 +110,46 @@ public class QvmOperationServiceImpl implements QvmOperationService {
return calibration;
}
public QvmOperation createNextOperation(QvmOperation operation, Long userId) {
public QvmOperation createNextOperation(QvmOperation operation, Long userId) throws AxelorException{
QvmOperation nextOperation = Beans.get(QvmOperationRepository.class).copy(operation, true);
if (operation != null) {
try {
nextOperation.setStatusSelect(1);
nextOperation.setOperationOrigin(operation.getSerialNumber());
nextOperation.setCreationType(2);
nextOperation.setPastOperationDate(operation.getOperationDate());
nextOperation.setOperationDate(operation.getOperationDueDate());
if (operation.getOperationFrequency() == 1) {
nextOperation.setOperationDueDate(operation.getOperationDueDate().plusYears(1));
nextOperation.setCountdown(364);
List<QvmOperation> operations = qvmOperationRepo.all()
.filter("self.operationOrigin = :serialNumber")
.bind("serialNumber", operation.getSerialNumber())
.fetch();
int size = operations.size();
if (size == 0){
log.debug("Creating next operation");
try{
nextOperation.setStatusSelect(1);
nextOperation.setOperationOrigin(operation.getSerialNumber());
nextOperation.setCreationType(2);
nextOperation.setPastOperationDate(operation.getOperationDate());
nextOperation.setOperationDate(operation.getOperationDueDate());
if (operation.getOperationFrequency() == 1){
nextOperation.setOperationDueDate(operation.getOperationDueDate().plusYears(1));
nextOperation.setCountdown(364);}
if (operation.getOperationFrequency() == 2){
nextOperation.setOperationDueDate(operation.getOperationDueDate().plusMonths(1));
nextOperation.setCountdown(31);}
if (operation.getOperationFrequency() == 3){
nextOperation.setOperationDueDate(operation.getOperationDueDate().plusMonths(6));
nextOperation.setCountdown(183);}
nextOperation.setSerialNumber(null);
nextOperation.setCreationType(2);
}
if (operation.getOperationFrequency() == 2) {
nextOperation.setOperationDueDate(operation.getOperationDueDate().plusMonths(1));
nextOperation.setCountdown(31);
}
if (operation.getOperationFrequency() == 3) {
nextOperation.setOperationDueDate(operation.getOperationDueDate().plusMonths(6));
nextOperation.setCountdown(183);
}
System.out.println(
"operation.getOperationFrequency : " + operation.getOperationFrequency());
nextOperation.setSerialNumber(null);
nextOperation.setCreationType(2);
} catch (Exception exception) {
System.out.println(exception);
catch (Exception exception){
log.error("Error while creating next operation");
System.out.println(exception);
}}else{
log.debug("Origin alredy used");
throw new AxelorException(
TraceBackRepository.CATEGORY_NO_UNIQUE_KEY,
I18n.get(IExceptionMessage.ORIGIN_ALREDY_USED),
operation.getSerialNumber());
}
}
// Beans.get(QvmOperationRepository.class).save(nextOperation);
System.out.println("Create next operation : "+nextOperation);
return nextOperation;
}
}