commit
37c9cbd064
@ -2,6 +2,8 @@
|
||||
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{
|
||||
|
||||
@ -9,5 +11,31 @@ class PurchaseOrderController extends BaseAdminController{
|
||||
{
|
||||
return $this->dataLists(new PurchaseOrderLists());
|
||||
}
|
||||
public function info_lists()
|
||||
{
|
||||
return $this->dataLists(new PurchaseOrderInfoLists());
|
||||
}
|
||||
/**
|
||||
* 合并今日商户订单
|
||||
*/
|
||||
public function add(){
|
||||
PurchaseOrderLogic::StoreTodayOrder();
|
||||
return $this->success('合并成功');
|
||||
}
|
||||
/**
|
||||
* 合并今日平台订单
|
||||
*/
|
||||
public function platform(){
|
||||
PurchaseOrderLogic::platformTodayOrder();
|
||||
return $this->success('合并成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
*/
|
||||
public function detail(){
|
||||
$id=$this->request->get('id');
|
||||
$res=PurchaseOrderLogic::detail($id);
|
||||
return $this->data($res);
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\lists\purchase_order_info;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\purchase_order_info\PurchaseOrderInfo;
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use app\common\model\store_product_unit\StoreProductUnit;
|
||||
use app\common\model\system_store\SystemStore;
|
||||
|
||||
/**
|
||||
* 采购订单详情表
|
||||
* Class PurchaseOrderInfoLists
|
||||
* @package app\admin\lists\purchase_order
|
||||
*/
|
||||
class PurchaseOrderInfoLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['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();
|
||||
}
|
||||
}
|
@ -5,6 +5,10 @@ namespace app\admin\logic\purchase_order;
|
||||
|
||||
use app\common\model\purchase_order\PurchaseOrder;
|
||||
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;
|
||||
|
||||
|
||||
@ -18,31 +22,48 @@ class PurchaseOrderLogic extends BaseLogic
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加采购订单
|
||||
* @notes 合并今日商户订单
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/08/01 16:32
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
public static function StoreTodayOrder(): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
PurchaseOrder::create([
|
||||
'store_id' => $params['store_id'],
|
||||
'order_arr' => $params['order_arr'],
|
||||
'order_id' => $params['order_id'],
|
||||
'total' => $params['total'],
|
||||
'actual' => $params['actual'],
|
||||
'money' => $params['money'],
|
||||
'paid' => $params['paid'],
|
||||
'file' => $params['file'],
|
||||
'data' => $params['data'],
|
||||
'is_opurchase' => $params['is_opurchase'],
|
||||
'is_mer' => $params['is_mer'],
|
||||
'storage' => $params['storage']
|
||||
]);
|
||||
|
||||
$store_arr = StoreOrder::where(['paid' => 1, 'refund_status' => 0])->whereDay('create_time')->group('store_id')->column('store_id');
|
||||
$purchaseOrderInfo = new PurchaseOrderInfo();
|
||||
foreach ($store_arr as $store_id) {
|
||||
$purchase_order_info = [];
|
||||
$order_arr = StoreOrder::where(['paid' => 1, 'refund_status' => 0, 'store_id' => $store_id])->whereDay('create_time')->column('id');
|
||||
$price = StoreOrder::where(['paid' => 1, 'refund_status' => 0, 'store_id' => $store_id])->whereDay('create_time')->field('SUM(pay_price) as pay_price,SUM(total_price) as total_price')->find();
|
||||
$data = [
|
||||
'store_id' => $store_id,
|
||||
'order_arr' => json_encode($order_arr),
|
||||
'order_id' => getNewOrderId('CG'),
|
||||
'total' => $price['total_price'],
|
||||
'actual' => $price['pay_price'],
|
||||
'money' => $price['pay_price'],
|
||||
'paid' => 1,
|
||||
'is_mer' => 1,
|
||||
'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();
|
||||
foreach ($info as $item) {
|
||||
$arr['oid'] = $res['id'];
|
||||
$arr['store_id'] = $item['store_id'];
|
||||
$arr['product_id'] = $item['product_id'];
|
||||
$arr['price'] = $item['price'];
|
||||
$arr['total_price'] = $item['total_price'];
|
||||
$arr['cart_num'] = $item['cart_num'];
|
||||
$arr['status'] = 1;
|
||||
$purchase_order_info[] = $arr;
|
||||
}
|
||||
$purchaseOrderInfo->saveAll($purchase_order_info);
|
||||
}
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
@ -52,43 +73,57 @@ class PurchaseOrderLogic extends BaseLogic
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑采购订单
|
||||
* @notes 合并今日平台订单
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/08/01 16:32
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
public static function platformTodayOrder()
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
PurchaseOrder::where('id', $params['id'])->update([
|
||||
'store_id' => $params['store_id'],
|
||||
'order_arr' => $params['order_arr'],
|
||||
'order_id' => $params['order_id'],
|
||||
'total' => $params['total'],
|
||||
'actual' => $params['actual'],
|
||||
'money' => $params['money'],
|
||||
'paid' => $params['paid'],
|
||||
'file' => $params['file'],
|
||||
'data' => $params['data'],
|
||||
'is_opurchase' => $params['is_opurchase'],
|
||||
'is_mer' => $params['is_mer'],
|
||||
'storage' => $params['storage']
|
||||
]);
|
||||
$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 = 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'];
|
||||
$arr['product_id'] = $item['product_id'];
|
||||
$arr['price'] = $item['price'];
|
||||
$arr['total_price'] = $item['total_price'];
|
||||
$arr['cart_num'] = $item['cart_num'];
|
||||
$arr['status'] = 1;
|
||||
$purchase_order_info[] = $arr;
|
||||
}
|
||||
$purchaseOrderInfo->saveAll($purchase_order_info);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
d($e);
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除采购订单
|
||||
* @param array $params
|
||||
@ -109,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,6 @@ class PurchaseOrder extends BaseModel
|
||||
use SoftDelete;
|
||||
protected $name = 'purchase_order';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
protected $json = ['order_arr'];
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user