Lo primero que debemos hacer es modificar el archivo index en :
/var/www/html/modules/agent_console
Debemos modificar desde la linea 846 :
Agregamos esto :
-----------------------------------------------------------------------------------------------
$comboContactos = array();
$comboselect = array();
$id_contactado=(isset($infoLlamada['contact_id']) ? 'c'.$infoLlamada['contact_id'] : (isset($infoLlamada['callid']) ? $infoLlamada['callid'] : $infoLlamada['call_id']));
//BD
$conexion = mysql_connect("localhost","root","R8S8r8dpZr");
mysql_select_db("call_center",$conexion);
//$cConsulta = 'SELECT id,phone FROM calls where id_contacto="'.$id_contactado.'" AND contactado!="0"';
$cConsulta = 'SELECT id,phone,contactado,id_contacto FROM calls WHERE id_contacto=(IF((SELECT id_contacto FROM calls where id="'.$id_contactado.'")="A","'.$id_contactado.'", (SELECT id_contacto FROM calls where id="'.$id_contactado.'" AND id_contacto!="0" ))) OR id=(SELECT id FROM calls where id_contacto="A" AND id="'.$id_contactado.'") OR id=(SELECT id_contacto FROM calls where id="'.$id_contactado.'" AND id_contacto!="0") ORDER BY FIELD(id,"'.$id_contactado.'") DESC';
$rsConsulta = mysql_query($cConsulta);
while ($fila = mysql_fetch_array($rsConsulta, MYSQL_NUM)) {
$comboContactos[] = $fila;
}
foreach ($comboContactos as $key => $value) {
$comboselect[$comboContactos[$key][0]] = $comboContactos[$key][1];
}
-------------------------------------------------------------------------------------------
Muy importante poner la clave root
($conexion = mysql_connect("localhost","root","claverootMySQL");
Aquí entramos al MySQL a verificar si el numero fue contactado o no
Después vamos a agregar estos label en el mismo archivo :
linea 875 aproximadamente
-----------------------------------------------------------------------------------------
'LBL_CONTACTO_SELECT' => 'Contactado',
'LISTA_CONTACTOS' => $comboselect,
'BTN_CONFIRMAR_CONTACTO' => 'Contactado',
'BTN_CONFIRMAR_CONTACTO2' => 'No Contactado',
-----------------------------------------------------------------------------------------
después de esto vamos a la linea 1.058 mas o menos del mismo archivo y agregamos esta función :
------------------------------------------------------------
// Agregado 18 09 2020 Funcion verificar base de datos no Contactado
function manejarSesionActiva_confirm_contact_outgoing($module_name, $smarty, $sDirLocalPlantillas, $oPaloConsola, $estado)
{
$respuesta = array(
'action' => 'confirmed',
'message' => _tr('Contact successfully confirmed'),
);
$idContact = getParameter('id_contact');
$confirma = getParameter('confirma');
if (is_null($idContact) || !ctype_digit($idContact)) {
$respuesta['action'] = 'error';
$respuesta['message'] = _tr('Invalid or missing contact ID');
} else {
$bExito = $oPaloConsola->confirmarContacto_outgoing($idContact, $confirma);
if ($bExito==='NOT') {
$respuesta['action'] = 'confirmed';
$respuesta['message'] = 'Cliente no contactado, se intentara llamar a otro numero';
}
elseif (!$bExito) {
$respuesta['action'] = 'error';
$respuesta['message'] = _tr('Error while confirming contact').' - '.$oPaloConsola->errMsg.$idContact;
}
}
$json = new Services_JSON();
Header('Content-Type: application/json');
return $json->encode($respuesta);
}
// Agregado 18 09 2020 Función verificar base de datos no Contactado
----------------------------------------------
Después casi al final del archivo agregamos esto
------------------------------------------------------------
$comboContactos = array();
$comboselect = array();
$id_contactado=(isset($infoLlamada['contact_id']) ? 'c'.$infoLlamada['contact_id'] : (isset($infoLlamada['callid']) ? $infoLlamada['callid'] : $infoLlamada['call_id']));
//BD
$conexion = mysql_connect("localhost","root","R8S8r8dpZr");
mysql_select_db("call_center",$conexion);
//$cConsulta = 'SELECT id,phone FROM calls where id_contacto="'.$id_contactado.'" AND contactado!="0"';
$cConsulta = 'SELECT id,phone,contactado,id_contacto FROM calls WHERE id_contacto=(IF((SELECT id_contacto FROM calls where id="'.$id_contactado.'")="A","'.$id_contactado.'", (SELECT id_contacto FROM calls where id="'.$id_contactado.'" AND id_contacto!="0" ))) OR id=(SELECT id FROM calls where id_contacto="A" AND id="'.$id_contactado.'") OR id=(SELECT id_contacto FROM calls where id="'.$id_contactado.'" AND id_contacto!="0") ORDER BY FIELD(id,"'.$id_contactado.'") DESC';
$rsConsulta = mysql_query($cConsulta);
while ($fila = mysql_fetch_array($rsConsulta, MYSQL_NUM)) {
$comboContactos[] = $fila;
}
foreach ($comboContactos as $key => $value) {
$comboselect[$comboContactos[$key][0]] = $comboContactos[$key][1];
}
-------------------------------------------------------------------------------------
luego después de eso un par de reglones abajo agregamos esto :
-----------------------------------------------------------------
$registroCambio['lista_contactos'] = $comboselect;
$registroCambio['puede_confirmar_contacto'] = (count($comboselect) > 1);
-----------------------------------------------------------------------
BIEN ESO ES TODO POR ESA PARTE ! ...
Ahora vamos a este archivo :
/var/www/html/modules/agent_console/themes/default/agent_console_atributos.tpl
y agregamos estos reglones :
-------------------------------------------------------
<tr>
<td><label for="llamada_entrante_contacto_id">{$LBL_CONTACTO_SELECT}: </label></td>
<td>
<select
name="llamada_entrante_contacto_id"
id="llamada_entrante_contacto_id"
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">
{html_options options=$LISTA_CONTACTOS}
</select>
<button id="btn_confirmar_contacto1">{$BTN_CONFIRMAR_CONTACTO}</button>
<button id="btn_confirmar_contacto2">{$BTN_CONFIRMAR_CONTACTO2}</button>
</td>
</tr>
--------------------------------------------------------
bueno hay un archivo que nosotros manejamos con las actualizaciones pertinentes para generar el descanso automático :
Ahora generamos esta opción :
Vamos a /var/www/html/modules/agent_console/libs/paloSantoConsola.class.php
y en el reglon 813 aproximadamente agregamos esto :
---------------------------------------------
function confirmarContacto_outgoing($idCall, $confirma)
{
try {
$oDB = $this->_obtenerConexion('call_center');
if ($confirma=='YES') {
$sPeticion ='SELECT id_contacto FROM calls WHERE id_contacto=(IF((SELECT principal_contact FROM calls where id="'.$idCall.'")="A","'.$idCall.'", (SELECT id_contacto FROM calls where id="'.$idCall.'" AND id_contacto!="0" ))) LIMIT 1;';
$recordset = $oDB->fetchTable($sPeticion, TRUE);
$id_confirmed=$recordset[0]['id_contacto'];
//Actualizar si es primera llamada:
$sUPDATE='UPDATE calls SET id_contacto="'.$id_confirmed.'" WHERE id="'.$idCall.'" AND id_contacto="A";';
$updateset = $oDB->genQuery($sUPDATE,TRUE);
//actualizar todos los demas a Terminados
$sUPDATE='UPDATE calls SET contactado="T" WHERE id_contacto="'.$id_confirmed.'";';
$updateset = $oDB->genQuery($sUPDATE,TRUE);
//actualizar id actual como contactado
$sUPDATE='UPDATE calls SET contactado="C" WHERE id="'.$idCall.'";';
$updateset = $oDB->genQuery($sUPDATE,TRUE);
return TRUE;
}
elseif ($confirma=='NOT') {
$sPeticion ='SELECT id_contacto FROM calls WHERE id_contacto=(IF((SELECT principal_contact FROM calls where id="'.$idCall.'")="A","'.$idCall.'", (SELECT id_contacto FROM calls where id="'.$idCall.'" AND id_contacto!="0" ))) LIMIT 1;';
$recordset = $oDB->fetchTable($sPeticion, TRUE);
$id_confirmed=$recordset[0]['id_contacto'];
//Actualizar si es primera llamada:
$sUPDATE='UPDATE calls SET id_contacto="'.$id_confirmed.'" WHERE id="'.$idCall.'" AND id_contacto="A";';
$updateset = $oDB->genQuery($sUPDATE,TRUE);
//actualizar ID de sigiente registro como pendiente si no hay mas volver a poner el primero como Pendiente
$sPeticion ='SELECT id FROM calls WHERE id_contacto=(SELECT id_contacto FROM calls where id="'.$idCall.'") AND contactado="E" ORDER BY FIELD(id,"'.$idCall.'") DESC LIMIT 1;';
$recordset = $oDB->fetchTable($sPeticion, TRUE);
if (isset($recordset[0]['id'])) {
$id_espera=$recordset[0]['id'];
$sUPDATE='UPDATE calls SET contactado="P" WHERE id="'.$id_espera.'";';
$updateset = $oDB->genQuery($sUPDATE,TRUE);
}
else{
$sPeticion ='SELECT id FROM calls WHERE id_contacto=(SELECT id_contacto FROM calls where id="'.$idCall.'") AND contactado="T" ORDER BY FIELD(id,"'.$idCall.'") DESC LIMIT 1;';
$recordset = $oDB->fetchTable($sPeticion, TRUE);
//var_dump($recordset);
$id_espera=$recordset[0]['id'];
$sUPDATE='UPDATE calls SET contactado="P" WHERE id="'.$id_espera.'";';
$updateset = $oDB->genQuery($sUPDATE,TRUE);
}
//actualizar registro actual
$sUPDATE='UPDATE calls SET contactado="T" WHERE id="'.$idCall.'";';
$updateset = $oDB->genQuery($sUPDATE,TRUE);
return 'NOT';
}
} catch (Exception $e) {
$this->errMsg = '(internal) setcontact: '.$e->getMessage();
return FALSE;
}
}
-----------------------------------------------------------
No hay comentarios:
Publicar un comentario