Ejemplo n.º 1
0
        private void btnFacturar_Click(object sender, EventArgs e)
        {
            //Si el Puesto de trabajado esta separado o no
            _factura.Cliente         = _clienteSeleccionado;
            _factura.Vendedor        = _vendedorSeleccionado;
            _factura.TipoComprobante = (TipoComprobante)cmbTipoComprobante.SelectedItem;
            _factura.PuntoVentaId    = (long)cmbPuestoVenta.SelectedValue;
            _factura.UsuarioId       = Identidad.UsuarioId;

            if (_configuracion.PuestoCajaSeparado)
            {
                //Factura estado pendiente
            }
            else
            {
                //Forma de pago
                var fFormaDePago = new _00044_FormaPago(_factura);
                fFormaDePago.ShowDialog();

                if (fFormaDePago.RealizoVenta)
                {
                    LimpiarParaNuevaFactura();
                    txtCodigo.Focus();
                }
            }
        }
Ejemplo n.º 2
0
        private void btnFacturar_Click(object sender, EventArgs e)
        {
            _factura.Cliente         = _clienteSeleccionado;
            _factura.Vendedor        = _vendedorSeleccionado;
            _factura.TipoComprobante = (TipoComprobante)cmbTipoComprobante.SelectedItem;
            _factura.PuntoVentaId    = (long)cmbPuestoVenta.SelectedValue;
            _factura.UsuarioId       = Identidad.UsuarioId;


            if (_configuracion.PuestoCajaSeparado)
            {
                try
                {
                    var nuevoComprobante = new FacturaDto()
                    {
                        EmpleadoId      = _factura.Vendedor.Id,
                        ClienteId       = _factura.Cliente.Id,
                        TipoComprobante = _factura.TipoComprobante,
                        Descuento       = _factura.Descuento,
                        SubTotal        = _factura.SubTotal,
                        Fecha           = DateTime.Now,
                        Estado          = Estado.Pendiente,
                        PuestoTrabajoId = _factura.PuntoVentaId,

                        Iva105      = 0,
                        Iva21       = 0,
                        Total       = _factura.Total,
                        UsuarioId   = _factura.UsuarioId,
                        VieneVentas = true,
                        Eliminado   = false
                    };

                    foreach (var item in _factura.Items)
                    {
                        nuevoComprobante.Items.Add(new DetalleComprobanteDto
                        {
                            Cantidad    = item.Cantidad,
                            Iva         = item.Iva,
                            Descripcion = item.Descripcion,
                            Precio      = item.Precio,
                            ArticuloId  = item.ArticuloId,
                            Codigo      = item.CodigoBarra,
                            SubTotal    = item.SubTotal,
                            Eliminado   = false,
                        });
                    }

                    _facturaServicio.Insertar(nuevoComprobante);

                    MessageBox.Show("Los datos se grabaron correctamente");
                    LimpiarParaNuevoFactura();
                }
                catch (DbEntityValidationException ex)
                {
                    var error = ex.EntityValidationErrors.SelectMany(v => v.ValidationErrors)
                                .Aggregate(string.Empty,
                                           (current, validationError) =>
                                           current +
                                           ($"Property: {validationError.PropertyName} Error: {validationError.ErrorMessage}. {Environment.NewLine}"
                                           ));


                    throw new Exception($"Ocurrio un error grave al grabar la Factura. Error: {error}");
                }
            }
            else
            {
                var fFormaDePago = new _00044_FormaPago(_factura);
                fFormaDePago.ShowDialog();

                if (fFormaDePago.RealizoVenta)
                {
                    LimpiarParaNuevoFactura();
                    txtCodigo.Focus();
                }
            }
        }