generated from liutk/owl-admin-base
48 lines
1.4 KiB
PHP
48 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Services\Finance;
|
|
|
|
use App\Admin\Filters\LedgerFilter;
|
|
use App\Admin\Services\BaseService;
|
|
use App\Enums\LedgerStatus;
|
|
use App\Models\Ledger;
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
class LedgerService extends BaseService
|
|
{
|
|
protected string $modelName = Ledger::class;
|
|
|
|
protected string $modelFilterName = LedgerFilter::class;
|
|
|
|
protected array $withRelationships = ['store'];
|
|
|
|
public function update($primaryKey, $data): bool
|
|
{
|
|
Validator::validate($data, [
|
|
'actual_commission' => ['bail', 'required', 'numeric'],
|
|
'actual_income' => ['bail', 'required', 'numeric'],
|
|
], [], [
|
|
'actual_commission' => __('finance.ledger.actual_commission'),
|
|
'actual_income' => __('finance.ledger.actual_income'),
|
|
]);
|
|
|
|
$model = $this->query()->whereKey($primaryKey)->firstOrFail();
|
|
|
|
switch ($model->ledger_status) {
|
|
case LedgerStatus::Processing:
|
|
abort(400, '不能编辑待审核的上报数据');
|
|
break;
|
|
|
|
case LedgerStatus::Passed:
|
|
abort(400, '不能编辑已完成的上报数据');
|
|
break;
|
|
}
|
|
|
|
return $model->update([
|
|
'actual_commission' => $data['actual_commission'],
|
|
'actual_income' => $data['actual_income'],
|
|
'ledger_status' => LedgerStatus::Processing,
|
|
]);
|
|
}
|
|
}
|