基于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
相关产品推荐
相关产品推荐

