Esempio n. 1
0
 private void txtClientes_Populating(object sender, PopulatingEventArgs e)
 {
     using (var bd = new EmpeñosDataContext())
         txtClientes.ItemsSource = bd.Clientes
                                   .Where(c => c.Código.Contains(txtClientes.Text) || c.NombreCompleto.Contains(txtClientes.Text))
                                   .Select(c => new KeyValuePair <string, string>(c.Código, c.NombreCompleto)).Take(10);
 }
Esempio n. 2
0
        private void btnAgregarArtículo_Click(object sender, RoutedEventArgs e)
        {
            if (txtArtículos.SelectedItem == null)
            {
                MessageBox.Show("Debe seleccionar un artículo");
                return;
            }

            if (listaArtículos.Any(a => a.Código == ((KeyValuePair <string, string>)txtArtículos.SelectedItem).Key))
            {
                MessageBox.Show("El artículo seleccionado no puede ser ingresado varias veces a la factura");
                return;
            }

            var bd  = new EmpeñosDataContext();
            var art = bd.Artículos.SingleOrDefault(a => a.Código == ((KeyValuePair <string, string>)txtArtículos.SelectedItem).Key);

            if (art != null)
            {
                grdArtículos.ItemsSource = null;
                art.Precio = 0;
                listaArtículos.Add(art);
                grdArtículos.ItemsSource  = listaArtículos;
                txtArtículos.Text         = string.Empty;
                grdArtículos.SelectedItem = art;
                grdArtículos.BeginEdit();
                ActualizarTotales();
            }
        }
Esempio n. 3
0
 private void txtArtículos_Populating(object sender, PopulatingEventArgs e)
 {
     using (var bd = new EmpeñosDataContext())
     {
         txtArtículos.ItemsSource = bd.Artículos
                                    .Where(a => a.Estado == (byte)EstadosActículos.Quedado && (a.Código.Contains(txtArtículos.Text) || a.Nombre.Contains(txtArtículos.Text) || a.Artículos_Características.Any(ac => ac.Valor.Contains(txtArtículos.Text))))
                                    .Select(a => new KeyValuePair <string, string>(a.Código, a.DescripciónExtendida))
                                    .Take(15);
     }
 }
Esempio n. 4
0
 private void txtCódigo_Loaded(object sender, RoutedEventArgs e)
 {
     if (txtCódigo.AsInt == 0)
     {
         using (var bd = new EmpeñosDataContext())
         {
             int últimoCódigo = bd.Empeños.Select(emp => (int?)emp.Código).Max() ?? 0;
             txtCódigo.AsInt = últimoCódigo + 1;
             txtCódigo.SelectAll();
         }
     }
 }
Esempio n. 5
0
 private void txtCódigo_Loaded(object sender, RoutedEventArgs e)
 {
     using (var bd = new EmpeñosDataContext())
     {
         if (!códigoCompra.HasValue)
         {
             int últimoCódigo = bd.Compras.Select(comp => (int?)comp.Código).Max() ?? 0;
             txtCódigo.AsInt = últimoCódigo + 1;
             txtCódigo.SelectAll();
         }
     }
 }
Esempio n. 6
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            características = new List <CaracterísticaValor>();

            var bd = new EmpeñosDataContext();

            parámetros = bd.Parámetros.FirstOrDefault();

            cmbCategorías.Items.Insert(0, new KeyValuePair <int?, string>(null, string.Empty));

            foreach (var cat in bd.Categorías.OrderBy(cat => cat.Nombre))
            {
                cmbCategorías.Items.Add(new KeyValuePair <int?, string>(cat.Código, cat.Nombre));
            }

            cmbCategorías.SelectedIndex = 0;

            dtpFecha.SelectedDate         = DateTime.Today;
            pnlDetalleArtículo.Visibility = Visibility.Collapsed;
            txtCódigo.Focus();

            if (códigoCompra.HasValue)
            {
                var compra = bd.Compras.SingleOrDefault(c => c.Código == códigoCompra);
                if (compra != null)
                {
                    txtCódigo.Text                  = compra.Código.ToString();
                    txtCódigo.IsReadOnly            = true;
                    chkImprimirAlGuardar.Visibility = Visibility.Collapsed;

                    dtpFecha.SelectedDate = compra.Fecha;

                    if (compra.Cliente != null)
                    {
                        txtClientes.SelectedItem = new KeyValuePair <string, string>(compra.Cliente.Código, compra.Cliente.NombreCompleto);
                        txtClientes.Text         = compra.Cliente.NombreCompleto;
                    }

                    txtTotalCostoCompra.AsInt = compra.CostoTotal;

                    foreach (ComprasDetalle det in compra.ComprasDetalles)
                    {
                        lstArtículos.Items.Add(det.Artículo);
                        det.Artículo.Artículos_Características.ToArray();
                    }

                    dtpFecha.Focus();
                }
            }
        }
Esempio n. 7
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var bd = new EmpeñosDataContext();

            parámetros = bd.Parámetros.FirstOrDefault();

            dtpFecha.SelectedDate = DateTime.Today;

            txtCódigo.Focus();

            if (códigoVenta.HasValue)
            {
                var venta = bd.Ventas.SingleOrDefault(c => c.Código == códigoVenta);
                if (venta != null)
                {
                    txtCódigo.Text                  = venta.Código.ToString();
                    txtCódigo.IsReadOnly            = true;
                    chkImprimirAlGuardar.Visibility = Visibility.Collapsed;
                    dtpFecha.SelectedDate           = venta.Fecha;
                    cmbEstado.SelectedIndex         = (int)venta.Estado;
                    txtCódigo.IsEnabled             = false;
                    txtMontoAPagar.Text             = venta.Total.ToString();

                    if (venta.Cliente != null)
                    {
                        txtClientes.SelectedItem = new KeyValuePair <string, string>(venta.Cliente.Código, venta.Cliente.NombreCompleto);
                        txtClientes.Text         = venta.Cliente.NombreCompleto;
                    }

                    grdArtículos.ItemsSource = null;

                    foreach (var det in venta.VentasDetalles)
                    {
                        listaArtículos.Add(det.Artículo);
                    }

                    grdArtículos.ItemsSource = listaArtículos;

                    ActualizarTotales();

                    dtpFecha.Focus();
                }
            }

            grdArtículos.ItemsSource = listaArtículos;
        }
Esempio n. 8
0
        private void cmbCategorías_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            gridCaracterísticas.ItemsSource = null;
            características.Clear();

            if (cmbCategorías.SelectedValue != null)
            {
                using (var bd = new EmpeñosDataContext())
                {
                    foreach (var car in bd.Categorías.First(c => c.Código == (int)cmbCategorías.SelectedValue).Categorías_Características)
                    {
                        características.Add(new CaracterísticaValor {
                            CódigoCaracterística = car.Código_Característica, NombreCaracterística = car.Característica.Nombre, Valor = string.Empty
                        });
                    }
                }
                gridCaracterísticas.ItemsSource = características;
            }
        }
