public function obtener_sucursales_cercanas($latitud, $longitud, $radio, $limite, $tipo_atencion)
 {
     /*$consulta = "SELECT SQRT(
       POW(69.1 * (suc_latitud - $latitud), 2) +
       POW(69.1 * ($longitude - suc_longitud) * COS(suc_latitud / 57.3), 2)) AS radio, suc_direccion as direccion
       FROM sucursal HAVING radio < $radio ORDER BY direccion LIMIT $limite;";*/
     /*$consulta = "SELECT ((ACOS(SIN($latitud * PI() / 180) * SIN(suc_latitud * PI() / 180) + COS($latitud * PI() / 180) * COS(suc_latitud * PI() / 180) * COS(($longitud - suc_longitud) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance, suc_direccion as direccion FROM sucursal WHERE (suc_latitud BETWEEN ($latitud - $radio) AND ($latitud + $radio) AND suc_longitud BETWEEN ($longitud - $radio) AND ($longitud + $radio)) ORDER BY distance ASC LIMIT $limite;";*/
     require 'funciones.php';
     $funcion = new Funciones();
     $consulta = "SELECT DISTINCT s.suc_id AS id, (acos(sin(radians({$latitud})) * sin(radians(s.suc_latitud)) + cos(radians({$latitud})) * cos(radians(s.suc_latitud)) * cos(radians({$longitud}) - radians(s.suc_longitud))) * 6378) AS distancia, s.suc_direccion AS direccion, ta.tip_ate_descripcion AS tipo_atencion, ta.tip_ate_id AS tipo_atencion_id, tas.tip_ate_suc_tiempo_espera AS tiempo_espera, tas.tip_ate_suc_fila_unica AS fila_unica, s.com_id AS comuna_id, c.com_nombre AS comuna_nombre, c.reg_id AS region_id, r.reg_nombre AS region_nombre";
     /*
         AÑADIR CAMPOS DE RETORNO
     */
     $consulta .= " FROM sucursal s";
     /*
         AÑADIR JOINS
     */
     $consulta .= " LEFT JOIN comuna c ON s.com_id = c.com_id LEFT JOIN region r ON c.reg_id = r.reg_id JOIN tipo_atencion_sucursal tas ON s.suc_id = tas.suc_id RIGHT JOIN tipo_atencion ta ON tas.tip_ate_id = ta.tip_ate_id RIGHT JOIN ejecutivo ej ON s.suc_id = ej.suc_id";
     /*
         AÑADIR CONDICIONES
     */
     if ($tipo_atencion > 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "tas.tip_ate_id = {$tipo_atencion}";
     }
     if ($radio > 0) {
         $consulta .= $funcion->concatenar('having', ' AND ');
         $consulta .= "distancia < {$radio}";
     }
     /*
         ULTIMAS INSTRUCCIONES ANTES DE CIERRE DE consulta
     */
     $consulta .= " ORDER BY distancia, tipo_atencion";
     $consulta .= " LIMIT {$limite};";
     //echo $consulta;
     $rs = $this->sql_con->query($consulta);
     if ($rs === false) {
         $this->datos['success'] = 0;
         //trigger_error('Wrong SQL: ' . $consulta . ' Error: ' . $this->sql_con->error, E_USER_ERROR);
         exit;
     } else {
         $this->datos['success'] = 1;
         $this->datos['sucursales'] = array();
         while ($row = $rs->fetch_assoc()) {
             $dato = array();
             foreach ($row as $indice => $value) {
                 $dato[$indice] = $value;
             }
             if ($dato['fila_unica'] == 0) {
                 $dato['tiempo_espera'] = $this->obtener_tiempo_espera_sucursal($dato['id']);
             }
             array_push($this->datos['sucursales'], $dato);
         }
     }
 }
 public function obtener_ejecutivos($sucursal, $tipo_atencion, $estado, $group)
 {
     require 'funciones.php';
     $funcion = new Funciones();
     $consulta = "SELECT DISTINCT ej.eje_id as ejecutivo_id, ej.eje_nombre AS ejecutivo_nombre, tas.tip_ate_suc_tiempo_espera as tiempo_espera FROM atencion a RIGHT JOIN tipo_atencion ta ON a.tip_ate_id = ta.tip_ate_id RIGHT JOIN tipo_atencion_sucursal tas ON ta.tip_ate_id = tas.tip_ate_id RIGHT JOIN sucursal s ON tas.suc_id = s.suc_id RIGHT JOIN ejecutivo ej ON s.suc_id = ej.suc_id RIGHT JOIN tipo_atencion_ejecutivo tae ON ej.eje_id = tae.eje_id";
     if ($sucursal > 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "s.suc_id = {$sucursal}";
     }
     if ($tipo_atencion > 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "ta.tip_ate_id = {$tipo_atencion}";
     }
     if ($estado > 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "ej.eje_est_id = {$estado}";
     }
     if ($group == 1) {
         $consulta .= ' GROUP BY ej.eje_id';
     }
     $consulta .= " ORDER BY tas.tip_ate_suc_tiempo_espera";
     $rs = $this->sql_con->query($consulta);
     if ($rs === false) {
         //trigger_error('Wrong SQL: ' . $consulta . ' Error: ' . $this->sql_con->error, E_USER_ERROR);
         $this->datos['success'] = 0;
         exit;
     } else {
         $this->datos['success'] = 1;
         $this->datos['ejecutivos'] = array();
         while ($row = $rs->fetch_assoc()) {
             $dato = array();
             foreach ($row as $indice => $value) {
                 $dato[$indice] = $value;
             }
             array_push($this->datos['ejecutivos'], $dato);
         }
     }
 }
Beispiel #3
0
<?php

class Funciones
{
    public static function suma($a, $b)
    {
        return $a + $b;
    }
    public function concatenar($a, $b, $c)
    {
        return $a . $b . $c;
    }
    public function multiplicar($a, $b)
    {
        return $a * $b;
    }
}
$funcion = new Funciones();
echo $funcion->suma(4, 2);
echo '<br>';
echo $funcion->concatenar('bidkar', 'aragon', 'cardenas');
echo '<br>';
echo $funcion->multiplicar(5, 9);
echo '<br>';
echo Funciones::suma(5, 6);
 public function obtener_atenciones($tipo_atencion, $estado, $sucursal)
 {
     require 'funciones.php';
     $funcion = new Funciones();
     $consulta = "SELECT a.ate_id AS id, a.ate_fecha_inicio AS fecha_inicio, a.ate_fecha_fin AS fecha_fin, a.ate_calificacion_cliente AS cal_cliente, a.ate_calificacion_ejecutivo AS cal_eje, a.tip_ate_id AS tipo_atencion_id, ta.tip_ate_descripcion AS tipo_atencion_descripcion, a.est_id AS estado_id, e.est_descripcion AS estado_descripcion, a.suc_id AS sucursal_id, s.suc_direccion AS sucursal_direccion, s.suc_latitud AS sucursal_latitud, s.suc_longitud AS sucursal_longitud, s.com_id AS comuna_sucursal_id, c.com_nombre AS comuna_sucursal_nombre, c.reg_id AS region_sucursal_id, r.reg_nombre AS region_nombre, a.eje_id AS ejecutivo_id, ej.eje_nombre AS ejecutivo_nombre, ej.eje_rut AS ejecutivo_rut, ej.eje_foto AS ejecutivo_foto, a.cli_id AS cliente_id, cl.cli_nombre AS cliente_nombre, cl.cli_rut AS cliente_rut, cl.cli_foto AS cliente_foto FROM atencion a LEFT JOIN tipo_atencion ta ON a.tip_ate_id = ta.tip_ate_id LEFT JOIN estado e ON a.est_id = e.est_id LEFT JOIN sucursal s ON a.suc_id = s.suc_id LEFT JOIN comuna c ON s.com_id = c.com_id LEFT JOIN region r ON c.reg_id = r.reg_id LEFT JOIN ejecutivo ej ON a.eje_id = ej.eje_id LEFT JOIN cliente cl ON a.cli_id = cl.cli_id";
     if ($tipo_atencion != 'all') {
         $consulta .= $funcion->concatenar('having', ' AND ');
         $consulta .= "a.tip_ate_id = {$tipo_atencion}";
     }
     if ($estado > 0) {
         $consulta .= $funcion->concatenar('having', ' AND ');
         $consulta .= "a.est_id = {$estado}";
     }
     if ($sucursal > 0) {
         $consulta .= $funcion->concatenar('having', ' AND ');
         $consulta .= "a.suc_id = {$sucursal}";
     }
     $rs = $this->sql_con->query($consulta);
     if ($rs === false) {
         //trigger_error('Wrong SQL: ' . $consulta . ' Error: ' . $this->sql_con->error, E_USER_ERROR);
         $this->datos['success'] = 0;
         exit;
     } else {
         $this->datos['success'] = 1;
         $this->datos['atenciones'] = array();
         while ($row = $rs->fetch_assoc()) {
             $dato = array();
             foreach ($row as $indice => $value) {
                 $dato[$indice] = $value;
             }
             array_push($this->datos['atenciones'], $dato);
         }
     }
 }
Beispiel #5
0
 public function obtener_clientes($estado, $tipo_atencion, $sucursal, $cliente, $ejecutivo, $group, $limit, $hoy, $fecha)
 {
     require 'funciones.php';
     $funcion = new Funciones();
     $consulta = "SELECT cl.cli_id AS cliente_id, cl.cli_nombre AS cliente_nombre, cl.cli_rut AS cliente_rut, cl.cli_foto AS cliente_foto, a.ate_id AS atencion_id, a.ate_fecha_inicio AS atencion_fecha_inicio, a.ate_fecha_fin AS atencion_fecha_fin, a.ate_calificacion_cliente AS atencion_calificacion_cliente, a.ate_calificacion_ejecutivo AS atencion_calificacion_ejecutivo, a.ate_numero AS numero, a.ate_modulo AS modulo, a.tip_ate_id AS tipo_atencion_id, ta.tip_ate_descripcion AS tipo_atencion_descripcion, a.est_id AS estado_id, e.est_descripcion AS estado_descripcion, a.suc_id AS sucursal, s.suc_direccion AS sucursal_direccion, s.suc_latitud AS sucursal_latitud, s.suc_longitud AS sucursal_longitud, s.com_id AS comuna_id, c.com_nombre AS comuna_nombre, c.reg_id AS region_id, r.reg_nombre AS region_nombre, a.eje_id AS ejecutivo_id, ej.eje_nombre AS ejecutivo_nombre, ej.eje_rut AS ejecutivo_rut, ej.eje_foto AS ejecutivo_foto FROM cliente cl LEFT JOIN atencion a ON cl.cli_id = a.cli_id LEFT JOIN estado e ON a.est_id = e.est_id LEFT JOIN tipo_atencion ta ON a.tip_ate_id = ta.tip_ate_id LEFT JOIN sucursal s ON a.suc_id = s.suc_id LEFT JOIN tipo_atencion_ejecutivo tae ON a.tip_ate_id = tae.tip_ate_id LEFT JOIN comuna c ON s.com_id = c.com_id LEFT JOIN region r ON c.reg_id = r.reg_id LEFT JOIN ejecutivo ej ON a.eje_id = ej.eje_id";
     if ($estado > 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "a.est_id = {$estado}";
     }
     if ($tipo_atencion > 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "ta.tip_ate_id = {$tipo_atencion}";
     }
     if ($sucursal > 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "s.suc_id = {$sucursal}";
     }
     if ($cliente > 0 && $fecha == 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "cl.cli_id = {$cliente}";
     }
     if ($ejecutivo > 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "tae.eje_id = {$ejecutivo}";
         $consulta .= $funcion->concatenar('where', ' AND (');
         $consulta .= "a.eje_id IS NULL";
         $consulta .= $funcion->concatenar('where', ' OR ');
         $consulta .= "a.eje_id = {$ejecutivo})";
     }
     if ($hoy > 0) {
         $hoy = date('Y-m-d');
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "a.ate_fecha_real_inicio LIKE '{$hoy}%'";
     }
     if ($fecha != 0) {
         $consulta .= $funcion->concatenar('where', ' AND ');
         $consulta .= "a.ate_fecha_inicio < '{$fecha}'";
     }
     if ($group > 0) {
         $consulta .= ' GROUP BY cl.cli_id';
     }
     /*if ($estado > 0) {
           $consulta .= $funcion->concatenar('order', ', ');
           $consulta .= "e.est_id";
       }
       if ($tipo_atencion > 0) {
           $consulta .= $funcion->concatenar('order', ', ');
           $consulta .= "ta.tip_ate_id";
       }
       if ($sucursal > 0) {
           $consulta .= $funcion->concatenar('order', ', ');
           $consulta .= "s.suc_id";
       }
       if ($cliente > 0) {
           $consulta .= $funcion->concatenar('order', ', ');
           $consulta .= "cl.cli_id";
       }*/
     $consulta .= " ORDER BY a.ate_fecha_real_inicio DESC, a.ate_fecha_inicio ASC";
     if ($limit > 0) {
         $consulta .= " LIMIT {$limit}";
     }
     $rs = $this->sql_con->query($consulta);
     if ($rs === false) {
         //trigger_error('Wrong SQL: ' . $consulta . ' Error: ' . $this->sql_con->error, E_USER_ERROR);
         $this->datos['success'] = 0;
         exit;
     } else {
         $this->datos['success'] = 1;
         $this->datos['clientes'] = array();
         while ($row = $rs->fetch_assoc()) {
             $dato = array();
             foreach ($row as $indice => $value) {
                 $dato[$indice] = $value;
             }
             array_push($this->datos['clientes'], $dato);
         }
     }
 }