Renders a single FullHouse product price ticket by populating a database-stored HTML template with product details, instalment calculation, promotion pricing, and a QR code.
PriceSticker — set as ReportType in def_report.
def Render(self, Param1="", Param2="", Param3="") -> str:
Param1 is the product code (first 10 characters used). Param2 controls promotion mode: pass "promo" to force the promotion price and template. Param3 selects the template version: "LIVE" (default when empty) or "UAT". Returns an HTML string produced by populating the template fetched from trader.meta_template.
ComputeInstalment(SellingPrice, Contract)Invokes ObjTextFHInstalment to compute monthly payment, total payment, interest rate, and terms for the given product and selling price. Stores results on self.
Inherits from ObjReportEmail. Depends on ObjTextFHInstalment, ObjTextReportpdfLocal, and ObjGo. The template is keyed by templatetype (e.g. A6, A7, A4L, CUSTOM, WOBBLER) from PM_USERFIELD2 on trader.products. Promotion prices are sourced from trader.promotion_header / trader.promotion_detail using date range and optional Force_PROMOTION flag. Product features are parsed from trader.product_notes or trader.meta_product, split on |, :, or ,. The $wasprice$ placeholder shows the original price when a promotion is active. Items below R300 are forced to 1-month terms (cash only).