Esempio n. 9
0
        private void Application_Exit(object sender, ExitEventArgs e)
        {
            try
            {
                using (var bd = new EmpeñosDataContext())
                {
                    var parametros = bd.Parámetros.FirstOrDefault();

                    if (parametros != null)
                    {
                        string rutaRespaldo        = Path.GetDirectoryName(parametros.RutaRespaldoBD);
                        string rutaRespaldosViejos = Path.Combine(rutaRespaldo, "Viejos\\");
                        string archivoRespaldo     = Path.Combine(rutaRespaldo, "Empeños.bak");

                        try
                        {
                            if (!Directory.Exists(rutaRespaldosViejos))
                            {
                                Directory.CreateDirectory(rutaRespaldosViejos);
                            }

                            string archivoRespaldoViejo = Path.Combine(rutaRespaldosViejos, "Empeños_" + DateTime.Today.DayOfWeek + ".bak");

                            if (File.Exists(archivoRespaldoViejo))
                            {
                                File.Delete(archivoRespaldoViejo);
                            }

                            File.Move(archivoRespaldo, archivoRespaldoViejo);
                        }
                        catch
                        { }

                        bd.Respaldar(archivoRespaldo);
                    }
                }
            }
            catch (Exception ex) { ex.ToString(); }
        }
