30 lines
1.4 KiB
Python
30 lines
1.4 KiB
Python
"""只修正今日 daily_income_stat.total_count(不动金额、不动其它天)。"""
|
||
from datetime import date
|
||
|
||
from django.core.management.base import BaseCommand
|
||
|
||
from jituan.services.szjilu_accounting import fix_income_stat_count_for_date
|
||
|
||
|
||
class Command(BaseCommand):
|
||
help = '修正今日收入笔数(repair 会把 total_count 虚增,本命令只改笔数列)'
|
||
|
||
def add_arguments(self, parser):
|
||
parser.add_argument('--date', type=str, default='', help='YYYY-MM-DD,默认今天')
|
||
parser.add_argument('--yes', action='store_true')
|
||
|
||
def handle(self, *args, **options):
|
||
stat_date = date.fromisoformat(options['date']) if options['date'] else date.today()
|
||
dry_run = not options['yes']
|
||
r = fix_income_stat_count_for_date(stat_date, dry_run=dry_run)
|
||
self.stdout.write(f'日期: {r["date"]}')
|
||
self.stdout.write(f' 表内笔数合计(错): {r["before_count"]}')
|
||
self.stdout.write(self.style.SUCCESS(f' 修正后笔数: {r["after_count"]}'))
|
||
if r['clubs']:
|
||
for cid, cnt in r['clubs'].items():
|
||
self.stdout.write(f' club={cid}: {cnt} 笔')
|
||
if dry_run:
|
||
self.stdout.write(self.style.WARNING('\n确认: python manage.py fix_today_income_count --yes'))
|
||
else:
|
||
self.stdout.write(self.style.SUCCESS('\n已写入 daily_income_stat.total_count,请刷新财务页。'))
|