예제 #1
0
 private void EditProfile_Load(object sender, EventArgs e)
 {
     if (CurrentUser == null)
     {
         MessageBox.Show("Datos Inválidos. \n" +
                         "Necesita acceder por el menu principal después de iniciar sesión.\n" +
                         "En caso contrario, comuniquese con soporte técnico.",
                         "Datos Inválidos", MessageBoxButtons.OK, MessageBoxIcon.Error);
         this.Close();
     }
     else
     {
         MDC_LocalDBEntities localDBEntity = new MDC_LocalDBEntities();
         foreach (GetCajero_Result datosUsuario in localDBEntity.GetCajero(CurrentUser.Usuario))
         {
             textUsuario.Text  = datosUsuario.Usuario;
             textClave.Text    = "";
             textClave_2.Text  = "";
             textNombre.Text   = datosUsuario.Nombre;
             textCorreo.Text   = datosUsuario.Correo;
             textSucursal.Text = datosUsuario.Sucursal;
             //Esto servirá para saber a quien le actualizamos los valores:
             detalles_cajero = localDBEntity.Cajeros.Find(datosUsuario.ID);
             detectedChanges = false;
             break;
         }
     }
 }
예제 #2
0
 private void ButtonAcceso_Click(object sender, EventArgs e)
 {
     using (MDC_LocalDBEntities localDBEntity = new MDC_LocalDBEntities()) {
         foreach (ValidaCajero_Result usuario in localDBEntity.ValidaCajero(UserTXT.Text, PassTXT.Text))
         {
             if (usuario != null)
             {
                 Logger.Info($"{usuario.Usuario} acaba de iniciar sesión.");
                 //Esto manda el nombre del cajero/a y la sucursal al menu principal.
                 CajaMenuPrincipal Menu = new CajaMenuPrincipal(usuario);
                 this.Hide(); //Esconde esta ventana.
                 Menu.Show(); //Muestra el menu
                 return;      //Termina el ciclo y sale del metodo.
             }
         }
         if (!localDBEntity.Database.Exists())
         {
             ValidaCajero_Result usuario = new CajeroEspecial();
             Logger.Info($"{usuario.Usuario} acaba de iniciar sesión.");
             //Esto manda el nombre del cajero/a y la sucursal al menu principal.
             CajaMenuPrincipal Menu = new CajaMenuPrincipal(usuario);
             this.Hide(); //Esconde esta ventana.
             Menu.Show(); //Muestra el menu
             return;      //Termina el ciclo y sale del metodo.
         }
         //Si llegó a este punto, entonces el usuario y/o contraseña están invalidos,
         //... o hay errores de conexion con la DB.
         MessageBox.Show("Usuario y/o contraseña inválidos.", "Credenciales incorrectos", MessageBoxButtons.OK);
         UserTXT.Focus();
     }
 }
