Пример #1
0
 function procesarValorCampos($caller_id, $pDB, &$numActualizados, &$numInsertados)
 {
     $SQLConsultaCallerId = 'select * from dont_call where caller_id=' . paloDB::DBCAMPO($caller_id);
     $resConsultaCallerId = $pDB->fetchTable($SQLConsultaCallerId, true);
     if (!count($resConsultaCallerId) > 0) {
         $sPeticionSQL = paloDB::construirInsert("dont_call", array("caller_id" => paloDB::DBCAMPO($caller_id), "date_income" => paloDB::DBCAMPO(date('Y-m-d H-i-s')), "status" => paloDB::DBCAMPO('I')));
         $result = $pDB->genQuery($sPeticionSQL);
         if (!$result) {
             $this->guardarMensaje("Error al ingresar el registro");
         } else {
             $numInsertados++;
         }
     }
 }
Пример #2
0
 /**
  * Procedimiento para modificar el rate con el prefix 
  *
  * @param string    $prefix       prefix para el rate
  * @param string    $name         nombre para el rate
  * @param string    $rate         rate
  * @param string    $rate_offset  rate_offset
  * @param string    $trunk        trunk
  *
  * @return bool VERDADERO si se ha modificar correctamente el usuario, FALSO si ocurre un error.
  */
 function updateRate($id_rate, $prefix, $name, $rate, $rate_offset, $trunk)
 {
     $bExito = FALSE;
     if (!preg_match("/^[[:digit:]]+\$/", "{$id_rate}")) {
         $this->errMsg = "Rate ID is not valid";
     } else {
         //modificar rate
         $sPeticionSQL = paloDB::construirUpdate("rate", array("name" => paloDB::DBCAMPO($name), "rate" => paloDB::DBCAMPO($rate), "rate_offset" => paloDB::DBCAMPO($rate_offset), "trunk" => paloDB::DBCAMPO($trunk)), array("id" => $id_rate));
         if ($this->_DB->genQuery($sPeticionSQL)) {
             $bExito = TRUE;
         } else {
             $this->errMsg = $this->_DB->errMsg;
         }
     }
     return $bExito;
 }
Пример #3
0
 /**
  * Procedimiento para crear un nuevo menu 
  *
  * @param string    $id       
  * @param string    $name   
  * @param string    $id_parent       
  * @param string    $type         
  * @param string    $link  
  * @param string    $order
  *
  * @return bool     VERDADERO si el menu se crea correctamente, FALSO en error
  */
 function createMenu($id, $name, $id_parent, $type = 'module', $link = '', $order = -1)
 {
     $bExito = FALSE;
     if ($id == "" && $name == "") {
         $this->errMsg = "ID and module name can't be empty";
     } else {
         //verificar que no exista el mismo menu
         $sPeticionSQL = "SELECT id FROM menu " . " WHERE id = '{$id}' AND Name='{$name}' AND IdParent='{$id_parent}'";
         $arr_result =& $this->_DB->fetchTable($sPeticionSQL);
         if (is_array($arr_result) && count($arr_result) > 0) {
             $bExito = FALSE;
             $this->errMsg = "Menu already exists";
         } else {
             if ($order != -1) {
                 $sPeticionSQL = paloDB::construirInsert("menu", array("id" => paloDB::DBCAMPO($id), "Name" => paloDB::DBCAMPO($name), "Type" => paloDB::DBCAMPO($type), "Link" => paloDB::DBCAMPO($link), "IdParent" => paloDB::DBCAMPO($id_parent), "order_no" => paloDB::DBCAMPO($order)));
             } else {
                 $sPeticionSQL = paloDB::construirInsert("menu", array("id" => paloDB::DBCAMPO($id), "Name" => paloDB::DBCAMPO($name), "Type" => paloDB::DBCAMPO($type), "Link" => paloDB::DBCAMPO($link), "IdParent" => paloDB::DBCAMPO($id_parent)));
             }
             if ($this->_DB->genQuery($sPeticionSQL)) {
                 $bExito = TRUE;
             } else {
                 $this->errMsg = $this->_DB->errMsg;
             }
         }
     }
     return $bExito;
 }
