43 lines
1.5 KiB
PHP
43 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use Illuminate\Console\Command;
|
|
use Modules\EcommerceFinance\Services\FinanceLedgerSnapshotImporter;
|
|
use Throwable;
|
|
|
|
class ImportFinanceLedgerSnapshot extends Command
|
|
{
|
|
protected $signature = 'finance-ledger:import-snapshot
|
|
{path : 已核对的 ledger_raw.json 路径}
|
|
{--no-recalculate : 只导入明细,不重算流水}';
|
|
|
|
protected $description = '导入财务台账动账明细快照(本地开发或首次建账使用)';
|
|
|
|
public function handle(FinanceLedgerSnapshotImporter $importer): int
|
|
{
|
|
try {
|
|
$result = $importer->import(
|
|
(string) $this->argument('path'),
|
|
! $this->option('no-recalculate'),
|
|
);
|
|
} catch (Throwable $exception) {
|
|
$this->error($exception->getMessage());
|
|
|
|
return self::FAILURE;
|
|
}
|
|
|
|
$this->table(['项目', '值'], [
|
|
['明细行数', $result['rows']],
|
|
['收入合计', number_format($result['income'], 2)],
|
|
['支出合计', number_format($result['expense'], 2)],
|
|
['日期范围', $result['from'] . ' ~ ' . $result['to']],
|
|
['每日流水行数', $result['recalculated']['flows'] ?? '-'],
|
|
['期末余额合计', isset($result['recalculated']) ? number_format($result['recalculated']['balance_sum'], 2) : '-'],
|
|
]);
|
|
$this->info('财务台账动账明细导入完成。');
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|