All files / source/inboundOrderProductLots create.js

41.66% Statements 5/12
30% Branches 3/10
33.33% Functions 1/3
41.66% Lines 5/12

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            2x   2x                                                                 1x     1x 1x                                                                                                                        
import moment from 'moment-timezone';
 
import APIError from '../../helpers/error';
import InboundOrderProductLotDao from '../../database/dao/inboundOrderProductLot';
 
async function createInboundOrderProductLot(inboundOrderProductLot, opts = {}) {
  try {
    const newInboundOrderProductLot =
      await InboundOrderProductLotDao.createInboundOrderProductLot(
        {
          branchCode: inboundOrderProductLot.branchCode,
          inboundOrderProductId: inboundOrderProductLot.inboundOrderProductId,
          inboundProductPartialId:
            inboundOrderProductLot.inboundProductPartialId,
          sequence: inboundOrderProductLot.sequence,
          lotNumber: inboundOrderProductLot.lotNumber,
          baptismLabel: inboundOrderProductLot.baptismLabel,
          quantity: inboundOrderProductLot.quantity,
          quantityDamage: inboundOrderProductLot.quantityDamage,
          quantityStorage: inboundOrderProductLot.quantityStorage,
          storageProductUser: inboundOrderProductLot.storageProductUser,
          storageProductAt: inboundOrderProductLot.storageProductAt,
          status: inboundOrderProductLot.status,
          mfgDate: moment(inboundOrderProductLot.mfgDate).isValid()
            ? inboundOrderProductLot.mfgDate
            : null,
          expDate: moment(inboundOrderProductLot.expDate).isValid()
            ? inboundOrderProductLot.expDate
            : null,
          expirationDivergence: inboundOrderProductLot.expirationDivergence,
          expirationDivergenceNote:
            inboundOrderProductLot.expirationDivergenceNote,
          note: inboundOrderProductLot.note,
          serialGroupId: inboundOrderProductLot.serialGroupId,
          createdUser: inboundOrderProductLot.createdUser,
          createdAt: moment().format(),
          updatedUser: inboundOrderProductLot.updatedUser,
          updatedAt: moment().format(),
        },
        opts
      );
    return newInboundOrderProductLot;
  } catch (error) {
    // eslint-disable-next-line no-console
    console.log(error);
    throw new APIError('', error);
  }
}
 
async function createInboundOrderProductLots(
  inboundOrderProductLots,
  opts = {}
) {
  try {
    const newInboundOrderProductLots = inboundOrderProductLots.map(
      (inboundOrderProductLot) => {
        const newLot = {
          branchCode: inboundOrderProductLot.branchCode,
          inboundOrderProductId: inboundOrderProductLot.inboundOrderProductId,
          inboundProductPartialId:
            inboundOrderProductLot.inboundProductPartialId,
          sequence: inboundOrderProductLot.sequence,
          lotNumber: inboundOrderProductLot.lotNumber,
          baptismLabel: inboundOrderProductLot.baptismLabel,
          quantity: inboundOrderProductLot.quantity,
          quantityDamage: inboundOrderProductLot.quantityDamage,
          quantityStorage: inboundOrderProductLot.quantityStorage,
          storageProductUser: inboundOrderProductLot.storageProductUser,
          storageProductAt: inboundOrderProductLot.storageProductAt,
          status: inboundOrderProductLot.status,
          mfgDate: moment(inboundOrderProductLot.mfgDate).isValid()
            ? inboundOrderProductLot.mfgDate
            : null,
          expDate: moment(inboundOrderProductLot.expDate).isValid()
            ? inboundOrderProductLot.expDate
            : null,
          expirationDivergence: inboundOrderProductLot.expirationDivergence,
          expirationDivergenceNote:
            inboundOrderProductLot.expirationDivergenceNote,
          note: inboundOrderProductLot.note,
          serialGroupId: inboundOrderProductLot.serialGroupId,
          stage: inboundOrderProductLot.stage,
          createdUser: inboundOrderProductLot.createdUser,
          createdAt: moment().format(),
          updatedUser: inboundOrderProductLot.updatedUser,
          updatedAt: moment().format(),
        };
        return newLot;
      }
    );
    const result =
      await InboundOrderProductLotDao.createInboundOrderProductLots(
        newInboundOrderProductLots,
        opts
      );
    return result;
  } catch (error) {
    throw new APIError('', error);
  }
}
 
export default {
  createInboundOrderProductLot,
  createInboundOrderProductLots,
};