Advertisement
pperez_awto

Servicio de Validaciones

Mar 27th, 2020
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. package cl.awto.microservice.poinvoice.v2.service;
  2.  
  3. import cl.awto.microservice.msmodel.domain.model.invoicing.enums.PurchaseOrderType;
  4. import cl.awto.microservice.poinvoice.service.message.MessageService;
  5. import cl.awto.microservice.poinvoice.v2.domain.enums.MessageKey;
  6. import cl.awto.microservice.poinvoice.v2.domain.enums.MissingData;
  7. import cl.awto.microservice.poinvoice.v2.domain.exceptions.MissingDataException;
  8. import cl.awto.microservice.poinvoice.v2.domain.purchaseorder.PurchaseOrderData;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11.  
  12. @Service("v2/validatorServiceImpl")
  13. public class ValidatorServiceImpl implements ValidatorService{
  14.  
  15. @Autowired
  16. private MessageService messageService;
  17.  
  18. /**
  19. * Reglas a validar:
  20. * - Que el monto no sea null
  21. * - Que el monto sea positivo
  22. * - Si el tipo de orden es TRIP, el tripId debe ser obligatorio.
  23. * - Si el tipo de orden es MEMBERSHIP, userId y membershipId deben ser obligatorios.
  24. * - En cualquier otro caso, el userId debe ser obligatorio.
  25. *
  26. * @param purchaseOrderData
  27. * @param purchaseOrderType
  28. * @throws MissingDataException
  29. */
  30. @Override
  31. public void validatePurchaseOrderData(PurchaseOrderData purchaseOrderData, PurchaseOrderType purchaseOrderType) throws MissingDataException {
  32. Double amountWithoutTax = purchaseOrderData.getAmountWithoutTax();
  33.  
  34. if(amountWithoutTax == null){
  35. final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.AMOUNT);
  36. throw new MissingDataException(MESSAGE);
  37. }
  38.  
  39. if(amountWithoutTax <= 0){
  40. final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.POSITIVE_AMOUNT);
  41. throw new MissingDataException(MESSAGE);
  42. }
  43.  
  44. switch (purchaseOrderType){
  45. case TRIP_BY_DAY:
  46. case TRIP_BY_MINUTE:
  47. if(purchaseOrderData.getTripId() == null){
  48. final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.TRIP_ID);
  49. throw new MissingDataException(MESSAGE);
  50. }
  51. break;
  52. case MEMBERSHIP:
  53. if(purchaseOrderData.getUserId() == null){
  54. final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.USER_ID);
  55. throw new MissingDataException(MESSAGE);
  56. }
  57.  
  58. if(purchaseOrderData.getMembershipId() == null){
  59. final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.MEMBERSHIP_ID);
  60. throw new MissingDataException(MESSAGE);
  61. }
  62. break;
  63.  
  64. default:
  65. if(purchaseOrderData.getUserId() == null){
  66. final String MESSAGE = messageService.getMessage(MessageKey.MISSING_DATA, MissingData.USER_ID);
  67. throw new MissingDataException(MESSAGE);
  68. }
  69. }
  70. }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement