All files / middlewares resupplyDepositsValidations.js

100% Statements 19/19
100% Branches 16/16
100% Functions 1/1
100% Lines 19/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75                8x   8x 1x   7x       7x 1x           6x 1x   5x       5x 1x           4x 1x   3x       3x 1x                 2x             2x 1x                      
import { Op } from 'sequelize';
import APIError from '../helpers/error';
import { t } from '../helpers/i18n';
import ResupplyDepositsDao from '../source/resupplyDeposits/information';
import BranchInformation from '../source/branches/information';
import DepositInformation from '../source/deposits/information';
 
async function validResupplyDeposits(req) {
  const { id, branchCode, depositCode, depositCodeWithdraw } = req.body;
 
  if (!branchCode) {
    throw new APIError(t('BEE1285' /* Código da filial deve ser informado */));
  } else {
    const existBranch = await BranchInformation.getBranch({
      code: branchCode,
    });
 
    if (!existBranch) {
      throw new APIError(
        t('BEE1170', { 0: branchCode } /* Filial %{0} não localizada */)
      );
    }
  }
 
  if (!depositCode) {
    throw new APIError(t('BEE1330' /* Depósito deve ser informado ! */));
  } else {
    const existDeposit = await DepositInformation.getDeposit({
      code: depositCode,
    });
 
    if (!existDeposit) {
      throw new APIError(
        t('BEE1193', { 0: depositCode } /* Deposito %{0} não localizada */)
      );
    }
  }
 
  if (!depositCodeWithdraw) {
    throw new APIError(t('BEE1330' /* Depósito deve ser informado ! */));
  } else {
    const existDepositWithdraw = await DepositInformation.getDeposit({
      code: depositCodeWithdraw,
    });
 
    if (!existDepositWithdraw) {
      throw new APIError(
        t(
          'BEE1193',
          { 0: depositCodeWithdraw } /* Deposito %{0} não localizada */
        )
      );
    }
  }
 
  const existResupplyDeposits = await ResupplyDepositsDao.getResupplyDeposits({
    branchCode,
    depositCode,
    depositCodeWithdraw,
    id: { [Op.ne]: id || null },
  });
 
  if (existResupplyDeposits) {
    throw new APIError(
      t(
        'BEE2881' /* A regra já foi cadastrada! Por favor, revise os valores informados. */
      )
    );
  }
}
 
export default {
  validResupplyDeposits,
};