Ejemplo n.º 1
0
        private void DGSalidas_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string TarjetaValet = "";

            try
            {
                N_Personal_Enturno N_objPersonal = new N_Personal_Enturno();
                DGSelected = 3;
                rowSalidas = DGSalidas.Rows[e.RowIndex];
                LeerTarjeta LeerTarjeta = new LeerTarjeta("Por favor acerque una tarjeta al lector.", TarjetasActivas, false);
                if (LeerTarjeta.ShowDialog() == DialogResult.OK)
                {
                    TarjetaValet = LeerTarjeta.Tarjeta;//lee la propiedad
                }

                int idpersonal = 0;
                foreach (var employed in Personal)
                {
                    if (employed.CodigoTarjeta == TarjetaValet)
                    {
                        idpersonal = employed.VP_IdPersonal;
                        break;
                    }
                }

                Clases.P_DBExit objExit = new Clases.P_DBExit();
                if (Enturno.Exists(x => x.VP_IdPersonal == idpersonal))
                {
                    objExit = (from act in Clases.P_StatusActual.SalidasPendientes
                               where act.TicketNumber == rowSalidas.Cells[4].Value.ToString() //Numtiquete
                               select act).FirstOrDefault();
                    objExit.IdValetEntrega = idpersonal;
                    RegistrarSalida(objExit, "Entrega", "Procesado", false); //Se inserta movimiento como creado.

                    foreach (var turno in Enturno)
                    {
                        //Actualiza turno
                        if (turno.VP_IdPersonal == idpersonal)
                        {
                            turno.Fecha = DateTime.Now; //Actualiza fecha indicando que el empleado usó su turno y vuelve a la cola
                            N_objPersonal.ActualizandoPersonal_Enturno(turno);
                            CargarEmpleadosEnturno();   //Actualiza lista de personal en turno y datagridview
                            break;
                        }
                    }

                    ConsultarTransacciones(-16);
                }
                else if (!string.IsNullOrEmpty(TarjetaValet))
                {
                    MessageErrorOk Message = new MessageErrorOk("Usted no se encuentra en turno.", 3);
                    Message.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                //Entrada de LOG
                Clases.P_LogWriter objLog = new Clases.P_LogWriter("ValetParking - DGSalidas_CellDoubleClick " + ex.ToString());
            }
        }
Ejemplo n.º 2
0
        private void ConsultarTransacciones(Int16 seconds)
        {
            try
            {
                ConsultarTransaccionesRegistradas();
                N_Movimiento_PL    N_objMovimiento_PL = new N_Movimiento_PL();
                N_Personal_Enturno N_objPersonal      = new N_Personal_Enturno();
                //Verifica las nuevas entregas
                var NewPayments = (from payment in N_objMovimiento_PL.ListandoMovimientos_Transaction(seconds)
                                   join estacionados in ListaEstacionados on payment.NumeroTiquete equals estacionados.TicketNumber
                                   join zona in Clases.P_ListasStatus.Zonasparking on estacionados.VP_IdZona equals zona.VP_Id_ZonaParking
                                   orderby payment.Fecha descending
                                   select new Clases.P_DBExit
                {
                    TiempoEntrega = CalcularTiempoRestante(payment.Fecha),
                    Fecha = payment.Fecha,
                    Placa = payment.Placa,
                    TicketNumber = payment.NumeroTiquete,
                    Zona = zona.Nombre,
                    IdZona = zona.VP_Id_ZonaParking,
                    IdValetEntrega = 0,
                    IdValetRecepcion = 0,
                    IdValetAsignado = estacionados.VP_IdPersonal_Asignado,
                    ValetEntrega = "",
                    ValetRecepcion = "",
                    ValetAsignado = estacionados.ValetRecepcion,
                    Dispositivo = payment.DeviceName,
                    DisositivoNr = payment.DeviceNumber,
                    Carpark = payment.Carpark,
                    IdCupoLlave = estacionados.VP_Id_CupoLlave
                });

                foreach (var Payment in NewPayments)
                {
                    foreach (var turno in Enturno)
                    {
                        string sigturno = (from persona in Personal
                                           where persona.VP_IdPersonal == turno.VP_IdPersonal
                                           select persona.Nombres.Substring(0, 3).ToUpper() + persona.Apellidos.Substring(0, 3).ToUpper()).FirstOrDefault();

                        Payment.IdValetAsignado = turno.VP_IdPersonal;
                        Payment.ValetAsignado   = sigturno;

                        //Actualiza turno
                        turno.Fecha = DateTime.Now; //Actualiza fecha indicando que el empleado usó su turno y vuelve a la cola
                        N_objPersonal.ActualizandoPersonal_Enturno(turno);
                        CargarEmpleadosEnturno();   //Actualiza lista de personal en turno y datagridview
                        break;
                    }
                    if (!Clases.P_StatusActual.SalidasPendientes.Exists(x => x.TicketNumber.Contains(Payment.TicketNumber)))
                    {
                        RegistrarSalida(Payment, "Entrega", "Creado", true); //Se inserta movimiento como creado.
                        ConsultarTransaccionesRegistradas();                 //Consulta nuevamente listado de movimientos.
                    }
                }
                ActualizarDGSalidas();
                ConsultarEstacionados(); //Actualiza estacionados.
            }
            catch (Exception ex)
            {
                //Entrada de LOG
                Clases.P_LogWriter objLog = new Clases.P_LogWriter("ValetParking - ConsultarTransacciones " + ex.ToString());
            }
        }