All files / source/stock create.js

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

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              2x 2x                                                       1x   1x         2x 2x                                                                   1x   1x                
import moment from 'moment-timezone';
 
import StockBalanceDao from '../../database/dao/stockBalance';
import StockMovementDao from '../../database/dao/stockMovement';
import APIError from '../../helpers/error';
 
async function createStockBalance(stockBalance, opts = {}) {
  try {
    const newBalance = await StockBalanceDao.createStockBalance(
      {
        branchCode: stockBalance.branchCode,
        warehouseCode: stockBalance.warehouseCode,
        depositCode: stockBalance.depositCode,
        addressCode: stockBalance.addressCode,
        productCode: stockBalance.productCode,
        lotNumber: stockBalance.lotNumber,
        lastEntranceAt: stockBalance.lastEntranceAt,
        lastEntranceUser: stockBalance.lastEntranceUser,
        lastCountAt: stockBalance.lastCountAt,
        lastCountUser: stockBalance.lastCountUser,
        expirationDate: stockBalance.expirationDate,
        manufacturingDate: stockBalance.manufacturingDate,
        quantity: stockBalance.quantity,
        allocated: stockBalance.allocated,
        reserved: stockBalance.reserved,
        note: stockBalance.note,
        createdUser: stockBalance.createdUser,
        createdAt: moment().format(),
        updatedUser: stockBalance.updatedUser,
        updatedAt: moment().format(),
        lastMovingUser: stockBalance.lastMovingUser,
        lastMovingDate: stockBalance.lastMovingDate,
      },
      { ...opts }
    );
 
    return newBalance;
  } catch (error) {
    throw new APIError('', error);
  }
}
 
async function createStockMovement(stockMovement, opts) {
  try {
    const newMovement = await StockMovementDao.createStockMovement(
      {
        stockBalanceId: stockMovement.stockBalanceId,
        operation: stockMovement.operation,
        type: stockMovement.type,
        branchCode: stockMovement.branchCode,
        warehouseCode: stockMovement.warehouseCode,
        depositCode: stockMovement.depositCode,
        addressCode: stockMovement.addressCode,
        productCode: stockMovement.productCode,
        productLineNumber: stockMovement.productLineNumber,
        lotNumber: stockMovement.lotNumber,
        expirationDate: stockMovement.expirationDate,
        quantity: stockMovement.quantity,
        unitMeasure: stockMovement.unitMeasure,
        movementDate: stockMovement.movementDate,
        movementUser: stockMovement.movementUser,
        serie: stockMovement.serie,
        orderNumber: stockMovement.orderNumber,
        outboundOrderProductId: stockMovement.outboundOrderProductId,
        supplierCode: stockMovement.supplierCode,
        customerCode: stockMovement.customerCode,
        note: stockMovement.note,
        serialGroupId: stockMovement.serialGroupId,
        serialLabelId: stockMovement.serialLabelId,
        baptismLabel: stockMovement.baptismLabel,
        createdUser: stockMovement.createdUser,
        createdAt: moment().format(),
        updatedUser: stockMovement.updatedUser,
        updatedAt: moment().format(),
      },
      { ...opts }
    );
 
    return newMovement;
  } catch (error) {
    throw new APIError('', error);
  }
}
 
export default {
  createStockBalance,
  createStockMovement,
};