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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); }
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); } }