[导出] 上报数据/收支报销/店长提成

main
Jing Li 2024-05-14 16:29:42 +08:00
parent b795504e0d
commit 8b0d5061a8
4 changed files with 84 additions and 14 deletions

View File

@ -8,6 +8,7 @@ use App\Enums\CheckStatus;
use App\Models\Ledger; use App\Models\Ledger;
use App\Traits\HasCheckActions; use App\Traits\HasCheckActions;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Slowlyo\OwlAdmin\Admin; use Slowlyo\OwlAdmin\Admin;
use Slowlyo\OwlAdmin\Renderers\DrawerAction; use Slowlyo\OwlAdmin\Renderers\DrawerAction;
@ -56,9 +57,10 @@ class LedgerController extends AdminController
public function list(): Page public function list(): Page
{ {
$crud = $this->baseCRUD() $crud = $this->baseCRUD()
->headerToolbar([ ->headerToolbar(
...$this->baseHeaderToolBar(), collect($this->baseHeaderToolBar())
]) ->when(Admin::user()->can('admin.finance.ledgers.export'), fn ($collection) => $collection->push($this->exportAction(true)))
)
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
amis()->GroupControl()->mode('horizontal')->body([ amis()->GroupControl()->mode('horizontal')->body([
@ -220,4 +222,29 @@ class LedgerController extends AdminController
])->size('lg') ])->size('lg')
); );
} }
protected function exportFileName()
{
return '上报数据';
}
protected function exportMap($row)
{
return [
__('finance.ledger.date') => $row['date'],
__('finance.ledger.store') => Arr::get($row, 'store.title'),
__('finance.ledger.sales') => $row['sales'],
__('finance.ledger.expenditure') => $row['expenditure'],
__('finance.ledger.new_customers') => $row['new_customers'],
__('finance.ledger.handover_amount') => $row['handover_amount'],
__('finance.ledger.ledger_amount') => $row['ledger_amount'],
__('finance.ledger.ledger_difference') => $row['ledger_difference'],
__('finance.ledger.expected_commission') => $row['expected_commission'],
__('finance.ledger.actual_commission') => $row['actual_commission'],
__('finance.ledger.expected_income') => $row['expected_income'],
__('finance.ledger.actual_income') => $row['actual_income'],
__('workflow_log.check_status') => CheckStatus::tryFrom(Arr::get($row, 'workflow.check_status'))?->text(),
__('finance.ledger.created_at') => $row['created_at'],
];
}
} }

View File

@ -23,9 +23,10 @@ class ReimbursementController extends AdminController
public function list(): Page public function list(): Page
{ {
$crud = $this->baseCRUD() $crud = $this->baseCRUD()
->headerToolbar([ ->headerToolbar(
...$this->baseHeaderToolBar(), collect($this->baseHeaderToolBar())
]) ->when(Admin::user()->can('admin.finance.reimbursements.export'), fn ($collection) => $collection->push($this->exportAction(true)))
)
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
amis()->GroupControl()->mode('horizontal')->body([ amis()->GroupControl()->mode('horizontal')->body([
@ -94,4 +95,21 @@ class ReimbursementController extends AdminController
$this->baseWorkflowLogList($detailId)->id($serviceId), $this->baseWorkflowLogList($detailId)->id($serviceId),
]); ]);
} }
protected function exportFileName()
{
return '收支报销';
}
protected function exportMap($row)
{
return [
__('finance.reimbursement.employee') => Arr::get($row, 'employee.name'),
__('finance.reimbursement.expense') => $row['expense'],
__('finance.reimbursement.reason') => $row['reason'],
__('finance.reimbursement.type') => Arr::get($row, 'type.name'),
__('workflow_log.check_status') => CheckStatus::tryFrom(Arr::get($row, 'workflow.check_status'))?->text(),
__('finance.reimbursement.created_at') => $row['created_at'],
];
}
} }

View File

