public function upgradesAction() { $billingTableRecords = $this->getDi()->billingPlanTable->findBy(); $productOptions = $this->getDi()->productTable->getOptions(); $planOptions = array(); foreach ($billingTableRecords as $bp) { if (!isset($productOptions[$bp->product_id])) { continue; } /* @var $bp BillingPlan */ if (!($terms = $bp->terms)) { $tt = new Am_TermsText($bp); $terms = $tt->getString(); } $planOptions[$bp->pk()] = $productOptions[$bp->product_id] . '/' . $bp->title . ' (' . $terms . ')'; } $ds = new Am_Query($this->getDi()->productUpgradeTable); $grid = new Am_Grid_Editable('_upgrades', ___("Product Upgrades"), $ds, $this->_request, $this->view); $grid->setPermissionId('grid_product'); $grid->_planOptions = $planOptions; $grid->addField(new Am_Grid_Field_Enum('from_billing_plan_id', ___('Upgrade From')))->setTranslations($planOptions); $grid->addField(new Am_Grid_Field_Enum('to_billing_plan_id', ___('Upgrade To')))->setTranslations($planOptions); $grid->addField('surcharge', ___('Surcharge'))->setGetFunction(create_function('$r', 'return Am_Currency::render($r->surcharge);')); $grid->setForm(array($this, 'createUpgradesForm')); $grid->runWithLayout('admin/layout.phtml'); }
/** @return string caclulated billing terms */ public function getTermsText() { $tt = new Am_TermsText($this); return $tt->getString(); }