internal async Task ModificarAsync(VentaListadoItem ventaListadoItem)
        {
            ModeloVenta.Venta venta = await VentaService.Obtener(ventaListadoItem.Venta.Id);

            VentaDetalleForm ventaDetalleForm = new VentaDetalleForm(venta);

            ventaDetalleForm.ShowDialog();
            await BuscarAsync();
        }
示例#2
0
        private void Imprimir(ModeloVenta.Venta venta)
        {
            string[] cabeceras = Settings.Default.ComprobanteCompraCabecera.Split(new string[] { "\\n" }, StringSplitOptions.None);
            string[] pie       = Settings.Default.ComprobanteCompraPie.Split(new string[] { "\\n" }, StringSplitOptions.None);
            Ticket   ticket    = new Ticket(Settings.Default.NombreFantasia, Settings.Default.Direccion, Settings.Default.ComprobanteCompraSeparador, cabeceras, pie, venta);

            Impresora impresora = new Impresora(Settings.Default.ImpresoraNombre, ticket);

            impresora.Imprimir();
        }
 public VentaDetalleViewModel(Modelo.Venta venta)
 {
     Venta       = venta;
     FechaAlta   = venta.FechaAlta;
     UsuarioAlta = venta.UsuarioAlta;
     FormaPago   = venta.Pago.FormaPago.ToString();
     MontoPago   = venta.Pago.MontoPago;
     venta.VentaItems.ToList().ForEach(x => VentaItems.Add(new VentaItem(x.Producto, x.Cantidad, x.Precio)));
     MotivoAnulacion  = venta.MotivoAnulada;
     FechaAnulacion   = venta.FechaAnulada;
     UsuarioAnulacion = venta.UsuarioAnulada;
 }
示例#4
0
        public static Task Guardar(Model.Venta venta)
        {
            VentaValidador   validador          = new VentaValidador();
            ValidationResult validadorResultado = validador.Validate(venta);

            if (!validadorResultado.IsValid)
            {
                throw new NegocioException(string.Join(Environment.NewLine, validadorResultado.Errors.Select(x => x.ErrorMessage)));
            }

            VentaRepository ventaRepository = new VentaRepository(new Context());

            return(ventaRepository.Guardar(venta));
        }
        internal void PruebaTicket()
        {
            Modelo.Producto         productoPrueba = new Modelo.Producto("0123456789", "Producto prueba ticket", false, 100, 1, true);
            List <Modelo.VentaItem> ventaItems     = new List <Modelo.VentaItem>();

            ventaItems.Add(new Modelo.VentaItem(productoPrueba, 1, 100));
            ventaItems.Add(new Modelo.VentaItem(productoPrueba, 2, 100));
            ventaItems.Add(new Modelo.VentaItem(productoPrueba, 3, 100));
            ventaItems.Add(new Modelo.VentaItem(productoPrueba, 4, 100));
            Modelo.Pago  pago  = new Modelo.Pago(FormaPago.Efectivo, 1000, 1200, 0, 0);
            Modelo.Venta venta = new Modelo.Venta("Prueba", ventaItems, pago);

            string[] cabeceras = CabeceraTicket.Split(new string[] { "\r\n" }, StringSplitOptions.None);
            string[] pie       = PieTicket.Split(new string[] { "\r\n" }, StringSplitOptions.None);
            Ticket   ticket    = new Ticket(NombreSucursal, DireccionSucursal, SeparadorTicket, cabeceras, pie, venta);

            Impresora impresora = new Impresora(Settings.Default.ImpresoraNombre, ticket);

            impresora.Imprimir();
        }
示例#6
0
        internal async Task GuardarAsyn()
        {
            CobroForm cobroForm = new CobroForm(Total);

            if (cobroForm.ShowDialog() == DialogResult.OK)
            {
                ModeloVenta.Pago pago = new ModeloVenta.Pago(cobroForm.FormaPago, Total, cobroForm.MontoPago, 0, 0);

                IList <ModeloVenta.VentaItem> ventaItems = VentaItems.Select(x => new ModeloVenta.VentaItem(x.Producto, x.Cantidad, x.Precio)).ToList();

                ModeloVenta.Venta venta = new ModeloVenta.Venta(Sesion.Usuario.Alias, ventaItems, pago);
                venta.DisminuirStock();
                await VentaService.Guardar(venta);

                Imprimir(venta);

                VueltoForm vueltoForm = new VueltoForm(pago.Vuelto);
                vueltoForm.ShowDialog();

                VentaItems.Clear();
                NotifyPropertyChanged(nameof(VentaItems));
            }
        }