Esempio n. 10
0
        public static FlowDocument ReciboDeEmpeño(int códigoEmpeño, string firma)
        {
            using (var bd = new EmpeñosDataContext())
            {
                var empeño     = bd.Empeños.SingleOrDefault <Empeño>(emp => emp.Código == códigoEmpeño);
                var parámetros = bd.Parámetros.SingleOrDefault();

                if (empeño != null && parámetros != null)
                {
                    //Documento con Encabezado
                    var recibo = new FlowDocument
                    {
                        TextAlignment = TextAlignment.Justify,
                        PageWidth     = Recibos.anchoPágina,
                        PageHeight    = double.NaN,
                        PagePadding   = new Thickness(Recibos.margenPágina),
                        FontFamily    = new FontFamily("Arial"),
                        FontSize      = 13,
                        Blocks        =
                        {
                            new Paragraph
                            {
                                TextAlignment = TextAlignment.Center,
                                Inlines       =
                                {
                                    new Image
                                    {
                                        Stretch = Stretch.None,
                                        Source  = new BitmapImage(new Uri(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Recursos\\Imágenes\\Logo.png")))
                                    },
                                    new LineBreak(),
                                    new LineBreak(),
                                    "Compra Venta",
                                    new LineBreak(),
                                    new Run("La Salvada")
                                    {
                                        FontSize = 18, FontWeight = FontWeights.Bold
                                    },
                                    new LineBreak(),
                                    "Porfirio Morales Mora",
                                    new LineBreak(),
                                    "Cédula: 2-0290-0936",
                                    new LineBreak(),
                                    new LineBreak(),
                                    "Tel: ",
                                    new Run("2474-0641")
                                    {
                                        FontFamily = new FontFamily("Arial")
                                    },
                                    new LineBreak(),
                                    "Aguas Zarcas - San Carlos",
                                    new LineBreak(),
                                    new LineBreak(),
                                    new Run("COMPRA NO. " + empeño.Código)
                                    {
                                        FontSize = 18, FontWeight = FontWeights.Bold
                                    },
                                }
                            },
                            new Paragraph
                            {
                                TextAlignment = TextAlignment.Left,
                                Inlines       =
                                {
                                    $"Fecha  : {empeño.Fecha.ToString("dd/MMM/yyyy")}",
                                    new LineBreak(),
                                    $"Cliente: {empeño.Cliente.NombreCompleto}",
                                    new LineBreak(),
                                    $"Cédula : {empeño.Código_Cliente}",
                                    new LineBreak(),
                                    new LineBreak(),
                                    new Line {
                                        Stretch = Stretch.Fill,                        Stroke= new SolidColorBrush(Colors.Black), X2 = 1
                                    }
                                }
                            }
                        }
                    };

                    //Artículos
                    foreach (EmpeñosDetalle empeñosDetalle in empeño.EmpeñosDetalles)
                    {
                        recibo.Blocks.Add(new Paragraph
                        {
                            TextAlignment = TextAlignment.Left,
                            Inlines       =
                            {
                                empeñosDetalle.Artículo.ToString()
                            }
                        });
                    }

                    // Totales
                    recibo.Blocks.Add
                    (
                        new Paragraph
                    {
                        TextAlignment = TextAlignment.Right,
                        Inlines       =
                        {
                            $"Total: {empeño.TotalMontoPréstamo.ToString("C0")}"
                        }
                    }
                    );

                    //Acuerdo de Compra y Venta
                    recibo.Blocks.Add
                    (
                        new Paragraph
                    {
                        FontSize = 10,
                        Inlines  =
                        {
                            new LineBreak(),
                            new Run("  ACUERDO DE COMPRA Y VENTA  ")
                            {
                                FontWeight = FontWeights.Bold,                                                                                                                                                        FontSize                    = 14
                            },
                            new LineBreak(),
                            new LineBreak(),
                            "Nosotros, Porfirio Morales Mora,  cédula: 2-0290-0936, de ahora en adelante EL COMPRADOR y ",
                            $"{empeño.Cliente.Nombre} {empeño.Cliente.Apellidos}, cédula: {empeño.Cliente.Código}",
                            ", de ahora en adelante EL VENDEDOR, según se identifican en este contrato.",
                            new LineBreak(),
                            "EL VENDEDOR es dueño de o los artículos que se supra detalla, quien da en venta a EL COMPRADOR y lo libera de toda responsabilidad",
                            new LineBreak(),
                            "EL COMPRADOR lo o los acepta comprar y almacenarlos por 30 dias desde hoy; por si ",
                            "EL VENDEDOR en cualquier momento lo o los desea adquirir, por el periodo de almacenamiento, por el total, mas el 10% del mismo ",
                            "por concepto de almacenamiento de o los artículos. El periodo de almacenamiento podrá extenderse en acuerdo de ambos, cada 30 días ",
                            "realizando el pago del 10% del precio del total cada 30 días, de lo contrario EL COMPRADOR no estará más obligado a mantener el o los articulos almacenados y disponer de este o estos.",
                        }
                    }
                    );

                    recibo.Blocks.Add(
                        new Paragraph
                    {
                        FontSize      = 12,
                        TextAlignment = TextAlignment.Center,
                        Inlines       =
                        {
                            new Image
                            {
                                Stretch = Stretch.None,
                                Source  = new BitmapImage(new Uri(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Recursos\\Imágenes\\FirmaPorfirio.png")))
                            },
                            new LineBreak(),
                            new Line {
                                Stretch = Stretch.Fill, Stroke = new SolidColorBrush(Colors.Black), X2 = 1
                            },
                            new LineBreak(),
                            "Firma COMPRADOR",
                            new LineBreak(),
                        }
                    });

                    if (firma != null && firma.Length > 0)
                    {
                        #region Cargar Firma

                        var inkFirma = new Topaz.SigPlusNET();
                        // Encriptar y Comprimir Firma
                        inkFirma.SetSigCompressionMode(2);
                        inkFirma.SetEncryptionMode(2);
                        inkFirma.AutoKeyStart();
                        inkFirma.SetAutoKeyData("La Salvada");
                        inkFirma.AutoKeyFinish();

                        inkFirma.SetImageXSize(500);
                        inkFirma.SetImageYSize(150);
                        inkFirma.SetJustifyMode(5);

                        inkFirma.SetSigString(firma);

                        var img = new BitmapImage();
                        var ms  = new MemoryStream();
                        inkFirma.GetSigImage().Save(ms, ImageFormat.Bmp);
                        var imgFirma = new BitmapImage();
                        imgFirma.BeginInit();
                        imgFirma.StreamSource = ms;
                        imgFirma.EndInit();

                        #endregion

                        recibo.Blocks.Add
                        (
                            new Paragraph
                        {
                            FontSize      = 12,
                            TextAlignment = TextAlignment.Center,
                            Inlines       =
                            {
                                new Image
                                {
                                    Source = imgFirma
                                },
                                new Line {
                                    Stretch = Stretch.Fill, Stroke = new SolidColorBrush(Colors.Black), X2 = 1
                                },
                                "Firma y cédula VENDEDOR",
                            }
                        }
                        );
                    }
                    else
                    {
                        recibo.Blocks.Add
                        (
                            new Paragraph
                        {
                            FontSize      = 12,
                            TextAlignment = TextAlignment.Center,
                            Inlines       =
                            {
                                new LineBreak(),
                                new Line {
                                    Stretch = Stretch.Fill,Stroke             = new SolidColorBrush(Colors.Black), X2 = 1
                                },
                                new LineBreak(),
                                "Firma y cédula VENDEDOR",
                            }
                        }
                        );
                    }

                    return(recibo);
                }

                return(new FlowDocument());
            }
        }
Esempio n. 11
0
        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            if (txtCódigo.Text.Trim() == string.Empty)
            {
                MessageBox.Show("Debe ingresar la identificación del cliente");
                txtCódigo.Focus();
                return;
            }

            if (txtNombre.Text.Trim() == string.Empty)
            {
                MessageBox.Show("Debe ingresar el nombre del cliente");
                txtNombre.Focus();
                return;
            }

            if (txtApellidos.Text.Trim() == string.Empty)
            {
                MessageBox.Show("Debe ingresar los apellidos del cliente");
                txtApellidos.Focus();
                return;
            }
            if (chkFacturaElectronica.IsChecked == true)
            {
                if (txtEmail.Text == "")
                {
                    MessageBox.Show("Debe ingresar el correo electroníco. Ej: [email protected]");
                    txtApellidos.Focus();
                    return;
                }
                else if (!check_email(txtEmail.Text))
                {
                    MessageBox.Show("Formato incorrecto en el campo de correo electroníco. Ej: [email protected]");
                    txtApellidos.Focus();
                    return;
                }
            }


            string caseSwitch = cmbTipoId.Text;
            short  tipoid;

            switch (caseSwitch)
            {
            case "Física":
                tipoid = 1;
                break;

            case "Jurídica":
                tipoid = 2;
                break;

            case "DIMEX":
                tipoid = 3;
                break;

            case "NITE":
                tipoid = 4;
                break;

            default:
                tipoid = 5;
                break;
            }

            using (var bd = new EmpeñosDataContext())
            {
                Cliente = bd.Clientes.SingleOrDefault(c => c.Código == txtCódigo.Value.ToString());

                if (Cliente == null && códigoCliente2 == "")
                {
                    Cliente = new Cliente {
                        TipoIdentificación = tipoid, Código = txtCódigo.Value.ToString()
                    };
                    bd.Clientes.InsertOnSubmit(Cliente);
                }
                else if (códigoCliente2 != "")
                {
                    try
                    {
                        bd.updateIDs(txtCódigo.Value.ToString(), códigoCliente2);
                        códigoCliente2 = "";
                        Cliente        = bd.Clientes.SingleOrDefault(c => c.Código == txtCódigo.Value.ToString());
                    }
                    catch (Exception t)
                    {
                        System.Windows.MessageBox.Show("Error al actualizar.  Ya existe un cliente con esta identificación.\n" + t.Message, "Error", MessageBoxButton.OK);
                    }
                }

                Cliente.TipoIdentificación = tipoid;
                Cliente.Nombre             = txtNombre.Text.Trim();
                Cliente.Apellidos          = txtApellidos.Text.Trim();
                Cliente.Género             = rbMasculino.IsChecked.Value ? 'M' : 'F';
                Cliente.Teléfono           = txtTeléfono.Text;
                Cliente.Email = txtEmail.Text;
                Cliente.RecibirNotificaciones  = chkRecibirNotificaciones.IsChecked.Value;
                Cliente.FacturacionElectronica = chkFacturaElectronica.IsChecked.Value;
                Cliente.Dirección = txtDirección.Text;
                Cliente.Notas     = txtNotas.Text;

                if (imgFoto.Source != null && !imgFoto.Source.ToString().StartsWith("pack"))
                {
                    using (var stream = new MemoryStream())
                    {
                        var encoder = new PngBitmapEncoder();
                        encoder.Frames.Add(BitmapFrame.Create(imgFoto.Source as BitmapSource));
                        encoder.Save(stream);
                        Cliente.Foto = stream.ToArray();
                    }
                }
                else
                {
                    Cliente.Foto = null;
                }

                this.DialogResult = true;


                bd.SubmitChanges();
            }
        }
Esempio n. 12
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            if (!string.IsNullOrEmpty(códigoCliente))
            {
                using (var bd = new EmpeñosDataContext())
                {
                    var cliente = bd.Clientes.SingleOrDefault(c => c.Código == códigoCliente);
                    if (cliente != null)
                    {
                        txtCódigo.IsReadOnly       = true;
                        cmbTipoId.IsEnabled        = false;
                        btnEditarCodigo.Visibility = Visibility.Visible;
                        short  caseSwitch = cliente.TipoIdentificación;
                        string tipoid;
                        switch (caseSwitch)
                        {
                        case 1:
                            tipoid = "Física";
                            break;

                        case 2:
                            tipoid = "Jurídica";
                            break;

                        case 3:
                            tipoid = "DIMEX";
                            break;

                        case 4:
                            tipoid = "NITE";
                            break;

                        default:
                            tipoid = "Sin Definir";
                            break;
                        }

                        txtNombre.Text        = cliente.Nombre;
                        txtApellidos.Text     = cliente.Apellidos;
                        rbMasculino.IsChecked = cliente.Género == 'M';
                        rbFemenino.IsChecked  = cliente.Género == 'F';
                        txtTeléfono.Text      = cliente.Teléfono;
                        txtEmail.Text         = cliente.Email;
                        chkRecibirNotificaciones.IsChecked = cliente.RecibirNotificaciones;
                        chkFacturaElectronica.IsChecked    = cliente.FacturacionElectronica;
                        txtDirección.Text = cliente.Dirección;
                        txtNotas.Text     = cliente.Notas;
                        cmbTipoId.Text    = tipoid;
                        txtCódigo.Text    = cliente.Código;


                        if (cliente.Foto != null)
                        {
                            var bitmap = new BitmapImage();

                            using (var stream = new MemoryStream(cliente.Foto.ToArray()))
                            {
                                bitmap.BeginInit();
                                bitmap.CacheOption  = BitmapCacheOption.OnLoad;
                                bitmap.StreamSource = stream;
                                bitmap.EndInit();
                            }
                            imgFoto.Source = bitmap;
                        }

                        txtNombre.Focus();
                    }
                }
            }
            else
            {
                txtCódigo.Focus();
            }
        }
Esempio n. 13
0
        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            if (ValidarVenta())
            {
                using (var bd = new EmpeñosDataContext())
                {
                    bool insertando = false;

                    var venta = bd.Ventas.SingleOrDefault(v => v.Código == txtCódigo.AsInt);

                    if (venta == null)
                    {
                        venta = new Venta {
                            Código = txtCódigo.AsInt
                        };
                        bd.Ventas.InsertOnSubmit(venta);
                        insertando = true;
                    }

                    venta.Código_Cliente = ((KeyValuePair <string, string>)txtClientes.SelectedItem).Key;
                    venta.Fecha          = dtpFecha.SelectedDate.Value;
                    venta.Notas          = txtNotasVentas.Text;
                    venta.Estado         = Convert.ToByte(cmbEstado.SelectedIndex);

                    if (!insertando)
                    {
                        bd.VentasDetalles.DeleteAllOnSubmit(venta.VentasDetalles);
                        bd.VentasAbonos.DeleteAllOnSubmit(venta.VentasAbonos);
                    }

                    for (int cont = 0; cont < listaArtículos.Count; cont++)
                    {
                        Artículo art = bd.Artículos.SingleOrDefault(a => a.Código == listaArtículos[cont].Código);

                        if (art != null)
                        {
                            art.Precio = listaArtículos[cont].Precio;
                            art.Estado = (byte)EstadosActículos.Vendido;

                            venta.VentasDetalles.Add(new VentasDetalle {
                                Código_Venta = venta.Código, Código_Artículo = art.Código
                            });
                        }
                        else
                        {
                            MessageBox.Show("El artículo " + listaArtículos[cont].Código + " ya no existe en la base de datos");
                            return;
                        }
                    }

                    int cuota = 0;
                    venta.VentasAbonos.Add(new VentasAbono {
                        Cuota = ++cuota, Fecha = DateTime.Now, Monto = txtTotalMontoVenta.AsInt
                    });
                    venta.Impuesto = txtIVA.AsDecimal;
                    venta.Total    = (int)txtMontoAPagar.AsDecimal;

                    bd.SubmitChanges();

                    this.DialogResult = true;
                }
            }
        }
Esempio n. 14
0
        public static FlowDocument ReciboDeVenta(int códigoVenta)
        {
            FlowDocument flowDocument1 = (FlowDocument)null;

            using (EmpeñosDataContext empeñosDataContext = new EmpeñosDataContext())
            {
                Venta venta = empeñosDataContext.Ventas.SingleOrDefault <Venta>((System.Linq.Expressions.Expression <Func <Venta, bool> >)(ven => ven.Código == códigoVenta));
                if (venta != null)
                {
                    Image image = new Image()
                    {
                        Stretch = Stretch.None
                    };
                    BitmapImage bitmapImage = new BitmapImage();
                    bitmapImage.BeginInit();
                    bitmapImage.UriSource = new Uri(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location.ToString()), "Recursos\\Imágenes\\Logo.png"), UriKind.Absolute);
                    bitmapImage.EndInit();
                    image.Source = (ImageSource)bitmapImage;
                    FlowDocument flowDocument2 = new FlowDocument();
                    flowDocument2.PageWidth = Recibos.anchoPágina;
                    Thickness thickness = new Thickness(Recibos.margenPágina);
                    flowDocument2.PagePadding = thickness;
                    double num1 = double.NaN;
                    flowDocument2.PageHeight = num1;
                    FontFamily fontFamily = new FontFamily("Arial");
                    flowDocument2.FontFamily = fontFamily;
                    double num2 = 13.0;
                    flowDocument2.FontSize = num2;
                    flowDocument2.Blocks.Add((Block) new BlockUIContainer((UIElement)image));
                    BlockCollection blocks1    = flowDocument2.Blocks;
                    Paragraph       paragraph1 = new Paragraph();
                    int             num3       = 2;
                    paragraph1.TextAlignment = (TextAlignment)num3;
                    paragraph1.Inlines.Add(new LineBreak());
                    paragraph1.Inlines.Add(new Run("Compra Venta"));
                    paragraph1.Inlines.Add(new LineBreak());
                    InlineCollection inlines1 = paragraph1.Inlines;
                    Run    run1 = new Run("La Salvada");
                    double num4 = 18.0;
                    run1.FontSize = num4;
                    FontWeight bold1 = FontWeights.Bold;
                    run1.FontWeight = bold1;
                    inlines1.Add(run1);
                    paragraph1.Inlines.Add(new LineBreak());
                    paragraph1.Inlines.Add(new Run("Porfirio Morales Mora"));
                    paragraph1.Inlines.Add(new LineBreak());
                    paragraph1.Inlines.Add(new Run("Cédula: 2-0290-0936"));
                    paragraph1.Inlines.Add(new LineBreak());
                    paragraph1.Inlines.Add(new LineBreak());
                    paragraph1.Inlines.Add(new Run("Tel: 2474-0641"));
                    paragraph1.Inlines.Add(new LineBreak());
                    paragraph1.Inlines.Add(new Run("Aguas Zarcas - San Carlos"));
                    paragraph1.Inlines.Add(new LineBreak());
                    paragraph1.Inlines.Add(new LineBreak());
                    InlineCollection inlines2 = paragraph1.Inlines;
                    Run        run2           = new Run("FACTURA DE VENTA NO. " + (object)venta.Código);
                    FontWeight bold2          = FontWeights.Bold;
                    run2.FontWeight = bold2;
                    double num5 = 18.0;
                    run2.FontSize = num5;
                    inlines2.Add(run2);
                    blocks1.Add((Block)paragraph1);
                    BlockCollection blocks2    = flowDocument2.Blocks;
                    Paragraph       paragraph2 = new Paragraph();
                    int             num6       = 0;
                    paragraph2.TextAlignment = (TextAlignment)num6;
                    paragraph2.Inlines.Add(new Run("Fecha  : " + venta.Fecha.ToString("dd/MMM/yyyy")));
                    paragraph2.Inlines.Add(new LineBreak());
                    paragraph2.Inlines.Add(new Run("Cliente: " + venta.Cliente.NombreCompleto));
                    paragraph2.Inlines.Add(new LineBreak());
                    paragraph2.Inlines.Add(new Run("Cédula : " + venta.Código_Cliente));
                    paragraph2.Inlines.Add(new LineBreak());
                    paragraph2.Inlines.Add(new LineBreak());
                    InlineCollection inlines3 = paragraph2.Inlines;
                    Line             line     = new Line();
                    int num7 = 1;
                    line.Stretch = (Stretch)num7;
                    SolidColorBrush solidColorBrush = new SolidColorBrush(Colors.Black);
                    line.Stroke = (Brush)solidColorBrush;
                    double num8 = 1.0;
                    line.X2 = num8;
                    inlines3.Add((UIElement)line);
                    blocks2.Add((Block)paragraph2);
                    flowDocument1 = flowDocument2;
                    foreach (VentasDetalle ventasDetalle in venta.VentasDetalles)
                    {
                        BlockCollection blocks3    = flowDocument1.Blocks;
                        Paragraph       paragraph3 = new Paragraph();
                        int             num9       = 0;
                        paragraph3.TextAlignment = (TextAlignment)num9;
                        paragraph3.Inlines.Add(new Run(ventasDetalle.Artículo.ToString()));
                        blocks3.Add((Block)paragraph3);
                    }
                    BlockCollection blocks4    = flowDocument1.Blocks;
                    Block[]         blockArray = new Block[4];
                    int             index1     = 0;
                    Paragraph       paragraph4 = new Paragraph();
                    int             num10      = 1;
                    paragraph4.TextAlignment = (TextAlignment)num10;
                    if (venta.Impuesto > 0)
                    {
                        paragraph4.Inlines.Add(new Run("Sub-Total: "));
                        paragraph4.Inlines.Add(venta.VentasDetalles.Sum <VentasDetalle>((Func <VentasDetalle, int>)(det => det.Artículo.Precio.Value)).ToString("C0"));
                        paragraph4.Inlines.Add(new LineBreak());
                        paragraph4.Inlines.Add(new Run("IVA: "));
                        paragraph4.Inlines.Add(venta.Impuesto.ToString("C0"));
                        paragraph4.Inlines.Add(new LineBreak());
                        paragraph4.Inlines.Add(new Run("Monto Total: "));
                        paragraph4.Inlines.Add(venta.Total.ToString("C0"));
                    }
                    else
                    {
                        paragraph4.Inlines.Add(new Run("Monto Total: "));
                        paragraph4.Inlines.Add(venta.VentasDetalles.Sum <VentasDetalle>((Func <VentasDetalle, int>)(det => det.Artículo.Precio.Value)).ToString("C0"));
                    }
                    blockArray[index1] = (Block)paragraph4;
                    int       index2     = 1;
                    Paragraph paragraph5 = new Paragraph();
                    int       num11      = 3;
                    paragraph5.TextAlignment = (TextAlignment)num11;
                    double num12 = 10.0;
                    paragraph5.FontSize = num12;
                    paragraph5.Inlines.Add(new LineBreak());
                    paragraph5.Inlines.Add(new LineBreak());
                    paragraph5.Inlines.Add(new LineBreak());
                    paragraph5.Inlines.Add(new LineBreak());
                    paragraph5.Inlines.Add(new Run("1. Favor revisar los artículos antes de salir del local, no se aceptan devoluciones."));
                    blockArray[index2] = (Block)paragraph5;
                    int       index3     = 2;
                    Paragraph paragraph6 = new Paragraph();
                    int       num13      = 2;
                    paragraph6.TextAlignment = (TextAlignment)num13;
                    paragraph6.Inlines.Add(new Run("GRACIAS POR PREFERIRNOS."));
                    blockArray[index3] = (Block)paragraph6;
                    int       index4     = 3;
                    Paragraph paragraph7 = new Paragraph();
                    int       num14      = 2;
                    paragraph7.TextAlignment = (TextAlignment)num14;
                    paragraph7.Inlines.Add(new LineBreak());
                    paragraph7.Inlines.Add(new LineBreak());
                    blockArray[index4] = (Block)paragraph7;
                    blocks4.AddRange((IEnumerable)blockArray);
                }
            }
            return(flowDocument1);
        }
