销售出库单为负数


发布人 张潇  发布时间 1623145040150
关键字 产品咨询 

销售出库单的数量大于商品库存数量时,会扣为负数,请问怎样可以解决这个问题





回复 (1)
  • #
  • #1 wx_15926 1623163017333

    您好,为简化系统设计,默认模板中没有库存检查,允许为负,如果需要这条规则的话,您可以按以下步骤自己加上:

    1)以管理员登录后,进入 oncedoc

    2) 点击左侧菜单:进销存,打开文件: serp.methods.js, 点击编辑,可以备份下这个文件。

    3) 复制以下内容,覆盖掉原文件:

    // 更新库存
    async function updateInventory(orderInfo, isMinus) {
      var self = this
      let res  = self.res
      let req  = self.req
      for (var i = 0; i < (orderInfo.items || []).length; i++) {
        let itemLite = orderInfo.items[i]
        let quantity = Number(itemLite.quantity) || 0
        if (quantity < 1) {
          continue
        }

        let itemInfos = await oncedb.selectAsync('s.item', { id: itemLite.id })
        if (!itemInfos || itemInfos.length < 1) {
          throw new Error('商品不存在')
        }

        let stock = (Number(itemInfos[0].stock) || 0)
        if (isMinus) {
          stock -= quantity
        } else {
          stock += quantity
        }

        if (stock < 0) {
          throw new Error(`商品 ${itemInfos[0].name} 库存不足`)
        }

        await oncedb.updateAsync('s.item', { id: itemLite.id, stock: stock })
      }
    }

    // 采购入库,增加库存
    async function increaseInventory(data) {
      await updateInventory(data)
    }

    // 销售聘出库,减少库存
    async function decreaseInventory(data) {
      await updateInventory(data, 1)
    }

    async function checkOrder(data) {
      (data.items || []).forEach(function(item) {
        if (isNaN(item.quantity)) {
          throw new Error('数量必须为数字' + (item.name || ''))
        }
      })
    }

    module.exports = {
      increaseInventory,
      decreaseInventory,
      checkOrder
    }

    4. 重启 OnceOA Web Server

     

 关键字
产品咨询

 关注
关注
OnceOA

OnceOA