baseCRUD() ->headerToolbar([ $this->createTypeButton('drawer', 'lg') ->visible(Admin::user()->can('admin.finance.store_master_commissions.create')), ...$this->baseHeaderToolBar(), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ amis()->GroupControl()->mode('horizontal')->body([ amis()->MonthControl() ->name('month') ->label(__('finance.store_master_commission.month')) ->valueFormat('YYYY-MM') ->columnRatio(3), amis()->SelectControl('store_id', __('finance.ledger.store')) ->source(admin_url('api/stores')) ->labelField('title') ->valueField('id') ->clearable() ->columnRatio(3), ]), ])) ->columns([ amis()->TableColumn('id', __('finance.store_master_commission.id')), amis()->TableColumn('month', __('finance.store_master_commission.month')), amis()->TableColumn('store.title', __('finance.store_master_commission.store')), amis()->TableColumn('master.name', __('finance.store_master_commission.store_master')), amis()->TableColumn('commission', __('finance.store_master_commission.commission')), amis()->TableColumn('daily_expenses', __('finance.store_master_commission.daily_expenses')), amis()->TableColumn('employee_expenses', __('finance.store_master_commission.employee_expenses')), amis()->TableColumn('other_expenses', __('finance.store_master_commission.other_expenses')), amis()->TableColumn('workflow.check_status', __('workflow_log.check_status'))->set('type', 'mapping')->map(CheckStatus::labelMap()), amis()->TableColumn('created_at', __('finance.store_master_commission.created_at')), $this->rowActions([ $this->applyAction() ->api( amis()->BaseApi() ->url(admin_url('api/workflow/apply')) ->method('post') ->data(['id' => '${workflow.id}']) ), $this->approveAction(), $this->cancelAction(), $this->rowEditTypeButton('drawer', 'lg') ->visible(Admin::user()->can('admin.finance.store_master_commissions.update')) ->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'), $this->rowShowButton() ->visible(Admin::user()->can('admin.finance.store_master_commissions.view')), $this->rowDeleteButton() ->visible(Admin::user()->can('admin.finance.store_master_commissions.delete')) ->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'), ]), ]); return $this->baseList($crud); } public function form(): Form { return $this->baseForm()->title('')->body([ amis()->MonthControl() ->name('month') ->label(__('finance.store_master_commission.month')) ->required() ->valueFormat('YYYY-MM'), amis()->SelectControl('store_id', __('finance.store_master_commission.store')) ->source(admin_url('api/stores')) ->labelField('title') ->valueField('id') ->required() ->clearable(), amis()->NumberControl() ->name('commission') ->label(__('finance.store_master_commission.commission')) ->precision(2) ->showSteps(false) ->required(), amis()->NumberControl() ->name('daily_expenses') ->label(__('finance.store_master_commission.daily_expenses')) ->precision(2) ->showSteps(false) ->required(), amis()->NumberControl() ->name('employee_expenses') ->label(__('finance.store_master_commission.employee_expenses')) ->precision(2) ->showSteps(false) ->required(), amis()->NumberControl() ->name('other_expenses') ->label(__('finance.store_master_commission.other_expenses')) ->precision(2) ->showSteps(false) ->required(), ]); } public function detail(): Form { $detail = amis()->Property()->items([ ['label' => __('finance.store_master_commission.month'), 'content' => '${month}'], ['label' => __('finance.store_master_commission.store'), 'content' => '${store.title}'], ['label' => __('finance.store_master_commission.store_master'), 'content' => '${master.name}'], ['label' => __('finance.store_master_commission.commission'), 'content' => '${commission}'], ['label' => __('finance.store_master_commission.daily_expenses'), 'content' => '${daily_expenses}'], ['label' => __('finance.store_master_commission.employee_expenses'), 'content' => '${employee_expenses}'], ['label' => __('finance.store_master_commission.other_expenses'), 'content' => '${other_expenses}'], ['label' => __('finance.store_master_commission.created_at'), 'content' => '${created_at}'], ['label' => __('workflow_log.check_status'), 'content' => amis()->Mapping()->name('workflow.check_status')->map(CheckStatus::labelMap())], ['label' => __('workflow_log.checked_at'), 'content' => '${workflow.checked_at}'], ['label' => __('workflow_log.remarks'), 'content' => '${workflow.check_remarks}', 'span' => 2], ]); $table = amis()->Service() ->id('offical-business-checklog-table') ->initFetch(false) ->api(admin_url('api/workflow/logs?id=${workflow.id}')) ->body( amis()->Table()->columnsTogglable(false)->itemActions([ $this->succesAction()->reload('offical-business-detail'), $this->failAction()->reload('offical-business-detail'), ])->columns([ amis()->TableColumn()->name('batch_id')->label(__('workflow_log.batch_id')), amis()->TableColumn()->name('check_name')->label(__('workflow_log.check_name')), amis()->TableColumn()->name('check_user.name')->label(__('workflow_log.check_user_id')), amis()->TableColumn()->name('check_status')->label(__('workflow_log.check_status'))->set('type', 'mapping')->map(CheckStatus::options()), amis()->TableColumn()->name('checked_at')->label(__('workflow_log.checked_at')), amis()->TableColumn()->name('remarks')->label(__('workflow_log.remarks')), ]) ); return $this->baseDetail()->id('offical-business-detail')->title('')->onEvent([ 'inited' => [ 'actions' => [ ['actionType' => 'reload', 'componentId' => 'offical-business-checklog-table'], ] ] ])->body([$detail, amis()->Divider(), $table]); } }