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"); }
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"); } }