All files / controllers volumePlate.js

100% Statements 21/21
100% Branches 8/8
100% Functions 2/2
100% Lines 21/21

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            3x   3x 3x       2x             2x                             2x           1x 1x     1x         3x   3x 3x         2x       2x   2x 1x                 1x                         2x           1x 1x     1x                
import InboundDocumentInformation from '../source/inboundDocuments/information';
import InboundPlateCheckCreate from '../source/inboundPlateChecks/create';
import InboundPlateCheckInformation from '../source/inboundPlateChecks/information';
import InboundPlateCheckUpdate from '../source/inboundPlateChecks/update';
 
async function getInboundDocument(req, res) {
  const { accessKey } = req.body;
 
  try {
    const inboundDocument = await InboundDocumentInformation.getInboundDocument(
      { accessKey }
    );
    const inboundPlateCheck =
      await InboundPlateCheckInformation.getInboundPlateCheck(
        {
          accessKey,
        },
        { userBranches: req.userBranches }
      );
 
    const data = {
      id: inboundDocument.id,
      accessKey: inboundDocument.accessKey,
      orderNumber: inboundDocument.orderNumber,
      serie: inboundDocument.serie,
      expectedVolumes: inboundPlateCheck
        ? inboundPlateCheck.expectedVolumes
        : inboundDocument.expectedVolumes,
      plateChecked: !!(inboundPlateCheck && inboundPlateCheck.status === 2),
      licensePlate: inboundPlateCheck
        ? inboundPlateCheck.licensePlate
        : inboundDocument.licensePlate,
      supplierName: `${inboundDocument.supplier.code} - ${inboundDocument.supplier.name}`,
    };
 
    res.json({
      success: true,
      data,
    });
  } catch (err) {
    // eslint-disable-next-line no-console
    console.log(err);
    const response = {
      success: false,
    };
    res.json(response);
  }
}
 
async function savePlateToCheck(req, res) {
  const { id, expectedVolumes, licensePlate } = req.body;
 
  try {
    const inboundDocument = await InboundDocumentInformation.getInboundDocument(
      { id }
    );
 
    const inboundPlateCheck =
      await InboundPlateCheckInformation.getInboundPlateCheck({
        accessKey: inboundDocument.accessKey,
      });
 
    let result = null;
 
    if (inboundPlateCheck) {
      result = await InboundPlateCheckUpdate.updateInboundPlateCheck(
        inboundPlateCheck.id,
        {
          licensePlate,
          expectedVolumes,
          updatedUser: req.userId,
        }
      );
    } else {
      result = await InboundPlateCheckCreate.createInboundPlateCheck({
        branchCode: inboundDocument.branchCode,
        supplierCode: inboundDocument.supplierCode,
        orderNumber: inboundDocument.orderNumber,
        serie: inboundDocument.serie,
        accessKey: inboundDocument.accessKey,
        licensePlate,
        expectedVolumes,
        createdUser: req.userId,
        updatedUser: req.userId,
      });
    }
 
    res.json({
      success: true,
      data: result,
    });
  } catch (err) {
    // eslint-disable-next-line no-console
    console.log(err);
    const response = {
      success: false,
    };
    res.json(response);
  }
}
 
export default {
  getInboundDocument,
  savePlateToCheck,
};