GoodStock.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\admin\model;
  4. use think\Model;
  5. /**
  6. * @mixin \think\Model
  7. */
  8. class GoodStock extends Model
  9. {
  10. protected $createTime="addtime";
  11. protected $updateTime="updatetime";
  12. public function WsmInfo(){
  13. return $this->belongsTo(WarehouseInfo::class,"wsm_code","wsm_code")->bind(["wsm_name"=>"name","wsm_supplierNo"=>"supplierNo","wsm_supplierName"=>"supplierName"]);
  14. }
  15. //组合商品占用 库存 0 库存返回 1 库存占用
  16. public function stockSub($spuCode,$num,$flag =1){
  17. $row =$this->withJoin(['wsminfo'],'left')
  18. ->field('good_stock.id,usable_stock')
  19. ->where(['spuCode' => $spuCode, 'warehouse_info.wsm_type'=>[2,5]])
  20. ->findOrEmpty();
  21. if($row->isEmpty()) throw new \Exception('未找到对应子商品库存信息');
  22. if($flag==1){
  23. if($row->usable_stock < $num)throw new \Exception('对应子商品库存数不足');
  24. $row->usabel_stock = bcsub($row->usabel_stock,$num);
  25. }else{
  26. $row->usabel_stock = bcadd($row->usabel_stock,$num);
  27. }
  28. $sa=$row->save();
  29. if($sa==false) throw new \Exception('对应子商品库存更新失败');
  30. }
  31. }