Esempio n. 15
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            #region Configurar Firma

            inkFirma.SetSigCompressionMode(2);
            inkFirma.SetEncryptionMode(2);
            inkFirma.AutoKeyStart();
            inkFirma.SetAutoKeyData("La Salvada");
            inkFirma.AutoKeyFinish();

            #endregion

            características       = new List <CaracterísticaValor>();
            pagos                 = new ObservableCollection <EmpeñosPago>();
            gridPagos.ItemsSource = pagos;

            var bd = new EmpeñosDataContext();
            parámetros = bd.Parámetros.FirstOrDefault();

            cmbCategorías.Items.Insert(0, new KeyValuePair <int?, string>(null, string.Empty));

            foreach (var cat in bd.Categorías.OrderBy(cat => cat.Nombre))
            {
                cmbCategorías.Items.Add(new KeyValuePair <int?, string>(cat.Código, cat.Nombre));
            }

            cmbCategorías.SelectedIndex = 0;


            dtpFecha.SelectedDate         = DateTime.Today;
            pnlDetalleArtículo.Visibility = Visibility.Collapsed;
            txtCódigo.Focus();

            if (códigoEmpeño.HasValue)
            {
                var empeño = bd.Empeños.SingleOrDefault(c => c.Código == códigoEmpeño);
                if (empeño != null)
                {
                    if (!reempeñar)
                    {
                        txtCódigo.Text                  = empeño.Código.ToString();
                        txtCódigo.IsReadOnly            = true;
                        chkImprimirAlGuardar.Visibility = Visibility.Collapsed;
                        dtpFecha.SelectedDate           = empeño.Fecha;
                        cmbEstado.SelectedIndex         = (int)empeño.Estado;
                        gridArtículos.IsEnabled         = pnlListaPagos.IsEnabled = btnGuardar.IsEnabled = empeño.Estado != (byte)EstadosEmpeño.Quedado;
                        txtCódigo.IsEnabled             = false; ///*****///
                        tabPagos.IsEnabled              = true;
                    }

                    if (empeño.Cliente != null)
                    {
                        txtClientes.SelectedItem = new KeyValuePair <string, string>(empeño.Cliente.Código, empeño.Cliente.NombreCompleto);
                        txtClientes.Text         = empeño.Cliente.NombreCompleto;
                    }

                    txtPlazo.AsInt = empeño.Plazo;
                    txtPorcentajeIntereses.AsDecimal = empeño.PorcentajeInterés;
                    txtTotalMontoPréstamo.AsInt      = empeño.TotalMontoPréstamo;
                    txtNotasEmpeño.Text = empeño.Notas;

                    foreach (EmpeñosDetalle det in empeño.EmpeñosDetalles)
                    {
                        lstArtículos.Items.Add(det.Artículo);
                        det.Artículo.Artículos_Características.ToArray();
                    }

                    if (reempeñar)
                    {
                        txtPlazo.AsInt = parámetros.Plazo;
                        txtPorcentajeIntereses.AsDecimal = Math.Round(parámetros.PorcentajeInterés, 2);
                    }

                    if (!reempeñar)
                    {
                        pagos.Clear();
                        foreach (var pago in empeño.EmpeñosPagos)
                        {
                            pago.PropertyChanged += pago_PropertyChanged;
                            pagos.Add(pago);
                        }
                    }
                    ActualizarTotales();

                    #region Firma

                    // Cargar Firma
                    if (empeño.Firma != null && empeño.Firma.Length > 0)
                    {
                        inkFirma.SetSigString(empeño.Firma);
                    }

                    inkFirma.SetTabletState(1);

                    #endregion

                    dtpFecha.Focus();
                }
            }
            else
            {
                txtPlazo.AsInt = parámetros.Plazo;
                txtPorcentajeIntereses.AsDecimal = Math.Round(parámetros.PorcentajeInterés, 2);
            }
            if (txtPlazo.Text != "1")
            {
                labelMeses.Content = "meses";
            }
        }
