erp/app/admin/logic/operation/OpurchaseclassLogic.php
2024-05-10 17:55:36 +08:00

177 lines
4.9 KiB
PHP

<?php
namespace app\admin\logic\operation;
use app\common\model\operation\Opurchaseclass;
use app\common\logic\BaseLogic;
use app\common\model\goods\Goods;
use app\common\model\opurchase\OpurchaseGoodsOffer;
use app\common\model\opurchase\Opurchaseinfo;
use app\common\model\supplier\Supplier;
use think\facade\Db;
/**
* 采购订单逻辑
* Class OpurchaseclassLogic
* @package app\admin\logic\operation
*/
class OpurchaseclassLogic extends BaseLogic
{
/**
* @notes 添加采购订单
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/04/27 11:26
*/
public static function add(array $params): bool
{
Db::startTrans();
try {
Opurchaseclass::create([]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑采购订单
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/04/27 11:26
*/
public static function edit(array $params): bool
{
Db::startTrans();
try {
Opurchaseclass::where('id', $params['id'])->update([]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除采购订单
* @param array $params
* @return bool
* @author likeadmin
* @date 2024/04/27 11:26
*/
public static function delete(array $params): bool
{
return Opurchaseclass::destroy($params['id']);
}
/**
* @notes 获取采购订单详情
* @param $params
* @return array
* @author likeadmin
* @date 2024/04/27 11:26
*/
public static function detail($params): array
{
$data = Opurchaseclass::findOrEmpty($params['id'])->toArray();
if ($data) {
$data['goods_info'] = Opurchaseinfo::where('pid', $params['id'])->limit(25)->select()->each(function ($item) {
$find=Goods::where('id', $item['goods'])->with('unitName')->find();
$item['goods_name']=$find['name'];
$item['unit_name']=$find['unit_name'];
// $sys_labels = Goods::where('id', $item['goods'])->value('sys_labels');
// $supplier_arr=[];
// if($sys_labels){
// $arr = explode(',', $sys_labels);
// foreach ($arr as $k => $v) {
// if($v>0){
// $supplier=Supplier::whereLike('sys_labels', "%," . $v . ",%")->field('id,mer_name')->find();
// if($supplier){
// $supplier_arr[]=$supplier;
// }
// }
// }
// }
// $item['supplier'] = array_unique($supplier_arr);
});
}
return $data;
}
/**
* @notes 推送供应商商品
* @param $params
* @return bool
* @date 2024/04/27 11:26
*/
public static function createSupplierGoods($goods){
try{
$sys_labels = Goods::where('id', $goods['goods'])->value('sys_labels');
$supplier_arr=[];
$goods_offer=[];
if ($sys_labels) {
$sys_labels_arr = explode(',', $sys_labels);
foreach ($sys_labels_arr as $k => $v) {
if ($v > 0) {
$supplier = Supplier::whereLike('sys_labels', "%," . $v . ",%")->field('id,mer_name')->find();
if ($supplier) {
$supplier_arr[] = $supplier;
}
}
}
}
foreach($supplier_arr as $k=>$v){
$goods_offer[]=[
'supplier_id'=>$v['supplier'],
'goods_id'=>$v['goods'],
'price'=>0,
'need_num' => $v['nums']
];
}
if($goods_offer){
$res=OpurchaseGoodsOffer::insertAll($goods_offer);
if($res){
return true;
}
}
}catch (\Exception $e){
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 设置采纳商品
* @param $params
* @return bool
* @date 2024/04/27 11:26
*/
public static function goodsOfferUpdate($params){
try{
OpurchaseGoodsOffer::where('id',$params)->update(['is_adopt'=>1]);
return true;
}catch (\Exception $e){
self::setError($e->getMessage());
return false;
}
}
}