public function update($uuid, $params) { $this->authenticate(); $form = new Api_Form_CustomerForm(array('action' => '#', 'method' => 'post')); if (array_key_exists('countrycode', $params)) { $country_id = Countries::getIDbyCode($params['countrycode']); if ($country_id == null) { throw new Shineisp_Api_Exceptions(400005, ":: 'countrycode' not valid"); exit; } unset($params['coutrycode']); $params['country_id'] = $country_id; } if (array_key_exists('provincecode', $params) && $params['provincecode'] != "") { $params['area'] = $params['provincecode']; unset($params['provincecode']); } if ($form->isValid($params)) { if ($params['status'] == false) { $params['status'] = 'disabled'; } $customer = Customers::findWithUuid($uuid); if (empty($customer)) { return false; } $customerid = $customer['customer_id']; // $data = explode('/', $params['birthdate']); // list( $gg, $mm, $yyyy ) = $data; // $params['birthdate'] = $yyyy.'-'.$mm.'-'.$gg; foreach ($customer as $name => &$value) { if (array_key_exists($name, $params)) { $value = $params[$name]; } } $fields = $params; unset($fields['address']); unset($fields['contact']); Customers::saveAll($customerid, $fields); $address = array(); $address['address'] = $params['address']; $address['city'] = $params['city']; $address['code'] = $params['code']; $address['area'] = $params['area']; $address['region_id'] = $params['regionid']; $address['country_id'] = $params['country_id']; $address['customer_id'] = $customerid; if ($params['addressid'] != 0) { Addresses::AddNew($address, $params['addressid']); } else { Addresses::AddNew($address); } if (array_key_exists('contacts', $params) && !empty($params['contacts'])) { foreach ($params['contacts'] as $contact) { if ($contact['contact'] == "") { continue; } $c = array(); $c['contact'] = $contact['contact']; $c['type_id'] = $contact['contacttypes']; $c['customer_id'] = $customerid; if (intval($contact['idcontact']) != 0) { Contacts::AddNew($c, intval($contact['idcontact'])); } else { Contacts::AddNew($c); } } } return true; } else { $errors = $form->getMessages(); $message = ""; foreach ($errors as $field => $errorsField) { $message .= "Field '{$field}'<br/>"; foreach ($errorsField as $error => $describe) { $message .= " => {$error} ({$describe})"; } } throw new Shineisp_Api_Exceptions(400004, ":\n{$message}"); exit; } }
/** * processAction * Update the record previously selected * @return unknown_type */ public function processAction() { $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector'); $form = $this->getForm("/admin/customers/process"); // Add the customer custom attributes $form = CustomAttributes::getElements($form); $request = $this->getRequest(); // Create the buttons in the edit form $this->view->buttons = array(array("url" => "#", "label" => $this->translator->translate('Save'), "params" => array('css' => null, 'id' => 'submit')), array("url" => "/admin/customers/list", "label" => $this->translator->translate('List'), "params" => array('css' => null)), array("url" => "/admin/customers/new/", "label" => $this->translator->translate('New'), "params" => array('css' => null))); try { // Check if we have a POST request if (!$request->isPost()) { return $this->_helper->redirector('list', 'customers', 'admin'); } if ($form->isValid($request->getPost())) { $params = $request->getPost(); $area = intval($params['area']); if ($area != 0) { $province = Provinces::find($area); $area = $province->code; $params['area'] = $area; } $id = Customers::saveAll($params, $request->getParam('customer_id')); CustomAttributes::saveElementsValues($form->getSubForm('attributes')->getValues(), $request->getParam('customer_id'), "customers"); $this->_helper->redirector('edit', 'customers', 'admin', array('id' => $id, 'mex' => $this->translator->translate('The task requested has been executed successfully.'), 'status' => 'success')); } else { $this->view->form = $form; $this->view->title = $this->translator->translate("Customer details"); $this->view->description = $this->translator->translate("Here you can edit the customer details."); return $this->render('applicantform'); } } catch (Exception $e) { $this->_helper->redirector('edit', 'customers', 'admin', array('id' => $id, 'mex' => $e->getMessage(), 'status' => 'danger')); } }