コード例 #1
0
ファイル: TicketController.php プロジェクト: kmyl0/filas
 /**
  * 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');
 }
コード例 #2
0
ファイル: CounterController.php プロジェクト: kmyl0/filas
 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');
             }
         }
     }
 }
コード例 #3
0
ファイル: AdminController.php プロジェクト: kmyl0/filas
 /**
  * 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');
 }