All files / database/dao outboundOrder.js

100% Statements 10/10
100% Branches 12/12
100% Functions 8/8
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      149x     13x             2x             2x             1x       1x       3x             2x             3x                                               3x                              
import db from './index';
import { sequelize, models } from '../../../config/database';
 
const { OutboundOrder } = db;
 
async function findOutboundOrder(query, opts = {}) {
  return OutboundOrder.findOne({
    where: query,
    ...opts,
  });
}
 
async function findOutboundOrders(query, opts = {}) {
  return OutboundOrder.findAll({
    where: query,
    ...opts,
  });
}
 
async function findAndCountOutboundOrders(query, opts = {}) {
  return OutboundOrder.findAndCountAll({
    where: query,
    ...opts,
  });
}
 
async function createOutboundOrders(outboundOrders, opts = {}) {
  return OutboundOrder.bulkCreate(outboundOrders, opts);
}
 
async function createOutboundOrder(outboundOrder, opts = {}) {
  return OutboundOrder.create(outboundOrder, opts);
}
 
async function updateOutboundOrder(query, queryUpd, opts = {}) {
  return OutboundOrder.update(queryUpd, {
    where: query,
    ...opts,
  });
}
 
async function deleteOutboundOrder(query, opts = {}) {
  return OutboundOrder.destroy({
    where: query,
    ...opts,
  });
}
 
async function getLastOrderNumber(query, opts = {}) {
  const result = await OutboundOrder.findOne({
    raw: true,
    where: query,
    attributes: [
      [
        sequelize.fn(
          'MAX',
          sequelize.cast(
            sequelize.col(
              `${models.OutboundOrder.rawAttributes.orderNumber.field}`
            ),
            'UNSIGNED'
          )
        ),
        'lastOrderNumber',
      ],
      'id',
      'orderType',
      'branchCode',
      'customerCode',
    ],
    ...opts,
  });
 
  return result && result.lastOrderNumber
    ? parseInt(result.lastOrderNumber, 10)
    : 0;
}
 
export default {
  findOutboundOrder,
  findOutboundOrders,
  findAndCountOutboundOrders,
  createOutboundOrder,
  createOutboundOrders,
  updateOutboundOrder,
  deleteOutboundOrder,
  getLastOrderNumber,
};