All files / middlewares averageCostValidations.js

100% Statements 28/28
100% Branches 30/30
100% Functions 6/6
100% Lines 28/28

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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132                  3x   3x 1x         2x             2x 1x               3x   3x 1x         2x             2x 1x               3x   3x 1x         2x       2x 1x               2x   2x 1x               2x   2x 1x               2x   2x           2x 1x                                            
import validator from 'validator';
import APIError from '../helpers/error';
import I18n from '../helpers/i18n';
import AverageCostInformation from '../source/averageCosts/information';
import BranchInformation from '../source/branches/information';
import WarehouseInformation from '../source/warehouses/information';
import ProductInformation from '../source/products/information';
 
async function validBranchCode(req) {
  const code = req.body.branchCode || req.query.branchCode;
 
  if (!code) {
    throw new APIError(
      '',
      I18n.t('BEE1160', { 0: '' } /* Filial %{0} inválida ! */)
    );
  } else {
    const existBranch = await BranchInformation.getBranch(
      {
        code,
      },
      { userBranches: req.userBranches }
    );
 
    if (!existBranch)
      throw new APIError(
        '',
        I18n.t('BEE1160', { 0: code } /* Filial %{0} inválida ! */)
      );
  }
}
 
async function validWarehouseCode(req) {
  const code = req.body.warehouseCode || req.query.warehouseCode;
 
  if (!code) {
    throw new APIError(
      '',
      I18n.t('BEE1167', { 0: '' } /* Armazém %{0} inválido ! */)
    );
  } else {
    const existWarehouseCode = await WarehouseInformation.getWarehouse(
      {
        code,
      },
      { userBranches: req.userBranches }
    );
 
    if (!existWarehouseCode)
      throw new APIError(
        '',
        I18n.t('BEE1167', { 0: code } /* Armazém %{0} inválido ! */)
      );
  }
}
 
async function validProductCode(req) {
  const productCode = req.body.productCode || req.query.productCode;
 
  if (!productCode) {
    throw new APIError(
      '',
      I18n.t('BEE1166', { 0: '' } /* Produto %{0} inválido ! */)
    );
  } else {
    const existProductCode = await ProductInformation.getProduct({
      productCode,
    });
 
    if (!existProductCode)
      throw new APIError(
        '',
        I18n.t('BEE1166', { 0: productCode } /* Produto %{0} inválido ! */)
      );
  }
}
 
function validValueAverageCost(req) {
  const averageCost = req.body.averageCost || req.query.averageCost;
 
  if (!averageCost) {
    throw new APIError(
      '',
      I18n.t('BEE1161' /* Valor do custo médio deve ser informado ! */)
    );
  }
}
 
function validNote(req) {
  const note = req.body.note || req.query.note;
 
  if (!note) {
    throw new APIError(
      '',
      I18n.t('BEE1168', { 0: note } /* Observação %{0} inválida ! */)
    );
  }
}
 
async function validAverageCost(req) {
  const { branchCode, productCode, warehouseCode } = req.body || req.query;
 
  const exitAverageCost = await AverageCostInformation.getAverageCost({
    branchCode,
    productCode,
    warehouseCode,
  });
 
  if (exitAverageCost) {
    throw new APIError(
      '',
      I18n.t(
        'BEE1169',
        {
          0: productCode,
          1: branchCode,
          2: warehouseCode,
        } /* Já existe Custo Médio para o Produto %{0} na Filial %{1} e Armazém %{2} */
      )
    );
  }
}
 
export default {
  validBranchCode,
  validWarehouseCode,
  validProductCode,
  validValueAverageCost,
  validNote,
  validAverageCost,
};