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

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\Traits\HasCheckActions;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Validator;
use Slowlyo\OwlAdmin\Admin;
use Slowlyo\OwlAdmin\Renderers\DrawerAction;
@ -56,9 +57,10 @@ class LedgerController extends AdminController
public function list(): Page
{
$crud = $this->baseCRUD()
->headerToolbar([
...$this->baseHeaderToolBar(),
])
->headerToolbar(
collect($this->baseHeaderToolBar())
->when(Admin::user()->can('admin.finance.ledgers.export'), fn ($collection) => $collection->push($this->exportAction(true)))
)
->bulkActions([])
->filter($this->baseFilter()->body([
amis()->GroupControl()->mode('horizontal')->body([
@ -220,4 +222,29 @@ class LedgerController extends AdminController
])->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
{
$crud = $this->baseCRUD()
->headerToolbar([
...$this->baseHeaderToolBar(),
])
->headerToolbar(
collect($this->baseHeaderToolBar())
->when(Admin::user()->can('admin.finance.reimbursements.export'), fn ($collection) => $collection->push($this->exportAction(true)))
)
->bulkActions([])
->filter($this->baseFilter()->body([
amis()->GroupControl()->mode('horizontal')->body([
@ -94,4 +95,21 @@ class ReimbursementController extends AdminController
$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
{
$crud = $this->baseCRUD()
->headerToolbar([
$this->createTypeButton('drawer', 'lg')
->visible(Admin::user()->can('admin.finance.store_master_commissions.create')),
...$this->baseHeaderToolBar(),
])
->headerToolbar(
collect($this->baseHeaderToolBar())
->when(Admin::user()->can('admin.finance.store_master_commissions.create'), fn ($collection) => $collection->push($this->createTypeButton('drawer', 'lg')))
->when(Admin::user()->can('admin.finance.store_master_commissions.export'), fn ($collection) => $collection->push($this->exportAction(true)))
)
->bulkActions([])
->filter($this->baseFilter()->body([
amis()->GroupControl()->mode('horizontal')->body([
@ -66,7 +66,6 @@ class StoreMasterCommissionController extends AdminController
->method('post')
->data(['id' => '${workflow.id}'])
),
// $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.')}'),
@ -157,4 +156,25 @@ class StoreMasterCommissionController extends AdminController
$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',
'resource' => ['list', 'update', 'view'],
'children' => [
'export' => '导出',
'update_ledger_amount' => '编辑总账金额',
],
],
@ -284,7 +285,9 @@ class AdminPermissionSeeder extends Seeder
'icon' => 'ri:money-cny-circle-fill',
'uri' => '/finance/reimbursements',
'resource' => ['list', 'view'],
'children' => [],
'children' => [
'export' => '导出',
],
],
'sales_statistics' => [
'name' => '销售统计',
@ -309,7 +312,9 @@ class AdminPermissionSeeder extends Seeder
'icon' => 'icon-park-outline:paper-money',
'uri' => '/finance/store-master-commissions',
'resource' => true,
'children' => [],
'children' => [
'export' => '导出',
],
],
],
],