Ejemplo n.º 1
0
        private void Login()
        {
            if (_seguridadRepository.AuthenticateUser(txt_usuario_login.Text.Trim(), txt_contrasenia_login.Text))
            {
                var user = _seguridadRepository.GetAll().First(c => string.Compare(txt_usuario_login.Text.Trim(), c.Nombre_Usuario) == 0);
                CurrentUser.GetCurrentInstance().SetRole(user);
                CurrentUser.GetCurrentInstance().SetUser(user);

                if (user.Caja_Fk != null)
                {
                    string hostname = System.Environment.MachineName;
                    var    caja     = _cajaRepository.BuscarCajaPorNombre(hostname);
                    CurrentCaja.GetInstance().SetCaja(caja);
                    //No se puede cambiar la referencia de la caja
                    //CurrentCaja.GetInstance().Caja = new EE.Caja();
                }
                Hide();
                new FormularioPringles().ShowDialog(this);
                Dispose();
            }
            else
            {
                MessageBox.Show(this, "Usuario y/o contrasena incorrectos");
            }
        }
Ejemplo n.º 2
0
 private DetalleOrden CrearArticulo()
 {
     return(new DetalleOrden
     {
         Libro_Fk = instanciaLibro.Id,
         Precio_Unitario = instanciaLibro.Monto_Unitario,
         Descuento = null,
         Cantidad = Convert.ToInt32(nud_cantidad_libro_venta.Value),
         Registro_Caja_Fk = CurrentCaja.GetInstance().Caja.Id,
         Libro = instanciaLibro,
         Detalle_Descuento_Fk = null
     });
 }
Ejemplo n.º 3
0
        public FormularioCaja() : base()
        {
            RevisarRol();
            InitializeComponent();
            _registroCajaRepository = new RegistroCajaRepository();
            _cajaActual             = CurrentCaja.GetInstance().Caja;
            _usuarioActual          = CurrentUser.GetCurrentInstance().Usuario;

            if (_cajaActual == null || _usuarioActual == null)
            {
                MessageBox.Show("No se puede realizar esta operacion.");
                Dispose();
            }
        }
Ejemplo n.º 4
0
        private void FormularioVenta_Load(object sender, EventArgs e)
        {
            lbl_nombre_usuario.Text = CurrentUser.GetCurrentInstance().Usuario.NombreCompleto;
            int idCaja = CurrentCaja.GetInstance()?.Caja?.Id ?? 0;

            registroCaja = _registroCajaRepository.BuscarCajaVigente(idCaja);

            lbl_autor_mas_vendido.Text  = _autorRepository.BuscarAutorMasVendido()?.ToString() ?? "Ninguno";
            lbl_genero_mas_vendido.Text = _generoRepository.BuscarGeneroMasVendido()?.ToString() ?? "Ninguno";

            if (registroCaja == null)
            {
                MessageBox.Show(this, "La caja se encuentra cerrada.");
                return;
            }

            RefrescarVenta();
            RefrescarMensajeDescuento();
        }
Ejemplo n.º 5
0
        private void btn_alta_venta_Click(object sender, EventArgs e)
        {
            if ((!ValidarFormatoMonto(txt_monto_efectivo.Text) && !string.IsNullOrEmpty(txt_monto_efectivo.Text)))
            {
                MessageBox.Show("Formato no valido para efectivo");
                return;
            }

            if ((!ValidarFormatoMonto(txt_monto_tarjeta.Text) && !string.IsNullOrEmpty(txt_monto_tarjeta.Text)))
            {
                MessageBox.Show("Formato no valido para tarjeta");
                return;
            }

            if (registroCaja == null)
            {
                MessageBox.Show(this, "La caja se encuentra cerrada.");
                return;
            }

            if (_articulos.Count() == 0)
            {
                MessageBox.Show(this, "No hay articulos");
                return;
            }

            if (_articulos.Any(a => a.Libro.Prohibido))
            {
                MessageBox.Show(this, "Esta venta contiene libro prohibido");
                return;
            }

            if (_articulos.Any(a => a.Libro.Restringido) && instanciaCliente == null)
            {
                MessageBox.Show(this, "Este libro esta restringido, debe de ser un cliente inscrito para poder comprarlo");
                return;
            }

            decimal montoTotal    = ObtenerMontoVenta() ?? 0;
            bool    pagarTarjeta  = ch_tarjeta_credito_forma_pago.Checked;
            bool    pagarEfectivo = ch_efectivo_forma_pago.Checked;

            if (montoTotal <= 0)
            {
                MessageBox.Show("No hay venta a realizar");
                return;
            }

            if (!(pagarEfectivo || pagarTarjeta))
            {
                MessageBox.Show(this, "Debe elegir un metodo de pago");
                return;
            }

            decimal montoTarjeta = 0, montoEfectivo = 0, devuelta = 0;

            if (pagarTarjeta)
            {
                if (!decimal.TryParse(txt_monto_tarjeta.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out montoTarjeta))
                {
                    MessageBox.Show(this, "Monto no valido");
                    return;
                }
            }
            if (pagarEfectivo)
            {
                if (!decimal.TryParse(txt_monto_efectivo.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out montoEfectivo))
                {
                    MessageBox.Show(this, "Monto no valido");
                    return;
                }
            }

            if (!ValidarMontosVenta(pagarEfectivo, pagarTarjeta, montoEfectivo, montoTarjeta))
            {
                MessageBox.Show(this, "No se puede realizar la venta bajo estos montos, por favor actualizar");
                return;
            }

            if (pagarEfectivo && !pagarTarjeta)
            {
                if (montoEfectivo > montoTotal)
                {
                    devuelta = montoEfectivo - montoTotal;
                }
            }

            try
            {
                IVentaUnitOfWork uow = new VentaUnitOfWork();

                Caja    caja    = CurrentCaja.GetInstance().Caja;
                Usuario usuario = CurrentUser.GetCurrentInstance().Usuario;

                Orden orden = new Orden
                {
                    Caja_Fk             = caja.Id,
                    Caja                = caja,
                    Cambio_Dinero       = devuelta,
                    DetallesOrdenes     = _articulos,
                    Monto_Pago_Efectivo = montoEfectivo,
                    Monto_Pago_Tarjeta  = montoTarjeta,
                    Pago_Efectivo       = pagarEfectivo,
                    Pago_Tarjeta        = pagarTarjeta,
                    Cliente             = instanciaCliente,
                    Cliente_Fk          = instanciaCliente?.Id,
                    Usuario             = usuario,
                    Usuario_Fk          = usuario.Id
                };

                uow.RealizarVenta(orden, _articulos, registroCaja);
                MessageBox.Show(this, "Venta realizada");
                string factura = FabricarFacturaObjeto(orden);

                if (factura != null)
                {
                    _facturas.GuardarFactura(orden.Id, factura);
                }
                if (devuelta > 0)
                {
                    MessageBox.Show(this, $"Devuelta: {devuelta.ToString("0.00", CultureInfo.InvariantCulture)}");
                }
                _articulos.Clear();
                LimpiarCliente();
                LimpiarLibro();
                LimpiarMontos();
                DesmarcarFormasPago();
                RefrescarVenta();
                RefrescarMensajeDescuento();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }