|
|
|
@ -2,10 +2,14 @@ |
|
|
|
|
|
|
|
namespace App\AdminAgent\Extensions\Grid; |
|
|
|
use App\Common\OrderStatus; |
|
|
|
use App\Common\StatementType; |
|
|
|
use App\Models\Order; |
|
|
|
use App\Models\Agent; |
|
|
|
use App\Models\OrderProductItem; |
|
|
|
use App\Models\Supplier; |
|
|
|
use App\Service\WithdrawalService; |
|
|
|
use App\Traits\DemandTraits; |
|
|
|
use App\Traits\StatementTraits; |
|
|
|
use Dcat\Admin\Admin; |
|
|
|
use Dcat\Admin\Grid\RowAction; |
|
|
|
use Illuminate\Support\Facades\DB; |
|
|
|
@ -44,8 +48,18 @@ class ChangeOrderStatus extends RowAction |
|
|
|
$order->verify_code = uniqid(); //生成核销码
|
|
|
|
$order->save(); |
|
|
|
//扣供应商余额
|
|
|
|
$agent->balance = bcsub($agent->balance,$order->price,6); |
|
|
|
$service = new WithdrawalService(); |
|
|
|
$agentPrice = bcsub($agent->balance,$order->price,6); |
|
|
|
$agent->balance = $agentPrice; |
|
|
|
$agent->save(); |
|
|
|
$statementCreate[] = $service->createByOrder( |
|
|
|
bcmul($agentPrice, -1, 6), |
|
|
|
StatementType::ORDER, |
|
|
|
$order->agent_id, |
|
|
|
DemandTraits::$col[0], |
|
|
|
$order->id, |
|
|
|
StatementTraits::$type[0] |
|
|
|
); |
|
|
|
|
|
|
|
$orderItem = OrderProductItem::query()->where('order_id',$order->id)->get(); |
|
|
|
|
|
|
|
@ -53,7 +67,20 @@ class ChangeOrderStatus extends RowAction |
|
|
|
$supplier = Supplier::query()->where('id',$item->supplier_id)->lockForUpdate()->first(); |
|
|
|
$supplier->balance = bcadd($supplier->balance,$item->price,6); |
|
|
|
$supplier->save(); |
|
|
|
$statementCreate[] = $service->createByOrder( |
|
|
|
$item->price, |
|
|
|
StatementType::ORDER, |
|
|
|
$item->supplier_id, |
|
|
|
DemandTraits::$col[1], |
|
|
|
$order->id, |
|
|
|
StatementTraits::$type[0] |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
if (!empty($statementCreate)) { |
|
|
|
$order->statement()->createMany($statementCreate); |
|
|
|
} |
|
|
|
|
|
|
|
DB::commit(); |
|
|
|
return $this->response()->success("操作成功,已设置为“线下已付款”")->refresh(); |
|
|
|
} catch (\Exception $e) { |
|
|
|
|