示例#7
0
        public Ticket(string NombreFantasia, string Direccion, string Separador, string[] Cabecera, string[] Pie, Modelo.Venta Venta)
        {
            Texto nombreFantasia = new Texto(NombreFantasia, StringAlignment.Center);

            AgregarLinea(Cabecera1, nombreFantasia);

            Texto direccion = new Texto(Direccion, StringAlignment.Center);

            AgregarLinea(Cabecera2, direccion);

            AgregarLineaSeparador(cuerpo1, Separador);

            foreach (string cabecera in Cabecera)
            {
                Texto texto = new Texto(cabecera, StringAlignment.Center);
                AgregarLinea(Cabecera2, texto);
            }

            Texto fecha = new Texto($"Fecha:{Venta.FechaAlta.ToString("dd/MM/yyyy")}", StringAlignment.Near, 0.5f);
            Texto hora  = new Texto($"Hora:{Venta.FechaAlta.ToString("HH:mm:ss")}", StringAlignment.Far, 0.5f);

            AgregarLinea(cuerpo1, fecha, hora);

            AgregarLineaSeparador(cuerpo1, Separador);
            AgregarLineaBlanco(cuerpo1);

            foreach (Modelo.VentaItem VentaItem in Venta.VentaItems)
            {
                Texto detalle = new Texto($"{VentaItem.Cantidad} Uni. X {VentaItem.Producto.Precio.ToString("c2")}", StringAlignment.Near);
                AgregarLinea(cuerpo1, detalle);

                Texto descripcion = new Texto(VentaItem.Producto.Descripcion, StringAlignment.Near, 0.6f);
                Texto monto       = new Texto(VentaItem.Total.ToString("c2"), StringAlignment.Far, StringAlignment.Far, 0.4f);
                AgregarLinea(cuerpo1Negrita, descripcion, monto);
            }

            AgregarLineaBlanco(cuerpo1);

            Texto total      = new Texto("Total", StringAlignment.Near, 0.5f);
            Texto montoTotal = new Texto(Venta.VentaItems.Sum(x => x.Total).ToString("c2"), StringAlignment.Far, 0.5f);

            AgregarLinea(Cabecera2Negrita, total, montoTotal);

            AgregarLineaBlanco(cuerpo1);

            Texto pagoLeyenda = new Texto("Su Pago", StringAlignment.Near);

            AgregarLinea(cuerpo1, pagoLeyenda);

            Texto formaPago = new Texto(Venta.Pago.FormaPago.ToString(), StringAlignment.Near, 0.5f);
            Texto montoPago = new Texto(Venta.Pago.MontoPago.ToString("c2"), StringAlignment.Far, 0.5f);

            AgregarLinea(cuerpo1Negrita, formaPago, montoPago);

            AgregarLineaBlanco(cuerpo1);

            Texto vueltoLeyenda = new Texto("Su vuelto", StringAlignment.Near, 0.5f);
            Texto vuelto        = new Texto(Venta.Pago.Vuelto.ToString("c2"), StringAlignment.Far, 0.5f);

            AgregarLinea(Cabecera2Negrita, vueltoLeyenda, vuelto);

            AgregarLineaBlanco(cuerpo1);

            foreach (string cabecera in Pie)
            {
                Texto texto = new Texto(cabecera, StringAlignment.Near);
                AgregarLinea(cuerpo1, texto);
            }
        }
示例#8
0
 public VentaDetalleForm(Modelo.Venta venta)
 {
     InitializeComponent();
     ventaDetalleViewModel = new VentaDetalleViewModel(venta);
 }
示例#9
0
 public VentaListadoItem(Model.Venta venta)
 {
     Venta = venta;
 }