示例#1
0
 /**
  * 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());
 }
示例#2
0
 /**
  * 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;
 }