multi-store/app/admin/logic/warehouse_order/WarehouseOrderLogic.php

137 lines
3.9 KiB
PHP

<?php
namespace app\admin\logic\warehouse_order;
use app\admin\logic\warehouse_product\WarehouseProductLogic;
use app\common\model\warehouse_order\WarehouseOrder;
use app\common\logic\BaseLogic;
use think\facade\Db;
/**
* 仓储商品单逻辑
* Class WarehouseOrderLogic
* @package app\admin\logic\warehouse_order
*/
class WarehouseOrderLogic extends BaseLogic
{
/**
* @notes 添加仓储商品单
* @param array $params
* @return bool
* @author admin
* @date 2024/08/20 10:50
*/
public static function add(array $params): bool
{
Db::startTrans();
try {
$arr=[
'warehouse_id'=>$params['warehouse_id'],
'supplier_id'=>$params['supplier_id'],
'code'=>$params['code'],
'admin_id'=>$params['admin_id'],
'financial_pm'=>1,
'batch'=>0,
'mark'=>$params['remark'],
'total_price'=>$params['remark'],
];
$total_price=0;
foreach($params['product_arr'] as $k=>$v){
$total_price+=$v['total_price'];
}
$arr['total_price']=$total_price;
$res=WarehouseOrder::create($arr);
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['financial_pm']=1;
if(!empty($v['manufacture'])){
$data['manufacture']=$v['manufacture'];
}
if(!empty($v['expiration_date'])){
$data['expiration_date']=$v['expiration_date'];
}
WarehouseProductLogic::add($data);
}
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑仓储商品单
* @param array $params
* @return bool
* @author admin
* @date 2024/08/20 10:50
*/
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'],
'code' => $params['code'],
'financial_pm' => $params['financial_pm'],
'admin_id' => $params['admin_id'],
'batch' => $params['batch'],
'mark' => $params['mark'],
'purchase' => $params['purchase'],
'total_price' => $params['total_price'],
'status' => $params['status']
]);
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 删除仓储商品单
* @param array $params
* @return bool
* @author admin
* @date 2024/08/20 10:50
*/
public static function delete(array $params): bool
{
return WarehouseOrder::destroy($params['id']);
}
/**
* @notes 获取仓储商品单详情
* @param $params
* @return array
* @author admin
* @date 2024/08/20 10:50
*/
public static function detail($params): array
{
return WarehouseOrder::findOrEmpty($params['id'])->toArray();
}
}