Пример #4
0
 /**
  * Procedimiento que agrega números a una campaña existente. La lista de
  * números consiste en un arreglo de tuplas, cuyo elemento __PHONE_NUMBER
  * es el número de teléfono, y el resto de claves es el conjunto clave->valor
  * a guardar en la tabla call_attribute para cada llamada
  *
  * @param int $idCampaign   ID de Campaña
  * @param array $listaNumeros   Lista de números como se describe arriba
  *      array('__PHONE_NUMBER' => '1234567', 'Name' => 'Fulano de Tal', 'Address' => 'La Conchinchina')
  *
  * @return bool VERDADERO si todos los números fueron insertados, FALSO en error
  */
 function addCampaignNumbers($idCampaign, $listaNumeros)
 {
     $bExito = FALSE;
     if (!ereg('^[[:digit:]]+$', $idCampaign)) {
         $this->errMsg = 'ID de campaña no es numérico';
     } elseif (!is_array($listaNumeros)) {
         $this->errMsg = 'Lista de números tiene que ser un arreglo';
     } else {
         $bContinuar = TRUE;
         $listaValidada = array();
         // Se usa copia porque tupla se modifica en validación
         // Verificar si todos los elementos son de max. 4 parametros y son
         // todos numéricos o NULL
         if ($bContinuar) {
             foreach ($listaNumeros as $tuplaNumero) {
                 /*
                         			if (count($tuplaNumero) < 1) {
                         				$this->errMsg = "Encontrado elemento sin número telefónico";
                         				$bContinuar = FALSE;
                         			} elseif (!ereg('^[[:digit:]]+$', $tuplaNumero[0])) {
                         				$this->errMsg = "Teléfono encontrado que no es numerico";
                         				$bContinuar = FALSE;
                         			} elseif (count($tuplaNumero) > 1 + 4) {
                 						$this->errMsg = "Para teléfono $tuplaNumero[0]: implementación actual soporta máximo 4 parámetros";
                 						break;
                         			} else {
                         				$iCount = count($tuplaNumero) - 1;
                         				for ($i = 1; $i <= $iCount; $i++) {
                         					if (trim($tuplaNumero[$i]) == '') $tuplaNumero[$i] = NULL;
                         					if (!is_null($tuplaNumero[$i]) && !is_numeric($tuplaNumero[$i])) {
                         						$this->errMsg = "Para teléfono $tuplaNumero[0] se encontró parámetro $i = $tuplaNumero[$i] no numérico";
                         						$bContinuar = FALSE;
                         					}
                         				}
                         				if ($bContinuar) $listaValidada[] = $tuplaNumero;
                         			}
                 */
                 if (!isset($tuplaNumero['__PHONE_NUMBER'])) {
                     $this->errMsg = "Encontrado elemento sin número telefónico";
                     $bContinuar = FALSE;
                 } elseif (!ereg('^[[:digit:]#*]+$', $tuplaNumero['__PHONE_NUMBER'])) {
                     $this->errMsg = "Teléfono encontrado que no es numerico";
                     $bContinuar = FALSE;
                 } else {
                     if ($bContinuar) {
                         $listaValidada[] = $tuplaNumero;
                     }
                 }
                 if (!$bContinuar) {
                     break;
                 }
             }
         }
         if ($bContinuar) {
             // Inicia transacción
             if (!$this->_DB->genQuery("BEGIN TRANSACTION")) {
                 $this->errMsg = $this->_DB->errMsg;
             } else {
                 foreach ($listaValidada as $tuplaNumero) {
                     $campos = array('id_campaign' => $idCampaign, 'phone' => paloDB::DBCAMPO($tuplaNumero['__PHONE_NUMBER']), 'status' => NULL);
                     $sPeticionSQL = paloDB::construirInsert("calls", $campos);
                     $result = $this->_DB->genQuery($sPeticionSQL);
                     if (!$result) {
                         $bContinuar = FALSE;
                         $this->errMsg = $this->_DB->errMsg . "<br/>{$sPeticionSQL}";
                         break;
                     }
                     $id_call = NULL;
                     // TODO: investigar equivalente de LAST_INSERT_ID() en SQLite
                     $sPeticionSQL = "SELECT MAX(id) FROM calls WHERE id_campaign = {$idCampaign} and phone = '{$tuplaNumero['__PHONE_NUMBER']}' and status IS NULL";
                     $tupla =& $this->_DB->getFirstRowQuery($sPeticionSQL);
                     if (!is_array($tupla)) {
                         $this->errMsg = $this->_DB->errMsg . "<br/>{$sPeticionSQL}";
                         $bContinuar = FALSE;
                     } else {
                         $id_call = (int) $tupla[0];
                     }
                     if ($bContinuar) {
                         foreach ($tuplaNumero as $sClave => $sValor) {
                             if ($sClave !== '__PHONE_NUMBER') {
                                 $campos = array('id_call' => $id_call, 'key' => paloDB::DBCAMPO($sClave), 'value' => paloDB::DBCAMPO($sValor));
                                 $sPeticionSQL = paloDB::construirInsert("call_attribute", $campos);
                                 $result = $this->_DB->genQuery($sPeticionSQL);
                                 if (!$result) {
                                     $bContinuar = FALSE;
                                     $this->errMsg = $this->_DB->errMsg . "<br/>{$sPeticionSQL}";
                                     break;
                                 }
                             }
                         }
                     }
                     if (!$bContinuar) {
                         break;
                     }
                 }
                 $bExito = $bContinuar;
                 if ($bExito) {
                     $this->_DB->genQuery("COMMIT");
                 } else {
                     $this->_DB->genQuery("ROLLBACK");
                 }
             }
         }
     }
     return $bExito;
 }
