public function isValid($formData = array()) { if (isset($formData['ins_property_postcode']) && trim($formData['ins_property_postcode']) != '') { $postcode = trim($formData['ins_property_postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); if (isset($postcode) && preg_match('/^IM|^GY|^JE/i', $postcode)) { return; } else { foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } } $ins_address = $this->getElement('property_address'); $ins_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $ins_address->addValidator($validator, true); } // If a value for an address lookup is present, the house name or number is not required if (isset($formData['ins_property_postcode'])) { $this->getElement('property_number_name')->setRequired(false); } return parent::isValid($formData); }
public function isValid($postData) { $pageSession = new Zend_Session_Namespace('portfolio_insurance_quote'); $customerReferenceNumber = $pageSession->CustomerRefNo; $propertyManager = new Manager_Insurance_Portfolio_Property(); $propertyObjects = $propertyManager->fetchAllProperties($customerReferenceNumber); $propertyArray = $propertyObjects->toArray(); $optionList = array('' => '--- please select ---'); foreach ($propertyArray as $property) { $optionList[$property['id']] = $property['address1'] . " " . $property['address2'] . " " . $property['address3'] . " " . $property['postcode']; } // Get the subfoem element for property address that the bank may have interest in $propertyAddressSelect = $this->getElement('claim_property'); $propertyAddressSelect->setMultiOptions($optionList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($optionList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Not in list')); $propertyAddressSelect->addValidator($validator, true); // Set the selected to 0 $propertyAddressSelect->setValue('0'); $claimTypeList = array('' => '--- please select ---'); $claimTypesSelect = $this->getElement('claim_type'); $claimTypes = new Datasource_Insurance_PreviousClaimTypes(); $claimTypeObjects = $claimTypes->getPreviousClaimTypes(Model_Insurance_ProductNames::LANDLORDSPLUS); foreach ($claimTypeObjects as $ClaimType) { $claimTypeList[$ClaimType->getClaimTypeID()] = $ClaimType->getClaimTypeText(); } $claimTypesSelect->setMultiOptions($claimTypeList); return parent::isValid($postData); }
/** * Overridden isValid() method for pre-validation code * * @param array $formData data typically from a POST or GET request * * @return bool */ public function isValid($formData = array()) { $pageSession = new Zend_Session_Namespace('tenants_insurance_quote'); // If correspondence address is set to be the same as insured address, copy the address values across if (isset($formData['cor_same_address']) && $formData['cor_same_address'] == 'yes') { // NOTE: THIS BIT OF CODE MEANS BOTH ADDRESS SUBFORMS MUST APPEAR ON THE SAME PAGE $formData['cor_house_number_name'] = $formData['ins_house_number_name']; $formData['cor_postcode'] = $formData['ins_postcode']; $formData['cor_address'] = $formData['ins_address']; $findPostcode = $formData['ins_postcode']; } // If a postcode is present, look it up and populate the allowed values of the associated dropdown if (isset($formData['cor_postcode']) && trim($formData['cor_postcode']) != '') { $postcode = trim($formData['cor_postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } $cor_address = $this->getElement('cor_address'); $cor_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Correspondence address does not match with postcode')); $cor_address->addValidator($validator, true); } // If a value for an address lookup is present, the house name or number is not required if (isset($formData['cor_postcode'])) { $this->getElement('cor_house_number_name')->setRequired(false); } // Call original isValid() return parent::isValid($formData); }
public function init() { $seccion = new Application_Model_Seccion(); $array = $seccion->listarSeccionesPeriodoActualActivos(); $include = new Application_Model_Includes(); //$q2a=$include->query2array($array, 'iSeccIdSeccion','vSeccDescripcion'); $q2a = $include->querytoeach($array, "iSeccIdSeccion"); $validator = new Zend_Validate_InArray($q2a); $validator->setHaystack($q2a); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Eliga una sección')); $this->setAction('/admin/agregarcurso')->setMethod('post')->setAttrib('id', 'formLogin'); // Crea un y configura el elemento username $nombrecurso = $this->createElement('text', 'nombrecurso', array('label' => 'Nombre del Curso', 'placeholder' => 'Máximo 150 caracteres')); $nombrecurso->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo requerido')))->addValidator('regex', true, array('pattern' => '/^[(a-z A-Z)]+$/', 'messages' => array('regexNotMatch' => 'Sólo Letras')))->addValidator('stringLength', false, array(5, 150, 'messages' => "Entre 5 a 150 caracteres"))->setRequired(true)->addFilter('StringToUpper'); $nombrecurso->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $descripcion = $this->createElement('text', 'descripcion', array('label' => 'Descripción', 'placeholder' => 'Breve descripción del curso')); $descripcion->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo requerido')))->addValidator('regex', true, array('pattern' => '/^[(a-z A-Z 0-9)]+$/', 'messages' => array('regexNotMatch' => 'Sólo Letras')))->setRequired(true)->addFilter('StringToUpper'); $descripcion->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $gradosactuales = new Application_Model_Grado(); $includes = new Application_Model_Includes(); $arraygrados = $gradosactuales->listarGradosActivos(); $arraygradostoarray = $includes->query2array($arraygrados, 'iGradoIdGrado', 'vGradoDescripcion'); $grado = $this->createElement('select', 'cbogrado', array('label' => 'Grado', 'autocomplete' => false, 'multiOptions' => $arraygradostoarray, 'onChange' => 'cargarseccion();')); $grado->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $seccion = $this->createElement('select', 'cboseccion', array('label' => 'Seccion', 'multiOptions' => array("0" => "Seleccionar Sección"))); $seccion->addValidator($validator); $seccion->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo requerido'))); $seccion->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); // Añade los elementos al formulario: $this->addElement($nombrecurso)->addElement($descripcion)->addElement($grado)->addElement($seccion)->addElement('submit', 'registrar', array('label' => 'Registrar')); }
public function isValid($formData = array()) { // If a postcode is present, look it up and populate the allowed values of the associated dropdown if (isset($formData['postcode']) && trim($formData['postcode']) != '') { $postcode = trim($formData['postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } $address = $this->getElement('address'); $address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Address does not match with postcode')); $address->addValidator($validator, true); } // If a value for an address lookup is present, the house name or number is not required if (isset($formData['address_postcode']) && $formData['address_postcode'] != '') { $this->getElement('postcode')->setRequired(false); $this->getElement('address')->setRequired(false); } // Call original isValid() return parent::isValid($formData); }
public function isValid($postData) { $pageSession = new Zend_Session_Namespace('portfolio_insurance_quote'); $customerReferenceNumber = $pageSession->CustomerRefNo; $propertyManager = new Manager_Insurance_Portfolio_Property(); $propertyObjects = $propertyManager->fetchAllProperties($customerReferenceNumber); $propertyArray = $propertyObjects->toArray(); $optionList = array('' => '--- please select ---'); foreach ($propertyArray as $property) { $optionList[$property['id']] = $property['address1'] . " " . $property['address2'] . " " . $property['address3'] . " " . $property['postcode']; } // Get the subfoem element for property address that the bank may have interest in $propertyAddressSelect = $this->getElement('bank_property'); $propertyAddressSelect->setMultiOptions($optionList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($optionList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Property not in list')); $propertyAddressSelect->addValidator($validator, true); return parent::isValid($postData); }
/** * Overridden isValid() method for pre-validation code * * @param array $formData data typically from a POST or GET request * * @return bool */ public function isValid($formData = array()) { $pageSession = new Zend_Session_Namespace('landlords_insurance_quote'); // If a postcode is present, look it up and populate the allowed values of the associated dropdown if (isset($formData['cor_postcode']) && trim($formData['cor_postcode']) != '') { $postcode = trim($formData['cor_postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } $cor_address = $this->getElement('cor_address'); $cor_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Correspondence address does not match with postcode')); $cor_address->addValidator($validator, true); } // If a value for an address lookup is present, the house name or number // is not required if (isset($formData['cor_postcode'])) { $this->getElement('cor_house_number_name')->setRequired(false); } // todo: sort out server-side validation for foreign address stuff // If the address is overseas, toggle the required status for the // relevant fields. if (isset($formData['cor_foreign_address']) && 1 == $formData['cor_foreign_address']) { $this->getElement('cor_address')->setRequired(false); $this->getElement('cor_address_postcode')->setRequired(false); $this->getElement('cor_address_line1')->setRequired(true); $this->getElement('cor_address_line2')->setRequired(true); $this->getElement('country')->setRequired(true); // Also change the validators for the postcode field $this->getElement('cor_postcode')->setValidators(array(array('NotEmpty', true, array('messages' => array('isEmpty' => 'Please enter zip/postal code for your correspondence address', 'notEmptyInvalid' => 'Please enter a valid zip/postal code for your correspondence address'))))); $this->getElement('cor_address_postcode')->setValidators(array()); } // Call original isValid() return parent::isValid($formData); }
/** * Private function to handle form population */ private function _formStepCommonPopulate($pageForm, $stepNum) { $pageSession = new Zend_Session_Namespace('portfolio_insurance_quote'); // First of all check that this form should be viewable and the user isn't trying to skip ahead $this->view->stepNum = $stepNum; $this->view->stepMax = $this->_stepMax; $tooFarAhead = false; if ((!isset($pageSession->completed) || is_null($pageSession->completed)) && $stepNum != 1) { $tooFarAhead = true; $lastCompleted = 1; } elseif ($stepNum > 1) { // Check to see if any pages previous to the one the user's trying to get to are incomplete $tooFarAhead = false; for ($i = 1; $i < $stepNum; $i++) { if (!isset($pageSession->completed[$i]) || !$pageSession->completed[$i]) { $tooFarAhead = true; $lastCompleted = $i; break; } } } if ($tooFarAhead) { // Drop user onto page that needs completing $this->_helper->redirector->gotoUrl('/portfolio/insurance-quote/step' . $lastCompleted); return false; } // Echo out some debug info if not in production mode #Application_Core_Logger::log("Policy Number : " . $this->_policyNumber); #Application_Core_Logger::log("Customer Ref No : " . $this->_customerReferenceNumber); #Application_Core_Logger::log("Referrer : " . $this->_referrer); // Only populate from DB if we are in session and have a reference number if (isset($pageSession->CustomerRefNo)) { $customerReferenceNumber = $pageSession->CustomerRefNo; $policyNumber = $pageSession->PolicyNumber; $formData = array(); // Populate $formData with data from model, if available switch ($stepNum) { case 1: // Personal Details section $customerManager = new Manager_Insurance_Portfolio_LegacyCustomer(); $customer = $customerManager->fetchByRefNo($customerReferenceNumber); $formData['title'] = $customer['title']; $formData['first_name'] = $customer['first_name']; $formData['last_name'] = $customer['last_name']; $formData['phone_number'] = $customer['telephone1']; $formData['mobile_number'] = $customer['telephone2']; $formData['email_address'] = $customer['email_address']; $formData['date_of_birth_at'] = Application_Core_Utilities::mysqlDateToUk($customer['date_of_birth_at']); // Get correspondance Address data // Look up address again to populate dropdown $formData['cor_house_number_name'] = $customer['address1']; // Populate the correspondence address details $formData['cor_address_line1'] = $customer['address1']; $formData['cor_address_line2'] = $customer['address2']; $formData['cor_address_line3'] = $customer['address3']; $formData['cor_address_postcode'] = $customer['postcode']; $formData['cor_postcode'] = $customer['postcode']; $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $formData['cor_postcode']), $customer['address1']); $addressList = array('' => '--- please select ---'); $filterString = is_numeric($formData['cor_house_number_name']) ? $formData['cor_house_number_name'] . ", " : $formData['cor_house_number_name']; foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; if (stripos($address['singleLineWithoutPostcode'], $filterString) === 0) { $addressID = $address['id']; } } // Add some validation $cor_address = $pageForm->getSubForm('subform_correspondenceaddress')->getElement('cor_address'); $cor_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $cor_address->addValidator($validator, true); // Set the address to selected $cor_address->setValue($addressID); // Data Protection section //Extract the DPA values from the session. $dpaManager = new Manager_Core_DataProtection(Manager_Core_DataProtection::USE_SESSION); $dpaItemArray = $dpaManager->getItems(null, Model_Core_DataProtection_ItemEntityTypes::INSURANCE); #Zend_Debug::dump($dpaItemArray);die(); foreach ($dpaItemArray as $currentItem) { switch ($currentItem->constraintTypeId) { case Model_Core_DataProtection_ItemConstraintTypes::MARKETING_BY_PHONEANDPOST: if ($currentItem->isAllowed) { $formData['dpa_phone_post'] = 0; } else { $formData['dpa_phone_post'] = 1; } break; case Model_Core_DataProtection_ItemConstraintTypes::MARKETING_BY_SMSANDEMAIL: if ($currentItem->isAllowed) { $formData['dpa_sms_email'] = 1; } else { $formData['dpa_sms_email'] = 0; } break; case Model_Core_DataProtection_ItemConstraintTypes::MARKETING_BY_THIRDPARTY: if ($currentItem->isAllowed) { $formData['dpa_resale'] = 1; } else { $formData['dpa_resale'] = 0; } break; } } // Initial Disclosure Agreement section // As we have a customer reference number they must have saved step 1 at some point which means // they must have agreed to the IDD section $formData['idd'] = 1; $pageForm->populate($formData); break; case 2: // Step needs to retrieve any properties that may have been added to this portfolio quote // This data is NOT form data, just display data since the ajax has added the properties to the // portfolio_properties table $propertyArray = array(); $propertyManager = new Manager_Insurance_Portfolio_Property(); $propertyArray = $propertyManager->fetchAllProperties($customerReferenceNumber); $propNumb = count($propertyArray->toArray()); $formData['propNumb'] = count($propertyArray->toArray()); $this->view->propertyList = $propertyArray; $this->view->stepNum = 2; $pageForm->populate($formData); break; case 3: /* This step display the properties and displays the quote value */ $propertyArray = array(); $propertyManager = new Manager_Insurance_Portfolio_Property(); $propertyArray = $propertyManager->fetchAllProperties($customerReferenceNumber); $this->view->propertyList = $propertyArray; $this->view->stepNum = 3; break; case 4: break; /* populates the remove property dialog */ /* populates the remove property dialog */ case "removePropertyDialog": $request = $this->getRequest(); $formData['propertyid'] = $request->getParam('id'); $pageForm->populate($formData); break; case "editInsuredAddress": $request = $this->getRequest(); $formData['propertyid'] = $request->getParam('id'); $propertyManager = new Manager_Insurance_Portfolio_Property(); $propertyObj = $propertyManager->getPropertyById($formData['propertyid']); $formData['ins_house_number_name'] = $propertyObj->houseNumber; $formData['ins_postcode'] = $propertyObj->postcode; // Look up address again to populate dropdown $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $formData['ins_postcode'])); $addressList = array('' => '--- please select ---'); $filterString = is_numeric($formData['ins_house_number_name']) ? $formData['ins_house_number_name'] . ", " : $formData['ins_house_number_name']; foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; if (stripos($address['singleLineWithoutPostcode'], $filterString) === 0) { $addressID = $address['id']; } } // Add some validation $ins_address = $pageForm->getElement('ins_address'); $ins_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $ins_address->addValidator($validator, true); // Set the address to selected $ins_address->setValue($addressID); //Zend_Debug::dump($propertyObj);die(); // Get Insured Address data // Look up address again to populate dropdown // Populate the correspondence address details $formData['ins_address_line1'] = $propertyObj->address1; $formData['ins_address_line2'] = $propertyObj->address2; $formData['ins_address_line3'] = $propertyObj->address3; $formData['ins_address_postcode'] = $propertyObj->postcode; $formData['employment_status'] = $propertyObj->tenantOccupation; if ($propertyObj->buildingsSumInsured == 0) { $formData['buildings_cover'] = ""; } else { $formData['buildings_cover'] = $propertyObj->buildingsSumInsured; $formData['comprehensive_buildings_insurance'] = 1; } if ($propertyObj->buildingsAccidentalDamage == 'Yes') { $formData['buildings_accidental_damage'] = 1; } else { $formData['buildings_accidental_damage'] = 0; } if ($propertyObj->buildingsNilExcess == 'Yes') { $formData['buildings_nil_excess'] = 1; } else { $formData['buildings_nil_excess'] = 0; } if ($propertyObj->contentsSumInsured == 0) { $formData['contents_cover'] = ""; } else { $formData['contents_cover'] = $propertyObj->contentsSumInsured; $formData['full_contents_insurance'] = 1; } if ($propertyObj->contentsAccidentalDamage == 'Yes') { $formData['contents_accidental_damage'] = 1; } else { $formData['contents_accidental_damage'] = 0; } if ($propertyObj->contentsNilExcess == 'Yes') { $formData['contents_nil_excess'] = 1; } else { $formData['contents_nil_excess'] = 0; } if ($propertyObj->limitedContents == 'Yes') { $formData['limited_contents'] = 1; } else { $formData['limited_contents'] = 0; } // Populate the form $pageForm->populate($formData); break; case "bankInterestDialog": $propertyManager = new Manager_Insurance_Portfolio_Property(); $propertyObjects = $propertyManager->fetchAllProperties($customerReferenceNumber); $propertyArray = $propertyObjects->toArray(); $optionList = array('' => '--- please select ---'); foreach ($propertyArray as $property) { $optionList[$property['id']] = $property['address1'] . " " . $property['address2'] . " " . $property['address3'] . " " . $property['postcode']; } // Get the subform element for property address that the bank may have interest in $propertyAddressSelect = $pageForm->getSubForm('subform_bank-details-form')->getElement('bank_property'); $propertyAddressSelect->setMultiOptions($optionList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($optionList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Property not in list')); $propertyAddressSelect->addValidator($validator, true); // Set the selected to 0 $propertyAddressSelect->setValue('0'); // Now fetch any bank interests we have already stored $bankInterestManager = new Manager_Insurance_Portfolio_BankInterest(); $this->view->interestList = $bankInterestManager->fetchAllInterests($customerReferenceNumber); $pageForm->populate($formData); break; case "additionalDialog": $propertyManager = new Manager_Insurance_Portfolio_Property(); $propertyObjects = $propertyManager->fetchAllProperties($customerReferenceNumber); $propertyArray = $propertyObjects->toArray(); $optionList = array('' => '--- please select ---'); foreach ($propertyArray as $property) { $optionList[$property['id']] = $property['address1'] . " " . $property['address2'] . " " . $property['address3'] . " " . $property['postcode']; } // Get the subform element for property address that the bank may have interest in $propertyAddressSelect = $pageForm->getElement('property'); $propertyAddressSelect->setMultiOptions($optionList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($optionList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Not in list')); $propertyAddressSelect->addValidator($validator, true); // Set the selected to 0 $propertyAddressSelect->setValue('0'); // Now fetch any Additionals we have already stored $manager = new Manager_Insurance_Portfolio_AdditionalInformation(); $qid = $_GET['qid']; $array = $manager->fetchAllByRefNo($customerReferenceNumber, $qid); $this->view->additionalList = $array; $pageForm->populate($formData); break; case "claimsDialog": $propertyManager = new Manager_Insurance_Portfolio_Property(); $propertyObjects = $propertyManager->fetchAllProperties($customerReferenceNumber); $propertyArray = $propertyObjects->toArray(); $optionList = array('' => '--- please select ---'); foreach ($propertyArray as $property) { $optionList[$property['id']] = $property['address1'] . " " . $property['address2'] . " " . $property['address3'] . " " . $property['postcode']; } // Get the form element for property address $propertyAddressSelect = $pageForm->getSubForm('subform_previous-claims-form')->getElement('claim_property'); $propertyAddressSelect->setMultiOptions($optionList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($optionList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Not in list')); $propertyAddressSelect->addValidator($validator, true); // Set the selected to 0 $propertyAddressSelect->setValue('0'); $claimTypeList = array('' => '--- please select ---'); $claimTypesSelect = $pageForm->getSubForm('subform_previous-claims-form')->getElement('claim_type'); $claimTypes = new Datasource_Insurance_PreviousClaimTypes(); $claimTypeObjects = $claimTypes->getPreviousClaimTypes(Model_Insurance_ProductNames::LANDLORDSPLUS); foreach ($claimTypeObjects as $ClaimType) { $claimTypeList[$ClaimType->getClaimTypeID()] = $ClaimType->getClaimTypeText(); } $claimTypesSelect->setMultiOptions($claimTypeList); $pageForm->populate($formData); // Now fetch any claims we have already stored $claimsManager = new Manager_Insurance_Portfolio_PreviousClaims(); //$array = $claimsManager->fetchAllClaims($customerReferenceNumber); $this->view->claimsList = $claimsManager->fetchAllClaims($customerReferenceNumber); $pageForm->populate($formData); break; } } $this->view->stepNum = $stepNum; $this->view->stepMax = $this->_stepMax; $tooFarAhead = false; return true; }
public function isValid($formData = array()) { if (isset($formData['property_postcode']) && trim($formData['property_postcode']) != '') { $postcode = trim($formData['property_postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } $ins_address = $this->getElement('property_address'); $ins_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $ins_address->addValidator($validator, true); } // If a value for an address lookup is present, the house name or number is not required if (isset($formData['property_postcode'])) { $this->getElement('property_number_name')->setRequired(false); } // If a landline phone number is given, mobile is not mandatory if (isset($formData['phone_number']) && trim($formData['phone_number']) != '') { $this->getElement('mobile_number')->setRequired(false); } // If a mobile phone number is given, landline is not mandatory if (isset($formData['mobile_number']) && trim($formData['mobile_number']) != '') { $this->getElement('phone_number')->setRequired(false); } $result = parent::isValid($formData); $customerManager = new Manager_Core_Customer(); $customer = $customerManager->getCustomerByEmailAddress($formData['email']); if ($customer) { // Customer exists, error the form $this->email->addError('This email is already in use. Have you signed up before?')->markAsError(); return false; } else { return $result; } }
/** * Overridden isValid() method for pre-validation code * * @param array $formData data typically from a POST or GET request * * @return bool */ public function isValid($formData = array()) { $coverCount = 0; if (isset($formData['buildings_accidental_damage']) && $formData['buildings_accidental_damage'] == 1) { $coverCount++; $this->getElement('buildings_cover')->setRequired(true); } if (isset($formData['buildings_nil_excess']) && $formData['buildings_nil_excess'] == 1) { $coverCount++; $this->getElement('buildings_cover')->setRequired(true); } if (isset($formData['contents_accidental_damage']) && $formData['contents_accidental_damage'] == 1) { $coverCount++; $this->getElement('contents_cover')->setRequired(true); } if (isset($formData['contents_nil_excess']) && $formData['contents_nil_excess'] == 1) { $coverCount++; $this->getElement('contents_cover')->setRequired(true); } if (isset($formData['limited_contents']) && $formData['contents_cover'] > 0) { $coverCount++; $limitedContents = $this->getElement('limited_contents'); $limitedContentsValidator = new Zend_Validate_LessThan(array('max' => 1)); $limitedContentsValidator->setMessage(' Limited Contents cannot be selected with Full Contents', Zend_Validate_LessThan::NOT_LESS); $limitedContents->addValidator($limitedContentsValidator, true); } if (isset($formData['limited_contents']) && $formData['limited_contents'] == 1 || (isset($formData['contents_cover']) && $formData['contents_cover'] > 0 || isset($formData['buildings_cover']) && $formData['buildings_cover'] > 0)) { $coverCount++; } // Set up validation for Building cover maximun // value can be empty OR Greater Than 50k and refer after 1000k $buildingsCover = $this->getElement('buildings_cover'); $buildingsValidator = new Zend_Validate_GreaterThan(array('min' => 49999)); $buildingsValidator->setMessage('Buildings cover must be over £50000', Zend_Validate_GreaterThan::NOT_GREATER); $buildingsCover->addValidator($buildingsValidator, true); // Set up validation for contents cover maximun // value can be empty OR Greater Than 10k and refer after 60k $contentsCover = $this->getElement('contents_cover'); $contentsValidator = new Zend_Validate_GreaterThan(array('min' => 9999)); $contentsValidator->setMessage('Contents cover must be over £10000', Zend_Validate_GreaterThan::NOT_GREATER); $contentsCover->addValidator($contentsValidator, true); $formData['covercount'] = $coverCount; $covers = $this->getElement('covercount'); $optionsValidator = new Zend_Validate_GreaterThan(array('min' => 0)); $optionsValidator->setMessage("You have not selected a cover", Zend_Validate_GreaterThan::NOT_GREATER); $covers->addValidator($optionsValidator, true); // If a postcode is or was present, look it up and populate the allowed values of the associated dropdown if (isset($formData['ins_postcode']) && trim($formData['ins_postcode']) != '') { $postcode = trim($formData['ins_postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } $ins_address = $this->getElement('ins_address'); $ins_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $ins_address->addValidator($validator, true); } if (isset($formData['ins_address_postcode']) && $formData['ins_address_postcode'] != '') { $this->getElement('ins_postcode')->setRequired(false); $this->getElement('ins_address')->setRequired(false); } // Call original isValid() return parent::isValid($formData); }
public function forcePopulate($formData) { //Populate the form elements with data retrieved from the datasource, unless //the user has provided new datas. // $auth = Zend_Auth::getInstance(); // $auth->setStorage(new Zend_Auth_Storage_Session('homelet_customer')); // $session = $auth->getStorage()->read(); $session = new Zend_Session_Namespace('referencing_global'); $customerManager = new Manager_Referencing_Customer(); $customer = $customerManager->getCustomer($session->customerId); if (empty($formData['personal_title'])) { $formData['personal_title'] = $customer->getTitle(); } if (empty($formData['first_name'])) { $formData['first_name'] = $customer->getFirstName(); } if (empty($formData['last_name'])) { $formData['last_name'] = $customer->getLastName(); } if (empty($formData['property_postcode'])) { $formData['property_postcode'] = $customer->getPostCode(); } if (empty($formData['telephone_day'])) { $formData['telephone_day'] = $customer->getTelephone(Model_Core_Customer::TELEPHONE1); } if (empty($formData['fax_number'])) { $formData['fax_number'] = $customer->getFax(); } if (empty($formData['telephone_evening'])) { $formData['telephone_evening'] = $customer->getTelephone(Model_Core_Customer::TELEPHONE2); } if (empty($formData['email'])) { $formData['email'] = $customer->getEmailAddress(); } $postcode = new Manager_Core_Postcode(); $addresses = $postcode->getPropertiesByPostcode($formData['property_postcode']); $filterString = $customer->getAddressLine(1); $addressList = array(); $addressID = 0; foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; $cleanAddress = str_replace(",", "", $address['singleLineWithoutPostcode']); if (stripos($cleanAddress, $filterString) === 0) { $addressID = $address['id']; } } // Add some validation $property_address = $this->getElement('property_address'); $property_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $property_address->addValidator($validator, true); // Set the address to selected $property_address->setValue($addressID); //Allow Zend to complete the population process. $this->populate($formData); $this->property_address->setValue($addressID); }
public function isValid($formData = array()) { // If a postcode is or was present, look it up and populate the allowed values of the associated dropdown if (isset($formData['ins_postcode']) && trim($formData['ins_postcode']) != '') { $postcode = trim($formData['ins_postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } $ins_address = $this->getElement('ins_address'); $ins_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $ins_address->addValidator($validator, true); $landlordsRiskAreas = new Datasource_Insurance_LandlordsPlus_RiskAreas(); try { $landlordsRiskAreas = $landlordsRiskAreas->getByPostcode($formData['ins_postcode']); } catch (Datasource_Exception_PostcodeNotFoundException $e) { // Catch postcode not found exception and rethrow chained risk area not found exception throw new LandlordsInsuranceQuote_Form_Exception_RiskAreaNotFoundException($e->getMessage(), $e->getCode(), $e); } if ($landlordsRiskAreas['floodArea'] != '600') { $this->getElement('exclude_flood_cover')->setRequired(false); } } else { $this->getElement('exclude_flood_cover')->setRequired(false); } if (isset($formData['ins_postcode'])) { $this->getElement('ins_address')->setRequired(false); $formData['ins_address'] = null; } // Call original isValid() return parent::isValid($formData); }
private function validateSelect($set) { $validator = new Zend_Validate_InArray($set); $messages = array(Zend_Validate_InArray::NOT_IN_ARRAY => $this->translate('publish_validation_error_inarray_notinarray')); $validator->setMessages($messages); $validators[] = $validator; return $validators; }
/** * Helper function to populate the zend form elements with database data * * @param Zend_Form $pageForm form definition for this step * @param int $stepNum current step number * * @return void */ private function _formStepCommonPopulate($pageForm, $stepNum) { $pageSession = new Zend_Session_Namespace('tenants_insurance_quote'); // First of all check that this form should be viewable and the user isn't trying to skip ahead $this->view->stepNum = $stepNum; $this->view->stepMax = $this->_stepMax; // Check to see if the user is trying to skip ahead in the quote $tooFarAhead = false; if ((!isset($pageSession->completed) || is_null($pageSession->completed)) && $stepNum != 1) { $tooFarAhead = true; $lastCompleted = 1; } elseif ($stepNum > 1) { // Check to see if any pages previous to the one the user's trying to get to are incomplete $tooFarAhead = false; for ($i = 1; $i < $stepNum; $i++) { if (!isset($pageSession->completed[$i]) || !$pageSession->completed[$i]) { $tooFarAhead = true; $lastCompleted = $i; break; break; } } } if ($tooFarAhead) { // Drop user onto page that needs completing $this->_helper->redirector->gotoUrl('/tenants/insurance-quote-b/step' . $lastCompleted); return false; } // Now check to see if they need to login (using an existing email address without being logged in) if ($stepNum > 1) { // Before we do ANYTHING we need to check to see if the email address entered matches a customer record // we already have - if it does we need to ask them to login before they proceed. $customerReferenceNumber = $pageSession->CustomerRefNo; $customerManager = new Manager_Core_Customer(); $legacyCustomer = $customerManager->getCustomer(Model_Core_Customer::LEGACY_IDENTIFIER, $customerReferenceNumber); $emailAddress = $legacyCustomer->getEmailAddress(); $customer = $customerManager->getCustomerByEmailAddress($emailAddress); if ($customer) { // There is already a customer entry for this email address - so we need to see if they are logged in // if not we need to force them to login $auth = Zend_Auth::getInstance(); $auth->setStorage(new Zend_Auth_Storage_Session('homelet_customer')); /*if ($auth->hasIdentity()) { $loggedInEmail = $auth->getStorage()->read()->email_address; if ($loggedInEmail != $customer->getEmailAddress()) { // They are logged in but not who they should be to do this quote $this->_helper->redirector->gotoUrl('/account/login?refer=tenants-insurance&step='. $stepNum); return false; } } else { // They aren't logged in and need to $this->_helper->redirector->gotoUrl('/account/login?refer=tenants-insurance&step='. $stepNum); return false; }*/ } } // Echo out some debug info if not in production mode Application_Core_Logger::log("Policy Number : " . $this->_policyNumber); Application_Core_Logger::log("Customer Ref No : " . $this->_customerReferenceNumber); Application_Core_Logger::log("agentSchemeNumber : " . $this->_agentSchemeNumber); $formData = array(); // If step 1 and not in session (so producing a quick quote) - we need to pre-populate // a few bits if the customer is already logged into the site if ($stepNum == 1 && !isset($pageSession->CustomerRefNo)) { $auth = Zend_Auth::getInstance(); $auth->setStorage(new Zend_Auth_Storage_Session('homelet_customer')); if ($auth->hasIdentity()) { // Customer is logged in and starting a new quote - so we need to pre-populate the customers details from stored details $customerID = $auth->getStorage()->read()->id; $customerManager = new Manager_Core_Customer(); $customer = $customerManager->getCustomer(Model_Core_Customer::IDENTIFIER, $customerID); // Get the customer's legacy record too as DoB is only in the old system $legacyCustomer = $customerManager->getCustomer(Model_Core_Customer::LEGACY_IDENTIFIER, $customerID); $formData['title'] = $customer->getTitle(); $formData['first_name'] = $customer->getFirstName(); $formData['last_name'] = $customer->getLastName(); $formData['phone_number'] = $customer->getTelephone(Model_Core_Customer::TELEPHONE1); $formData['mobile_number'] = $customer->getTelephone(Model_Core_Customer::TELEPHONE2); $formData['email_address'] = $customer->getEmailAddress(); // Fetch DoB from old customer manager $formData['date_of_birth_at'] = $legacyCustomer->getDateOfBirth(); $pageForm->populate($formData); } } // Only populate from DB if we are in session and have a reference number if (isset($pageSession->CustomerRefNo)) { $customerReferenceNumber = $pageSession->CustomerRefNo; $policyNumber = $pageSession->PolicyNumber; // Populate $formData with data from model, if available switch ($stepNum) { case 1: // Personal Details section $customerManager = new Manager_Core_Customer(); $customer = $customerManager->getCustomer(Model_Core_Customer::LEGACY_IDENTIFIER, $customerReferenceNumber); $titleOptions = TenantsInsuranceQuoteB_Form_Subforms_PersonalDetails::$titles; if (in_array($customer->getTitle(), $titleOptions)) { $formData['title'] = $customer->getTitle(); } else { $formData['title'] = "Other"; $formData['other_title'] = $customer->getTitle(); } $formData['first_name'] = $customer->getFirstName(); $formData['last_name'] = $customer->getLastName(); $formData['phone_number'] = $customer->getTelephone(Model_Core_Customer::TELEPHONE1); $formData['mobile_number'] = $customer->getTelephone(Model_Core_Customer::TELEPHONE2); $formData['email_address'] = $customer->getEmailAddress(); $dob = $customer->getDateOfBirthAt(); if (null != $dob && '0000-00-00' != $dob) { $formData['date_of_birth_at'] = Application_Core_Utilities::mysqlDateToUk($dob); } // Data Protection section $dpaManager = new Manager_Core_DataProtection(); $dpaItems = $dpaManager->getItems($customerReferenceNumber, Model_Core_DataProtection_ItemEntityTypes::INSURANCE); foreach ($dpaItems as $currentItem) { switch ($currentItem->constraintTypeId) { case Model_Core_DataProtection_ItemConstraintTypes::MARKETING_BY_PHONEANDPOST: if ($currentItem->isAllowed) { $formData['dpa_phone_post'] = 0; } else { $formData['dpa_phone_post'] = 1; } break; case Model_Core_DataProtection_ItemConstraintTypes::MARKETING_BY_SMSANDEMAIL: if ($currentItem->isAllowed) { $formData['dpa_sms_email'] = 0; // For Redmine Ref #8003, "Updated marketing preference questions on online quotes" } else { $formData['dpa_sms_email'] = 1; // For Redmine Ref #8003, "Updated marketing preference questions on online quotes" } break; case Model_Core_DataProtection_ItemConstraintTypes::MARKETING_BY_THIRDPARTY: if ($currentItem->isAllowed) { $formData['dpa_resale'] = 1; } else { $formData['dpa_resale'] = 0; } break; } } // Contents Insurance section $quoteManager = new Manager_Insurance_TenantsContentsPlus_Quote(null, null, $this->_policyNumber); // If we've retrieved this quote we need to setup some session variables to match the quote (agent scheme number mostly) $session = new Zend_Session_Namespace('homelet_global'); $session->agentSchemeNumber = Manager_Core_Agent::filterAsn($quoteManager->getAgentSchemeNumber()); $contentsSI = $quoteManager->getCoverAmount(Manager_Insurance_TenantsContentsPlus_Quote::CONTENTS); // TODO: Remove the hard-coded contents insured splits - should be loaded from DB if ($contentsSI == '5000' || $contentsSI == '7500' || $contentsSI == '10000' || $contentsSI == '15000') { $formData['contents_cover_a'] = $contentsSI; } else { $formData['contents_cover_a'] = '15000+'; $formData['contents_cover_b'] = $contentsSI; } // Shares section $sharersManager = new Manager_Insurance_TenantsContentsPlus_Sharers(); $existingSharers = $sharersManager->getSharers($policyNumber); $formData['policy_sharers'] = 0; if ($existingSharers) { if ($existingSharers->getSharerOccupation(1) != '') { $formData['policy_sharers'] = 1; $formData['policy_sharer1_occupation'] = $existingSharers->getSharerOccupation(1); } if ($existingSharers->getSharerOccupation(2) != '') { $formData['policy_sharers'] = 2; $formData['policy_sharer2_occupation'] = $existingSharers->getSharerOccupation(2); } } for ($i = 1; $i <= $pageForm->maxSharers; $i++) { $formData["policy_sharer{$i}_occupation"] = $existingSharers->getSharerOccupation($i); } // Decide max number of sharers allowed based on contents insured value $contentsAmount = new Zend_Currency(array('value' => $contentsSI, 'precision' => 0)); $sharersAllowed = $sharersManager->getNoOfSharersAllowed($contentsAmount); // Push this into Javascript on the page $this->view->headScript()->appendScript("var sharersAllowed = {$sharersAllowed};"); // Initial Disclosure Agreement section // As we have a customer reference number they must have saved step 1 at some point which means // they must have agreed to the IDD section $formData['idd'] = 1; break; case 2: // Unspecified Possessions section $quoteManager = new Manager_Insurance_TenantsContentsPlus_Quote(null, null, $this->_policyNumber); $unspecSI = $quoteManager->getCoverAmount(Manager_Insurance_TenantsContentsPlus_Quote::UNSPECIFIEDPOSSESSIONS); // If step has been completed before we can assume some defaults that we'll over-write later if (isset($pageSession->completed[2]) && $pageSession->completed[2] == true or $quoteManager->getPropertyPostcode() != '') { $formData['away_from_home'] = 'no'; $formData['above_x'] = 'no'; $formData['bicycle'] = 'no'; } // TODO: Re-factor this so that it doesn't use hardcoded pricing breaks anymore if ($unspecSI > 0) { $formData['away_from_home'] = 'yes'; $formData['possessions_cover'] = $unspecSI; } //TODO: This should be talking to the quote manager NOT directly to the datasource $possessions = new Datasource_Insurance_Policy_SpecPossessions($pageSession->PolicyNumber); if ($possessions->countPossessions() > 0) { $formData['above_x'] = 'yes'; } // Bicycle section //TODO: This should be talking to the quote manager NOT directly to the datasource $bicycle = new Datasource_Insurance_Policy_Cycles($this->_customerReferenceNumber, $this->_policyNumber); if ($bicycle->countBikes() > 0) { $formData['bicycle'] = 'yes'; } break; case 3: // Insured Address section // Fetch previously stored address $quoteManager = new Manager_Insurance_TenantsContentsPlus_Quote(null, null, $this->_policyNumber); $addressArray = $quoteManager->getPropertyAddress(); if ($addressArray['postcode'] != '') { if (strpos($addressArray['address1'], ',') !== false) { $formData['ins_house_number_name'] = preg_replace('/,.*$/', '', $addressArray['address1']); } else { $formData['ins_house_number_name'] = preg_replace('/ .*$/', '', $addressArray['address1']); } $formData['ins_postcode'] = $addressArray['postcode']; // Look up address again to populate dropdown $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $formData['ins_postcode'])); $addressList = array('' => '--- please select ---'); $filterString = is_numeric($formData['ins_house_number_name']) ? $formData['ins_house_number_name'] . ", " : $formData['ins_house_number_name']; foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; if (stripos($address['singleLineWithoutPostcode'], $filterString) === 0) { $addressID = $address['id']; } } // Add some validation $ins_address = $pageForm->getSubForm('subform_insuredaddress')->getElement('ins_address'); $ins_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $ins_address->addValidator($validator, true); // Set the address to selected $ins_address->setValue($addressID); $addressID = null; // Make sure we don't use this again for the correspondance address! // Upsell Message section $pageSession = new Zend_Session_Namespace('tenants_insurance_quote'); $session = new Zend_Session_Namespace('homelet_global'); $agentSchemeNumber = $session->agentSchemeNumber; } // Correspondance Address section $customerManager = new Manager_Core_Customer(); $customer = $customerManager->getCustomer(Model_Core_Customer::LEGACY_IDENTIFIER, $this->_customerReferenceNumber); $addressLine1 = $customer->getAddressLine(Model_Core_Customer::ADDRESSLINE1); $addressPostcode = $customer->getPostCode(); if ($addressPostcode != '') { if (strpos($addressLine1, ',') !== false) { $formData['cor_house_number_name'] = preg_replace('/,.*$/', '', $addressLine1); } else { $formData['cor_house_number_name'] = preg_replace('/ .*$/', '', $addressLine1); } $formData['cor_postcode'] = $addressPostcode; // TODO: Surely if this postcode and house number matches the previous one // we can just tick the YES box and hide the correspondance address form?? $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $formData['cor_postcode'])); $addressList = array('' => '--- please select ---'); $filterString = is_numeric($formData['cor_house_number_name']) ? $formData['cor_house_number_name'] . ", " : $formData['cor_house_number_name']; foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; if (stripos($address['singleLineWithoutPostcode'], $filterString) === 0) { $addressID = $address['id']; } } $cor_address = $pageForm->getSubForm('subform_correspondencedetails')->getElement('cor_address'); $cor_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $cor_address->addValidator($validator, true); $cor_address->setValue($addressID); } if ($addressPostcode != '' && $addressArray['postcode'] != '') { if ($cor_address->getValue() == $ins_address->getValue()) { $formData['cor_same_address'] = 'yes'; } else { $formData['cor_same_address'] = 'no'; } } // Letting Agent section // If the agent scheme number is not our default one - load the agent details $params = Zend_Registry::get('params'); $agentSchemeNumber = Manager_Core_Agent::filterAsn($quoteManager->getAgentSchemeNumber()); // How did you hear about us section $marketQuestion = new Manager_Core_ManagementInformation(); $formData['how_hear'] = $marketQuestion->getMarketingAnswers($this->_policyNumber); //Campaign code section $webLeadManager = new Manager_Core_WebLead(); $webLeadSummary = $webLeadManager->getSummary($this->_webLeadSummaryId); $formData['campaign_code'] = $webLeadSummary->promotionCode; // Start and end date $startDate = $quoteManager->getStartDate(); if ($startDate != '' && $startDate != '0000-00-00') { $formData['policy_start'] = substr($startDate, 8, 2) . '/' . substr($startDate, 5, 2) . '/' . substr($startDate, 0, 4); } break; case 4: // Important Information section // If this page has previously passed validation, we know what the answers // given must have been without hitting the DB (as anything else refers) if (isset($pageSession->completed[$stepNum]) && $pageSession->completed[$stepNum]) { $formData['declaration1'] = 'no'; $formData['declaration2'] = 'no'; $formData['declaration3'] = 'no'; $formData['declaration4'] = 'no'; $formData['declaration_confirmation'] = 'yes'; // If the step is completed we can also assume they said yes to the declaration agreement $formData['declaration_statement'] = 1; } break; case 5: // Not sure if we should really be loading payment methods back in // surely it would be best to just let them choose again break; case 'dd': $quoteManager = new Manager_Insurance_TenantsContentsPlus_Quote(null, null, $this->_policyNumber); $this->view->payMonthly = strtolower($quoteManager->getPayBy()) == 'monthly'; break; } $pageForm->populate($formData); // Populate the quick quote box $quoteManager = new Manager_Insurance_TenantsContentsPlus_Quote(null, null, $this->_policyNumber); $premiums = $quoteManager->calculatePremiums(); $fees = $quoteManager->getFees(); $this->view->premiums = $premiums; $this->view->fees = $fees; } else { // Not in session but there are some defaults we need to set for step 1 // TODO: Write the javascript better so we don't need to do fudges like this $this->view->headScript()->appendScript("var sharersAllowed = 0;"); } return true; }
public function init() { $seccion = new Application_Model_Seccion(); $array = $seccion->listarSeccionesPeriodoActualActivos(); $include = new Application_Model_Includes(); //$q2a=$include->query2array($array, 'iSeccIdSeccion','vSeccDescripcion'); $q2a = $include->querytoeach($array, "iSeccIdSeccion"); $validator = new Zend_Validate_InArray($q2a); $validator->setHaystack($q2a); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Eliga una sección')); $this->setAction('/admin/agregaralumno')->setMethod('post')->setAttrib('id', 'formLogin')->setAttrib('enctype', 'multipart/form-data'); $nombreusuario = $this->createElement('text', 'nombreusuario', array('label' => 'Nombre del Usuario', 'placeholder' => 'Máximo 25 caracteres')); $nombreusuario->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('alpha')->addValidator('stringLength', false, array(5, 25, 'messages' => "Entre 5 y 25 caracteres"))->setRequired(true)->addFilter("StringToUpper"); $nombreusuario->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $clave = $this->createElement('password', 'clave', array('label' => 'Contraseña')); $clave->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addFilter('alnum', array('allowwhitespace' => true))->addValidator('stringLength', false, array(5, 20, 'messages' => "Entre 5 y 20 caracteres"))->setRequired(true)->addFilter("StringToUpper"); $clave->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $email = $this->createElement('text', 'email', array('label' => 'Direccion de Correo', 'placeholder' => '*****@*****.**')); $email->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('regex', true, array('patern' => '/^[(a-zA-Z0-9@)].+$/', array('regexNotMatch' => 'Solo Letras y numeros')))->addValidator('stringLength', false, array(5, 100, 'messages' => "Entre 5 y 100 caracteres"))->setRequired(true)->addFilter("StringToUpper"); $email->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $dni = $this->createElement('text', 'dni', array('label' => 'Numero Dni', 'placeholder' => '8 Dígitos')); $dni->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('regex', true, array('patern' => '/^[(0-9)]+$/', array('regexNotMatch' => 'Solo Numeros')))->addValidator('stringLength', false, array(8, 8, 'messages' => "DNI se Compone e 8 Carateres"))->setRequired(true)->addFilter("StringTrim"); $dni->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $dniapo = $this->createElement('text', 'dniapo', array('label' => 'DNI Apoderado', 'disabled' => true)); $dniapo->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('regex', true, array('patern' => '/^[(0-9)]+$/', array('regexNotMatch' => 'Solo Numeros')))->addValidator('stringLength', false, array(8, 8, 'messages' => "DNI se Compone e 8 Carateres"))->addFilter("StringTrim"); $dniapo->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $nombreapo = $this->createElement('text', 'nombreapo', array('label' => 'Nombre del Apoderado', 'disabled' => true)); $nombreapo->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('regex', true, array('patern' => '/^[(a-z A-Z)]+$/', array('regexNotMatch' => 'Solo Letras')))->addValidator('stringLength', false, array(2, 150, 'messages' => "Entre 2 y 150 caracteres"))->addFilter("StringToUpper")->addFilter("StringTrim"); $nombreapo->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $idapoderado = $this->createElement('text', 'idapoderado', array('label' => 'Id del Apoderado', 'disabled' => true)); $idapoderado->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('regex', true, array('patern' => '/^[(0-9)]+$/', array('regexNotMatch' => 'Solo Numeros')))->addValidator('stringLength', false, array(1, 8, 'messages' => "Elegir DNI"))->addFilter("StringTrim"); $idapoderado->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); // creating object for Zend_Form_Element_File $doc_file = new Zend_Form_Element_File('foto'); $doc_file->setLabel('Foto: ')->setRequired(true)->setDestination('main/fotos')->addValidator('Extension', false, 'jpg,png,gif')->addValidator('Size', false, 5120000); //5Mb $doc_file->setDecorators(array(array('Description', array('tag' => 'p', 'class' => 'description', 'escape' => false)), array('File'), array('Errors'), array('HtmlTag', array('tag' => 'div')), array('Label'))); $nombre = $this->createElement('text', 'nombre', array('label' => 'Nombre ')); $nombre->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('stringLength', false, array(2, 150, 'messages' => "Entre 2 y 150 caracteres"))->setRequired(true)->addFilter("StringToUpper")->addFilter('alpha', array('allowwhitespace' => true))->addFilter("StringTrim"); $nombre->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $appaterno = $this->createElement('text', 'appaterno', array('label' => 'Apellido Paterno ')); $appaterno->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('stringLength', false, array(2, 150, 'messages' => "Entre 2 y 150 caracteres"))->setRequired(true)->addFilter("StringToUpper")->addFilter('alpha', array('allowwhitespace' => true))->addFilter("StringTrim"); $appaterno->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $apmaterno = $this->createElement('text', 'apmaterno', array('label' => 'Apellido Materno ')); $apmaterno->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo Requerido')))->addValidator('stringLength', false, array(2, 150, 'messages' => "Entre 2 y 150 caracteres"))->setRequired(true)->addFilter("StringToUpper")->addFilter('alpha', array('allowwhitespace' => true))->addFilter("StringTrim"); $apmaterno->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $btnregistrar = $this->createElement('submit', 'registrar', array('label' => 'Registrar')); $btnregistrar->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')))); $btnapoderado = $this->createElement('button', 'buscar', array('label' => 'Buscar Apoderado', 'onclick' => 'buscaapoderado();')); $btnapoderado->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')))); $gradosactuales = new Application_Model_Grado(); $includes = new Application_Model_Includes(); $arraygrados = $gradosactuales->listarGradosActivos(); $arraygradostoarray = $includes->query2array($arraygrados, 'iGradoIdGrado', 'vGradoDescripcion'); $grado = $this->createElement('select', 'cbogrado', array('label' => 'Grado', 'autocomplete' => false, 'multiOptions' => $arraygradostoarray, 'onChange' => 'cargarseccion();')); $grado->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $seccion = $this->createElement('select', 'cboseccion', array('label' => 'Seccion', 'multiOptions' => array("0" => "Seleccionar Sección"))); $seccion->addValidator($validator); $seccion->addValidator('notEmpty', true, array('messages' => array('isEmpty' => 'Campo requerido'))); $seccion->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $sexo = $this->createElement('radio', 'sexo', array('value' => 'M', 'checked' => 'true', 'Label' => 'Sexo')); $sexo->addMultiOptions(array('M' => 'Masculino', 'F' => 'Femenino')); $sexo->setDecorators(array('ViewHelper', 'Description', 'Errors', array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div')), array(array('td' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')))); $idapo = $this->createElement('hidden', 'idapo'); $this->addElement($btnapoderado)->addElement($idapo)->addElement($idapoderado)->addElement($nombreapo)->addElement($dniapo)->addElement($grado)->addElement($seccion)->addElement($nombre)->addElement($appaterno)->addElement($apmaterno)->addElement($sexo)->addElement($doc_file)->addElement($dni)->addElement($email)->addElement($nombreusuario)->addElement($clave)->addElement($btnregistrar); }
public function isValid($formData = array()) { if (isset($formData['property_postcode']) && trim($formData['property_postcode']) != '') { $postcode = trim($formData['property_postcode']); $postcodeLookup = new Manager_Core_Postcode(); $addresses = $postcodeLookup->getPropertiesByPostcode(preg_replace('/[^\\w\\ ]/', '', $postcode)); $addressList = array('' => '--- please select ---'); foreach ($addresses as $address) { $addressList[$address['id']] = $address['singleLineWithoutPostcode']; } $ins_address = $this->getElement('property_address'); $ins_address->setMultiOptions($addressList); $validator = new Zend_Validate_InArray(array('haystack' => array_keys($addressList))); $validator->setMessages(array(Zend_Validate_InArray::NOT_IN_ARRAY => 'Insured address does not match with postcode')); $ins_address->addValidator($validator, true); } // If a value for an address lookup is present, the house name or number is not required if (isset($formData['property_postcode'])) { $this->getElement('property_number_name')->setRequired(false); } if (isset($formData['cancel_future_employment']) && $formData['cancel_future_employment'] == 1) { $this->getElement('company_name')->setRequired(false); $this->getElement('contact_name')->setRequired(false); $this->getElement('contact_position')->setRequired(false); $this->getElement('property_number_name')->setRequired(false); $this->getElement('property_postcode')->setRequired(false); $this->getElement('property_address')->setRequired(false); $this->getElement('telephone_number')->setRequired(false); $this->getElement('email')->setRequired(false); $this->getElement('income')->setRequired(false); $this->getElement('reference_number')->setRequired(false); $this->getElement('position')->setRequired(false); $this->getElement('is_permanent')->setRequired(false); $this->getElement('tenancy_start_date')->setRequired(false); } return parent::isValid($formData); }