Renders a FullHouse product as a JSON payload for the web platform API, including pricing, promotion data, instalment calculation, category mapping, dimensional data, image URLs, and display eligibility.
PaymentReport — set as ReportType in def_report.
def Render(self, Param1="", Param2="", Param3="") -> str:
Param1 is the product code. Param2 is an optional modifier passed to the instalment calculator (e.g. "extended" for extended warranty products). Returns a pretty-printed JSON string. Returns an empty string if no data is found.
ComputeInstalment(Contract, Code="")Invokes ObjTextFHInstalment.Compute("", Contract, Code, "-1") to calculate monthly payment, total payment, interest rate, terms, deposit, and base raw price. Stores all values on self.
Connects to the traderrds remote connection for product data. Image resolution follows the fallback chain: primary image → alternate product image → logo_pims_icon.jpeg. Uses ObjDocument to locate and build icon images. Promotion detection queries trader.promotion_header / trader.promotion_detail by date range. Category mapping is attempted with three-level join (Ct_code1/2/3) then falls back to a two-level join. Dimensional data (weight, length, height, width for up to five boxes) is extracted from trader.meta_product, along with volumetric weight calculations. Display eligibility fails if the product has no category map, no image, is not marked for web, or if its name contains "DEAL" or "BUNDLE" (unless it is a promotion). Items with 0 or 1 terms are treated as cash sales. The meta_can_order_message field summarises stock/range/discontinued status using a CASE expression.