/** * Display the specified resource. * * @param int $id * @return Response */ public function show($id, $ids) { $fecha = date('Y-m-d H:i:s'); // $cliente = \Filas\Models\Clientes::find($id); $idSucursal = Auth::user()->caja->sucursal->idSucursal; $sucsercli = \Filas\Models\Sucsercli::where('Clientes_idCliente', '=', $id)->where('Sucursales_idSucursal', '=', $idSucursal)->where('Servicios_idServicio', '=', $ids)->first(); //crear el ticket con el codigo if (is_null($sucsercli)) { //no crear nada solo mostrar un mensaje de error que indique que los parametros son incorrectos y redirigir a la pagina anterior /* $clientessucursales = \Filas\Models\Clientessucursales::create([ 'Clientes_idCliente'=>$id, 'Sucursales_idSucursal'=> $idSucursal, 'contador' => 0, 'fecha' => $fecha, ]); */ } else { //verificar que la fecha del registro clientesucursal pertenezca a la fecha actual, caso contrario contar desde 0, $d1 = date_format(new DateTime($sucsercli->fecha), 'Y-m-d'); $d2 = date_format(new DateTime($fecha), 'Y-m-d'); if (strtotime($d1) != strtotime($d2)) { $sucsercli->fecha = $fecha; $sucsercli->contador = 0; } } $sucsercli->contador = $sucsercli->contador + 1; \Filas\Models\Tickets::create(['codigo' => $sucsercli->cliente->codigo . $sucsercli->servicio->codigo, 'turno' => $sucsercli->contador, 'fecha_emision' => $fecha, 'estado' => 1, 'Sucsercli_idSucsercli' => $sucsercli->idSucsercli]); $sucsercli->save(); $codigo = $sucsercli->cliente->codigo . $sucsercli->servicio->codigo . '-' . $sucsercli->contador; $sucursal = Auth::user()->caja->sucursal->nombre; //generar el ticket para su impresion!!! // return view('ticket.ticket',['codigo'=> $codigo,'fecha'=>$fecha,'sucursal'=>$sucursal]); $paper_size = array(0, 0, 300, 241); $pdf = PDF::loadView('ticket.ticket', ['codigo' => $codigo, 'fecha' => $fecha, 'sucursal' => $sucursal])->setPaper($paper_size)->setOrientation('landscape')->setWarnings(false); // $pdf->save('http://127.0.0.1:8080/imprimir/ticket.pdf'); /* $pdf=new \Filas\Library\PDF_AutoPrint('p','mm','ticket'); $pdf->AddPage(); $pdf->SetFont('arial','B',30); $pdf->Text(26, 10, 'TAM'); $pdf->SetFont('arial','',18); $pdf->Text(23, 18, $sucursal); $pdf->SetFont('arial','',18); $pdf->Text(7, 26, $fecha); $pdf->SetFont('arial','B',30); $pdf->Text(24, 37, $codigo); $pdf->AutoPrint(true); // $pdf->Output('ticket.pdf','I'); // $type='<meta http-equiv="Refresh" content="5;url=http://www.cristalab.com">'; return view($pdf->Output()); */ return $pdf->download('ticket.pdf'); // return Redirect::to('/ticket'); }
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'); } } } }
/** * Update the specified resource in storage. * * @param Request $request * @param int $id * @return Response */ public function update(Request $request, $id) { $servicios = \Filas\Models\Servicios::all(); $clientes = \Filas\Models\Clientes::all(); $r = $request->input(); // \Filas\Models\Sucsercli::where('Sucursal_idSucursal','=',$id)->delete(); foreach ($clientes as $cliente) { foreach ($servicios as $servicio) { echo $id . '-' . $cliente->idCliente . '-' . $servicio->idServicio; // $a = $cliente->idCliente; // echo '***'.$cliente->idCliente.'['.$servicio->idServicio.']--'.'</br>'; $sucsercli = \Filas\Models\Sucsercli::firstOrCreate(['Sucursales_idSucursal' => $id, 'Clientes_idCliente' => $cliente->idCliente, 'Servicios_idServicio' => $servicio->idServicio]); if (isset($r[$cliente->idCliente][$servicio->idServicio])) { //aqui registrar la relacion en la tabla Sucsercli previo de borrar todos los registro de los //el Sucursal_idSucursal sea igual a $id $sucsercli->estado = 1; $sucsercli->update(); // echo $r[$cliente->idCliente][$servicio->idServicio]; } else { $sucsercli->estado = 2; $sucsercli->update(); // echo 'no tickeado'; } // echo '</br>'; } } Session::flash('message-success', 'Configuracion guardada correctamente'); return Redirect::to('/admin/create'); }