/** * 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); }
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; }
/** * 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)); } }
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>×</span></button> <h3>Registro de Tecnicos</h3>
<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">
/** * 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 ); }*/ }
public function postEstadoofficetrack() { $estado = Tecnico::getEstadoOfficetrack(); return $estado; }
/** * 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())); } }