erp/app/admin/controller/operation/OpurchaseclassController.php

212 lines
6.7 KiB
PHP

<?php
namespace app\admin\controller\operation;
use app\admin\controller\BaseAdminController;
use app\admin\lists\operation\OpurchaseclassLists;
use app\admin\lists\operation\OpurchaseclassofferLists;
use app\admin\lists\retail\CashierclassStreamLists;
use app\admin\logic\operation\OpurchaseclassLogic;
use app\admin\validate\operation\OpurchaseclassValidate;
use app\common\logic\PayNotifyLogic;
use app\common\model\goods\Goods;
use app\common\model\goods\GoodsLabel;
use app\common\model\opurchase\Opurchaseclass;
use app\common\model\opurchase\OpurchaseGoodsOffer;
use app\common\model\opurchase\Opurchaseinfo;
use app\common\model\retail\Cashierclass;
use app\common\model\supplier\Supplier;
use Webman\RedisQueue\Redis;
/**
* 采购订单控制器
* Class OpurchaseclassController
* @package app\admin\controller\operation
*/
class OpurchaseclassController extends BaseAdminController
{
/**
* @notes 获取采购订单列表
* @return \think\response\Json
* @author likeadmin
* @date 2024/04/27 11:26
*/
public function lists()
{
return $this->dataLists(new OpurchaseclassLists());
}
/**
* @notes 添加采购订单
* @return \think\response\Json
* @author likeadmin
* @date 2024/04/27 11:26
*/
public function add()
{
$params = $this->request->post();
$order = OpurchaseclassLogic::createOpurchaseOrder(request()->userInfo, $params);
if ($order == false) {
return $this->fail(OpurchaseclassLogic::getError());
} else {
PayNotifyLogic::handle('operated', $order['number']);
//推送队列
Redis::send('push-supplier-products', ['order_id' => $order['id']]);
return $this->success('支付成功');
}
}
/**
* @notes 获取采购订单详情
* @return \think\response\Json
* @author likeadmin
* @date 2024/04/27 11:26
*/
public function detail()
{
$params = (new OpurchaseclassValidate())->goCheck('detail');
$result = OpurchaseclassLogic::detail($params);
return $this->data($result);
}
/**
* @notes 采购子订单详情
*/
public function sub_orders()
{
$id = $this->request->get('id');
$is_mer = $this->request->get('is_mer', 1);
$page_no = $this->request->get('page_no', 1);
$result = OpurchaseclassLogic::sub_detail($id, $is_mer, $page_no);
return $this->data($result);
}
/**
* @notes 采购订单列表
*/
public function opurchaseinfo_list()
{
$id = $this->request->get('id');
$page_no = $this->request->get('page_no', 1);
$page_size = $this->request->get('page_size', 15);
$is_push = $this->request->get('is_push', 'all');
if ($is_push != 'all') {
$where['is_push'] = $is_push;
}
$where['pid'] = $id;
$res = Opurchaseinfo::where($where)->page($page_no, $page_size)->select()
->each(function ($item) {
$find = Goods::where('id', $item['goods'])->with('unitName')->find();
if ($find) {
$item['goods_name'] = $find['name'];
$item['unit_name'] = $find['unit_name'];
}
$where = [
'goods_id' => $item['goods'],
'order_id' => $item['pid'],
'is_adopt' => 1
];
$item['nums_count'] = OpurchaseGoodsOffer::where($where)->sum('nums');
});
$data['count'] = Opurchaseinfo::where($where)->count();
$data['lists'] = $res?->toArray();
$data['page_no'] = $page_no;
$data['page_siz'] = $page_size;
return $this->success('ok', $data);
}
/**
* @notes 采购订单报价列表
*/
public function goods_offer_list()
{
return $this->dataLists(new OpurchaseclassofferLists());
}
/**
* @notes 采购订单入库列表
*/
public function storage_list()
{
$this->request->__set('storage_list',1);
return $this->dataLists(new OpurchaseclassofferLists());
}
/**
* @notes 采购订单出库列表
*/
public function stream_list()
{
$id=$this->request->get('id');
$order_arr= Opurchaseclass::where('id',$id)->where('is_mer',2)->value('order_arr');
$arr=Opurchaseclass::where('id','in',explode(',',$order_arr))->where('is_mer',1)->value('order_arr');
if($arr){
$this->request->__set('class_value',['id'=>explode(',',$arr)]);
$this->request->__set('class_key',['in'=>'id']);
}
return $this->dataLists(new CashierclassStreamLists());
}
/**
* @notes 采购订单设置已出库
*/
public function stream_update()
{
$id=$this->request->post('id');
$order_code=$this->request->post('order_code');
if($id){
Cashierclass::where('id',$id)->update(['is_stream'=>1,'stream_admin_id'=>$this->request->adminId,'stream_time'=>time()]);
return $this->success('更新成功');
}
if($order_code){
Cashierclass::where('number',$order_code)->update(['is_stream'=>1,'stream_admin_id'=>$this->request->adminId,'stream_time'=>time()]);
return $this->success('更新成功');
}
return $this->fail('没有任何更新');
}
/**
* @notes 推送给供应商报价
* @return \think\response\Json
* @author likeadmin
* @date 2024/04/27 11:26
*/
public function createSupplierGoods()
{
$id = $this->request->post('id');
Redis::send('push-supplier-products', ['order_id' => $id]);
// $select=Opurchaseinfo::where('pid',$id)->where('is_push',0)->select();
// foreach ($select as $key => $arr) {
// $result = OpurchaseclassLogic::createSupplierGoods($arr);
// }
// if (true === $result) {
return $this->success('已推送,请刷新后查看', [], 1, 1);
// }
// return $this->fail(OpurchaseclassLogic::getError());
}
/**
* @notes 设置采纳商品
* @return \think\response\Json
* @author likeadmin
* @date 2024/04/27 11:26
*/
public function goods_offer_update()
{
$id = $this->request->post('id');
$type = $this->request->post('type');
$notes = $this->request->post('notes');
$nums = $this->request->post('nums');
$result = OpurchaseclassLogic::goodsOfferUpdate($id, $type, $notes, $nums);
if ($result == true) {
return $this->success('已设置', [], 1, 1);
}
return $this->fail(OpurchaseclassLogic::getError());
}
}