public function llamar() { $idSucursal = Auth::user()->caja->sucursal->idSucursal; $idTicket = Session::get('ticket'); if (!is_null($idTicket)) { $ticket = \Filas\Models\Tickets::find($idTicket); //si existe un ticket atendido sin finalizar //obtener el codigo de ese ticket $stado = $ticket->estado; if ($stado == '2') { $llamado = $ticket->codigo . "-" . $ticket->turno . ":" . $ticket->caja->nombre; $pantalla = \Filas\Models\Pantalla::find($idSucursal); if ($pantalla->c1 != $llamado) { $pantalla->c4 = $pantalla->c3; $pantalla->c3 = $pantalla->c2; $pantalla->c2 = $pantalla->c1; $pantalla->c1 = $llamado; $pantalla->save(); } // Event::fire(new \Filas\Events\TicketEvent($ticket)); return view('counter.turnos.llamar', ['codigo' => $ticket->codigo, 'turno' => $ticket->turno]); } else { return view('counter.turnos.atender', ['codigo' => $ticket->codigo, 'turno' => $ticket->turno]); } } else { //aqqui todos los tickets estan finalizados y se hace una nueva llamada //obtener el codigo de ticket de la tabla atencion que se debe atender //segun el servicio del ticket y el del counter $caja = \Filas\Models\Cajas::where('Usuarios_idUsuario', '=', Auth::user()->idUsuario)->first(); //el orden de atencion debe ser diferente por sucursales por sucursales $cantidad = \Filas\Models\Atencionsucursal::where('Sucursales_idSucursal', '=', $idSucursal)->where('estado', '=', '1')->count(); if ($cantidad == 0) { \Filas\Models\Atencionsucursal::where('Sucursales_idSucursal', '=', $idSucursal)->update(['estado' => 1]); } $atencionsuc = \Filas\Models\Atencionsucursal::where('Sucursales_idSucursal', '=', $idSucursal)->where('estado', '=', '1')->orderBy('Atencion_idAtencion', 'ASC')->first(); $prioridad = \Filas\Models\Atencion::find($atencionsuc->Atencion_idAtencion); // echo $prioridad->prioridad.'<br />'; // $ticket = \Filas\Models\Tickets::where('estado','=','1')->has('sucsercli.cliente','=',$prioridad->prioridad)->orderBy('fecha_emision','ASC')->first(); $atender = \Filas\Models\Sucsercli::join('tickets', 'tickets.Sucsercli_idSucsercli', '=', 'sucsercli.idSucsercli')->join('clientes', 'clientes.idCliente', '=', 'sucsercli.Clientes_idCliente')->where('sucsercli.Servicios_idServicio', '=', $caja->Servicios_idServicio)->where('clientes.prioridad', '=', $prioridad->prioridad)->where('tickets.estado', '=', '1')->orderBy('tickets.fecha_emision', 'ASC')->select('tickets.idTicket')->first(); // $sql= \Filas\Models\Sucsercli::join('Tickets','Tickets.Sucsercli_idSucsercli','=','Sucsercli.idSucsercli')->join('Clientes','Clientes.idCliente','=','Sucsercli.Clientes_idCliente')->where('Clientes.prioridad','=',$prioridad->prioridad)->where('Tickets.estado','=','1')->orderBy('Tickets.fecha_emision','ASC')->select('Tickets.idTicket')->toSql(); //echo $sql; // $atender = \Filas\Models\Atencion::join('Tickets','Atencion.idTicket','=','Tickets.idTicket')->join('Sucsercli','Tickets.Sucsercli_idSucsercli','=','Sucsercli.idSucsercli')->where('Tickets.estado','=','1')->where('Sucsercli.Servicios_idServicio','=',$caja->Servicios_idServicio)->orderBy('Atencion.orden','ASC')->select('Atencion.idTicket')->first(); //probar q el orderBy este funcionando correctamente //print_r( $atender->idTicket); if (!is_null($atender)) { $ticket = \Filas\Models\Tickets::find($atender->idTicket); $ticket->estado = 2; $ticket->Cajas_idCaja = $caja->idCaja; $ticket->hora_llamada = date('H:i:s'); $ticket->save(); Session::put('ticket', $ticket->idTicket); //guardar en sesion que el idTicket que se esta atendiendo //hacer algo para que la pantalla muestre la llamada que se esta haciendo $atencionsuc->estado = 2; $atencionsuc->save(); $llamado = $ticket->codigo . "-" . $ticket->turno . ":" . $ticket->caja->nombre; $pantalla = \Filas\Models\Pantalla::find($idSucursal); if ($pantalla->c1 != $llamado) { $pantalla->c4 = $pantalla->c3; $pantalla->c3 = $pantalla->c2; $pantalla->c2 = $pantalla->c1; $pantalla->c1 = $llamado; $pantalla->save(); } // Event::fire(new \Filas\Events\TicketEvent($ticket)); return view('counter.turnos.llamar', ['codigo' => $ticket->codigo, 'turno' => $ticket->turno]); } else { $cantidadTickets = \Filas\Models\Tickets::where('estado', '=', '1')->whereHas('sucsercli', function ($q) { $caja = \Filas\Models\Cajas::where('Usuarios_idUsuario', '=', Auth::user()->idUsuario)->first(); $q->where('Sucursales_idSucursal', '=', Auth::user()->caja->sucursal->idSucursal)->where('Servicios_idServicio', '=', $caja->Servicios_idServicio); })->count(); // echo $cantidadTickets; if ($cantidadTickets > 0) { $atencionsuc->estado = 2; $atencionsuc->save(); // return 'realizar la busqueda con el siguiente de la fila'; return Redirect::to('/llamar'); } else { return view('counter.turnos.vacio'); } } } }