public void EstableHoraServidor()
        {
            ManejoArchivo archivo = new ManejoArchivo();

            /* ASIGNACION DE VALORES A PARAMETROS MEDIANTE LA FUNCION LecturaParametros */
            ServidorBD = archivo.Datos[4].ToString();
            NombreBD = archivo.Datos[5].ToString();
            Usuario = archivo.Datos[6].ToString();
            Password = archivo.Datos[7].ToString();

            /* SE ESPECIFICA AL SERVIDOR AL CUAL SE VA A CONECTAR EL CLIENTE PARA OBTENER LA HORA Y LA FECHA */
            SqlConnection conn = new SqlConnection("data source =" + ServidorBD + "; initial catalog =" + NombreBD + "; user id =" + Usuario + "; password ="******"SELECT GETDATE()as FechaActual, datepart(dw,getdate()) - 1 as DiaSemana";
                lectura = Fecha.ExecuteReader();

                while (lectura.Read())
                {
                    char[] delimitadores ={ '/', ' ', ':', '.', '-' };
                    string hora = lectura["FechaActual"].ToString();
                    string diaSemana = lectura["DiaSemana"].ToString();
                    string[] DatosHora = hora.Split(delimitadores);
                    int valor = Convert.ToInt32(DatosHora[3]);
                    valor = valor + (4 % 24);
                    DatosHora[3] = Convert.ToString(valor);

                    fecha.Year = (ushort)Convert.ToUInt16(DatosHora[2]);
                    fecha.Month = (ushort)Convert.ToUInt16(DatosHora[1]);
                    fecha.DayOfWeek = (ushort)Convert.ToUInt16(diaSemana);
                    fecha.Day = (ushort)Convert.ToUInt16(DatosHora[0]);
                    fecha.Hour = (ushort)Convert.ToUInt16(DatosHora[3]);
                    fecha.Minute = (ushort)Convert.ToUInt16(DatosHora[4]);
                    fecha.Second = (ushort)Convert.ToUInt16(DatosHora[5]);

                    SetSystemTime(ref fecha);
                }
                lectura.Close();
                conn.Close();
            }
            catch (Exception)
            {
                conn.Close();
            }
        }
Beispiel #2
0
        /* RUTINA QUE CONTROLA EL INGRESO AL MENU DE ADMINISTRADOR DEL RELOJ, SE AGREGA CONTROL SOBRE EL INGRESO DE LA TARJETA*/
        private void txtingreso_TextChanged(object sender, EventArgs e)
        {
            if (txtingreso.Text == "1012")
            {
                Unitech.EnableTaskbar();
                Unitech.EnableDesktop();
                Unitech.EnableExploreToolbar();
                Application.Exit();
            }

            if (txtingreso.TextLength == LargoCadena)
            {
                string Comprueba = txtingreso.Text.Remove(5, 8);
                string tarjeta = txtingreso.Text.Remove(0, 5);

                if (Comprueba == "LOGAM")
                {
                    /* ASIGNACION DE PARAMETROS MEDIANTE LA FUNCION LecturaParametros */
                    TrabajaCadena = new ConvierteCadena();
                    Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    IPEndPoint DireccionServidor = new IPEndPoint(IPAddress.Parse(DirreccionIPServidor), PuertoServidor);
                    string Mensaje = null;

                    try
                    {
                        byte[] bytesCliente = new byte[70];
                        byte[] sendResponse = new byte[70];

                        sendResponse = Encoding.Default.GetBytes(TrabajaCadena.TransformaCadena(tarjeta, evento));

                        if (EstadoServidor == false)
                        {
                            string cadena = TrabajaCadena.MarcaEntradaFueraLinea(tarjeta, IP, evento);
                            string NombreFichero = @"\SDMMC\PruebaCasino\MarcaFueraLinea" + IP + ".txt";
                            ManejoArchivo archivo2 = new ManejoArchivo(NombreFichero);
                            archivo2.EscrituraMarcaFueraLinea(cadena);
                            Imprime_OffLine(Mensaje, tarjeta);
                            EstadoServidor = false;
                            txtingreso.Text = string.Empty;
                            lblRespuesta.Visible = true;
                            lblRespuesta.Text = "ASISTENCIA REGISTRADA";
                            Timer_Restablece.Enabled = true;
                            RestableceMenu();
                        }
                        else
                        {
                            client.Connect(DireccionServidor);
                            client.Send(sendResponse);

                            int bytesRec = client.Receive(bytesCliente);
                            Mensaje = Encoding.Default.GetString(bytesCliente, 0, bytesRec);
                            EstadoServidor = true;

                            /* SE INICIALIZA EL TIMER ENCARGADO DE GENERAR EVENTO DE ENVIO DE MARCAS
                             * FANTASMAS */
                            Timer_inline.Enabled = false;
                            Timer_inline.Enabled = true;

                            /* LLAMADA A LA FUNCION QUE SE ENCARGA DE IMPRIMIR EL VALE */
                            /* 06 EQUIVALE MARCA RESGISTRADA, 01 EQUIVALE A ALGUN ERROR EN LA MARCA */
                            if (Mensaje.Substring(0, 2) == "06")
                            {
                                Imprime_OnLine(Mensaje);
                                Timer_Restablece.Enabled = true;
                                lblRespuesta.Visible = true;
                                lblRespuesta.Text = Mensaje;
                            }
                            else
                            {
                                Timer_Restablece.Enabled = true;
                                lblRespuesta.Visible = true;
                                lblRespuesta.Text = Mensaje;
                            }
                            txtingreso.Text = string.Empty;
                            Mensaje = string.Empty;

                            client.Close();
                            RestableceMenu();
                        }
                    }

                    catch (SocketException)
                    {

                        /* SE AGREGA SECUENCIA IF .. ELSE LA CUAL DETERMINA SE ES ENTRADA FUERA DE LINEA O SALIDA FUERA DE
                         * LINEA, LA CUAL A SU VEZ ES GUARDADA EN UN ARCHIVO TXT PARA SU POSTERIOR RESCATE DESDE
                         * EL MPOINT */
                        client.Close();
                        lblRespuesta.Text = Mensaje;

                        string cadena = TrabajaCadena.MarcaEntradaFueraLinea(tarjeta, IP, evento);
                        string NombreFichero = @"\SDMMC\PruebaCasino\MarcaFueraLinea" + IP + ".txt";
                        ManejoArchivo archivo2 = new ManejoArchivo(NombreFichero);
                        archivo2.EscrituraMarcaFueraLinea(cadena);
                        Imprime_OffLine(Mensaje, tarjeta);
                        Timer_Restablece.Enabled = true;
                        EstadoServidor = false;

                    }
                }
                else
                {
                    lblRespuesta.Visible = true;
                    txtingreso.Enabled = false;
                    txtingreso.Text = "";
                    lblRespuesta.Text = "Tarjeta Invalida";
                    Timer_Restablece.Enabled = true;
                    RestableceMenu();
                }
            }
        }