$params['warehouse_id'], 'supplier_id' => $params['supplier_id'], 'order_type' => $params['order_type'] ?? 7, 'admin_id' => $params['admin_id'], 'batch' => 0, 'code' => getNewOrderId('RK'), 'mark' => $params['remark'], 'completed_amount' => $params['completed_amount'] ?? 0, 'outstanding_amount' => $params['outstanding_amount'] ?? 0, ]; $total_price = 0; foreach ($params['product_arr'] as $k => $v) { $total_price += $v['total_price']; } $warehouseOrderAttr['total_price'] = $total_price; $res = WarehouseOrder::create($warehouseOrderAttr); foreach ($params['product_arr'] as $k => $v) { $data['admin_id'] = $params['admin_id']; $data['store_id'] = 0; $data['oid'] = $res['id']; $data['supplier_id'] = $params['supplier_id']; $data['warehouse_id'] = $params['warehouse_id']; $data['code'] = $params['code']; $data['product_id'] = $v['product_id']; $data['nums'] = $v['nums']; $data['purchase'] = $v['purchase']; $data['total_price'] = $v['total_price']; $data['order_type'] = $warehouseOrderAttr['order_type']; if (!empty($v['manufacture'])) { $data['manufacture'] = $v['manufacture']; } if (!empty($v['expiration_date'])) { $data['expiration_date'] = $v['expiration_date']; } WarehouseProductLogic::add($data, 1, $params['admin_id']); } Db::commit(); return true; } catch (\Throwable $e) { Db::rollback(); throw new BusinessException($e->getMessage()); } } /** * @notes 编辑 * @param array $params * @return bool * @author admin * @date 2025/03/10 11:08 */ public static function edit(array $params): bool { Db::startTrans(); try { WarehouseOrder::where('id', $params['id'])->update([ 'warehouse_id' => $params['warehouse_id'], 'supplier_id' => $params['supplier_id'], 'store_id' => $params['store_id'], 'oid' => $params['oid'], 'order_type' => $params['order_type'], 'code' => $params['code'], 'admin_id' => $params['admin_id'], 'batch' => $params['batch'], 'mark' => $params['mark'], 'nums' => $params['nums'], 'purchase' => $params['purchase'], 'total_price' => $params['total_price'], 'completed_amount' => $params['completed_amount'], 'outstanding_amount' => $params['outstanding_amount'], 'status' => $params['status'], ]); Db::commit(); return true; } catch (\Throwable $e) { Db::rollback(); throw new Exception($e->getMessage()); } } /** * @notes 删除 * @param array $params * @return bool * @author admin * @date 2025/03/10 11:08 */ public static function delete(array $params): bool { return WarehouseOrder::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author admin * @date 2025/03/10 11:08 */ public static function detail($params): array { return WarehouseOrder::findOrEmpty($params['id'])->toArray(); } }