fix: Add Yicai Taobao WeChat July opening balance

This commit is contained in:
qiuxiang 2026-11-09 16:06:36 +08:00
parent def382415c
commit 8eedd05eb8
3 changed files with 64 additions and 4 deletions

View File

@ -0,0 +1,59 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
use Modules\EcommerceFinance\Repositories\TaobaoWechatOpeningBalanceRepository;
use Modules\EcommerceFinance\Support\TaobaoWechatBackofficeJuneEndingBalances;
return new class extends Migration
{
private const STORE_NAME = '天猫-亿家达宜彩专卖店';
public function up(): void
{
if (app()->environment('testing')
|| (string) config('system_database.mode', 'bootstrap') === 'bootstrap') {
return;
}
$connection = DB::connection((string) config('upstream_mirrors.connection', 'business_mirror'));
if (! $connection->getSchemaBuilder()->hasTable(TaobaoWechatOpeningBalanceRepository::TABLE)) {
return;
}
$balance = TaobaoWechatBackofficeJuneEndingBalances::balances()[self::STORE_NAME] ?? null;
if ($balance === null) {
return;
}
$importedAt = now();
$connection->table(TaobaoWechatOpeningBalanceRepository::TABLE)->updateOrInsert(
[
'balance_date' => TaobaoWechatBackofficeJuneEndingBalances::AS_OF_DATE,
'store_name' => self::STORE_NAME,
],
[
'balance' => $balance,
'source' => TaobaoWechatBackofficeJuneEndingBalances::SOURCE,
'source_note' => TaobaoWechatBackofficeJuneEndingBalances::SOURCE_NOTE,
'imported_at' => $importedAt,
'updated_at' => $importedAt,
'created_at' => $importedAt,
],
);
}
public function down(): void
{
if (app()->environment('testing')
|| (string) config('system_database.mode', 'bootstrap') === 'bootstrap') {
return;
}
DB::connection((string) config('upstream_mirrors.connection', 'business_mirror'))
->table(TaobaoWechatOpeningBalanceRepository::TABLE)
->where('balance_date', TaobaoWechatBackofficeJuneEndingBalances::AS_OF_DATE)
->where('store_name', self::STORE_NAME)
->delete();
}
};

View File

@ -19,6 +19,7 @@ final class TaobaoWechatBackofficeJuneEndingBalances
'天猫-HX旗舰店101' => '27846.22',
'天猫-亿家木旗舰店' => '7296.02',
'天猫-亿家达旗舰店' => '290881.84',
'天猫-亿家达宜彩专卖店' => '5155.88',
'天猫-卓禾家具旗舰店' => '154923.76',
'天猫-君特友家具专卖店' => '36040.63',
'天猫-康帕斯旗舰店' => '0.00',

View File

@ -69,7 +69,7 @@ class TaobaoWechatOpeningBalanceRepositoryTest extends TestCase
$this->assertSame(2, $result['store_count']);
}
public function test_backoffice_dataset_contains_the_twenty_confirmed_store_balances(): void
public function test_backoffice_dataset_contains_the_twenty_one_confirmed_store_balances(): void
{
$balances = TaobaoWechatBackofficeJuneEndingBalances::balances();
$totalCents = array_sum(array_map(
@ -77,12 +77,12 @@ class TaobaoWechatOpeningBalanceRepositoryTest extends TestCase
array_values($balances),
));
$this->assertCount(20, $balances);
$this->assertSame(80947454, $totalCents);
$this->assertCount(21, $balances);
$this->assertSame(81463042, $totalCents);
$this->assertSame('27846.22', $balances['天猫-HX旗舰店101']);
$this->assertSame('290881.84', $balances['天猫-亿家达旗舰店']);
$this->assertSame('5155.88', $balances['天猫-亿家达宜彩专卖店']);
$this->assertSame('86802.00', $balances['淘宝-全颐家具工厂店']);
$this->assertArrayNotHasKey('天猫-亿家达宜彩专卖店', $balances);
}
public function test_missing_opening_balance_is_unavailable(): void