Exemple #1
0
 private void Cmb_Equipos_SelectedValueChanged(object sender, EventArgs e)
 {
     try
     {
         string    Equipo  = Cmb_Equipos.Text;
         TcpClient Cliente = Ctrl_Terminales.EncontrarControlXNombre(Equipo).Equipo.TCP;
         EnviarOrdenaCliente(Cliente, "SMS");
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Exemple #2
0
        private void EliminarConexionCliente(ENT.Terminal_ENT Equipo)
        {
            Equipo.TCP = null;
            //eliminamos el puerto utilizado
            PuertosUtilizados.Remove(Equipo.Puerto);
            Equipo.Puerto = 0;
            Equipo.ReiniciarFactura();
            //cambiamos el estado del equipo en el servidor
            Ctrl_Terminales.EncontrarControlXNombre(Equipo.Equipo)
            .CambiarEstado(ENT.TiposAnidados_ENT.EstadoTerminal.Apagado);
            string Notificacion = "El cliente " + Equipo.Equipo + " se ha desconectado";

            MostrarNotificacion(Notificacion);
        }
Exemple #3
0
        private void VerificarConexionCliente(ENT.Terminal_ENT Equipo)
        {
            try
            {
                bool EstaActivo = InterfazNet.ValidarConexion(Equipo.TCP);

                if (!EstaActivo)
                {
                    if (Equipo.Estado != ENT.TiposAnidados_ENT.EstadoTerminal.Apagado)
                    {
                        EliminarConexionCliente(Equipo);
                    }
                }

                Ctrl_Terminales.EncontrarControlXNombre(Equipo.Equipo).ActualizarControles();
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #4
0
        private void AgregarCliente(string Nombre, int Puerto = 0, TcpClient ClienteSel = null)
        {
            try
            {
                string           Notificacion = "";
                ENT.Terminal_ENT Equipo       = Equipos.Find(C => C.Equipo == Nombre);
                if (Equipo == null)
                {
                    Equipo        = new ENT.Terminal_ENT();
                    Equipo.Equipo = Nombre;
                    Equipo.Estado = ENT.TiposAnidados_ENT.EstadoTerminal.Disponible;
                    Equipo.Puerto = Puerto;
                    Equipo.TCP    = ClienteSel;
                    Equipos.Add(Equipo);
                    Ctrl_Terminales.AgregarControl(Equipo);
                    AsignarEventosControlesTerminales();
                    Notificacion = "El cliente " + Equipo.Equipo + " se ha conectado";
                }
                else
                {
                    CTRL.Terminal_CTRL Ctrl = Ctrl_Terminales.EncontrarControlXNombre(Nombre);
                    Equipo.Puerto = Puerto;
                    Equipo.TCP    = ClienteSel;
                    Equipo.Estado = ENT.TiposAnidados_ENT.EstadoTerminal.Disponible;

                    Ctrl.Equipo.Puerto = Puerto;
                    Ctrl.Equipo.TCP    = ClienteSel;
                    Ctrl.CambiarEstado(Equipo.Estado);
                    Notificacion = "El cliente " + Equipo.Equipo + " se ha reconectado";
                }
                MostrarNotificacion(Notificacion);
                LlenarComboEquipos();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #5
0
        private void Tmr_Cliente_Tick(object sender, EventArgs e)
        {
            try
            {
                List <ENT.Terminal_ENT> ClientesBuscar = Equipos.FindAll(E => E.TCP != null);
                string Puerto;
                int    EstadoFactura = 3;
                string HoraSalida    = DateTime.Now.ToLongTimeString();
                Configuraciones = new BLL.Configuraciones.AdminConfiguraciones_BLL();
                CTRL.Terminal_CTRL EquipoSel;

                Btn_ApagarEquipos.Enabled = (Equipos.Count > 0);

                foreach (ENT.Terminal_ENT cClient in ClientesBuscar)
                {
                    if (cClient.TCP != null && cClient.TCP.Available > 0)
                    {
                        EquipoSel         = Ctrl_Terminales.EncontrarControlXNombre(cClient.Equipo);
                        ContenidoRecibido = InterfazNet.Get(cClient.TCP);
                        if (ContenidoRecibido.StartsWith("BB"))
                        {
                            Puerto = ContenidoRecibido.Substring(2);

                            //validamos que el sistema tenga habilitado tiempo de ocio para los equipos y
                            //que el tiempo consumido no este dentro del tiempo de ocio
                            if (Configuraciones.EstaTiempoOcioActivo() &&
                                Convert.ToInt32(EquipoSel.Equipo.TiempoConsumido.TotalMinutes) <= ENT.TiposAnidados_ENT.MinutosOcio)
                            {
                                MessageBox.Show("El Equipo " + cClient.Equipo + " Consumió Un Tiempo Inferior Al Tiempo De Ocio, Razón Por La Que El Tiempo No Ha Sido Facturado", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                Factura.Guardar(cClient, Hoy.ToShortDateString(), HoraSalida, Usuario.Usuario, EstadoFactura);
                                MessageBox.Show("El Tiempo Consumido : " + Convert.ToInt32(cClient.TiempoConsumido.TotalMinutes).ToString()
                                                + " Min \r Equipo Utilizado : " + cClient.Equipo
                                                + " \r Hora Inicio : " + cClient.HoraInicio.ToLongTimeString()
                                                + " \r Hora Salida : " + HoraSalida
                                                + " \r Total : " + cClient.TotalFacturar, "Orden Facturada", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                cClient.ReiniciarFactura();
                                EquipoSel.Equipo.ReiniciarFactura();
                                EquipoSel.ActualizarControles();
                            }
                        }
                        else if (ContenidoRecibido.StartsWith("TF"))
                        {
                            //si el servidor recibe pero el cliente aparece conectado en estado distinto,
                            //se procede a buscar el ultimo registro de factura para el cliente y continuar.
                            if (cClient.Estado == ENT.TiposAnidados_ENT.EstadoTerminal.Apagado
                                | cClient.Estado == ENT.TiposAnidados_ENT.EstadoTerminal.Disponible)
                            {
                                Factura.ObtenerFactura(cClient);
                                EquipoSel.CambiarEstado(ENT.TiposAnidados_ENT.EstadoTerminal.Ocupado);
                            }

                            String tiempo = ContenidoRecibido.Substring(2);
                            cClient.TiempoConsumido = new TimeSpan(Convert.ToInt32(tiempo.Substring(0, 2))
                                                                   , Convert.ToInt32(tiempo.Substring(3, 2))
                                                                   , Convert.ToInt32(tiempo.Substring(6, 2)));
                            cClient.TiempoConsumido          = cClient.TiempoConsumido.Add(new TimeSpan(0, 0, 1));
                            EquipoSel.Equipo.TiempoConsumido = cClient.TiempoConsumido;
                            EquipoSel.Equipo.Valor           = Factura.ValorXTiempoConsumido(Convert.ToInt32(EquipoSel.Equipo.TiempoConsumido.TotalMinutes));
                            EquipoSel.ActualizarControles();
                        }
                        else if (ContenidoRecibido.StartsWith("SS"))
                        {
                            Puerto = ContenidoRecibido.Substring(2);
                            EliminarConexionCliente(cClient);
                        }
                    }
                }
            }
            catch (Exception) { }
        }
Exemple #6
0
        private void Btn_TrasladarTiempo_Click(object sender, EventArgs e)
        {
            string Descripcion;

            BLL.Auditor_BLL    Auditor = new BLL.Auditor_BLL();
            CTRL.Terminal_CTRL Equipo  = (CTRL.Terminal_CTRL)((Control)sender).Parent;
            CTRL.Terminal_CTRL Destino;
            List <string>      Disponibles = (from Eq in Equipos
                                              where Eq.Estado == ENT.TiposAnidados_ENT.EstadoTerminal.Disponible
                                              select Eq.Equipo).ToList();

            if (Equipo.Equipo.Estado != ENT.TiposAnidados_ENT.EstadoTerminal.Ocupado)
            {
                return;
            }
            if (Disponibles.Count == 0)
            {
                MessageBox.Show("No hay equipos disponibles para hacer cambio."); return;
            }
            //detenemos el equipo actual para hacer el traslado de equipo
            Equipo.CambiarEstado(ENT.TiposAnidados_ENT.EstadoTerminal.Detenido);
            EnviarOrdenaCliente(Equipo.Equipo.TCP, "Bloq");
            //solicitamos la seleccion del equipo destino
            Frm_TrasladoEquipo Frm_Traslado = new Frm_TrasladoEquipo(Equipo.Equipo, Disponibles);

            Frm_Traslado.Show();
            //obtenemos el objeto destino
            Destino = Ctrl_Terminales.EncontrarControlXNombre(Frm_Traslado.DestinoSeleccionado);
            //asignamos las variables de la operacion vigente
            Destino.Equipo.TieneTiempoIlimitado = Equipo.Equipo.TieneTiempoIlimitado;
            Destino.Equipo.Estado          = ENT.TiposAnidados_ENT.EstadoTerminal.Ocupado;
            Destino.Equipo.HoraInicio      = Equipo.Equipo.HoraInicio;
            Destino.Equipo.TiempoConsumido = Equipo.Equipo.TiempoConsumido;
            Destino.Equipo.TiempoConsumir  = Equipo.Equipo.TiempoConsumir;
            Destino.Equipo.Valor           = Equipo.Equipo.Valor;
            Equipo.Equipo.ProductosAdicionales.ForEach(I => Destino.Equipo.ProductosAdicionales.Add(
                                                           new ENT.Detalles_ENT()
            {
                Producto    = I.Producto,
                Cantidad    = I.Cantidad,
                ValorUnidad = I.ValorUnidad,
                ValorTotal  = I.ValorTotal
            }));
            //habilitamos nuevamente el equipo
            Equipo.Equipo.ReiniciarFactura();
            Equipo.ActualizarControles();
            //enviamos la orden al destino
            if (Equipo.Equipo.TieneTiempoIlimitado)
            {
                EnviarOrdenaCliente(Destino.Equipo.TCP, "LI" + Destino.Equipo.TiempoConsumido.ToString());
            }
            else
            {
                TimeSpan TiempoRestante = Destino.Equipo.TiempoConsumir.Subtract(Destino.Equipo.TiempoConsumido);
                EnviarOrdenaCliente(Destino.Equipo.TCP, "I" + TiempoRestante.ToString());
            }

            Destino.ActualizarControles();

            Descripcion = "El usuario " + Usuario.Usuario + " traslado el tiempo del equipo "
                          + Equipo.Equipo.Equipo + " al equipo " + Destino.Equipo.Equipo + "a las " + DateTime.Now.ToLongTimeString();
            Auditor.Registrar(Descripcion, Usuario.Usuario, ENT.TiposAnidados_ENT.AccionesAuditoria.TrasladarTiempo);
        }