예제 #3
0
 private void buttonGuardar_Click(object sender, EventArgs e)
 {
     using (MDC_LocalDBEntities localDBEntity = new MDC_LocalDBEntities()) {
         if (textUsuario.Text == "")
         {
             textUsuario.Focus();
         }
         else if (textClave.Text == "")
         {
             textClave.Focus();
         }
         else if (textNombre.Text == "")
         {
             textNombre.Focus();
         }
         else if (textCorreo.Text == "")
         {
             textCorreo.Focus();
         }
         else if (textSucursal.Text == "")
         {
             textSucursal.Focus();
         }
         else if (isAdminBox.Checked)
         {
             //Validate user's credentials.
         }
         else if (localDBEntity.Cajeros.Where(d => d.Usuario == textUsuario.Text).Count() > 0)
         {
             MessageBox.Show("El nombre de usuario ya existe.", "Datos inválidos", MessageBoxButtons.OK, MessageBoxIcon.Error);
             textUsuario.Focus();
         }
         else
         {
             //si todos tienen sus datos...
             Cajeros nuevo_cajero = new Cajeros()
             {
                 Usuario  = textUsuario.Text,
                 Clave    = textClave.Text,
                 Nombre   = textNombre.Text,
                 Correo   = textCorreo.Text,
                 Sucursal = textSucursal.Text,
                 isAdmin  = isAdminBox.Checked
             };
             localDBEntity.Cajeros.Add(nuevo_cajero);
             localDBEntity.SaveChangesAsync();
             safeToClose = true;
             MessageBox.Show(
                 "Usuario agregado satisfactoriamente.", "Completado con Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);
             this.Close();
         }
     }
 }
예제 #4
0
        private void CashInputButton_Click(object sender, EventArgs e)
        {
            CashInputForm inputForm     = new CashInputForm();
            decimal       montoAgregado = 0;
            bool          addedCash     = false;

            if (inputForm.ShowDialog(this) == DialogResult.OK)
            {
                //formato: $900,000,000,000,000.00
                addedCash     = true;
                montoAgregado = inputForm.Monto.Value;
            }
            //Realizado de esta forma porque Entity Framework no permite varias ventanas al mismo tiempo,
            //... cuando se ejecutará una transacción SQL.
            if (addedCash)
            {
                inputForm.Close();
                inputForm.Dispose();
                using (MDC_LocalDBEntities localDBEntity = new MDC_LocalDBEntities()) {
                    int id_cuadre = -1;
                    foreach (var data in localDBEntity.CuadreDiario)
                    {
                        if (data.Fecha.Date == DateTime.Now.Date)
                        {
                            id_cuadre = data.ID;
                            break;
                        }
                    }
                    int id_cajero = -1;
                    foreach (var data in localDBEntity.GetCajero(CurrentUser.Usuario))
                    {
                        id_cajero = data.ID;
                        break;
                    }

                    decimal BalanceActual = Decimal.Parse(BalanceActualLabel.Text, NumberStyles.Currency);

                    var entrada = new HistorialTransacciones()
                    {
                        IDCajero   = id_cajero,
                        IDCuadre   = id_cuadre,
                        Fecha_Hora = DateTime.Now,
                        Tipo       = "Entrada",
                        Monto      = montoAgregado //M: Tipo Decimal
                    };
                    localDBEntity.HistorialTransacciones.Add(entrada);
                    localDBEntity.SaveChanges();

                    Logger.Info($"Han entrado {montoAgregado.ToString("C")} a la caja.");
                    BalanceActualLabel.Text = (BalanceActual + montoAgregado).ToString("C");
                }
            }
        }
예제 #5
0
        private void CajaMenuPrincipal_Load(object sender, EventArgs e)
        {
            using (MDC_LocalDBEntities localDBEntity = new MDC_LocalDBEntities()) {
                int     id_cuadre = -1;
                decimal monto     = 0;
                foreach (var data in localDBEntity.CuadreDiario)
                {
                    if (data.Fecha.Date == DateTime.Now.Date)
                    {
                        id_cuadre = data.ID;
                        monto     = data.Monto_Inicio;
                        break;
                    }
                }

                if (id_cuadre != -1)
                {
                    foreach (var data in localDBEntity.HistorialTransacciones.Where(d => d.IDCuadre == id_cuadre))
                    {
                        monto += data.Monto;
                    }
                    BalanceActualLabel.Text = monto.ToString("C");
                    return;
                }

                /*
                 * foreach(var data in localDBEntity.CuadreDiario) {
                 *  if (data.Fecha.Date == DateTime.Now.Date) {
                 *      if(data.Monto_Fin != null)
                 *          BalanceActualLabel.Text = data.Monto_Fin?.ToString("C");
                 *      return;
                 *  }
                 * }*/

                //Si llega a este significa que no ha iniciado el cuadre del dia.
                CuadreDiario detalles_cuadre = new CuadreDiario {
                    Monto_Inicio = new Random().Next(20, 100) * 1000,
                    Fecha        = DateTime.Now.Date
                };
                detalles_cuadre.Monto_Fin = detalles_cuadre.Monto_Inicio;
                localDBEntity.CuadreDiario.Add(detalles_cuadre);
                //Logger.Debug($"{detalles_cuadre.Fecha.ToShortDateString()} - {detalles_cuadre.Monto_Inicio}");
                //Logger.Debug($"{detalles_cuadre.ID} - ID antes del cambio.");
                localDBEntity.SaveChanges();
                //Logger.Debug($"{detalles_cuadre.ID} - ID después del cambio.");
                string message = $"Dia inició con {detalles_cuadre.Monto_Inicio.ToString("C")} en caja.";
                BalanceActualLabel.Text = detalles_cuadre.Monto_Inicio.ToString("C");
                MessageBox.Show(message, "Inicio de la jornada", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Logger.Info(message);
            }
        }
예제 #6
0
 private void buttonGuardar_Click(object sender, EventArgs e)
 {
     using (MDC_LocalDBEntities localDBEntity = new MDC_LocalDBEntities()) {
         if (textClave.Text == "")
         {
             MessageBox.Show("Debe digitar su contraseña para guardar los cambios.",
                             "Error de autenticación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
             textClave.Focus();
         }
         else if (textClave.Text != detalles_cajero?.Clave)
         {
             MessageBox.Show("Contraseña inválida. Verifique su contraseña.",
                             "Error de autenticación.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             textClave.Focus();
         }
         else
         {
             //SaveChanges.
             var data = localDBEntity.Cajeros.Where(d => d.ID == detalles_cajero.ID);
             if (data.Count() > 0)
             {
                 detalles_cajero = data.First();
             }
             detalles_cajero.Usuario = textUsuario.Text;
             //Si puso una nueva contraseña, guarda la nueva... sino, pues no.
             if (textClave_2.Text == "")
             {
                 detalles_cajero.Clave = textClave.Text;
             }
             else
             {
                 detalles_cajero.Clave = textClave_2.Text;
             }
             detalles_cajero.Nombre   = textNombre.Text;
             detalles_cajero.Correo   = textCorreo.Text;
             detalles_cajero.Sucursal = textSucursal.Text;
             localDBEntity.SaveChangesAsync();
             detectedChanges = false;
             MessageBox.Show("Cambios guardados satisfactoriamente.\n" +
                             "Para ver los cambios, cierre la sesión y vuelva a ingresar.", "Exito", MessageBoxButtons.OK);
             this.Close();
         }
     }
 }
예제 #7
0
        private void FinalDelDia_Load(object sender, EventArgs e)
        {
            int DateID = -1;

            using (MDC_LocalDBEntities localDBEntity = new MDC_LocalDBEntities()) {
                localDBEntity.DetallesCuadre.Load();
                this.detallesCuadreBindingSource.DataSource = localDBEntity.DetallesCuadre.Local.ToBindingList();
                foreach (var data in localDBEntity.CuadreDiario)
                {
                    if (data.Fecha.Date == DateTime.Now.Date)
                    {
                        DateID = data.ID;
                        break;
                    }
                }
                CuadreDiario datos_cuadre = localDBEntity.CuadreDiario.Find(DateID);
                DateLabel.Text        = datos_cuadre.Fecha.ToShortDateString();
                MontoInicioLabel.Text = datos_cuadre.Monto_Inicio.ToString("C");
                MontoFinLabel.Text    = datos_cuadre.Monto_Fin?.ToString("C");
            }
        }
예제 #8
0
        private void CentroCuadres_Load(object sender, EventArgs e)
        {
            localDBEntity = new MDC_LocalDBEntities();
            localDBEntity.DetallesCuadre.Load();
            this.detallesCuadreBindingSource.DataSource = localDBEntity.DetallesCuadre.Local.ToBindingList();
            dataGridView1.Sort(dataGridView1.Columns[1], ListSortDirection.Ascending); //Columna 1 = Fecha/Hora

            //Toma todas las fechas, y busca la más antigua y la más reciente.
            var dateTimes = dataGridView1.Rows.Cast <DataGridViewRow>()
                            .Select(x => (DateTime)x.Cells[1].Value);  //Columna 1 = Fecha_Hora
            var minValue = dateTimes.Min();
            var maxValue = dateTimes.Max();

            Fecha_Inicio.Value   = maxValue;
            Fecha_Inicio.MinDate = minValue;
            Fecha_Inicio.MaxDate = maxValue;

            Fecha_Fin.Value   = maxValue;
            Fecha_Fin.MinDate = minValue;
            Fecha_Fin.MaxDate = maxValue;
            //// Manejo de Fechas ^^^
        }
예제 #9
0
        private void FinalizarCuadreButton_Click(object sender, EventArgs e)
        {
            int DateID = -1;

            using (MDC_LocalDBEntities localDBEntity = new MDC_LocalDBEntities()) {
                foreach (var data in localDBEntity.CuadreDiario)
                {
                    if (data.Fecha.Date == DateTime.Now.Date)
                    {
                        DateID = data.ID;
                        break;
                    }
                }
                decimal      BalanceActual = Decimal.Parse(BalanceActualLabel.Text, NumberStyles.Currency);
                CuadreDiario datos_cuadre  = localDBEntity.CuadreDiario.Find(DateID);
                datos_cuadre.Monto_Fin = BalanceActual;
                localDBEntity.SaveChanges();
                Logger.Info($"Caja cerrada con {BalanceActual}.");
                FinalDelDia formFin = new FinalDelDia();
                this.Hide();
                formFin.Show();
            }
        }
예제 #10
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Value != 0)
            {
                string  nombre       = textBox1.Text;
                string  NumeroCuenta = textBox2.Text;
                decimal monto        = textBox3.Value;



                DialogResult dr2 = MessageBox.Show("¿Esta seguro de que estos son los datos correctos?", "Confirmacion de datos ", MessageBoxButtons.YesNo);
                if (dr2 == DialogResult.Yes)
                {
                    var context  = new MDC_LocalDBEntities();
                    var deposito = new DepositoDatos()
                    {
                        Benefactor       = nombre,
                        Especificaciones = Convert.ToString(textBox4).Remove(0, 36),
                        Monto            = monto,
                        Fecha            = DateTime.Now,
                        Nro_de_Cuenta    = NumeroCuenta
                    };

                    //**** Sección de Cuadre ****//
                    int id_cuadre = -1;
                    foreach (var data in context.CuadreDiario)
                    {
                        if (data.Fecha.Date == DateTime.Now.Date)
                        {
                            id_cuadre = data.ID;
                            break;
                        }
                    }
                    int id_cajero = -1;
                    foreach (var data in context.GetCajero(CurrentUser.Usuario))
                    {
                        id_cajero = data.ID;
                        break;
                    }
                    if (id_cuadre != -1 && id_cajero != -1)
                    {
                        var transaccion = new HistorialTransacciones()
                        {
                            IDCajero   = id_cajero,
                            IDCuadre   = id_cuadre,
                            Fecha_Hora = DateTime.Now,
                            Tipo       = "Deposito",
                            Monto      = monto,
                        };
                        context.HistorialTransacciones.Add(transaccion);
                    }
                    Logger.Info($"Han sido depositados {monto.ToString("C")} a la caja.");

                    //**** Sección de Cuadre ****//


                    if (label7.Text == "Conectado")
                    {
                        string con = "Data Source=banquito.database.windows.net;initial catalog=DataBaseCore;persist security info=True;user id=lcabrera;password=cabreraL10";

                        SqlConnection prueba = new SqlConnection();
                        prueba.ConnectionString = con;

                        prueba.Open();


                        SqlCommand check_User_Name = new SqlCommand("SELECT COUNT(*) FROM [tblCuenta] WHERE (id_cuenta = @user)", prueba);
                        check_User_Name.Parameters.AddWithValue("@user", textBox2.Text);
                        int UserExist = (int)check_User_Name.ExecuteScalar();

                        if (UserExist > 0)
                        {
                            SqlCommand insertCommand = new SqlCommand("INSERT INTO tblMoviminetos (Fecha, id_transaccion, Monto, Tipo_transaccion) VALUES (@0, @1, @2, @3)", prueba);
                            insertCommand.Parameters.Add(new SqlParameter("0", deposito.Fecha));
                            insertCommand.Parameters.Add(new SqlParameter("1", deposito.ID));
                            insertCommand.Parameters.Add(new SqlParameter("2", deposito.Monto));
                            insertCommand.Parameters.Add(new SqlParameter("3", "Deposito"));

                            insertCommand.ExecuteNonQuery();
                            prueba.Close();

                            MessageBox.Show("Deposito realizado con exito");
                            ReciboDeposito form_ReciboDConectado = new ReciboDeposito(deposito.ID);
                            this.Hide();
                            form_ReciboDConectado.Show();
                        }
                        else
                        {
                            MessageBox.Show("El numero de cuenta no existe, por favor inserte un numero de cuenta valido");
                        }
                    }

                    else
                    {
                        context.DepositoDatos.Add(deposito);
                        MessageBox.Show("Deposito fuera de linea realizado con exito");
                        ReciboDeposito form_ReciboDesconectado = new ReciboDeposito(deposito.ID);
                        this.Hide();
                        form_ReciboDesconectado.Show();
                    }

                    context.SaveChanges();
                }
            }
            else
            {
                DialogResult dr2 = MessageBox.Show("Parece que algun campo se quedo vacio. Por favor introduzca todos los datos", "Datos no introducidos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #11
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Value != 0)
            {
                DialogResult dr2 = MessageBox.Show("¿Esta seguro de que estos son los datos correctos?", "Confirmacion de datos ", MessageBoxButtons.YesNo);
                if (dr2 == DialogResult.Yes)
                {
                    var context = new MDC_LocalDBEntities();

                    //**** Sección de Cuadre ****//
                    int id_cuadre = -1;
                    foreach (var data in context.CuadreDiario)
                    {
                        if (data.Fecha.Date == DateTime.Now.Date)
                        {
                            id_cuadre = data.ID;
                            break;
                        }
                    }
                    int id_cajero = -1;
                    foreach (var data in context.GetCajero(CurrentUser.Usuario))
                    {
                        id_cajero = data.ID;
                        break;
                    }
                    if (id_cuadre != -1 && id_cajero != -1)
                    {
                        ///**** Verificacion de Balance Suficiente (en la caja) ****///
                        if (textBox1.Value > BalanceCaja)
                        {
                            var entrada = new HistorialTransacciones()
                            {
                                IDCajero   = id_cajero,
                                IDCuadre   = id_cuadre,
                                Fecha_Hora = DateTime.Now,
                                Tipo       = "Entrada",
                                Monto      = textBox1.Value * 1.5M //M: Tipo Decimal
                            };
                            context.HistorialTransacciones.Add(entrada);
                        }
                        ///**** Verificacion de Balance Suficiente (en la caja) ****///

                        var transaccion = new HistorialTransacciones()
                        {
                            IDCajero   = id_cajero,
                            IDCuadre   = id_cuadre,
                            Fecha_Hora = DateTime.Now,
                            Tipo       = "Retiro",
                            Monto      = -textBox1.Value
                        };
                        context.HistorialTransacciones.Add(transaccion);
                        context.SaveChanges();
                    }
                    //**** Sección de Cuadre ****//


                    if (label6.Text == "Conectado")
                    {
                        string con = "Data Source=banquito.database.windows.net;initial catalog=DataBaseCore;persist security info=True;user id=lcabrera;password=cabreraL10";

                        SqlConnection prueba = new SqlConnection();
                        prueba.ConnectionString = con;
                        Random rnd = new Random();
                        prueba.Open();


                        var retiro = new DepositoDatos()
                        {
                            Benefactor       = "",
                            Especificaciones = Convert.ToString(textBox2).Remove(0, 36),
                            Monto            = Convert.ToDecimal(textBox1.Text),
                            Fecha            = DateTime.Now,
                            Nro_de_Cuenta    = comboBox1.Text
                        };


                        SqlCommand check_User_Name = new SqlCommand("SELECT COUNT(*) FROM [tblCuenta] WHERE (id_cuenta = @user)", prueba);
                        check_User_Name.Parameters.AddWithValue("@user", comboBox1.Text);
                        int UserExist = (int)check_User_Name.ExecuteScalar();

                        if (UserExist > 0)
                        {
                            SqlCommand insertCommand = new SqlCommand("INSERT INTO tblMoviminetos (Fecha, id_transaccion, Monto, Tipo_transaccion) VALUES (@0, @1, @2, @3)", prueba);
                            insertCommand.Parameters.Add(new SqlParameter("0", retiro.Fecha));
                            insertCommand.Parameters.Add(new SqlParameter("1", retiro.ID));
                            insertCommand.Parameters.Add(new SqlParameter("2", retiro.Monto));
                            insertCommand.Parameters.Add(new SqlParameter("3", "Retiro"));

                            insertCommand.ExecuteNonQuery();
                            prueba.Close();

                            MessageBox.Show("Retiro realizado con exito");
                            ReciboDeposito form_ReciboDConectado = new ReciboDeposito(retiro.ID);
                            this.Hide();
                            form_ReciboDConectado.Show();
                        }
                        else
                        {
                            MessageBox.Show("Retiro fuera de linea realizado con exito");
                            CajaMenuPrincipal form_MainMenu = new CajaMenuPrincipal(CurrentUser);
                            this.Hide();
                            form_MainMenu.Show();
                        }

                        //OperacionesCliente form_OpClientes = new OperacionesCliente();
                        //this.Hide();
                        //form_OpClientes.Show();
                    }
                }
            }
            else
            {
                DialogResult dr = MessageBox.Show("Debe llenar los campos pertinentes.", "Accion Invalida", MessageBoxButtons.OK, MessageBoxIcon.Error);
                comboBox1.Focus();
            }
        }