Esempio n. 16
0
        private void ActualizarTotales()
        {
            var bd = new EmpeñosDataContext();

            parámetros = bd.Parámetros.FirstOrDefault();

            /*
             * var pagos = gridPagos.Items.OfType<EmpeñosPago>().ToArray();
             *
             * if (pagos.Length > 0)
             * {
             *  txtTotalInteresesCancelados.AsInt = pagos.Sum(p => p.Intereses);
             *
             *  int totalDePréstamoCancelado = pagos.Sum(p => p.Abono);
             *
             *  txtTotalDePréstamoCancelado.AsInt = totalDePréstamoCancelado;
             *
             *  int saldo = txtTotalMontoPréstamo.AsInt - totalDePréstamoCancelado;
             *  txtSaldoDelPréstamo.AsInt = saldo;
             *  btnNuevoPago.IsEnabled = btnRetirar.IsEnabled = saldo > 0;
             *  cmbEstado.SelectedIndex = saldo == 0 ? (int)EstadosEmpeño.Retirado : (int)EstadosEmpeño.Activo;
             *
             *  dtpFechaVencimiento.SelectedDate = pagos.Max(p => p.FechaCuota).AddMonths(parámetros.Plazo);
             * }
             * else
             * {
             *  txtTotalInteresesCancelados.AsInt = txtTotalDePréstamoCancelado.AsInt = 0;
             *  txtSaldoDelPréstamo.AsInt = txtTotalMontoPréstamo.AsInt;
             *  dtpFechaVencimiento.SelectedDate = dtpFecha.SelectedDate.Value.AddMonths(parámetros.Plazo);
             * }
             *
             * TimeSpan díasRestantes = dtpFechaVencimiento.SelectedDate.Value - DateTime.Today;
             *
             * if (díasRestantes.Days > 30)
             *  ctrlIndicador.Estado = Controles.EstadoIndicador.Verde;
             * else if (díasRestantes.Days > 3)
             *  ctrlIndicador.Estado = Controles.EstadoIndicador.Amarillo;
             * else
             *  ctrlIndicador.Estado = Controles.EstadoIndicador.Rojo;
             * */
            var suma     = listaArtículos.Sum(art => art.Precio);
            var impuesto = 0;
            var total    = 0;

            DateTime fecha_x = new DateTime(2021, 2, 28);                                  // Este codigo de fecha se agrego para no hacer cambios en BD
            DateTime fecha_y = new DateTime(2020, 06, 27);                                 // En este fecha aproximadamente se hicieron los cambios en Git
            DateTime fecha_z = new DateTime(2021, 10, 19);                                 // En esta fecha se volvio a poner el IVA en 13%
            int      result1 = DateTime.Compare((DateTime)dtpFecha.SelectedDate, fecha_x); // se paso de 0% a 13% y luego a 4% de IVA
            int      result2 = DateTime.Compare((DateTime)dtpFecha.SelectedDate, fecha_y);
            int      result3 = DateTime.Compare((DateTime)dtpFecha.SelectedDate, fecha_z);

            if (result1 >= 0)
            {
                impuesto = (int)(suma * 0.04);
            }
            else if (result2 > 0)
            {
                impuesto = (int)(suma * 0.13);
            }
            else if (result2 <= 0)
            {
                impuesto = 0;
            }
            else if (result3 >= 0)
            {
                impuesto = (int)(suma * parámetros.IVA); // cambiar a 13% el IVA en la tabla de parametros
            }
            total                   = (int)(suma + impuesto);
            suma                    = listaArtículos.Sum(art => art.Precio);
            impuesto                = (int)(suma * parámetros.IVA);
            total                   = (int)(suma + impuesto);
            txtIVA.Text             = impuesto.ToString();
            txtTotalMontoVenta.Text = suma.ToString();
            txtMontoAPagar.Text     = total.ToString();
        }