@ -23,11 +23,11 @@ class StoreMasterCommissionController extends AdminController
public function list(): Page public function list(): Page
{ {
$crud = $this->baseCRUD() $crud = $this->baseCRUD()
->headerToolbar([ ->headerToolbar(
$this->createTypeButton('drawer', 'lg') collect($this->baseHeaderToolBar())
->visible(Admin::user()->can('admin.finance.store_master_commissions.create')), ->when(Admin::user()->can('admin.finance.store_master_commissions.create'), fn ($collection) => $collection->push($this->createTypeButton('drawer', 'lg')))
...$this->baseHeaderToolBar(), ->when(Admin::user()->can('admin.finance.store_master_commissions.export'), fn ($collection) => $collection->push($this->exportAction(true)))
]) )
->bulkActions([]) ->bulkActions([])
->filter($this->baseFilter()->body([ ->filter($this->baseFilter()->body([
amis()->GroupControl()->mode('horizontal')->body([ amis()->GroupControl()->mode('horizontal')->body([
@ -66,7 +66,6 @@ class StoreMasterCommissionController extends AdminController
->method('post') ->method('post')
->data(['id' => '${workflow.id}']) ->data(['id' => '${workflow.id}'])
), ),
// $this->cancelAction(),
$this->rowEditTypeButton('drawer', 'lg') $this->rowEditTypeButton('drawer', 'lg')
->visible(Admin::user()->can('admin.finance.store_master_commissions.update')) ->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.')}'), ->visibleOn('${OR(workflow.check_status == '.CheckStatus::None->value.', workflow.check_status == '.CheckStatus::Cancel->value.', workflow.check_status == '.CheckStatus::Fail->value.')}'),
@ -157,4 +156,25 @@ class StoreMasterCommissionController extends AdminController
$this->baseWorkflowLogList($detailId)->id($serviceId), $this->baseWorkflowLogList($detailId)->id($serviceId),
]); ]);
} }
protected function exportFileName()
{
return '店长提成';
}
protected function exportMap($row)
{
return [
__('finance.store_master_commission.id') => $row['id'],
__('finance.store_master_commission.month') => $row['month'],
__('finance.store_master_commission.store') => Arr::get($row, 'store.title'),
__('finance.store_master_commission.store_master') => Arr::get($row, 'master.name'),
__('finance.store_master_commission.commission') => $row['commission'],
__('finance.store_master_commission.daily_expenses') => $row['daily_expenses'],
__('finance.store_master_commission.employee_expenses') => $row['employee_expenses'],
__('finance.store_master_commission.other_expenses') => $row['other_expenses'],
__('workflow_log.check_status') => CheckStatus::tryFrom(Arr::get($row, 'workflow.check_status'))?->text(),
__('finance.store_master_commission.created_at') => $row['created_at'],
];
}
} }

View File

@ -267,6 +267,7 @@ class AdminPermissionSeeder extends Seeder
'uri' => '/finance/ledgers', 'uri' => '/finance/ledgers',
'resource' => ['list', 'update', 'view'], 'resource' => ['list', 'update', 'view'],
'children' => [ 'children' => [
'export' => '导出',
'update_ledger_amount' => '编辑总账金额', 'update_ledger_amount' => '编辑总账金额',
], ],
], ],
@ -284,7 +285,9 @@ class AdminPermissionSeeder extends Seeder
'icon' => 'ri:money-cny-circle-fill', 'icon' => 'ri:money-cny-circle-fill',
'uri' => '/finance/reimbursements', 'uri' => '/finance/reimbursements',
'resource' => ['list', 'view'], 'resource' => ['list', 'view'],
'children' => [], 'children' => [
'export' => '导出',
],
], ],
'sales_statistics' => [ 'sales_statistics' => [
'name' => '销售统计', 'name' => '销售统计',
@ -309,7 +312,9 @@ class AdminPermissionSeeder extends Seeder
'icon' => 'icon-park-outline:paper-money', 'icon' => 'icon-park-outline:paper-money',
'uri' => '/finance/store-master-commissions', 'uri' => '/finance/store-master-commissions',
'resource' => true, 'resource' => true,
'children' => [], 'children' => [
'export' => '导出',
],
], ],
], ],
], ],