Ejemplo n.º 1
0
 public function deleteAction()
 {
     $db = Zend_Registry::get('db');
     $id = $this->_request->getParam("id");
     // Fazendo procura por referencia a esse ramal em regras de negócio.
     $rulesQuery = "SELECT id, `desc` FROM regras_negocio WHERE origem LIKE '%R:{$id}%' OR destino LIKE '%R:{$id}%'";
     $rules = $db->query($rulesQuery)->fetchAll();
     $rulesQuery = "SELECT rule.id, rule.desc FROM regras_negocio as rule, regras_negocio_actions_config as rconf WHERE (rconf.regra_id = rule.id AND rconf.value = '{$id}')";
     $rules = array_merge($rules, $db->query($rulesQuery)->fetchAll());
     if (count($rules) > 0) {
         $errMsg = $this->view->translate('The following routes use this extension, modify them prior to remove this extension') . ":<br />\n";
         foreach ($rules as $regra) {
             $errMsg .= $regra['id'] . " - " . $regra['desc'] . "<br />\n";
         }
         $this->view->error = $errMsg;
         $this->view->back = $this->view->translate("Back");
         $this->_helper->viewRenderer('error');
     }
     $sql = "DELETE FROM peers WHERE name='" . $id . "'";
     $db->beginTransaction();
     $stmt = $db->prepare($sql);
     $stmt->execute();
     $sql = "delete from voicemail_users where customer_id='{$id}'";
     $stmt = $db->prepare($sql);
     $stmt->execute();
     try {
         $db->commit();
     } catch (PDOException $e) {
         $db->rollBack();
         $this->view->error = $this->view->translate("DB Delete Error: ") . $e->getMessage();
         $this->view->back = $this->view->translate("Back");
         $this->_helper->viewRenderer('error');
     }
     $return = Snep_InterfaceConf::loadConfFromDb();
     if ($return != true) {
         $this->view->error = $return;
         $this->view->back = $this->view->translate("Back");
         $this->_helper->viewRenderer('error');
     }
     $this->_redirect("default/extensions");
 }
Ejemplo n.º 2
0
 public function removeAction()
 {
     $db = Zend_Registry::get('db');
     $id = $this->_request->getParam("id");
     $name = $this->_request->getParam("name");
     $rules_query = "SELECT id, `desc` FROM regras_negocio WHERE origem LIKE '%T:{$id},%' OR destino LIKE '%T:{$id},%'";
     $regras = $db->query($rules_query)->fetchAll();
     $rules_query = "SELECT rule.id, rule.desc FROM regras_negocio as rule, regras_negocio_actions_config as rconf WHERE (rconf.regra_id = rule.id AND rconf.value = '{$id}' AND (rconf.key = 'tronco' OR rconf.key = 'trunk'))";
     foreach ($db->query($rules_query)->fetchAll() as $rule) {
         if (!in_array($rule, $regras)) {
             $regras[] = $rule;
         }
     }
     if (count($regras) > 0) {
         $this->view->error = $this->view->translate("Cannot remove. The following routes are using this trunk: ") . "<br />";
         foreach ($regras as $regra) {
             $this->view->error .= $regra['id'] . " - " . $regra['desc'] . "<br />\n";
         }
         $this->_helper->viewRenderer('error');
     } else {
         $db->beginTransaction();
         $sql = "DELETE FROM trunks WHERE id='{$id}'";
         $db->exec($sql);
         $sql = "DELETE FROM peers WHERE name='{$name}'";
         $db->exec($sql);
         $db->commit();
         Snep_InterfaceConf::loadConfFromDb();
         $this->_redirect("trunks");
     }
 }