From 8b2c51e80ee7efbaf6e65c79251ba9a7a7744c84 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 24 Mar 2026 12:02:11 +0800 Subject: [PATCH] bugfix --- pricing/init.py | 1 + pricing/pricing.py | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/pricing/init.py b/pricing/init.py index 475d9bb..3d6bac9 100644 --- a/pricing/init.py +++ b/pricing/init.py @@ -6,6 +6,7 @@ from ahserver.serverenv import ServerEnv def load_pricing(): env = ServerEnv() env.write_pricing_patten = PricingProgram.write_pricing_patten + env.pricing_program_charging = PricingProgram.charging env.load_pricing_data = PricingProgram.load_pricing_data env.get_pricing_program = pricingProgram.get_pricing_program env.calculate_prices = PricingProgram.pricing diff --git a/pricing/pricing.py b/pricing/pricing.py index 404ea6c..c09a140 100644 --- a/pricing/pricing.py +++ b/pricing/pricing.py @@ -237,6 +237,29 @@ class PricingProgram: exception(e) raise Exception(e) + async def charging(sor, ppid, data): + biz_date = await get_business_date(sor) + sql = """select a.name, a.ownerid, a.providerid, +pricing_belong, discount, b.pricing_data +from pricing_program a, pricing_program_timing b +where a.id = b.ppid +and a.id = ${ppid}$ +and b.enabled_date <= ${biz_date}$ +and b.expired_date > ${biz_date}$ +order by b.enabled_date desc""" + recs = await sor.sqlExe(sql, { + 'ppid': ppid, + 'biz_date': biz_date + }) + if recs: + r = recs[0] + r.prices = PricingProgram.get_pricing_from_ymalstr(data, r.pricing_date) + debug(f'{r.prices=}') + amt = 0.0 + for p in r.prices: + p.cost = p.amount * r.discount + return r.prices + @staticmethod async def pricing(ppid, data): env = ServerEnv()