You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于CodeIgniter的POS库存系统:库存不足时如何终止操作并提示?

CodeIgniter POS系统库存校验实现方案

核心逻辑说明

要实现库存为0时终止操作、库存不足时提示的功能,需先查询商品当前库存,分两次校验后再执行扣减:

  • 先判断库存是否已为0,直接终止操作
  • 再校验输入数量是否超过现有库存,不足则给出提示
  • 仅当库存充足时,才执行库存扣减操作

修改后的完整代码

if($prodid){
    $inputQuantity = (int)$this->input->post('qty')[$x];
    
    // 查询当前商品的库存数据
    $this->db->select('qty');
    $this->db->where('id', $prodid);
    $product = $this->db->get('products')->row();

    // 商品不存在的异常处理
    if(!$product) {
        $this->session->set_flashdata('error', '商品不存在');
        redirect('你的POS页面路由');
        return;
    }

    $currentStock = (int)$product->qty;

    // 库存已耗尽,终止操作
    if($currentStock === 0) {
        $this->session->set_flashdata('error', '该商品库存已耗尽,无法继续操作');
        redirect('你的POS页面路由');
        return;
    }

    // 库存不足,给出提示
    if($currentStock < $inputQuantity) {
        $this->session->set_flashdata('error', "商品{$prodid}库存不足:当前库存{$currentStock},需要{$inputQuantity}");
        redirect('你的POS页面路由');
        return;
    }

    // 库存充足,执行库存扣减
    $this->db->where('id', $prodid);
    $this->db->set('qty', "qty-$inputQuantity", false);
    $this->db->update('products');

    // 操作成功提示(可选)
    $this->session->set_flashdata('success', '库存扣减完成');
}

前端提示显示

在POS页面的视图文件中,添加以下代码展示提示信息:

<?php if($this->session->flashdata('error')): ?>
    <div class="alert alert-danger"><?= $this->session->flashdata('error') ?></div>
<?php endif; ?>

<?php if($this->session->flashdata('success')): ?>
    <div class="alert alert-success"><?= $this->session->flashdata('success') ?></div>
<?php endif; ?>

内容的提问来源于stack exchange,提问作者wloleo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 08:40:41