goods_category_id)->findOrEmpty(); if($rule->isEmpty()){ $work->work_pay_status = 3; }else{ $work->work_pay_status = 2; } //师傅金额结算 if(!$rule->isEmpty()){ switch ($rule['type']){ case 0://按照总金额结算 $coupon_price = RechargeOrder::where('work_id',$work->id)->sum('coupon_price'); $worker_price = $work->work_total-$coupon_price; break; case 1://按照结算金额结算 $worker_price = $work->work_amount; break; default://按照服务总费用结算 //搜索所有优惠券 $coupon_price = RechargeOrder::where('work_id',$work->id)->sum('coupon_price'); $worker_price = $work->service_fee-$coupon_price; } $work->worker_price = $worker_price; $settlement_amount = bcmul($worker_price, $rule['rate']); // 缴纳质保金 $masterWorkerInfo = MasterWorker::where('id', $work->master_worker_id)->findOrEmpty()->toArray(); if( $masterWorkerInfo['retention_pay_status'] == 2 && ($masterWorkerInfo['earnest_money'] > $masterWorkerInfo['earnest_money_usable'])){ $retentionData['action'] = WorkerAccountLogEnum::INC; $retentionData['worker_id'] = $work->master_worker_id; $retentionData['work_id'] = $work->id; $amount = bcmul($settlement_amount, bcdiv($masterWorkerInfo['installment_ratio'], 100, 4),2); $retentionData['amount'] = $amount; $retentionData['remark'] = "分期缴纳质保金:该单实提成--{$settlement_amount},分期每单缴纳比例--{$masterWorkerInfo['installment_ratio']}%,缴纳金额--{$amount}"; $settlement_amount -= (float)$amount; $surplusMoney = RetentionMoneyLogic::add($retentionData); if($surplusMoney === false){ Log::info('分期缴纳质保金支付失败-'.RetentionMoneyLogic::getError(),$retentionData); $settlement_amount += (float)$amount; }else{ $settlement_amount += (float)$surplusMoney; } } WorkerAccountLogLogic::addAccountLog($work,$settlement_amount,WorkerAccountLogEnum::UM_INC_ADMIN,WorkerAccountLogEnum::INC); } $work->save(); //生成保修卡 EffectiveLogic::receiveEffective($work); } }