['bail', 'required', 'date_format:Y-m'], 'store_id' => ['bail', 'required', 'int'], 'commission' => ['bail', 'required', 'numeric'], 'daily_expenses' => ['bail', 'required', 'numeric'], 'employee_expenses' => ['bail', 'required', 'numeric'], 'other_expenses' => ['bail', 'required', 'numeric'], ], [], [ 'month' => __('finance.store_master_commission.month'), 'store_id' => __('finance.store_master_commission.store'), 'commission' => __('finance.store_master_commission.commission'), 'daily_expenses' => __('finance.store_master_commission.daily_expenses'), 'employee_expenses' => __('finance.store_master_commission.employee_expenses'), 'other_expenses' => __('finance.store_master_commission.other_expenses'), ]); $store = Store::findOrFail($validated['store_id']); $this->modelName::create( array_merge($validated, ['store_master_id' => $store->master_id]) ); return true; } public function update($primaryKey, $data): bool { $validated = Validator::validate($data, [ 'month' => ['bail', 'required', 'date_format:Y-m'], 'store_id' => ['bail', 'required', 'int'], 'commission' => ['bail', 'required', 'numeric'], 'daily_expenses' => ['bail', 'required', 'numeric'], 'employee_expenses' => ['bail', 'required', 'numeric'], 'other_expenses' => ['bail', 'required', 'numeric'], ], [], [ 'month' => __('finance.store_master_commission.month'), 'store_id' => __('finance.store_master_commission.store'), 'commission' => __('finance.store_master_commission.commission'), 'daily_expenses' => __('finance.store_master_commission.daily_expenses'), 'employee_expenses' => __('finance.store_master_commission.employee_expenses'), 'other_expenses' => __('finance.store_master_commission.other_expenses'), ]); $model = $this->query()->whereKey($primaryKey)->firstOrFail(); if ($model->approval_status !== StoreMasterCommissionApprovalStatus::Rejected) { abort(400, '只能编辑状态是“未通过”的店长提成'); } $attributes = array_merge( $validated, ['approval_status' => StoreMasterCommissionApprovalStatus::Pending] ); return $model->update($attributes); } }