Merge pull request 'feat(warehouse_order): 添加订单管理功能' (#147) from dev into main
Reviewed-on: #147
This commit is contained in:
commit
2d4ef79ef3
@ -149,7 +149,8 @@ class WarehouseOrderController extends BaseAdminController
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$params = (new WarehouseOrderValidate())->post()->goCheck('edit');
|
||||
$params = $this->request->post();
|
||||
$params['admin_id']=$this->adminId;
|
||||
$result = WarehouseOrderLogic::edit($params);
|
||||
if (true === $result) {
|
||||
return $this->success('编辑成功', [], 1, 1);
|
||||
@ -168,6 +169,9 @@ class WarehouseOrderController extends BaseAdminController
|
||||
{
|
||||
$params = (new WarehouseOrderValidate())->post()->goCheck('delete');
|
||||
WarehouseOrderLogic::delete($params);
|
||||
if(WarehouseOrderLogic::hasError()){
|
||||
return $this->fail(WarehouseOrderLogic::getError());
|
||||
}
|
||||
return $this->success('删除成功', [], 1, 1);
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ class WarehouseOrderLists extends BaseAdminDataLists implements ListsSearchInter
|
||||
public function lists(): array
|
||||
{
|
||||
return WarehouseOrder::where($this->searchWhere)
|
||||
->field(['id', 'warehouse_id', 'supplier_id', 'store_id', 'code', 'financial_pm', 'admin_id', 'batch', 'mark', 'purchase', 'total_price', 'status', 'create_time'])
|
||||
->field(['id', 'warehouse_id', 'supplier_id', 'store_id', 'code', 'financial_pm', 'admin_id', 'batch', 'mark', 'purchase', 'total_price', 'status', 'create_time','completed_amount','outstanding_amount'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()->each(function ($item){
|
||||
|
@ -5,9 +5,9 @@ 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 app\common\model\warehouse_product\WarehouseProduct;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
/**
|
||||
* 仓储商品单逻辑
|
||||
* Class WarehouseOrderLogic
|
||||
@ -28,40 +28,42 @@ class WarehouseOrderLogic extends BaseLogic
|
||||
{
|
||||
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'],
|
||||
$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'],
|
||||
'completed_amount' => $params['completed_amount']??0,
|
||||
'outstanding_amount' => $params['outstanding_amount']??0,
|
||||
];
|
||||
|
||||
$total_price=0;
|
||||
foreach($params['product_arr'] as $k=>$v){
|
||||
$total_price+=$v['total_price'];
|
||||
$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'];
|
||||
$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'];
|
||||
if (!empty($v['expiration_date'])) {
|
||||
$data['expiration_date'] = $v['expiration_date'];
|
||||
}
|
||||
WarehouseProductLogic::add($data);
|
||||
}
|
||||
@ -84,25 +86,47 @@ class WarehouseOrderLogic extends BaseLogic
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
{
|
||||
$find = WarehouseOrder::where('id', $params['id'])->find();
|
||||
if (!$find) {
|
||||
self::setError('订单不存在');
|
||||
return false;
|
||||
}
|
||||
Db::startTrans();
|
||||
try {
|
||||
foreach ($params['product_arr'] as $k => $v) {
|
||||
$data['admin_id'] = $params['admin_id'];
|
||||
$data['store_id'] = 0;
|
||||
$data['oid'] = $find['id'];
|
||||
$data['supplier_id'] = $find['supplier_id'];
|
||||
$data['warehouse_id'] = $find['warehouse_id'];
|
||||
$data['code'] = $find['code'];
|
||||
$data['product_id'] = $v['id'];
|
||||
$data['nums'] = $v['nums'];
|
||||
$data['purchase'] = $v['purchase'];
|
||||
$data['total_price'] = $v['total_price'];
|
||||
$data['financial_pm'] = $find['financial_pm'];
|
||||
if (!empty($v['manufacture'])) {
|
||||
$data['manufacture'] = $v['manufacture'];
|
||||
}
|
||||
if (!empty($v['expiration_date'])) {
|
||||
$data['expiration_date'] = $v['expiration_date'];
|
||||
}
|
||||
if($find['financial_pm']==0){
|
||||
$data['purchase'] = $v['prices'];
|
||||
$data['total_price'] = bcmul($v['prices'], $v['nums'], 2);
|
||||
}
|
||||
WarehouseProductLogic::add($data);
|
||||
}
|
||||
$find = WarehouseProduct::where('oid', $params['id'])->field('sum(nums) as nums,sum(total_price) as total_price')->find();
|
||||
if ($find) {
|
||||
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']
|
||||
'nums' => $find['nums'],
|
||||
'total_price' => $find['total_price']
|
||||
]);
|
||||
|
||||
}
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
} catch (\Throwable $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
@ -119,7 +143,20 @@ class WarehouseOrderLogic extends BaseLogic
|
||||
*/
|
||||
public static function delete(array $params): bool
|
||||
{
|
||||
return WarehouseOrder::destroy($params['id']);
|
||||
$count = WarehouseProduct::where('oid', $params['id'])->count();
|
||||
if ($count >= 1) {
|
||||
self::setError('该订单下还有商品没有删除,请先删除商品');
|
||||
return false;
|
||||
}
|
||||
$find = WarehouseProduct::where('oid', $params['id'])->field('sum(nums) as nums,sum(total_price) as total_price')->find();
|
||||
if ($find) {
|
||||
WarehouseOrder::where('id', $params['id'])->update([
|
||||
'nums' => $find['nums'],
|
||||
'total_price' => $find['total_price']
|
||||
]);
|
||||
}
|
||||
WarehouseOrder::destroy($params['id']);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user