Пример #5
0
 /**
  * Procedimiento para borrar una lista de trunks para billing
  *
  * @param array   $listaTrunks 
  *
  * @return bool VERDADERO si se pudieron borrar correctamente
  */
 function deleteTrunksBill($listaTrunks)
 {
     $bExito = FALSE;
     if (!is_array($listaTrunks)) {
         $this->errMsg = "Values for trunks are invalid";
     } else {
         $this->errMsg = "";
         foreach ($listaTrunks as $trunk) {
             $sPeticionSQL = "DELETE FROM trunk_bill WHERE trunk = " . paloDB::DBCAMPO($trunk);
             $bExito = TRUE;
             $bExito = $this->_DB->genQuery($sPeticionSQL);
             if (!$bExito) {
                 print $sPeticionSQL;
                 $this->errMsg = $this->_DB->errMsg;
                 break;
             }
         }
     }
     return $bExito;
 }
Пример #6
0
 /**
  * Procedimiento para modificar al grupo con el ID de grupo especificado, para
  * darle un nuevo nombre y descripción.
  *
  * @param int       $id_group        Indica el ID del grupo a modificar
  * @param string    $group           Grupo a modificar
  * @param string    $description     Descripción del grupo a modificar
  *
  * @return bool VERDADERO si se ha modificado correctamente el grupo, FALSO si ocurre un error.
  */
 function updateGroup($id_group, $group, $description)
 {
     $bExito = FALSE;
     if ($group == "") {
         $this->errMsg = "Group can't be empty";
     } else {
         if (!preg_match("/^[[:digit:]]+\$/", "{$id_group}")) {
             $this->errMsg = "Group ID is not numeric";
         } else {
             if (!$description) {
                 $description = $group;
             }
             // Verificar que el grupo indicado existe
             $tuplaGroup = $this->getGroups($id_group);
             if (!is_array($tuplaGroup)) {
                 $this->errMsg = "On having checked group's existence - " . $this->errMsg;
             } else {
                 if (count($tuplaGroup) == 0) {
                     $this->errMsg = "The group doesn't exist";
                 } else {
                     $bContinuar = TRUE;
                     // Si el nuevo group es distinto al anterior, se verifica si el nuevo
                     // group colisiona con uno ya existente
                     if ($tuplaGroup[0][1] != $group) {
                         $id_group_conflicto = $this->getIdGroup($group);
                         if ($id_group_conflicto !== FALSE) {
                             $this->errMsg = "Group already exists";
                             $bContinuar = FALSE;
                         } elseif ($this->errMsg != "") {
                             $bContinuar = FALSE;
                         }
                     }
                     if ($bContinuar) {
                         // Proseguir con la modificación del grupo
                         $sPeticionSQL = paloDB::construirUpdate("acl_group", array("name" => paloDB::DBCAMPO($group), "description" => paloDB::DBCAMPO($description)), array("id" => $id_group));
                         if ($this->_DB->genQuery($sPeticionSQL)) {
                             $bExito = TRUE;
                         } else {
                             $this->errMsg = $this->_DB->errMsg;
                         }
                     }
                 }
             }
         }
     }
     return $bExito;
 }