/** * Process Modify Client Employment */ public function processModifyClientEmploymentAction() { $spouseEmployment = null; $return = array(); if (!$this->_request->isXmlHttpRequest() || !$this->_request->isPost()) { $this->_redirect('/admin/clients/'); } $formData = $this->_request->getParams(); $clientId = $formData['client']['client_id']; if (!$formData['spouse']) { $spouseEmployment = $formData['client']['spouseEmployment']; } unset($formData['client']['spouseEmployment']); //Create Client Employment Gateway $clientEmploymentGateway = new Clients_Model_ClientEmploymentGateway(); //Check Client Employment data to determine if Create or Modify if ($formData['client']['client_employment_id']) { $clientForm = $clientEmploymentGateway->getForm('ModifyClientEmployment')->getSubForm('client'); $validClientForm = $clientForm->isValid($formData['client']); } else { $clientForm = $clientEmploymentGateway->getForm('CreateClientEmployment')->getSubForm('client'); $validClientForm = $clientForm->isValid($formData['client']); } if ($formData['spouse'] || $spouseEmployment) { if ($formData['spouse'] && $formData['spouse']['client_employment_id']) { $spouseForm = $clientEmploymentGateway->getForm('ModifyClientEmployment')->getSubForm('spouse'); $validSpouseForm = $spouseForm->isValid($formData['spouse']); $spouseData = $spouseForm->getValues(); } elseif (!$spouseEmployment && $formData['spouse']) { $spouseForm = $clientEmploymentGateway->getForm('CreateClientEmployment')->getSubForm('spouse'); $validSpouseForm = $clientForm->isValid($formData['spouse']); $spouseData = $spouseForm->getValues(); } elseif ($spouseEmployment) { // retrieve spouse id $clientGateway = new Clients_Model_ClientGateway(); $spouseId = $clientGateway->fetchClientSpouseId($clientId); if ($spouseId) { $spouseForm = $clientEmploymentGateway->getForm('CreateClientEmployment')->getSubForm('spouse'); $spouseData['spouse']['client_id'] = $spouseId; $validSpouseForm = true; } } if (!$validSpouseForm) { $return['formErrors'] = $this->_errorFormatter->formatErrors($spouseForm->getMessages()); } } // Check the form for validity if (!$validClientForm || $return['formErrors']) { if (!$validClientForm && $return['formErrors']) { $return['formErrors'] = array_merge($this->_errorFormatter->formatErrors($clientForm->getMessages()), $return['formErrors']); } elseif ($return['formErrors']) { $return['formErrors'] = array_merge($this->_errorFormatter->formatErrors($clientForm->getMessages()), $return['formErrors']); } else { $return['formErrors'] = $this->_errorFormatter->formatErrors($clientForm->getMessages()); } $return['formResult'] = FALSE; } else { $clientData = $clientForm->getValues(); unset($clientData['client']['spouseEmployment']); $clientEmployment = $clientEmploymentGateway->create($clientData['client']); $clientEmployment->save(); //If spouse form save spouse employment data if ($validSpouseForm) { $clientSpouseEmployment = $clientEmploymentGateway->create($spouseData['spouse']); $clientSpouseEmployment->save(); } $flashMessenger = $this->_helper->getHelper('FlashMessenger'); $flashMessenger->setNamespace('notifications')->addMessage('Client Employment Updated'); if ($this->_request->getParam('close') == 1) { $return['redirect']['location'] = '/admin/clients/'; } else { $return['redirect']['location'] = '/admin/clients/modify/employment/' . $clientId; } } $this->_helper->json->sendJson($return); }