6
0
Fork 0

调整售后审核问题

release
vine_liutk 2022-01-24 11:31:45 +08:00
parent b152fbab4a
commit 28b9d2b0ac
1 changed files with 14 additions and 9 deletions

View File

@ -44,16 +44,21 @@ class AfterSaleVerify extends Form implements LazyRenderable
if ($input['state'] == 3) {//审核通过
$amount = Arr::get($input, 'amount', 0);
$afterSale->load(['order', 'order.afterSales']);
//已完成的售后单
$finishedAfterSale = $afterSale->order->afterSales->filter(function ($items) {
if ($items->state == AfterSale::STATE_FINISH && in_array($items->type, [AfterSale::TYPE_REFUND_AND_RETURN, AfterSale::TYPE_REFUND, Aftersale::TYPE_CHANGE])) {
return true;
} else {
return false;
//处理同一个商品多次售后问题;//退款退货、退款、换货
if (in_array($afterSale->type, [AfterSale::TYPE_REFUND_AND_RETURN, AfterSale::TYPE_REFUND, Aftersale::TYPE_CHANGE])) {
$finishedAfterSale = $afterSale->order->afterSales->filter(function ($items) use ($afterSale) {
if ($afterSale->order_product_id == $items->order_product_id//同一个售后商品
&& $items->state == AfterSale::STATE_FINISH //售后状态是完成了
&& in_array($items->type, [AfterSale::TYPE_REFUND_AND_RETURN, AfterSale::TYPE_REFUND, Aftersale::TYPE_CHANGE])//售后类型为退款退货,退款,换货
) {
return true;
} else {
return false;
}
});
if ($amount > ($afterSale->orderProduct->total_amount - $finishedAfterSale->sum('amount'))) {
throw new BizException('退款金额不能大于商品实付金额');
}
});
if ($amount > ($afterSale->orderProduct->total_amount - $finishedAfterSale->sum('amount'))) {
throw new BizException('退款金额不能大于商品实付金额');
}
$afterSaleService->verify($afterSale, $input['remarks3'], (int) Arr::get($input, 'amount', 0));
} elseif ($input['state'] == 1) {//需要补充资料