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,