diff --git a/app/Admin/Forms/AfterSaleVerify.php b/app/Admin/Forms/AfterSaleVerify.php index 046d8c46..9e6c1afe 100644 --- a/app/Admin/Forms/AfterSaleVerify.php +++ b/app/Admin/Forms/AfterSaleVerify.php @@ -64,7 +64,15 @@ class AfterSaleVerify extends Form implements LazyRenderable if ($num > $afterSale->orderProduct->quantity) { throw new BizException('调整数量不能大于下单数量'); } - $afterSaleService->verify($afterSale, $input['remarks3'], (int) Arr::get($input, 'amount', 0), $num); + //调整换货,补货时amount问题 + $amount = (int) Arr::get($input, 'amount', 0) ?: $afterSale->amount; + if (in_array($afterSale->type, [Aftersale::TYPE_CHANGE, Aftersale::TYPE_FILL])) { + //如果调整数量, 则同时调整价格 + if ($num != $afterSale->num) { + $amount = bcmul(bcdiv($afterSale->amount, $afterSale->num), $num); + } + } + $afterSaleService->verify($afterSale, $input['remarks3'], $amount, $num); } elseif ($input['state'] == 1) {//需要补充资料 $afterSaleService->backApply($afterSale, $input['remarks1']); } diff --git a/app/Services/AfterSaleService.php b/app/Services/AfterSaleService.php index c405cf54..0af0eaec 100644 --- a/app/Services/AfterSaleService.php +++ b/app/Services/AfterSaleService.php @@ -183,6 +183,7 @@ class AfterSaleService case AfterSale::TYPE_CHANGE: $afterSale->update([ 'num' => $num, + 'amount' => $amount, 'state' => $afterSale::STATE_AGREE, 'remarks' => $remarks, ]); @@ -195,6 +196,7 @@ class AfterSaleService case AfterSale::TYPE_FILL: $afterSale->update([ 'num' => $num, + 'amount' => $amount, 'state' => $afterSale::STATE_AGREE, 'remarks' => $remarks, ]);