Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cl.awto.microservice.poinvoice.v2.service;
- import cl.awto.microservice.msmodel.domain.model.invoicing.enums.PurchaseOrderType;
- import cl.awto.microservice.poinvoice.service.message.MessageService;
- import cl.awto.microservice.poinvoice.v2.domain.enums.MessageKey;
- import cl.awto.microservice.poinvoice.v2.domain.enums.MissingData;
- import cl.awto.microservice.poinvoice.v2.domain.exceptions.MissingDataException;
- import cl.awto.microservice.poinvoice.v2.domain.purchaseorder.PurchaseOrderData;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- @Service("v2/validatorServiceImpl")
- public class ValidatorServiceImpl implements ValidatorService{
- @Autowired
- private MessageService messageService;
- /**
- * Reglas a validar:
- * - Que el monto no sea null
- * - Que el monto sea positivo
- * - Si el tipo de orden es TRIP, el tripId debe ser obligatorio.
- * - Si el tipo de orden es MEMBERSHIP, userId y membershipId deben ser obligatorios.
- * - En cualquier otro caso, el userId debe ser obligatorio.
- *
- * @param purchaseOrderData
- * @param purchaseOrderType
- * @throws MissingDataException
- */
- @Override
- public void validatePurchaseOrderData(PurchaseOrderData purchaseOrderData, PurchaseOrderType purchaseOrderType) throws MissingDataException {
- Double amountWithoutTax = purchaseOrderData.getAmountWithoutTax();
- if(amountWithoutTax == null){
- final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.AMOUNT);
- throw new MissingDataException(MESSAGE);
- }
- if(amountWithoutTax <= 0){
- final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.POSITIVE_AMOUNT);
- throw new MissingDataException(MESSAGE);
- }
- switch (purchaseOrderType){
- case TRIP_BY_DAY:
- case TRIP_BY_MINUTE:
- if(purchaseOrderData.getTripId() == null){
- final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.TRIP_ID);
- throw new MissingDataException(MESSAGE);
- }
- break;
- case MEMBERSHIP:
- if(purchaseOrderData.getUserId() == null){
- final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.USER_ID);
- throw new MissingDataException(MESSAGE);
- }
- if(purchaseOrderData.getMembershipId() == null){
- final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.MEMBERSHIP_ID);
- throw new MissingDataException(MESSAGE);
- }
- break;
- default:
- if(purchaseOrderData.getUserId() == null){
- final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.USER_ID);
- throw new MissingDataException(MESSAGE);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement