Example #1
0
 /**
  * metodo que activa o realiza refresh segun el parametro asunto
  * No tiene cliente asignado, por defecto: vacio
  * los Input::all vienen directamente del POST api/eventometodo
  * @return array
  */
 public static function registrarAR()
 {
     if (Input::has('asunto') && Input::has('serieDeco') && Input::has('telefonoOrigen')) {
         $asunto = strtolower(Input::get('asunto'));
         $serieDeco = Input::get('serieDeco', '');
         $serieTarjeta = Input::get('serieTarjeta', '');
         $telefonoOrigen = Input::get('telefonoOrigen');
         $tipo = Input::get('tipo', '');
         $carnet = '';
         if ($tipo == '2') {
             $tecnico = Tecnico::where('celular', $telefonoOrigen)->first();
             $carnet = $tecnico->carnet_tmp;
         } else {
             $usuario = Usuario::where('celular', $telefonoOrigen)->first();
             $carnet = $usuario->id;
         }
         $gestionId = '0';
         $requerimiento = Input::get('requerimiento', '');
         if ($requerimiento != '') {
             $f = GestionDetalle::where('codactu', $requerimiento)->first();
             $gestionId = isset($f->gestion_id) ? $f->gestion_id : '0';
         }
         //            echo "-$gestionId <br> -$carnet <br> -$serieDeco <br> -$carnet "
         //                    . "<br> -$gestionId <br> -$asunto <br> -$tipo "
         //                    . "<br> -$telefonoOrigen <br> -$serieTarjeta
         //                    <br> -$serieDeco";exit;
         if ($asunto == 'refresh' || $asunto == 'activacion') {
             $catalogoDecos = new CatalogoDecos();
             $catalogoDecos['gestion_id'] = $gestionId;
             $catalogoDecos['carnet'] = $carnet;
             $catalogoDecos['serie'] = $serieDeco;
             $catalogoDecos['tarjeta'] = $serieTarjeta;
             $catalogoDecos['cliente'] = '';
             $catalogoDecos['fecha_registro'] = date('Y-m-d H:i:s');
             $catalogoDecos['accion'] = $asunto;
             $catalogoDecos['tipo_persona'] = $tipo;
             //$catalogoDecos['fecha_accion'] = 0;
             //$catalogoDecos['resultado'] = 0;
             //$catalogoDecos['activo'] = 0;
             $rst = $catalogoDecos->save();
             $msj = "Se envio ({$rst}) petición de {$asunto} de deco";
         } else {
             $msj = 'No se ha recibido asunto (refresh o activacion)';
         }
     } else {
         $msj = 'No se ha recibido asunto ni serie deco ni telefono';
     }
     return array('rst' => '1', 'datos' => '', 'msj' => $msj);
 }
Example #2
0
 public static function getBy($campo, $valor)
 {
     $result = BaseDatos::getDbh()->prepare("SELECT * FROM Tecnico where {$campo} = :{$campo}");
     $result->bindParam(":{$campo}", $valor);
     $result->execute();
     while ($rs = $result->fetch()) {
         $tecnico = new Tecnico();
         $tecnico->setIdTecnico($rs['idTecnico']);
         $tecnico->setNombres($rs['nombres']);
         $tecnico->setApellidoPaterno($rs['apellidoPaterno']);
         $tecnico->setApellidoMaterno($rs['apellidoMaterno']);
         $tecnico->setRpm($rs['rpm']);
         $tecnico->setEstado($rs['estado']);
         $tecnicos[] = $tecnico;
     }
     return isset($tecnicos) ? $tecnicos : false;
 }
Example #3
0
 /**
  * reponder llamadas ajax de reportes estados de officetrack
  * POST reporte/estadoofficetrack
  *
  * @return Response
  */
 public function postEstadosot()
 {
     //recibir los parametros y enviarlos al modelo, ahi ejecutar el query
     $accion = Input::get('accion');
     if ($accion == 'tecnicosofficetrack') {
         $reporte = Tecnico::getTecnicosOfficetrackAll();
     } elseif ($accion == 'pendientes') {
         $fechaAgen = Input::get('fecha_agen');
         $empresaId = Input::get('empresaId');
         $celulaId = Input::get('celulaId');
         $estados = Input::get('estados');
         $carnets = Input::get('carnets');
         $pendientes = '';
         $tecnico = Tecnico::getTecnico($empresaId, $celulaId);
         if (count($tecnico) > 0) {
             $reporte = Tarea::getAgendasAll($fechaAgen, $estados, $carnets);
         }
     } elseif ($accion == 'tecnicosot') {
         $fechaIni = Input::get('fechaIni');
         $fechaFin = Input::get('fechaFin');
         $empresaId = Input::get('empresaId');
         $celulaId = Input::get('celulaId');
         //$carnets = Input::get('carnets');
         $reporte = Tarea::getTareas($fechaIni, $fechaFin . " 23:59:59 ", $empresaId, $celulaId);
     }
     if (Input::get("excel") == '1') {
         $filename = $accion;
         $filename = Helpers::convert_to_file_excel($filename);
         header('Content-Type: application/octet-stream');
         header('Content-Disposition: attachment; filename=' . $filename);
         header('Expires: 0');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header("Content-Transfer-Encoding: binary");
         header('Pragma: public');
         $n = 1;
         foreach ($reporte as $data) {
             //Encabezado
             if ($n == 1) {
                 foreach ($data as $key => $val) {
                     echo $key . "\t";
                 }
                 echo $val . "\r\n";
             }
             //Datos
             foreach ($data as $val) {
                 $val = str_replace(array("\r\n", "\n", "\n\n", "\t", "\r"), array("", "", "", "", ""), $val);
                 echo $val . "\t";
             }
             echo "\r\n";
             $n++;
         }
     } else {
         return Response::json(array('rst' => 1, 'datos' => $reporte));
     }
 }
Example #4
0
if (isset($_REQUEST['eliminarTecnico'])) {
    $id_tecnico = $_POST['id_tecnico'];
    $tecnico = new Tecnico();
    $tecnico->eliminarTecnico($id_tecnico);
}
?>
        
        
        <div class="container-fluid">
            <div class="panel panel-info">
                <div class="panel-heading">
                    <h2 class="panel-title">Tecnicos</h2>
                </div>
                <div class="panel-body">
                    <?php 
$tecnico = new Tecnico();
$tecnico->mostrarTecnicos("select id_tecnico,nombre,paterno,materno,fecha_nacimiento,fecha_ingreso from tecnicos");
?>
            <form name="frmTecnico" action="" method="post">                       
                    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#nuevo">Agregar Tecnico</button>
                    <button type="button" class="btn btn-warning" data-toggle="modal" data-target="#nuevo">Modificar Tecnico</button>
                    <button name="eliminarTecnico" type="submit" class="btn btn-danger" >Eliminar Tecnico</button>
            
            <div class="modal fade" role="dialog" id="nuevo">
            <div class="modal-dialog modal-lg">
                <div class="modal-content">
                    <div class="panel panel-primary">
                    <div class="panel-heading">
                       <!-- <div class="modal-header"> -->
                            <button type="button" data-dismiss="modal" class="close"><span>&times;</span></button>
                            <h3>Registro de Tecnicos</h3>
Example #5
0
                                    <label>No Garantia :</label>
                                    <input name="nombre" class="form-control" type="text" placeholder="No Garantia">
                                </div>
                            <div class="form-group">
                                <label>Cliente :</label>
                                <select class="form-control" name="clientes">
                                    <option>Camionera Catosa</option>
                                    <option>Tyson</option>
                                    <option>Comision Federal</option>
                                </select>
                            </div>
                            <div class="form-group">
                                <label>Tecnico :</label>
                                <?php 
$query = "select concat(nombre,' ',paterno,' ',materno) from tecnicos";
$tecnico = new Tecnico();
$tecnico->cargarTecnico($query, 'tecnicos');
?>
                            <!--    <select class="form-control" name="tecnicos">
                                    <option>Marco Orozo</option>
                                    <option>Abel</option>
                                    <option>Guillermo</option>
                                </select> -->
                            </div>
                            <div class="form-group">
                                <label>Fecha de Nacimiento :</label>
                                <input name="noExterior" class="form-control" type="date">
                            </div>
                            <div class="form-group">
                                <label>Fecha de Ingreso :</label>
                                <input name="correo" class="form-control" type="date">
Example #6
0
 /**
  * Recepciona datos de Bandeja Controller
  * 
  * @return type
  */
 public function postRecepccion()
 {
     $data = array();
     $valida = array();
     $dataOfficetrack = Input::all();
     $dataGestion = Input::all();
     $dataGestionPendiente = Input::all();
     if (trim($dataGestion["fecha_agenda"]) != '' and trim($dataGestion['dia_id']) != '' and $dataGestion['dia_id'] != date("N", strtotime(date($dataGestion["fecha_agenda"])))) {
         $exc['code'] = '0000';
         $exc['file'] = 'BandejaController.php';
         $exc['line'] = '26';
         $exc['message'] = $dataGestion['codactu'] . ', No cuadran dias =>' + $dataGestion['dia_id'] . ' == ' . date("N", strtotime(date($dataGestion["fecha_agenda"])));
         $exc['trace'] = $dataGestion['dia_id'] . "|" . $dataGestion['fecha_agenda'] . "|" . $dataGestion['estado_id'] . "|" . $dataGestion['submotivo_id'] . "|" . $dataGestion['motivo_id'] . "|" . $dataGestion['quiebre_id'] . "|" . $dataGestion['actividad_id'];
         $this->_errorController->saveError($exc);
         return Response::json(array('rst' => 2, 'msj' => 'Ocurrio una interrupción en el registro de la información.', 'codactu' => $dataGestion['codactu']));
         /*
         $dataGestion['dia_id'].' == '.date("N",strtotime(date($dataGestion["fecha_agenda"])))
         */
         exit(0);
     }
     /**
      * Validacion Técnico en un solo horario y fecha
      * 
      * Datos requeridos:
      * tecnico:12
      * horario_id:19
      * dia_id:5
      * fecha_agenda:2015-05-08
      * estado_agendamiento: 1-1
      */
     $tecAsignadoBool = false;
     $resultAsignado = array();
     if ($dataGestion["estado_agendamiento"] == '1-1') {
         //No validar para tecnico NINGUNO
         $tecArray = DB::table('tecnicos')->where('id', '=', $dataGestion["tecnico"])->where('estado', '=', '1')->select('ninguno')->get();
         if (isset($tecArray[0]) and $tecArray[0]->ninguno == 0) {
             $dataValidaCupo = new stdClass();
             $dataValidaCupo->tecnico_id = $dataGestion["tecnico"];
             $dataValidaCupo->horario_id = $dataGestion["horario_id"];
             $dataValidaCupo->dia_id = $dataGestion["dia_id"];
             $dataValidaCupo->fecha_agenda = $dataGestion["fecha_agenda"];
             $asignado = GestionMovimiento::getTecnicoHorario($dataValidaCupo);
             if (is_array($asignado) and count($asignado["asignado"]) > 0) {
                 $ordenAgenda = $asignado["asignado"][0];
                 $tecAsignadoBool = true;
                 $resultAsignado = array('rst' => 2, 'msj' => 'El técnico seleccionado ya tiene una orden ' . 'agendada para el horario asignado', 'codactu' => $ordenAgenda->codactu);
             }
             //Respuesta tecnico con agenda asignada
             if ($tecAsignadoBool) {
                 return $resultAsignado;
                 exit;
             }
         }
     }
     /**
      * Para estados: Cancelado y Pendiente, evaluar si
      * la orden está asignada a un técnico y dejarla 
      * sin efecto. 2015-06-25
      * 
      * Obtener ultimo movimiento antes de grabar la gestion
      */
     $getOtoff = "";
     if ($dataGestion["estado"] == 5 or $dataGestion["estado"] == 7) {
         if (isset($dataGestion["gestion_id"]) and $dataGestion["gestion_id"] > 0) {
             $ultimov = DB::table('ultimos_movimientos')->where('gestion_id', $dataGestion["gestion_id"])->first();
             $ultimov = Helpers::stdToArray($ultimov);
             /**
              * Valida si la orden tiene: 
              * - horario
              * - dia
              * - celula
              * - tecnico
              */
             if ($ultimov["horario_id"] > 0 and $ultimov["dia_id"] > 0 and $ultimov["celula_id"] > 0 and $ultimov["tecnico_id"] > 0) {
                 $ultimov["estado"] = "";
                 $ultimov["actividad"] = "";
                 $ultimov["duration"] = 1;
                 $ultimov["quiebre"] = "";
                 $ultimov["eecc_final"] = "";
                 $ultimov["cr_observacion"] = "";
                 $ultimov["carnet"] = "";
                 $ultimov["velocidad"] = "";
                 $ultimov["paquete"] = "";
                 $ultimov['fecha_agenda'] = "";
                 $ultimov['hora_agenda'] = "";
                 $ultimov["estado_agendamiento"] = "1-1";
                 $ultimov["coordinado2"] = "0";
                 //Envio a OT
                 $savedata["otdata"] = $ultimov;
                 $rot = Helpers::ruta('officetrack/enviartarea', 'POST', $savedata, false);
                 //Respuesta OT
                 //$getOtoff = $rot->officetrack;
             }
         }
     }
     $getOtoff = "";
     DB::beginTransaction();
     $rgm2['sql'] = '';
     $rgm2['estofic'] = '';
     if (isset($dataGestion["gestion_id"]) and $dataGestion["gestion_id"] > 0 and $dataGestion["estado_officetrack"] == 0) {
         $ultimov = DB::table('ultimos_movimientos')->where('gestion_id', $dataGestion["gestion_id"])->first();
         $ultimov = Helpers::stdToArray($ultimov);
         $sql = "  SELECT ct.officetrack\n                    FROM tecnicos t\n                    INNER JOIN celula_tecnico ct ON t.id=ct.tecnico_id\n                    WHERE ct.tecnico_id='" . $ultimov["tecnico_id"] . "'\n                    AND ct.celula_id='" . $ultimov["celula_id"] . "'\n                    AND ct.estado=1";
         $tecnicoinfo = DB::select($sql);
         $tecnicoinfo = Helpers::stdToArray($tecnicoinfo);
         if (count($tecnicoinfo) > 0) {
             $rgm2['estofic'] = $tecnicoinfo[0]['officetrack'];
         }
         $rgm2['sql'] = $sql;
         /**
          * Valida si la orden tiene: 
          * - horario
          * - dia
          * - celula
          * - tecnico
          */
         if ($ultimov["horario_id"] > 0 and $ultimov["dia_id"] > 0 and $ultimov["celula_id"] > 0 and $ultimov["tecnico_id"] > 0 and $rgm2['estofic'] == 1) {
             $ultimov["estado"] = "";
             $ultimov["actividad"] = "";
             $ultimov["duration"] = 1;
             $ultimov["quiebre"] = "";
             $ultimov["eecc_final"] = "";
             $ultimov["cr_observacion"] = "";
             $ultimov["carnet"] = "";
             $ultimov["velocidad"] = "";
             $ultimov["paquete"] = "";
             $ultimov['fecha_agenda'] = "";
             $ultimov['hora_agenda'] = "";
             $ultimov["estado_agendamiento"] = "0-0";
             $ultimov["coordinado2"] = "0";
             //Envio a OT
             $savedata["otdata"] = $ultimov;
             $rot = Helpers::ruta('officetrack/enviartarea', 'POST', $savedata, false);
             //Registrar Pendiente
             $dataGestionPendiente['estado_agendamiento'] = '0-0';
             $dataGestionPendiente['motivo'] = '2';
             $dataGestionPendiente['submotivo'] = '18';
             $dataGestionPendiente['estado'] = '7';
             $dataGestionPendiente['horario_id'] = '';
             $dataGestionPendiente['dia_id'] = '';
             $dataGestionPendiente['fecha_agenda'] = '7';
             $dataGestionPendiente['tecnico'] = '';
             $dataGestionPendiente['usuario_sistema'] = 'sistema';
             //697
             $rgm = Helpers::ruta('gestion_movimiento/crear', 'POST', $dataGestionPendiente, false);
             //Respuesta OT
             //$getOtoff = $rot->officetrack;
         }
     }
     $rgm = Helpers::ruta('gestion_movimiento/crear', 'POST', $dataGestion, false);
     $rgm = Helpers::stdToArray($rgm);
     //$rgm["sql"]=$rgm2["sql"];
     $rgm['estofic'] = $rgm2['estofic'];
     //Registra o actualiza XY del cliente
     $dataXyCliente = array('codigo' => $dataGestion['inscripcion'], 'nombre' => $dataGestion['nombre_cliente_critico'], 'coord_x' => $dataGestion['x'], 'coord_y' => $dataGestion['y'], 'direccion' => $dataGestion['direccion_instalacion'], 'estado' => 1);
     if ($dataGestion["cliente_xy_insert"] == 1) {
         $query = DB::table('clientes')->insert($dataXyCliente);
     } else {
         $query = DB::table('clientes')->where('codigo', $dataGestion['inscripcion'])->update($dataXyCliente);
     }
     $rvalida = "0";
     if (Input::get('tecnico') and Input::get('tecnico') != '') {
         $valida = array();
         //Indica si cumple con el envio a officetrack acitividad + quiebre
         $valida["actividad_id"] = $dataOfficetrack["actividad_id"];
         $valida["quiebre_id"] = $dataOfficetrack["quiebre_id"];
         //El estado del tecnico de officetrack
         $valida["tecnico_id"] = $dataOfficetrack["tecnico"];
         $valida["celula_id"] = $dataOfficetrack["celula"];
         //El estado de Agendamiento para officetrack
         $valida["motivo_id"] = $dataOfficetrack["motivo"];
         $valida["submotivo_id"] = $dataOfficetrack["submotivo"];
         $valida["estado_id"] = $dataOfficetrack["estado"];
         //El evento indica si anteriormente ya se realizó una transacción OT
         $valida["transmision"] = $dataOfficetrack["transmision"];
         $rvalida = Helpers::ruta('officetrack/validar', 'POST', $valida, false);
     }
     // true indica que se enviara a officetrack
     $dataGestion['officetrack_envio'] = $rvalida;
     if ($rvalida == "1" and $rgm['rst'] == "1") {
         $dataOfficetrack['gestion_id'] = $rgm['gestion_id'];
         /*if ( !isset($dataOfficetrack['id_gestion']) ) {
               $idGestion=Gestion::getGenerarID();
               $dataOfficetrack['gestion_id']=$idGestion;
               $dataGestion['gestion_id_officetrack']=$idGestion;
           }*/
         $tecnico = Tecnico::find($dataOfficetrack['tecnico']);
         $dataOfficetrack['carnet'] = $tecnico['carnet_tmp'];
         $estado = Estado::find($dataOfficetrack['estado']);
         $dataOfficetrack['estado'] = $estado['nombre'];
         $horarioTipo = HorarioTipo::find($dataOfficetrack['horario_tipo']);
         $dataOfficetrack['duration'] = $horarioTipo['minutos'];
         $velocidad = array('', '', '');
         if (trim($dataOfficetrack['paquete']) != '') {
             $velocidad = explode("|", $dataOfficetrack['paquete']);
         }
         $dataOfficetrack['velocidad'] = $velocidad[2];
         $dataOfficetrack['eecc_final'] = $dataOfficetrack['empresa_id'];
         $dataOfficetrack['cr_observacion'] = $dataOfficetrack['observacion2'];
         $savedata["otdata"] = $dataOfficetrack;
         $rot = Helpers::ruta('officetrack/enviartarea', 'POST', $savedata, false);
         $rot = Helpers::stdToArray($rot);
         if ($rot['officetrack'] == "OK") {
             //registrara normalmente
             DB::commit();
             $rgm['msj'] = 'Registro realizado correctamente con Officetrack';
             $rgm['estado_agendamiento'] = $dataGestion['estado_agendamiento'];
             $rgm['tecnico'] = $dataGestion['tecnico'];
             if ($dataGestion["estado_agendamiento"] != '1-1' and $dataGestion["tecnico"] != '') {
                 $url = "http://psiweb.ddns.net:2230/webpsi/sms_enviar_individual_ajax.php";
                 $tecnicoinfo = DB::table('tecnicos')->where('id', $dataGestion["tecnico"])->first();
                 $postData = array('enviar_sms' => 1, 'celular' => '996475583', 'iduser' => Auth::user()->id, 'mensaje' => "La actuación: " . $dataGestion['codactu'] . " ha sido eliminada, favor de sincronizar para actualizar. PSI-OFFICETRACK");
                 $rgm['mensaje'] = "Llego";
                 $ch = curl_init();
                 curl_setopt($ch, CURLOPT_URL, $url);
                 curl_setopt($ch, CURLOPT_HEADER, false);
                 curl_setopt($ch, CURLOPT_POST, true);
                 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                 //Retorno
                 $result = curl_exec($ch);
                 curl_close($ch);
             } else {
                 $rgm['mensaje'] = "No Llego :(";
             }
             return Response::json($rgm);
         } else {
             DB::rollback();
             return Response::json(array('rst' => 2, 'msj' => 'No se pudo realizar el envio : ' . $rot['officetrack'] . '; Intente nuevamente el envio a officetrack', 'codactu' => $dataGestion['codactu']));
         }
     } elseif ($rgm['rst'] == "1") {
         DB::commit();
         $rgm['msj'] = 'Registro realizado correctamente';
         return Response::json($rgm);
     } else {
         DB::rollback();
         $this->_errorController->saveError($rgm['err']);
         return Response::json(array('rst' => 2, 'msj' => $rgm['msj']));
     }
     /*else { // registrará directo sin officetrack
                 $rgm = Helpers::ruta(
                     'gestion_movimiento/crear',
                     'POST', 
                     $dataGestion, 
                     false
                 );
     
                 $rgm= Helpers::stdToArray($rgm);
                 $rgm['msj']='Registro realizado correctamente';
                 return Response::json(
                     $rgm
                 );
             }*/
 }
Example #7
0
 public function postEstadoofficetrack()
 {
     $estado = Tecnico::getEstadoOfficetrack();
     return $estado;
 }
Example #8
0
 /**
  * metodo para cambiar x, y
  * POST /api/actualizardireccion
  * @param  int  gestion_id
  * @param  int  carnet
  * @param  int  x
  * @param  int  y
  * @param  int  direccion
  * @param  int  referencia
  * @return Response
  */
 public function postActualizardireccion()
 {
     $gestionId = Input::get('gestion_id', '');
     $carnet = Input::get('carnet', '');
     $x = Input::get('x', '');
     $y = Input::get('y', '');
     $direccion = Input::get('direccion', '');
     $referencia = Input::get('referencia', '');
     $fechaHora = date("Y-m-d H:i:s");
     try {
         //Iniciar transaccion
         DB::beginTransaction();
         //Guardar direccion previa
         UltimoMovimiento::actualizar_direccion($x, $y, $direccion, $gestionId);
         $tecnico = Tecnico::where('carnet_tmp', '=', $carnet)->first();
         $tecnicoId = $tecnico->id;
         //INSERT en cambios_direcciones
         $sql = "INSERT INTO cambios_direcciones\n                   (gestion_id, tipo_usuario, usuario_id,\n                   coord_x, coord_y, direccion, referencia, created_at)\n                   VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
         $data = array($gestionId, 'tec', $tecnicoId, $x, $y, $direccion, $referencia, $fechaHora);
         DB::insert($sql, $data);
         $sql = "UPDATE ultimos_movimientos\n                   SET x = ?, y = ?, direccion_instalacion = ?\n                   WHERE gestion_id = ?";
         $data = array($x, $y, $direccion . " ref.: " . $referencia, $gestionId);
         DB::update($sql, $data);
         //UPDATE gestiones_detalles
         $sql = "UPDATE gestiones_detalles\n                   SET x = ?, y = ?, direccion_instalacion = ?\n                   WHERE gestion_id = ?";
         $data = array($x, $y, $direccion . " ref.: " . $referencia, $gestionId);
         DB::update($sql, $data);
         DB::commit();
         return Response::json(array('estado' => true, 'msg' => "Direccion actualizada"));
     } catch (PDOException $error) {
         DB::rollback();
         return Response::json(array('estado' => false, 'msg' => $error->getMessage()));
     }
 }