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); }
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(); } }
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); } }
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(); } } }
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(); } } }
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(); } } }
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; }
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; } }
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(); } }
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()); } }
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(); } }
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(); } }
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; } } }
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); }
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"; } }
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(); }
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; } } } }
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; } } }
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); }