All files / database/dao inboundOrderProduct.js

100% Statements 10/10
100% Branches 8/8
100% Functions 9/9
100% Lines 10/10

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      158x     2x             1x             1x                                             1x                                                         1x             1x       1x       1x             1x                                  
import db from './index';
import { models } from '../../../config/database';
 
const { InboundOrderProduct } = db;
 
async function findInboundOrderProduct(query, opts = {}) {
  return InboundOrderProduct.findOne({
    where: query,
    ...opts,
  });
}
 
async function findInboundOrderProducts(query, opts = {}) {
  return InboundOrderProduct.findAll({
    where: query,
    ...opts,
  });
}
 
async function findInboundOrderProductDashboard(query, opts = {}) {
  return InboundOrderProduct.findOne({
    where: query,
    include: [
      {
        required: true,
        model: models.Product,
        as: 'product',
        attributes: [],
        include: [
          {
            attributes: [],
            required: true,
            model: models.MaterialFamily,
            as: 'family',
          },
        ],
      },
    ],
    ...opts,
  });
}
 
async function findInboundOrderProductsDashboard(query, opts = {}) {
  return InboundOrderProduct.findAll({
    where: query,
    include: [
      {
        required: true,
        model: models.Product,
        as: 'product',
        attributes: [],
        include: [
          {
            attributes: [],
            required: true,
            model: models.MaterialFamily,
            as: 'family',
          },
        ],
      },
      {
        required: true,
        model: models.InboundOrder,
        as: 'inboundOrder',
        attributes: ['status'],
      },
    ],
    ...opts,
  });
}
 
async function findAndCountInboundOrderProducts(query, opts = {}) {
  return InboundOrderProduct.findAndCountAll({
    where: query,
    ...opts,
  });
}
 
async function createInboundOrderProducts(inboundOrderProducts, opts = {}) {
  return InboundOrderProduct.bulkCreate(inboundOrderProducts, opts);
}
 
async function createInboundOrderProduct(inboundOrderProduct) {
  return InboundOrderProduct.create(inboundOrderProduct);
}
 
async function updateInboundOrderProduct(query, queryUpd, opts = {}) {
  return InboundOrderProduct.update(queryUpd, {
    where: query,
    ...opts,
  });
}
 
async function deleteInboundOrderProduct(query, opts = {}) {
  return InboundOrderProduct.destroy({
    where: query,
    ...opts,
  });
}
 
export default {
  findInboundOrderProduct,
  findInboundOrderProducts,
  findInboundOrderProductDashboard,
  findInboundOrderProductsDashboard,
  findAndCountInboundOrderProducts,
  createInboundOrderProduct,
  createInboundOrderProducts,
  updateInboundOrderProduct,
  deleteInboundOrderProduct,
};