Esempio n. 17
0
        private void Guardar(bool cerrar)
        {
            if (pnlDetalleArtículo.IsVisible)
            {
                if (!GuardarArtículo())
                {
                    return;
                }
            }

            if (ValidarEmpeño())
            {
                using (var bd = new EmpeñosDataContext())
                {
                    bool insertando = false;

                    var empeño = bd.Empeños.SingleOrDefault(em => em.Código == txtCódigo.AsInt);

                    if (empeño == null)
                    {
                        empeño = new Empeño
                        {
                            Código             = txtCódigo.AsInt,
                            PorcentajeInterés  = txtPorcentajeIntereses.AsDecimal,
                            TotalMontoPréstamo = txtTotalMontoPréstamo.AsInt
                        };
                        bd.Empeños.InsertOnSubmit(empeño);
                        insertando = true;
                    }

                    empeño.Estado = Convert.ToByte(cmbEstado.SelectedIndex);

                    if (empeño.Estado != (byte)EstadosEmpeño.Quedado)
                    {
                        string códigoCliente = ((KeyValuePair <string, string>)txtClientes.SelectedItem).Key;

                        if (!insertando && empeño.Código_Cliente != códigoCliente && MessageBox.Show(string.Format("El cliente del empeño cambió, antes era {0:G} y ahora {1:G}, está seguro?", empeño.Código_Cliente, códigoCliente), "Pregunta", MessageBoxButton.YesNo) != MessageBoxResult.Yes)
                        {
                            return;
                        }

                        empeño.Código_Cliente = códigoCliente;
                        empeño.Fecha          = dtpFecha.SelectedDate.Value;
                        empeño.Plazo          = txtPlazo.AsInt;
                        empeño.Notas          = txtNotasEmpeño.Text;

                        if (inkFirma.NumberOfTabletPoints() == 0)
                        {
                            empeño.Firma = null;
                        }
                        else
                        {
                            empeño.Firma = inkFirma.GetSigString();
                        }

                        if (!insertando)
                        {
                            foreach (var detalle in empeño.EmpeñosDetalles)
                            {
                                bd.Artículos_Características.DeleteAllOnSubmit(detalle.Artículo.Artículos_Características);
                                bd.Artículos.DeleteOnSubmit(detalle.Artículo);
                                bd.EmpeñosDetalles.DeleteOnSubmit(detalle);
                            }
                            bd.EmpeñosPagos.DeleteAllOnSubmit(empeño.EmpeñosPagos);
                        }

                        for (int cont = 0; cont < lstArtículos.Items.Count; cont++)
                        {
                            var art = lstArtículos.Items[cont] as Artículo;

                            var nuevoArtículo = new Artículo
                            {
                                Código           = "E" + txtCódigo.AsInt.ToString() + "-" + (cont + 1).ToString(),
                                Nombre           = art.Nombre,
                                Código_Categoría = art.Código_Categoría,
                                Costo            = art.Costo,
                                Estado           = art.Estado,
                                Notas            = art.Notas
                            };

                            foreach (var caract in art.Artículos_Características)
                            {
                                nuevoArtículo.Artículos_Características.Add(new Artículos_Característica {
                                    Código_Característica = caract.Código_Característica, Valor = caract.Valor
                                });
                            }

                            empeño.EmpeñosDetalles.Add(new EmpeñosDetalle {
                                Artículo = nuevoArtículo
                            });
                        }

                        int cuota = 0;
                        foreach (var pago in pagos)
                        {
                            empeño.EmpeñosPagos.Add(new EmpeñosPago {
                                Cuota = ++cuota, FechaPago = pago.FechaPago, FechaCuota = pago.FechaCuota, Intereses = pago.Intereses, Abono = pago.Abono, Firma = pago.Firma?.Length > 0 ? pago.Firma : null
                            });
                        }
                    }

                    bd.SubmitChanges();

                    if (cerrar)
                    {
                        this.DialogResult = true;
                    }
                }
            }
        }
