50 lines
1.6 KiB
PHP
50 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use Illuminate\Console\Command;
|
|
use Modules\EcommerceFinance\Services\FinanceLedgerBaseImporter;
|
|
use Throwable;
|
|
|
|
class ImportFinanceLedgerBase extends Command
|
|
{
|
|
protected $signature = 'finance-ledger:import-base
|
|
{path : 《银行当前余额-*.xlsx》路径}
|
|
{--opening-date= : 期初日期,默认读取配置}
|
|
{--recalculate : 导入后立即重算每日流水}';
|
|
|
|
protected $description = '导入财务台账的账户、店铺、公司、期初余额(全量覆盖)';
|
|
|
|
public function handle(FinanceLedgerBaseImporter $importer): int
|
|
{
|
|
try {
|
|
$result = $importer->import(
|
|
(string) $this->argument('path'),
|
|
$this->option('opening-date') ?: null,
|
|
);
|
|
} catch (Throwable $exception) {
|
|
$this->error($exception->getMessage());
|
|
|
|
return self::FAILURE;
|
|
}
|
|
|
|
$this->table(['项目', '数量/金额'], [
|
|
['账户', $result['accounts']],
|
|
['店铺', $result['shops']],
|
|
['公司', $result['companies']],
|
|
['期初账户', $result['opening_rows']],
|
|
['期初合计', number_format($result['opening_sum'], 2)],
|
|
['账户余额合计', number_format($result['account_balance_sum'], 2)],
|
|
['期初日期', $result['opening_date']],
|
|
]);
|
|
|
|
if ($this->option('recalculate')) {
|
|
$this->call('finance-ledger:recalculate');
|
|
}
|
|
|
|
$this->info('财务台账基础数据导入完成。');
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|