/** * Process a csv file */ public function csvprocessAction() { if ($this->getRequest()->isPost()) { $session = new Zend_Session_Namespace('csv'); $fields = $_POST['field']; $skipped = false; $validateEmpty = new Zend_Validate_NotEmpty(); $validateAlnum = new Zend_Validate_Alnum(); $error = array(); foreach ($session->data as $contact) { if (isset($_POST['discard_first_row']) && $_POST['discard_first_row'] == "on" && $skipped == false) { $skipped = true; continue; } $contactData = array("ds_name" => "", "ds_address" => "", "ds_city" => "", "ds_state" => "", "ds_cep" => "", "ds_phone" => "", "ds_cell_phone" => "", "id_contact_group" => ""); $addEntry = true; foreach ($contact as $column => $data) { if ($fields[$column] != "discard") { if ($fields[$column] == "ds_name" || $fields[$column] == "ds_state" || $fields[$column] == "ds_city") { $contactData[$fields[$column]] = substr($data, 0, 80); } elseif ($fields[$column] == "ds_phone" || $fields[$column] == "ds_cell_phone") { $contactData[$fields[$column]] = substr($data, 0, 15); } elseif ($fields[$column] == "ds_address") { $contactData[$fields[$column]] = substr($data, 0, 100); } elseif ($fields[$column] == "ds_cep") { $contactData[$fields[$column]] = substr($data, 0, 8); } } } $contactData['id_contact_group'] = $_POST['group']; if (!array_key_exists('ds_name', $contactData) || !$validateEmpty->isValid($contactData['ds_name'])) { $addEntry = false; $error[] = $contactData; } else { if ((!array_key_exists('ds_phone', $contactData) || !$validateEmpty->isValid($contactData['ds_phone'])) && (!array_key_exists('ds_cell_phone', $contactData) || !$validateEmpty->isValid($contactData['ds_cell_phone']))) { $addEntry = false; $error[] = $contactData; } } if ($addEntry) { $contact = new Snep_Contacts_Manager(); $contact->insert($contactData); } } if (count($error) > 0) { $errorString = $this->view->translate('The following entries of the CSV file have null data:<br/>'); foreach ($error as $value) { $errorString .= implode(',', $value) . '<br/>'; } throw new ErrorException($errorString); } } $this->_redirect($this->getRequest()->getControllerName()); }
/** * Migrate contacts to other Contact Group */ public function migrationAction() { $this->view->breadcrumb = Snep_Breadcrumb::renderPath(array($this->view->translate("Manage"), $this->view->translate("Contact Group"), $this->view->translate("Migrate Contacts"))); $id = $this->_request->getParam('id'); $groupAll = new Snep_ContactGroups_Manager(); $_allGroups = $groupAll->fetchAll(); foreach ($_allGroups as $group) { if ($group['id_contact_group'] != $id) { $allGroups[$group['id_contact_group']] = $group['ds_name']; } } Zend_Registry::set('cancel_url', $this->getFrontController()->getBaseUrl() . '/' . $this->getRequest()->getControllerName() . '/index'); $form = new Snep_Form(new Zend_Config_Xml("modules/default/forms/contact_groups_migration.xml")); $form->setAction($this->getFrontController()->getBaseUrl() . '/contact-groups/migration/stage/2'); if (isset($allGroups)) { $form->getElement('group')->setMultiOptions($allGroups); $form->getElement('option')->setMultiOptions(array('migrate' => 'migrate contacts to group', 'remove' => 'remove all'))->setValue('migrate'); } else { $form->removeElement('group'); $form->getElement('option')->setMultiOptions(array('remove' => 'remove all')); } $this->view->message = $this->view->translate("The excluded group has associated contacts."); $form->getElement('id')->setValue($id); $stage = $this->_request->getParam('stage'); if (isset($stage['stage']) && $id) { if ($_POST['option'] == 'migrate') { $obj = new Snep_Contacts_Manager(); $select = $obj->select()->where('id_contact_group = ?', $id); $contacts = $obj->fetchAll($select)->toarray(); $idGroup = $_POST['group']; $dadosUpdate = array('id_contact_group' => $idGroup); foreach ($contacts as $contactselect) { $idContact = $contactselect['id_contact']; $obj->update($dadosUpdate, "id_contact = {$idContact}"); } $groupAll->delete("id_contact_group ={$id}"); } elseif ($_POST['option'] == 'remove') { $obj = new Snep_Contacts_Manager(); $select = $obj->select()->where('id_contact_group = ?', $id); $contacts = $obj->fetchAll($select)->toArray(); foreach ($contacts as $contact) { $idContact = $contact['id_contact']; $obj->delete("id_contact = {$idContact}"); } $groupAll->delete("id_contact_group ={$id}"); } $this->_redirect($this->getRequest()->getControllerName()); } $this->view->form = $form; }