Esempio n. 18
0
        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            if (pnlDetalleArtículo.IsVisible)
            {
                if (!GuardarArtículo())
                {
                    return;
                }
            }

            if (ValidarCompra())
            {
                using (var bd = new EmpeñosDataContext())
                {
                    bool insertando = false;

                    var compra = bd.Compras.SingleOrDefault(em => em.Código == txtCódigo.AsInt);

                    if (compra == null)
                    {
                        compra = new Compra {
                            Código = txtCódigo.AsInt
                        };
                        bd.Compras.InsertOnSubmit(compra);
                        insertando = true;
                    }

                    compra.Código_Cliente = ((KeyValuePair <string, string>)txtClientes.SelectedItem).Key;
                    compra.Fecha          = dtpFecha.SelectedDate.Value;
                    compra.CostoTotal     = txtTotalCostoCompra.AsInt;
                    compra.Notas          = txtNotas.Text;

                    if (compra.Estado != (byte)EstadosEmpeño.Quedado)
                    {
                        if (!insertando)
                        {
                            foreach (var detalle in compra.ComprasDetalles)
                            {
                                bd.Artículos_Características.DeleteAllOnSubmit(detalle.Artículo.Artículos_Características);
                                bd.Artículos.DeleteOnSubmit(detalle.Artículo);
                                bd.ComprasDetalles.DeleteOnSubmit(detalle);
                            }
                        }

                        for (int cont = 0; cont < lstArtículos.Items.Count; cont++)
                        {
                            var art = lstArtículos.Items[cont] as Artículo;

                            var nuevoArtículo = new Artículo
                            {
                                Código           = "C" + txtCódigo.AsInt.ToString() + "-" + (cont + 1).ToString(),
                                Nombre           = art.Nombre,
                                Código_Categoría = art.Código_Categoría,
                                Costo            = art.Costo,
                                Estado           = art.Estado,
                                Notas            = art.Notas
                            };

                            foreach (var caract in art.Artículos_Características)
                            {
                                nuevoArtículo.Artículos_Características.Add(new Artículos_Característica {
                                    Código_Característica = caract.Código_Característica, Valor = caract.Valor
                                });
                            }

                            compra.ComprasDetalles.Add(new ComprasDetalle {
                                Artículo = nuevoArtículo
                            });
                        }
                    }

                    bd.SubmitChanges();

                    /*if (chkImprimirAlGuardar.IsChecked == true) {
                     *  Recibos.Imprimir.
                     * }*/

                    this.DialogResult = true;
                }
            }
        }
