Exemple #1
0
        private void Btn_AgregarTiempo_Click(object sender, EventArgs e)
        {
            try
            {
                CTRL.Terminal_CTRL Equipo = (CTRL.Terminal_CTRL)((Control)sender).Parent;
                //validamos que el equipo se encuentre conectado
                switch (Equipo.Equipo.Estado)
                {
                case ENT.TiposAnidados_ENT.EstadoTerminal.Apagado:
                case ENT.TiposAnidados_ENT.EstadoTerminal.Detenido:
                    return;
                }

                if (Equipo.Equipo.TieneTiempoIlimitado)
                {
                    MessageBox.Show("El usuario está navegando con tiempo ilimitado, no es posible agregar tiempo");
                    return;
                }

                Frm_SelRango Frm_Sel = new Frm_SelRango(Equipo.Equipo);
                Frm_Sel.ShowDialog();
                if (!Frm_Sel.Esilimitado & Frm_Sel.Minutos == 0)
                {
                    return;
                }

                AsignarTiempoAEquipo(Equipo, Frm_Sel.Esilimitado, Frm_Sel.Minutos);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #2
0
        private void Btn_Facturar_Click(object sender, EventArgs e)
        {
            try
            {
                CTRL.Terminal_CTRL Equipo = (CTRL.Terminal_CTRL)((Control)sender).Parent;

                //facturamos si el equipo se encuentra ocupado
                if (Equipo.Equipo.Estado != ENT.TiposAnidados_ENT.EstadoTerminal.Ocupado
                    & Equipo.Equipo.Estado != ENT.TiposAnidados_ENT.EstadoTerminal.Detenido)
                {
                    return;
                }

                //enviamos la orden de detener el equipo
                EnviarOrdenaCliente(Equipo.Equipo.TCP, "BB");
                Equipo.CambiarEstado(ENT.TiposAnidados_ENT.EstadoTerminal.Detenido);

                //validamos si la configuracion permite tiempo de ocio.
                if (Configuraciones.EstaTiempoOcioActivo() &&
                    Convert.ToInt32(Equipo.Equipo.TiempoConsumido.TotalMinutes) <= ENT.TiposAnidados_ENT.MinutosOcio)
                {
                    DialogResult Res = MessageBox.Show("El Tiempo Consumido No Ha Superado El Tiempo De Ocio  ¿Desea Anular El Tiempo (Si) Ó Desea Continuar (No)?"
                                                       , "Advertencia ", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    if (Res == DialogResult.Yes)
                    {
                        EnviarOrdenaCliente(Equipo.Equipo.TCP, "Bloq");
                        Equipo.Equipo.ReiniciarFactura();
                        Equipo.ActualizarControles();
                    }
                    else
                    {
                        EnviarOrdenaCliente(Equipo.Equipo.TCP, "Cont");
                        Equipo.CambiarEstado(ENT.TiposAnidados_ENT.EstadoTerminal.Ocupado);
                    }
                }
                else
                {
                    //llamamos al formulario de factura.
                    Frm_Facturar Frm_Factura = new Frm_Facturar(Equipo.Equipo);
                    Frm_Factura.ShowDialog();

                    if (Frm_Factura.OperacionSel != ENT.TiposAnidados_ENT.TipoOperacionFactura.Ninguna)
                    {
                        RealizarOperacion(Equipo, Frm_Factura.OperacionSel);
                    }
                    Application.DoEvents();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #3
0
        private void AsignarTiempoAEquipo(CTRL.Terminal_CTRL Equipo, bool EsIlimitado, int Minutos)
        {
            try
            {
                BLL.Auditor_BLL Auditor    = new BLL.Auditor_BLL();
                DateTime        HoraInicio = DateTime.Now;
                string          Descripcion;
                int             Estado = 3;

                if (Equipo.Equipo.HoraInicio == new DateTime())
                {
                    Equipo.Equipo.HoraInicio = HoraInicio;
                }
                Equipo.Equipo.Estado = ENT.TiposAnidados_ENT.EstadoTerminal.Ocupado;

                if (EsIlimitado)
                {
                    Equipo.Equipo.TieneTiempoIlimitado = EsIlimitado;
                    EnviarOrdenaCliente(Equipo.Equipo.TCP, "-1");
                }
                else
                {
                    TimeSpan TiempoAdicionar = new TimeSpan(0, Minutos, 0);
                    Equipo.Equipo.TiempoConsumir = Equipo.Equipo.TiempoConsumir + TiempoAdicionar;
                    Equipo.Equipo.Valor          = Factura.ValorXTiempoConsumido(Convert.ToInt32(Equipo.Equipo.TiempoConsumir.TotalMinutes));
                    EnviarOrdenaCliente(Equipo.Equipo.TCP, "T" + Minutos.ToString());
                }

                //Guardamos el registro en base de datos
                Factura.Guardar(Equipo.Equipo, HoraInicio.ToShortDateString(), HoraInicio.ToLongTimeString(), Usuario.Usuario, Estado);

                //guardamos el registro de auditoria
                Descripcion = "El Usuario " + Usuario.Usuario + " Asigno Tiempo :"
                              + (EsIlimitado ? "Ilimitado" : Minutos.ToString())
                              + " Al Equipo " + Equipo.Equipo.Equipo + " En La Hora: " + HoraInicio.ToLongTimeString();
                Auditor.Registrar(Descripcion, Usuario.Usuario, ENT.TiposAnidados_ENT.AccionesAuditoria.AñadirTiempo);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #4
0
        private void Btn_Adicionales_Click(object sender, EventArgs e)
        {
            try
            {
                CTRL.Terminal_CTRL Equipo = (CTRL.Terminal_CTRL)((Control)sender).Parent;

                if (Equipo.Equipo.Estado != ENT.TiposAnidados_ENT.EstadoTerminal.Apagado
                    & Equipo.Equipo.Estado != ENT.TiposAnidados_ENT.EstadoTerminal.Disponible)
                {
                    Application.DoEvents();
                    Frm_DetallesFactura FrmDetalles = new Frm_DetallesFactura(Equipo.Equipo);
                    FrmDetalles.Show();

                    Equipo.ActualizarControles();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #5
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 #6
0
        private void AsignarEventosControlesTerminales()
        {
            try
            {
                CTRL.Terminal_CTRL Ctrl = Ctrl_Terminales.Controls.Cast <CTRL.Terminal_CTRL>().Last();

                Ctrl.Btn_Apagar.Click        -= Btn_ApagarEquipo_Click;
                Ctrl.Btn_AgregarTiempo.Click -= Btn_AgregarTiempo_Click;
                Ctrl.Btn_Trasladar.Click     -= Btn_TrasladarTiempo_Click;
                Ctrl.Btn_Facturar.Click      -= Btn_Facturar_Click;
                Ctrl.Btn_Adicionales.Click   -= Btn_Adicionales_Click;

                Ctrl.Btn_Adicionales.Click   += Btn_Adicionales_Click;
                Ctrl.Btn_Facturar.Click      += Btn_Facturar_Click;
                Ctrl.Btn_Trasladar.Click     += Btn_TrasladarTiempo_Click;
                Ctrl.Btn_AgregarTiempo.Click += Btn_AgregarTiempo_Click;
                Ctrl.Btn_Apagar.Click        += Btn_ApagarEquipo_Click;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemple #7
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);
        }
Exemple #8
0
        private void RealizarOperacion(CTRL.Terminal_CTRL Equipo, ENT.TiposAnidados_ENT.TipoOperacionFactura Operacion)
        {
            try
            {
                DateTime HoraSalida        = DateTime.Now;
                int      EstadoAnulacion   = 4;
                int      EstadoFacturacion = 3;

                BLL.Auditor_BLL Auditor = new BLL.Auditor_BLL();
                string          Descripcion;
                switch (Operacion)
                {
                case ENT.TiposAnidados_ENT.TipoOperacionFactura.Continuar:
                    EnviarOrdenaCliente(Equipo.Equipo.TCP, "Cont");
                    Equipo.CambiarEstado(ENT.TiposAnidados_ENT.EstadoTerminal.Ocupado);
                    break;

                case ENT.TiposAnidados_ENT.TipoOperacionFactura.Anular:
                    DialogResult Res = MessageBox.Show("¿Desea Anular Esta Factura?"
                                                       , "Anular"
                                                       , MessageBoxButtons.YesNo
                                                       , MessageBoxIcon.Exclamation);
                    if (Res == System.Windows.Forms.DialogResult.Yes)
                    {
                        if (Configuraciones.EstaTiempoOcioActivo() &&
                            Convert.ToInt32(Equipo.Equipo.TiempoConsumido.TotalMinutes) <= ENT.TiposAnidados_ENT.MinutosOcio)
                        {
                            Descripcion = "Se anula el registro automático del equipo " + Equipo.Equipo
                                          + " por no cumplir el tiempo de ocio a las " + HoraSalida.ToLongTimeString();
                            Auditor.Registrar(Descripcion, Usuario.Usuario, ENT.TiposAnidados_ENT.AccionesAuditoria.AnularFactura);
                            Factura.Eliminar(Equipo.Equipo);
                            Equipo.Equipo.ReiniciarFactura();
                            Equipo.ActualizarControles();
                        }
                        else
                        {
                            Descripcion = "El usuario " + Usuario.Usuario + " anuló la factura del equipo " + Equipo.Equipo
                                          + "con tiempo consumido " + Equipo.Equipo.TiempoConsumido.Minutes.ToString();
                            Auditor.Registrar(Descripcion, Usuario.Usuario, ENT.TiposAnidados_ENT.AccionesAuditoria.AnularFactura);
                            //guardamos el registro
                            Factura.Guardar(Equipo.Equipo, Hoy.ToShortDateString(), HoraSalida.ToLongTimeString(), Usuario.Usuario, EstadoAnulacion);
                            //enviamos la orden de bloqueo del equipo
                            EnviarOrdenaCliente(Equipo.Equipo.TCP, "Bloq");
                            Equipo.Equipo.ReiniciarFactura();
                            Equipo.ActualizarControles();
                        }
                    }
                    break;

                case ENT.TiposAnidados_ENT.TipoOperacionFactura.Facturar:
                    Descripcion = "El usuario " + Usuario.Usuario + " facturó al " + Equipo.Equipo
                                  + "por valor de " + Equipo.Equipo.TotalFacturar.ToString()
                                  + " en la hora " + HoraSalida.ToLongTimeString();
                    Auditor.Registrar(Descripcion, Usuario.Usuario, ENT.TiposAnidados_ENT.AccionesAuditoria.FacturaTiempo);
                    //guardamos el registro
                    Factura.Guardar(Equipo.Equipo, Hoy.ToShortDateString(), HoraSalida.ToLongTimeString(), Usuario.Usuario, EstadoFacturacion);
                    //enviamos la orden de bloqueo del equipo
                    EnviarOrdenaCliente(Equipo.Equipo.TCP, "Bloq");
                    Equipo.Equipo.ReiniciarFactura();
                    Equipo.ActualizarControles();
                    break;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }