public function init() { $this->setDecorators([['ViewScript', ['viewScript' => 'customer/forms/billing-registration.phtml']]]); $billingContact = $this->createElement('text', 'billingContactName'); $billingContact->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setLabel('Contact')->addFilter('StringTrim')->setAttrib('class', 'span6')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($billingContact); $billingAddress1 = $this->createElement('text', 'billingAddress1'); $billingAddress1->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setLabel('Address')->setAttrib('class', 'span6')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($billingAddress1); $billingAddress2 = $this->createElement('text', 'billingAddress2'); $billingAddress2->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span6')->setLabel('')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($billingAddress2); $billingAddress3 = $this->createElement('text', 'billingAddress3'); $billingAddress3->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span6')->setLabel('')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($billingAddress3); $billingTownCity = $this->createElement('text', 'billingTownCity'); $billingTownCity->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span4')->setLabel('City')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($billingTownCity); $billingCountry = $this->createElement('select', 'billingCountry'); $billingCountry->setMultiOptions(["" => ""] + OSS_Countries::getCountriesArray())->setRegisterInArrayValidator(true)->setValue("")->setLabel('Country')->setRequired(false)->setAttrib('class', 'chzn-select span6'); $this->addElement($billingCountry); $billingPostcode = $this->createElement('text', 'billingPostcode'); $billingPostcode->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span4')->setLabel('Postcode')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($billingPostcode); $billingEmail = $this->createElement('text', 'billingEmail'); $billingEmail->addValidator('emailAddress')->setRequired(false)->setAttrib('class', 'span6')->setAttrib('placeholder', '*****@*****.**')->setLabel('E-Mail')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($billingEmail); $billingTelephone = $this->createElement('text', 'billingTelephone'); $billingTelephone->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span6')->setAttrib('placeholder', '+353 1 234 5678')->setLabel('Telephone')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($billingTelephone); $invoiceMethod = $this->createElement('select', 'invoiceMethod'); $invoiceMethod->setMultiOptions(['' => ''] + \Entities\CompanyBillingDetail::$INVOICE_METHODS)->setRegisterInArrayValidator(true)->setLabel('Invoice Method')->setRequired(false)->setAttrib('class', 'chzn-select-deselect span6'); $this->addElement($invoiceMethod); $purchaseOrderRequired = $this->createElement('checkbox', 'purchaseOrderRequired'); $purchaseOrderRequired->setLabel('Purchase Order Required')->setValue('0')->addValidator('InArray', false, [[0, 1]])->addFilter('Int'); $this->addElement($purchaseOrderRequired); $billingFrequency = $this->createElement('select', 'billingFrequency'); $billingFrequency->setMultiOptions(['' => ''] + \Entities\CompanyBillingDetail::$BILLING_FREQUENCIES)->setRegisterInArrayValidator(true)->setLabel('Billing Frequency')->setRequired(false)->setAttrib('class', 'chzn-select-deselect span6'); $this->addElement($billingFrequency); $invoiceEmail = $this->createElement('text', 'invoiceEmail'); $invoiceEmail->addValidator('emailAddress')->setRequired(false)->setAttrib('class', 'span6')->setAttrib('placeholder', '*****@*****.**')->setLabel('Invoice E-Mail')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($invoiceEmail); $vatNumber = $this->createElement('text', 'vatNumber'); $vatNumber->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span6')->setLabel('VAT Number')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($vatNumber); $vatRate = $this->createElement('text', 'vatRate'); $vatRate->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span4')->setLabel('VAT Rate')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($vatRate); $registeredName = $this->createElement('text', 'registeredName'); $registeredName->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setLabel('Registered Name')->addFilter('StringTrim')->setAttrib('class', 'span6')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($registeredName); $companyNumber = $this->createElement('text', 'companyNumber'); $companyNumber->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setLabel('Company Number')->addFilter('StringTrim')->setAttrib('class', 'span6')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($companyNumber); $jurisdiction = new OSS_Form_Element_DatabaseDropdown('jurisdiction', ['dql' => 'select crd.jurisdiction from \\Entities\\CompanyRegisteredDetail crd WHERE crd.jurisdiction IS NOT NULL']); $jurisdiction->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setLabel('Jurisdiction')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($jurisdiction); $address1 = $this->createElement('text', 'address1'); $address1->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setLabel('Address')->setAttrib('class', 'span6')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($address1); $address2 = $this->createElement('text', 'address2'); $address2->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span6')->setLabel('')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($address2); $address3 = $this->createElement('text', 'address3'); $address3->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span6')->setLabel('')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($address3); $townCity = $this->createElement('text', 'townCity'); $townCity->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span4')->setLabel('City')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($townCity); $country = $this->createElement('select', 'country'); $country->setMultiOptions(["" => ""] + OSS_Countries::getCountriesArray())->setRegisterInArrayValidator(true)->setValue("")->setLabel('Country')->setRequired(false)->setAttrib('class', 'chzn-select span6'); $this->addElement($country); $postcode = $this->createElement('text', 'postcode'); $postcode->addValidator('stringLength', false, array(0, 64, 'UTF-8'))->setRequired(false)->setAttrib('class', 'span4')->setLabel('Postcode')->addFilter('StringTrim')->addFilter(new OSS_Filter_StripSlashes()); $this->addElement($postcode); $this->addDisplayGroup(['billingContact', 'billingAddress1', 'billingAddress2', 'billingTownCity', 'billingCountry'], 'billingDisplayGroup'); $this->getDisplayGroup('billingDisplayGroup')->setLegend('Billing Details'); $this->addElement(self::createSubmitElement('submit', _('Save Changes'))); $this->addElement($this->createCancelElement()); }