diff --git a/app/admin/controller/purchase_order/PurchaseOrderController.php b/app/admin/controller/purchase_order/PurchaseOrderController.php index 657786175..390727d2a 100644 --- a/app/admin/controller/purchase_order/PurchaseOrderController.php +++ b/app/admin/controller/purchase_order/PurchaseOrderController.php @@ -2,6 +2,7 @@ namespace app\admin\controller\purchase_order; use app\admin\controller\BaseAdminController; use app\admin\lists\purchase_order\PurchaseOrderLists; +use app\admin\lists\purchase_order_info\PurchaseOrderInfoLists; use app\admin\logic\purchase_order\PurchaseOrderLogic; class PurchaseOrderController extends BaseAdminController{ @@ -10,7 +11,10 @@ class PurchaseOrderController extends BaseAdminController{ { return $this->dataLists(new PurchaseOrderLists()); } - + public function info_lists() + { + return $this->dataLists(new PurchaseOrderInfoLists()); + } /** * 合并今日商户订单 */ @@ -25,4 +29,13 @@ class PurchaseOrderController extends BaseAdminController{ PurchaseOrderLogic::platformTodayOrder(); return $this->success('合并成功'); } + + /** + * 详情 + */ + public function detail(){ + $id=$this->request->get('id'); + $res=PurchaseOrderLogic::detail($id); + return $this->data($res); + } } \ No newline at end of file diff --git a/app/admin/lists/purchase_order/PurchaseOrderLists.php b/app/admin/lists/purchase_order/PurchaseOrderLists.php index 29fe0f1d9..933af29fa 100644 --- a/app/admin/lists/purchase_order/PurchaseOrderLists.php +++ b/app/admin/lists/purchase_order/PurchaseOrderLists.php @@ -6,6 +6,7 @@ namespace app\admin\lists\purchase_order; use app\admin\lists\BaseAdminDataLists; use app\common\lists\ListsSearchInterface; use app\common\model\purchase_order\PurchaseOrder; +use app\common\model\system_store\SystemStore; /** * 采购订单列表 @@ -25,7 +26,7 @@ class PurchaseOrderLists extends BaseAdminDataLists implements ListsSearchInterf public function setSearch(): array { return [ - '=' => ['store_id', 'order_id'], + '=' => ['store_id', 'order_id', 'is_mer','storage'], ]; } @@ -41,10 +42,45 @@ class PurchaseOrderLists extends BaseAdminDataLists implements ListsSearchInterf */ public function lists(): array { + if($this->request->get('o_id')){ + $arr=PurchaseOrder::where('id',$this->request->get('o_id'))->value('order_arr'); + if($arr){ + $this->searchWhere[]=['id','in',$arr]; + } + } return PurchaseOrder::where($this->searchWhere) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) - ->select(); + ->select()->each(function ($item) { + if ($item->store_id) { + $item->system_store = SystemStore::where('id',$item->store_id)->value('name'); + } else { + $item->system_store = '平台'; + } + if ($item->is_mer == 1) { + $item->mer_name = '商户'; + } else { + $item->mer_name = '平台'; + } + if ($item->is_opurchase == 1) { + $item->opurchase_name = '已采购'; + } else { + $item->opurchase_name = '未采购'; + } + switch ($item->storage) { + case 0: + $item->storage_name = '未入库'; + break; + case 1: + $item->storage_name = '部分入库'; + break; + case 2: + $item->storage_name = '已入库'; + break; + default: + $item->storage_name = '未入库'; + } + })->toArray(); } @@ -58,5 +94,4 @@ class PurchaseOrderLists extends BaseAdminDataLists implements ListsSearchInterf { return PurchaseOrder::where($this->searchWhere)->count(); } - -} \ No newline at end of file +} diff --git a/app/admin/lists/purchase_order_info/PurchaseOrderInfoLists.php b/app/admin/lists/purchase_order_info/PurchaseOrderInfoLists.php new file mode 100644 index 000000000..b4dacaefe --- /dev/null +++ b/app/admin/lists/purchase_order_info/PurchaseOrderInfoLists.php @@ -0,0 +1,85 @@ + ['store_id', 'oid', ], + ]; + } + + + /** + * @notes 获取采购订单列表 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + * @author admin + * @date 2024/05/31 17:09 + */ + public function lists(): array + { + return PurchaseOrderInfo::where($this->searchWhere) + ->limit($this->limitOffset, $this->limitLength) + ->order(['id' => 'desc']) + ->select()->each(function ($item) { + $find=StoreProduct::where('id',$item->product_id)->field('store_info,unit,store_name,image')->find(); + if($find){ + $item->store_name=$find->store_name; + $item->unit_name=StoreProductUnit::where('id',$find->unit)->value('name'); + $item->store_info=$find->store_info; + $item->image=$find->image; + } + switch ($item->storage) { + case 0: + $item->storage_name = '未入库'; + break; + case 1: + $item->storage_name = '部分入库'; + break; + case 2: + $item->storage_name = '已入库'; + break; + default: + $item->storage_name = '未入库'; + } + })->toArray(); + } + + + /** + * @notes 获取采购订单数量 + * @return int + * @author admin + * @date 2024/05/31 17:09 + */ + public function count(): int + { + return PurchaseOrderInfo::where($this->searchWhere)->count(); + } +} diff --git a/app/admin/logic/purchase_order/PurchaseOrderLogic.php b/app/admin/logic/purchase_order/PurchaseOrderLogic.php index dcd1aadea..cab700969 100644 --- a/app/admin/logic/purchase_order/PurchaseOrderLogic.php +++ b/app/admin/logic/purchase_order/PurchaseOrderLogic.php @@ -8,6 +8,7 @@ use app\common\logic\BaseLogic; use app\common\model\purchase_order_info\PurchaseOrderInfo; use app\common\model\store_order\StoreOrder; use app\common\model\store_order_cart_info\StoreOrderCartInfo; +use app\common\model\system_store\SystemStore; use think\facade\Db; @@ -81,27 +82,26 @@ class PurchaseOrderLogic extends BaseLogic */ public static function platformTodayOrder() { - // Db::startTrans(); - // try { + Db::startTrans(); + try { $purchaseOrderInfo = new PurchaseOrderInfo(); $purchase_order_info=[]; $order_arr = PurchaseOrder::whereDay('create_time')->where('is_mer',1)->column('id'); - // $price = PurchaseOrder::whereDay('create_time')->field('SUM(actual) as pay_price,SUM(total) as total_price')->find(); - // $data = [ - // 'store_id' => 0, - // 'order_arr' => json_encode($order_arr), - // 'order_id' => getNewOrderId('PT'), - // 'total' => $price['total_price'], - // 'actual' => $price['pay_price'], - // 'money' => $price['pay_price'], - // 'paid' => 1, - // 'is_mer' => 2, - // 'create_time' => time(), - // 'update_time' => time(), - // ]; - // $res = PurchaseOrder::create($data); - $info = StoreOrderCartInfo::where('oid', 'in', $order_arr)->field('store_id, product_id,price,SUM(total_price) as total_price, SUM(cart_num) as cart_num')->group('store_id, product_id')->select(); - d($info); + $price = PurchaseOrder::whereDay('create_time')->field('SUM(actual) as pay_price,SUM(total) as total_price')->find(); + $data = [ + 'store_id' => 0, + 'order_arr' => json_encode($order_arr), + 'order_id' => getNewOrderId('PT'), + 'total' => $price['total_price'], + 'actual' => $price['pay_price'], + 'money' => $price['pay_price'], + 'paid' => 1, + 'is_mer' => 2, + 'create_time' => time(), + 'update_time' => time(), + ]; + $res = PurchaseOrder::create($data); + $info = PurchaseOrderInfo::where('oid', 'in', $order_arr)->field('store_id, product_id,price,SUM(total_price) as total_price, SUM(cart_num) as cart_num')->group('store_id, product_id')->select(); foreach ($info as $item) { $arr['oid'] = $res['id']; $arr['store_id'] = $item['store_id']; @@ -114,14 +114,14 @@ class PurchaseOrderLogic extends BaseLogic } $purchaseOrderInfo->saveAll($purchase_order_info); - // Db::commit(); - // return true; - // } catch (\Exception $e) { - // Db::rollback(); - // d($e); - // self::setError($e->getMessage()); - // return false; - // } + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + d($e); + self::setError($e->getMessage()); + return false; + } } /** @@ -144,8 +144,29 @@ class PurchaseOrderLogic extends BaseLogic * @author admin * @date 2024/08/01 16:32 */ - public static function detail($params): array + public static function detail($id): array { - return PurchaseOrder::findOrEmpty($params['id'])->toArray(); + $data= PurchaseOrder::findOrEmpty($id)->toArray(); + if($data){ + if($data['store_id']){ + $data['system_store']=SystemStore::where('id',$data['store_id'])->value('name'); + }else{ + $data['system_store']='平台'; + } + switch ($data['storage']) { + case 0: + $data['storage_name'] = '未入库'; + break; + case 1: + $data['storage_name'] = '部分入库'; + break; + case 2: + $data['storage_name'] = '已入库'; + break; + default: + $data['storage_name'] = '未入库'; + } + } + return $data; } } diff --git a/app/common/model/purchase_order/PurchaseOrder.php b/app/common/model/purchase_order/PurchaseOrder.php index 10cada22f..f05cb3081 100644 --- a/app/common/model/purchase_order/PurchaseOrder.php +++ b/app/common/model/purchase_order/PurchaseOrder.php @@ -17,6 +17,6 @@ class PurchaseOrder extends BaseModel use SoftDelete; protected $name = 'purchase_order'; protected $deleteTime = 'delete_time'; - + protected $json = ['order_arr']; } \ No newline at end of file