From 70c609f8c2f7c62c96c7503ca532a29ce91f122f Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 24 Mar 2026 17:29:16 +0800 Subject: [PATCH] bugfix --- pricing/pricing.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/pricing/pricing.py b/pricing/pricing.py index c04c04e..55f8d35 100644 --- a/pricing/pricing.py +++ b/pricing/pricing.py @@ -174,11 +174,29 @@ class PricingProgram: env = ServerEnv() fs = FileStorage() fp = fs.realPath(webpath_xlsx) - d = load_xlsx_pricing(fp) + pricings = load_xlsx_pricing(fp) async with get_sor_context(env, 'pricing') as sor: ppts = await sor.R('pricing_program_timing', {'id': pptid}) if ppts: ppt = ppts[0] + pps = await sor.R('pricing_program', {'id': ppt.ppid}) + if not pps: + e = f'pricing_program({pptid}) can not find pricing_program' + exception(f) + pp = pps[0] + fields = DictObject(**yaml.safe_load(pp.pricing_spec)) + newpricings = [] + for p in pricings: + np = {} + for k,v in p.items(): + for fk, fv in fields.items(): + if k == fv.label: + np.update({fk:v}) + newpricings.append(np) + d = { + 'fields': fields, + 'pricings': newpricings + } ppt.pricing_data = yaml.dump(d) await sor.U('pricing_program_timing', { 'id': ppt.id,