|
|
@@ -19,8 +19,10 @@ use app\common\model\dict\DictData;
|
|
|
use app\common\model\master_worker\MasterWorker;
|
|
|
use app\common\model\master_worker\MasterWorkerAccountLog;
|
|
|
use app\common\model\recharge\RechargeOrder;
|
|
|
+use app\common\model\spare_part\SparePart;
|
|
|
use app\common\model\works\ServiceWork;
|
|
|
use app\common\logic\BaseLogic;
|
|
|
+use app\common\model\works\ServiceWorkSpare;
|
|
|
use app\workerapi\logic\ServiceWorkerAllocateWorkerLogic;
|
|
|
use app\workerapi\logic\ServiceWorkLogLogic;
|
|
|
use think\db\Query;
|
|
|
@@ -176,6 +178,34 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
throw new Exception('请勿重复操作');
|
|
|
}
|
|
|
|
|
|
+ // 关联配件信息.计算配件总价 id company_price original_price offering_price number
|
|
|
+ $spare_total = 0;
|
|
|
+ $params['spare_parts'] && $params['spare_parts'] = json_decode($params['spare_parts'], true);
|
|
|
+ if($params['spare_parts']){
|
|
|
+ $spare_parts = $params['spare_parts'];
|
|
|
+ foreach ($spare_parts as $spare){
|
|
|
+ $spare_total += $spare['company_price']*$spare['number'];
|
|
|
+ }
|
|
|
+ $work->spare_total = $spare_total;
|
|
|
+
|
|
|
+ $service_work_spare = ServiceWorkSpare::where(['service_work_id'=>$work['id']])->findOrEmpty();
|
|
|
+ if($service_work_spare->isEmpty()){
|
|
|
+ //新增
|
|
|
+ $service_work_spare = ServiceWorkSpare::create([
|
|
|
+ 'service_work_id'=>$work['id'],
|
|
|
+ 'spare_parts'=>$params['spare_parts'],
|
|
|
+ 'remark'=>''
|
|
|
+ ]);
|
|
|
+ }else{
|
|
|
+ //修改
|
|
|
+ $service_work_spare->spare_parts = $params['spare_parts'];
|
|
|
+ $service_work_spare->save();
|
|
|
+ }
|
|
|
+ $work->service_work_spare_id = $service_work_spare->id;
|
|
|
+ }
|
|
|
+ // order_amount 原 = $params['amount'] 修改为 = 配件总价 + 服务尾款
|
|
|
+ $order_amount = $params['amount'] + $spare_total;
|
|
|
+
|
|
|
//定金存在尾款结算功能,全款直接提交
|
|
|
if($paid_order['payment_type']==1){
|
|
|
$un_order = RechargeOrder::where(['work_id'=>$work['id'],'pay_status'=>0])->findOrEmpty();
|
|
|
@@ -188,18 +218,20 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
'user_id'=>$paid_order['user_id'],
|
|
|
'payment_type'=>2,
|
|
|
'order_total'=>$params['amount'],
|
|
|
- 'order_amount'=>$params['amount'],
|
|
|
+ //'order_amount'=>$params['amount'],
|
|
|
+ 'order_amount'=>$order_amount,
|
|
|
'order_terminal'=>$paid_order['order_terminal']
|
|
|
];
|
|
|
RechargeOrder::create($order_data);
|
|
|
}else{
|
|
|
//修改尾款信息
|
|
|
$un_order->order_total = $params['amount'];
|
|
|
- $un_order->order_amount = $params['amount'];
|
|
|
+ //$un_order->order_amount = $params['amount'];
|
|
|
+ $un_order->order_amount = $order_amount;
|
|
|
$un_order->save();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ //$work->work_total = $order_amount + $paid_order['paid_amount'];
|
|
|
$work->work_images = $params['work_images'];
|
|
|
$work->user_confirm_status = 1;//待确认报价
|
|
|
$work->save();
|
|
|
@@ -395,6 +427,20 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
//工单总支付金额
|
|
|
$result['worker_account'] = $result['work_amount'];
|
|
|
|
|
|
+ // 配件信息
|
|
|
+ $result['spare_parts'] = [];
|
|
|
+ if($result['service_work_spare_id']){
|
|
|
+ $work_spare_parts = json_decode(ServiceWorkSpare::where('id',$result['service_work_spare_id'])->value('spare_parts'),true);
|
|
|
+ $spare_parts = SparePart::where('id','in',array_column($work_spare_parts,'id'))
|
|
|
+ ->field(['id', 'goods_category_id', 'spare_name', 'spare_image', 'spare_number', 'spare_unit','spare_status'])
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+ $spare_parts = array_column($spare_parts,null,'id');
|
|
|
+ foreach (array_column($work_spare_parts,null,'id') as $k=>&$v){
|
|
|
+ $spare_parts[$k] = array_merge($spare_parts[$k],$v);
|
|
|
+ }
|
|
|
+ $result['spare_parts'] = array_values($spare_parts)??[];
|
|
|
+ }
|
|
|
return $result;
|
|
|
}catch(\Exception $e){
|
|
|
Db::rollback();
|