private function deleteOrganizationDB($id, &$idcode)
 {
     $dGroup = true;
     $pACL = new paloACL($this->_DB);
     $error = "";
     if (!preg_match("/^[0-9]+\$/", $id)) {
         $this->errMsg = _tr("Inavlid Organization");
         return false;
     } elseif ($id == 1) {
         //la organization con id 1 corresponde a la organizacion que viene por default en asterisk
         //esta no puede ser borrada
         $this->errMsg = _tr("Inavlid Organization");
         return false;
     }
     $numUsers = $this->getNumUserByOrganization($id);
     $arrOrgz = $this->getOrganizationById($id);
     if (is_array($arrOrgz) && count($arrOrgz) > 0) {
         $name = $arrOrgz['name'];
         $domain = $arrOrgz['domain'];
         $code = $arrOrgz['code'];
         $idcode = $arrOrgz['idcode'];
         $error = _tr("Organization domain: ") . "{$domain} Err:";
         if ($numUsers === false) {
             //ahi un error en la conexion
             $this->errMsg = $error . "ct" . $this->_DB->errMsg;
             return false;
         } else {
             if ($arrOrgz['state'] != "terminate") {
                 $this->errMsg = $error . _tr("Organization state != 'Terminate'");
                 return false;
             }
             $this->_DB->beginTransaction();
             //registramos en el servidor que la organizacion ha sido borrada
             if (!$this->orgHistoryRegister("delete", $arrOrgz['idcode'])) {
                 $this->errMsg = $error . $this->errMsg;
                 $this->_DB->rollBack();
                 return false;
             }
             //registramos en el servidor que la organizacion ha sido borrada
             if (!$this->registerEvent("delete", $arrOrgz['idcode'])) {
                 $this->errMsg = $error . $this->errMsg;
                 $this->_DB->rollBack();
                 return false;
             }
             //borramos los archivos del configuracion de faxes de los usuarios pertenecientes a la organizacion
             $bExito = $this->deleteFaxsByOrg($id);
             if (!$bExito) {
                 $this->errMsg = $error . _tr("Faxes couldn't be deleted.") . " " . $this->errMsg;
                 $this->_DB->rollBack();
                 return false;
             }
             //borramos la organizacion de asterisk
             $pAstConf = new paloSantoASteriskConfig($this->_DB);
             //TODO: setear backup de astDB de la organizaiona ntes de proseguir para
             //poder restaurar estos valores en caso de que algo salga mal
             if (!$pAstConf->deleteOrganizationPBX($domain, $code)) {
                 $this->errMsg .= $error . $pAstConf->errMsg . " " . $this->errMsg;
                 $this->_DB->rollBack();
                 return false;
             }
             // se borra la organización en kamailio
             if (!$this->_DB->genQuery('DELETE FROM kamailio.domain WHERE domain = ?', array($domain))) {
                 $this->errMsg = $error . $this->_DB->errMsg;
                 $this->_DB->rollBack();
                 return false;
             }
             //borramos la organization
             //la base esta en mysql y todas las tablas relacionadas a la organizacion
             //tiene referencia a la tabla organization y tienen un constraint delete cascade
             $query = "DELETE FROM organization WHERE id = ?";
             $result = $this->_DB->genQuery($query, array($id));
             if ($result == FALSE) {
                 //no se puede eliminar la organizacion
                 $this->errMsg = $error . $this->_DB->errMsg;
                 $this->_DB->rollBack();
                 return false;
             }
             //borramos los buzones de correo de los usuarios pertencientes a la organizacion
             //esto se hace al ultimo porque en caso de que algo salga mal no tener que restaurar lso correos
             $bExito = $this->deleteAccountByDomain($domain);
             if (!$bExito) {
                 $this->errMsg = _tr("Mailbox couldn't be deleted.") . " " . $this->errMsg;
                 $this->_DB->rollBack();
                 return false;
             } else {
                 $this->_DB->commit();
                 $this->errMsg .= $domain;
                 //regresa el dominio de la organizacion que se elimino
                 return true;
             }
         }
     } else {
         $this->errMsg = _tr("Organization doesn't exist. Id: ") . $id;
         return false;
     }
 }