12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace App\Service;
- use App\Model\InOutRecord;
- use App\Model\Inventory;
- use Illuminate\Support\Facades\DB;
- class InventoryService extends Service
- {
- public function getList($data){
- $model = Inventory::where('')
- ->select('*');
- $list = $this->limit($model,'',$data);
- return [200, $list];
- }
- //获取卷膜真实库存
- public static function getGoodsRealInventy($goods_id, $storehouse_id){
- if(empty($roll_film_id) || empty($storehouse_id)) return [];
- $array = Inventory::where('storehouse_id',$storehouse_id)
- ->whereIn('goods_id',$goods_id)
- ->select('goods_id','storehouse_id','number','lock_number')
- ->get()->toArray();
- if(empty($array)) return [];
- $return = [];
- foreach ($array as $v){
- $return[$v['goods_id'].$v['storehouse_id']] = $v['number'] - $v['lock_number'];
- }
- return $return;
- }
- /**
- * 业务单据审核后 更新库存
- * order_number 订单编号
- * opt_case 有些订单一次创建会同时有出入库单据
- */
- public function changeInventory($data){
- $model = InOutRecord::where('del_time',0)
- ->where('from_order_number',$data['order_number'])
- ->select('storehouse_id',DB::raw("sum(number) as number"),'goods_id')
- ->groupby('goods_id','storehouse_id');
- $result = $model->get()->toArray();
- if (empty($result)) return false;
- foreach ($result as $key => $value){
- $m = Inventory::where('goods_id',$value['goods_id'])
- ->where('storehouse_id',$value['storehouse_id'])
- ->select('goods_id','number','storehouse_id')
- ->first();
- if(empty($m)){
- Inventory::insert($result[$key]);
- }else{
- $array['number'] = $value['number'] + $m->number;
- $array['lock_number'] = $value['lock_number'] - $m->number;
- Inventory::where('goods_id',$m->roll_film_id)
- ->where('storehouse_id',$m->storehouse_id)
- ->lockForUpdate()
- ->update($array);
- }
- }
- return true;
- }
- }
|