Esempio n. 19
0
        public static FlowDocument ReciboDePago(string códigoEmpeño, string códigoCliente, string nombreCliente, int cuota, DateTime fecha, DateTime fechaPago, int intereses, int abono, int saldo, string firma)
        {
            EmpeñosDataContext empeñosDataContext = new EmpeñosDataContext();
            var   empeño = empeñosDataContext.Empeños.SingleOrDefault <Empeño>(emp => emp.Código == int.Parse(códigoEmpeño));
            Image image  = new Image()
            {
                Stretch = Stretch.None
            };
            BitmapImage bitmapImage = new BitmapImage();

            bitmapImage.BeginInit();
            bitmapImage.UriSource = new Uri(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location.ToString()), "Recursos\\Imágenes\\Logo.png"), UriKind.Absolute);
            bitmapImage.EndInit();
            image.Source = (ImageSource)bitmapImage;

            FlowDocument flowDocument1 = new FlowDocument();

            flowDocument1.PageWidth = Recibos.anchoPágina;
            Thickness thickness = new Thickness(Recibos.margenPágina);

            flowDocument1.PagePadding = thickness;
            double num1 = double.NaN;

            flowDocument1.PageHeight = num1;
            FontFamily fontFamily = new FontFamily("Arial");

            flowDocument1.FontFamily = fontFamily;
            double num2 = 13.0;

            flowDocument1.FontSize = num2;
            flowDocument1.Blocks.Add((Block) new BlockUIContainer((UIElement)image));
            BlockCollection blocks1    = flowDocument1.Blocks;
            Paragraph       paragraph1 = new Paragraph();
            int             num3       = 2;

            paragraph1.TextAlignment = (TextAlignment)num3;
            paragraph1.Inlines.Add(new LineBreak());
            paragraph1.Inlines.Add(new Run("Compra Venta"));
            paragraph1.Inlines.Add(new LineBreak());
            InlineCollection inlines1 = paragraph1.Inlines;
            Run    run1 = new Run("La Salvada");
            double num4 = 18.0;

            run1.FontSize = num4;
            FontWeight bold1 = FontWeights.Bold;

            run1.FontWeight = bold1;
            inlines1.Add(run1);
            paragraph1.Inlines.Add(new LineBreak());
            paragraph1.Inlines.Add(new Run("Porfirio Morales Mora"));
            paragraph1.Inlines.Add(new LineBreak());
            paragraph1.Inlines.Add(new Run("Cédula: 2-0290-0936"));
            paragraph1.Inlines.Add(new LineBreak());
            paragraph1.Inlines.Add(new LineBreak());
            paragraph1.Inlines.Add(new Run("Tel: 2474-0641"));
            paragraph1.Inlines.Add(new LineBreak());
            paragraph1.Inlines.Add(new Run("Aguas Zarcas - San Carlos"));
            paragraph1.Inlines.Add(new LineBreak());
            paragraph1.Inlines.Add(new LineBreak());
            InlineCollection inlines2 = paragraph1.Inlines;
            Run        run2           = new Run((saldo == 0 ? "RETIRO" : "RENOVACIÓN") + " NO. " + códigoEmpeño);
            FontWeight bold2          = FontWeights.Bold;

            run2.FontWeight = bold2;
            double num5 = 18.0;

            run2.FontSize = num5;
            inlines2.Add(run2);
            blocks1.Add((Block)paragraph1);
            BlockCollection blocks2    = flowDocument1.Blocks;
            Paragraph       paragraph2 = new Paragraph();
            int             num6       = 0;

            paragraph2.TextAlignment = (TextAlignment)num6;
            paragraph2.Inlines.Add(new Run("Cliente: " + nombreCliente));
            paragraph2.Inlines.Add(new LineBreak());
            paragraph2.Inlines.Add(new Run("Cédula : " + códigoCliente));
            paragraph2.Inlines.Add(new LineBreak());
            paragraph2.Inlines.Add(new Run("Paga Desde: " + fecha.AddMonths(-1).ToString("dd/MMM/yyyy")));
            paragraph2.Inlines.Add(new LineBreak());
            paragraph2.Inlines.Add(new Run("Paga Hasta: " + fecha.ToString("dd/MMM/yyyy")));
            paragraph2.Inlines.Add(new LineBreak());
            paragraph2.Inlines.Add(new Run("Fecha de Pago: " + fechaPago.ToString("dd/MMM/yyyy hh:mm:ss tt")));
            paragraph2.Inlines.Add(new LineBreak());
            paragraph2.Inlines.Add(new LineBreak());
            blocks2.Add((Block)paragraph2);
            foreach (EmpeñosDetalle empeñosDetalle in empeño.EmpeñosDetalles)
            {
                blocks2.Add(new Paragraph
                {
                    TextAlignment = TextAlignment.Left,
                    Inlines       =
                    {
                        "- " + empeñosDetalle.Artículo.ToString()
                    }
                });
            }
            // line.Stretch = (Stretch)num7;
            // SolidColorBrush solidColorBrush = new SolidColorBrush(Colors.Black);
            // line.Stroke = (Brush)solidColorBrush;

            /*BlockCollection blocks3 = flowDocument1.Blocks;
             * System.Windows.Documents.Table table = new System.Windows.Documents.Table();
             * TableRowGroupCollection rowGroups = table.RowGroups;
             * TableRowGroup tableRowGroup = new TableRowGroup();
             * TableRowCollection rows1 = tableRowGroup.Rows;
             * TableRowCollection rows2 = tableRowGroup.Rows;
             * TableRow tableRow2 = new TableRow();
             * TableCellCollection cells3 = tableRow2.Cells;
             * Paragraph paragraph5 = new Paragraph();
             * paragraph5.Inlines.Add(new Run("Intereses : "));
             * cells3.Add(new TableCell((Block)paragraph5)
             * {
             *  TextAlignment = TextAlignment.Left
             * });
             * TableCellCollection cells4 = tableRow2.Cells;
             * Paragraph paragraph6 = new Paragraph();
             * paragraph6.Inlines.Add(new Run(intereses.ToString("C0")));
             * cells4.Add(new TableCell((Block)paragraph6)
             * {
             *  TextAlignment = TextAlignment.Right
             * });
             * rows2.Add(tableRow2);
             * TableRowCollection rows3 = tableRowGroup.Rows;
             * TableRow tableRow3 = new TableRow();
             * TableCellCollection cells5 = tableRow3.Cells;
             * Paragraph paragraph7 = new Paragraph();
             * paragraph7.Inlines.Add(new Run("Abono : "));
             * cells5.Add(new TableCell((Block)paragraph7)
             * {
             *  TextAlignment = TextAlignment.Left
             * });
             * TableCellCollection cells6 = tableRow3.Cells;
             * Paragraph paragraph8 = new Paragraph();
             * paragraph8.Inlines.Add(new Run(abono.ToString("C0")));
             * cells6.Add(new TableCell((Block)paragraph8)
             * {
             *  TextAlignment = TextAlignment.Right
             * });
             * rows3.Add(tableRow3);
             * tableRowGroup.Rows.Add(new TableRow());
             * TableRowCollection rows4 = tableRowGroup.Rows;
             * TableRow tableRow4 = new TableRow();
             * TableCellCollection cells7 = tableRow4.Cells;
             * Paragraph paragraph9 = new Paragraph();
             * paragraph9.Inlines.Add(new Run("Saldo : "));
             * cells7.Add(new TableCell((Block)paragraph9)
             * {
             *  TextAlignment = TextAlignment.Left
             * });
             * TableCellCollection cells8 = tableRow4.Cells;
             * Paragraph paragraph10 = new Paragraph();
             * paragraph10.Inlines.Add(new Run(saldo.ToString("C0")));
             * cells8.Add(new TableCell((Block)paragraph10)
             * {
             *  TextAlignment = TextAlignment.Right
             * });
             * rows4.Add(tableRow4);
             * rowGroups.Add(tableRowGroup);
             * blocks3.Add((Block)table);*/
            FlowDocument flowDocument2 = flowDocument1;

            BlockCollection blocks5     = flowDocument2.Blocks;
            Paragraph       paragraph11 = new Paragraph();
            int             num9        = 3;

            paragraph11.TextAlignment = (TextAlignment)num9;
            double num10 = 10.0;

            paragraph11.FontSize = num10;

            if (firma != null && firma.Length > 0)
            {
                paragraph11.Inlines.Add(new Run {
                    Text = "Firma:", FontSize = 12
                });

                var inkFirma = new Topaz.SigPlusNET();

                // Encriptar y Comprimir Firma
                inkFirma.SetSigCompressionMode(2);
                inkFirma.SetEncryptionMode(2);
                inkFirma.AutoKeyStart();
                inkFirma.SetAutoKeyData("La Salvada");
                inkFirma.AutoKeyFinish();

                inkFirma.SetImageXSize(500);
                inkFirma.SetImageYSize(150);
                inkFirma.SetJustifyMode(5);

                inkFirma.SetSigString(firma);

                var img = new BitmapImage();
                var ms  = new MemoryStream();
                inkFirma.GetSigImage().Save(ms, ImageFormat.Bmp);

                var imgFirma = new BitmapImage();
                imgFirma.BeginInit();
                imgFirma.StreamSource = ms;
                imgFirma.EndInit();

                paragraph11.Inlines.Add(new Image {
                    Source = imgFirma
                });
            }
            else
            {
                paragraph11.Inlines.Add(new LineBreak());
                paragraph11.Inlines.Add(new LineBreak());
                paragraph11.Inlines.Add(new LineBreak());
                paragraph11.Inlines.Add(new LineBreak());

                paragraph11.Inlines.Add(new Run {
                    Text = "Firma:_____________________________", FontSize = 12
                });
            }
            paragraph11.Inlines.Add(new LineBreak());
            paragraph11.Inlines.Add(new LineBreak());
            paragraph11.Inlines.Add(new LineBreak());
            paragraph11.Inlines.Add(new Run {
                Text = "Cédula:____________________________", FontSize = 12
            });

            paragraph11.Inlines.Add(new LineBreak());
            paragraph11.Inlines.Add(new LineBreak());

            if (saldo > 0)
            {
                /* Empeño empeño = empeñosDataContext.Empeños.SingleOrDefault<Empeño>((System.Linq.Expressions.Expression<Func<Empeño, bool>>)(emp => emp.Código == int.Parse(códigoEmpeño)));
                 * paragraph11.Inlines.Add(new LineBreak());
                 * paragraph11.Inlines.Add(new LineBreak());
                 * paragraph11.Inlines.Add(new Run($"1. Todo préstamo, es hecho a un plazo de { empeño.Plazo } {  (empeño.Plazo == 1 ? "mes" : "meses") }, por cada mes de intereses cancelado renueva el plazo de vencimiento un mes más."));
                 * paragraph11.Inlines.Add(new LineBreak());
                 * string value = Math.Round(empeño.PorcentajeInterés, 2).ToString();
                 * paragraph11.Inlines.Add(new Run("2. Tasa de interés del " + value + "% mensual, cobrandose siempre un mes como mínimo. Pagaderos mensualmente."));
                 *
                 * paragraph11.Inlines.Add(new LineBreak());
                 * paragraph11.Inlines.Add(new Run($"3. El no pago de intereses en { empeño.Plazo }{(empeño.Plazo == 1 ? " mes" : " meses") } autoriza a La Salvada a disponer de la prenda empeñada."));
                 * paragraph11.Inlines.Add(new LineBreak());
                 * paragraph11.Inlines.Add(new LineBreak());
                 * paragraph11.Inlines.Add(new Run("No olvide su próximo pago el: " + fecha.AddMonths(1).ToShortDateString()));*/
                blocks5.Add((Block)paragraph11);
            }
            else
            {
                paragraph11.Inlines.Add(new Run("No se aceptarán reclamos sobre artículos retirados, una vez que salgan de nuestras instalaciones."));
                paragraph11.Inlines.Add(new LineBreak());
                paragraph11.Inlines.Add(new LineBreak());
                blocks5.Add((Block)paragraph11);
            }
            return(flowDocument2);
        }