public override void OnExport(string filename, FormatoExportar formato) { System.Data.DataTable Tabla = this.Connection.Select(this.SelectCommand()); Lfx.Types.OperationProgress Progreso = new Lfx.Types.OperationProgress("Generando archivos", "Leyendo información de los comprobantes"); Progreso.Max = Tabla.Rows.Count * 3; Progreso.Begin(); var ArchivoCitiVentas = new Lbl.Archivos.Salida.CitiVentas(Progreso); foreach (System.Data.DataRow Registro in Tabla.Rows) { Lbl.Comprobantes.ComprobanteFacturable ComprobanteFacturable = new Lbl.Comprobantes.ComprobanteFacturable(this.Connection, System.Convert.ToInt32(Registro["id_comprob"])); if (!ComprobanteFacturable.Anulado) { ArchivoCitiVentas.Comprobantes.Add(ComprobanteFacturable); } Progreso.Advance(1); } var ArchivoCitiAlicuotas = new Lbl.Archivos.Salida.CitiVentasAlicuotas(ArchivoCitiVentas); var NombreArchivoBase = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(filename), System.IO.Path.GetFileNameWithoutExtension(filename)); Progreso.Description = "Generando el archivo de ventas"; ArchivoCitiVentas.Escribir(NombreArchivoBase + " Ventas.txt"); Progreso.Description = "Generando el archivo de alícuotas"; ArchivoCitiAlicuotas.Escribir(NombreArchivoBase + " Ventas Alícuotas.txt"); Progreso.End(); base.OnExport(filename, formato); }
public override List <string> FormatearRegistro(int lineNumber, Lbl.Comprobantes.ComprobanteFacturable ComprobanteFacturable) { string Renglon = ""; //Formato CITI Ventas Renglon += ComprobanteFacturable.Fecha.ToString("yyyyMMdd"); // Fecha del comprobante Renglon += ((int)(CitiTablas.ComprobantesTiposPorLetra[ComprobanteFacturable.Tipo.Nomenclatura])).ToString().PadLeft(3, '0'); // Tipo de comprobante Renglon += ComprobanteFacturable.PV.ToString().PadLeft(5, '0'); // Punto de venta Renglon += ComprobanteFacturable.Numero.ToString().PadLeft(20, '0'); // Numero de comrpbante Renglon += ComprobanteFacturable.Numero.ToString().PadLeft(20, '0'); // Numero de comrpbante hasta if (ComprobanteFacturable.Cliente.SituacionTributaria == null || ComprobanteFacturable.Cliente.SituacionTributaria.EsConsumidorFinal) { if (string.IsNullOrEmpty(ComprobanteFacturable.Cliente.NumeroDocumento)) { Renglon += "99"; // 99: Sin identificar Renglon += ComprobanteFacturable.Cliente.NumeroDocumento.ToString().PadLeft(20, '0'); // Nº de identificación del comprador } else { Renglon += "96"; // 96: DNI Renglon += ComprobanteFacturable.Cliente.NumeroDocumento.ToString().PadLeft(20, '0'); // Nº de identificación del comprador } Renglon += ComprobanteFacturable.Cliente.ToString().PadRight(30, ' ').Substring(0, 30).ToUpper(); //Apellido y nombre o Denominacion del comprador } else { Renglon += "80"; // 80: CUIT Renglon += ComprobanteFacturable.Cliente.Cuit.ToString().Replace("-", "").Replace(" ", "").Replace("/", "").Replace(".", "").PadLeft(20, '0'); // Nº de identificación del comprador Renglon += ComprobanteFacturable.Cliente.RazonSocial.ToString().PadRight(30, ' ').Substring(0, 30).ToUpper(); //Apellido y nombre o Denominacion del vendedor } Renglon += Lfx.Types.Formatting.FormatCurrency(ComprobanteFacturable.Total, 2).ToString().Replace(".", "").PadLeft(15, '0'); // Importe Total de la operacion Renglon += "".PadLeft(15, '0'); // Conceptos que no integran el precio neto gravado Renglon += "".PadLeft(15, '0'); // Percepcion a No Categorizados Renglon += "".PadLeft(15, '0'); // Importe Operaciones Exentas Renglon += "".PadLeft(15, '0'); // Percepciones o pagos a cuenta de otros imp nacionales Renglon += "".PadLeft(15, '0'); // Percepciones de ingresos brutos Renglon += "".PadLeft(15, '0'); // Percepciones de impuestos municipales Renglon += "".PadLeft(15, '0'); // Impuestos internos Renglon += "PES"; // Codigo de moneda Renglon += "000100"; // Tipo de cambio Renglon += ComprobanteFacturable.AlicuotasUsadas().Count.ToString().PadLeft(5, '0'); // Cantidad de alicuotas de IVA if (ComprobanteFacturable.Cliente.ObtenerSituacionIva() == Impuestos.SituacionIva.Exento) { Renglon += "N"; } else { Renglon += "0"; // Codigo de operacion } Renglon += "".PadLeft(15, '0'); // Otros Tributos Renglon += ComprobanteFacturable.Fecha.ToString("yyyyMMdd"); // Fecha de Vencimiento return(new List <string>() { Renglon }); }
private void EntradaCliente_TextChanged(object sender, System.EventArgs e) { if (PanelComprobanteOriginal.Visible) { EntradaComprobanteOriginal.Filter = "tipo_fac IN ('FA', 'FB', 'FC', 'FE', 'FM') AND numero>0 AND id_cliente=" + EntradaCliente.ValueInt.ToString(); Lbl.Comprobantes.ComprobanteFacturable Comprob = EntradaComprobanteOriginal.Elemento as Lbl.Comprobantes.ComprobanteFacturable; if (Comprob == null || Comprob.Cliente == null || Comprob.Cliente.Id != EntradaComprobanteOriginal.ValueInt) { EntradaComprobanteOriginal.ValueInt = 0; } } }
public override List <string> FormatearRegistro(int lineNumber, Lbl.Comprobantes.ComprobanteFacturable ComprobanteFacturable) { string Renglon = ""; //Formato CITI COMPRAS Renglon += ComprobanteFacturable.Fecha.ToString("yyyyMMdd"); // Fecha del comprobante 1-8 Renglon += ((int)(CitiTablas.ComprobantesTiposPorLetra[ComprobanteFacturable.Tipo.Nomenclatura])).ToString().PadLeft(3, '0'); // Tipo de comprobante 9-11 Renglon += ComprobanteFacturable.PV.ToString().PadLeft(5, '0'); // Punto de venta 12-16 Renglon += ComprobanteFacturable.Numero.ToString().PadLeft(20, '0'); // Numero de comrpbante 17-36 Renglon += "".PadRight(16, ' '); // Numero de despacho de importacion 37-52 Renglon += "80"; // 80:CUIT Codigo de documento del vendedor 53-54 Renglon += ComprobanteFacturable.Cliente.Cuit.ToString().Replace("-", "").Replace(" ", "").Replace("/", "").Replace(".", "").PadLeft(20, '0'); // Numero de identificacion del vendedor 64-74 Renglon += ComprobanteFacturable.Cliente.RazonSocial.ToString().PadRight(30, ' ').Substring(0, 30).ToUpper(); //Apellido y nombre o Denominacion del vendedor 75-104 Renglon += Lfx.Types.Formatting.FormatCurrency(ComprobanteFacturable.Total, 2).ToString().Replace(".", "").PadLeft(15, '0'); // Importe Total de la operacion 105-119 Renglon += "".PadLeft(15, '0'); // Conceptos que no integran el precio neto gravado 120-134 Renglon += "".PadLeft(15, '0'); // Importes de operaciones extras 135-149 Renglon += "".PadLeft(15, '0'); // Percepciones o pagos a cuenta del IVA 150-164 Renglon += "".PadLeft(15, '0'); // Percepciones o pagos a cuenta de otros imp nacionales 165-179 Renglon += "".PadLeft(15, '0'); // Percepciones de ingresos brutos 180-194 Renglon += "".PadLeft(15, '0'); // Percepciones de impuestos municipales 195-209 Renglon += "".PadLeft(15, '0'); // Impuestos internos 210-224 Renglon += "PES"; // Codigo de moneda 225-227 Renglon += "000100"; // Tipo de cambio 228-233 if (ComprobanteFacturable.DiscriminaIva) { Renglon += ComprobanteFacturable.AlicuotasUsadas().Count.ToString().PadLeft(5, '0'); // Cantidad de alicuotas de IVA 234-238 } else { Renglon += "".PadLeft(5, '0'); // Cantidad de alicuotas de IVA 234-238 } if (ComprobanteFacturable.Cliente.PagaIva == Impuestos.SituacionIva.Exento) { Renglon += "N"; } else { Renglon += "0"; // Codigo de operacion 239 } Renglon += "".PadLeft(15, '0'); // IVA Liquidado o Credito fiscal computable 240-254 Renglon += "".PadLeft(15, '0'); // Otros Tributos 255-269 Renglon += "".PadLeft(11, '0'); // CUIT emisor/corredor 270-280 Renglon += "".PadRight(30, ' '); // Denominación del emisor/corredor 281-310 Renglon += "".PadLeft(15, '0'); // IVA comisión 311-325 return(new List <string>() { Renglon }); }
public virtual void EscribirComprobante(System.IO.StreamWriter stream, Lbl.Comprobantes.ComprobanteFacturable Com) { List <string> Renglones = this.FormatearRegistro(this.LineCounter++, Com); if (Renglones != null) { foreach (string Renglon in Renglones) { if (string.IsNullOrEmpty(Renglon) == false) { stream.WriteLine(Renglon); } } } }
public override List <string> FormatearRegistro(int lineNumber, Lbl.Comprobantes.ComprobanteFacturable ComprobanteFacturable) { var Res = new List <string>(); var Alicuotas = ComprobanteFacturable.AlicuotasUsadas(); if (ComprobanteFacturable.Cliente.ObtenerSituacionIva() == Impuestos.SituacionIva.Exento) { decimal ImporteIva = 0m; decimal ImporteGravado = ComprobanteFacturable.Total - ImporteIva; string Renglon = ((int)(CitiTablas.ComprobantesTiposPorLetra[ComprobanteFacturable.Tipo.Nomenclatura])).ToString().PadLeft(3, '0'); // Tipo de comprobante 1-3 Renglon += ComprobanteFacturable.PV.ToString().PadLeft(5, '0'); // Punto de venta 4-8 Renglon += ComprobanteFacturable.Numero.ToString().PadLeft(20, '0'); // Numero de comprobante 9-28 Renglon += "80"; // 80:CUIT Codigo de documento del vendedor 29-30 Renglon += "".PadLeft(9, '0'); // Imoprte del Comprobante sin iva 31-39 Renglon += ComprobanteFacturable.Cliente.Cuit.ToString().Replace("-", "").Replace(" ", "").Replace("/", "").Replace(".", ""); // Numero de identificacion del vendedor 40-50 Renglon += Lfx.Types.Formatting.FormatCurrency(ImporteGravado, 2).Replace(".", "").PadLeft(15, '0'); // Neto Gravado 51-65 Renglon += "3".PadLeft(4, '0'); // Codigo de Alicuota 66-69 Renglon += Lfx.Types.Formatting.FormatCurrency(ImporteIva, 2).Replace(".", "").PadLeft(15, '0'); //Impuesto liquidado 58-62 Res.Add(Renglon); } else { foreach (Lbl.Impuestos.Alicuota Alic in Alicuotas.Values) { decimal ImporteIva = ComprobanteFacturable.TotalIvaAlicuota(Alic.Id); decimal ImporteGravado = ComprobanteFacturable.TotalConIvaAlicuota(Alic.Id) - ImporteIva; string Renglon = ""; Renglon += ((int)(CitiTablas.ComprobantesTiposPorLetra[ComprobanteFacturable.Tipo.Nomenclatura])).ToString().PadLeft(3, '0'); // Tipo de comprobante 1-3 Renglon += ComprobanteFacturable.PV.ToString().PadLeft(5, '0'); // Punto de venta 4-8 Renglon += ComprobanteFacturable.Numero.ToString().PadLeft(20, '0'); // Numero de comprobante 9-28 Renglon += "80"; // 80:CUIT Codigo de documento del vendedor 29-30 Renglon += "".PadLeft(9, '0'); // Imoprte del Comprobante sin iva 31-39 Renglon += ComprobanteFacturable.Cliente.Cuit.ToString().Replace("-", "").Replace(" ", "").Replace("/", "").Replace(".", ""); // Numero de identificacion del vendedor 40-50 Renglon += Lfx.Types.Formatting.FormatCurrency(ImporteGravado, 2).Replace(".", "").PadLeft(15, '0'); // Neto Gravado 51-65 Renglon += CitiTablas.Alicuotas[Alic.Id].ToString().PadLeft(4, '0'); // Codigo de Alicuota 66-69 Renglon += Lfx.Types.Formatting.FormatCurrency(ImporteIva, 2).Replace(".", "").PadLeft(15, '0'); //Impuesto liquidado 58-62 Res.Add(Renglon); } } return(Res); }
private void Listado_SelectedIndexChanged(object sender, System.EventArgs e) { System.Data.DataRow RowFactura = null; ListViewItem Itm = null; if (Listado.SelectedItems.Count > 0) { Itm = Listado.SelectedItems[0]; RowFactura = Listado.SelectedItems[0].Tag as System.Data.DataRow; } if (RowFactura != null) { Lbl.Comprobantes.ComprobanteFacturable Factura = new Lbl.Comprobantes.ComprobanteFacturable(this.Connection, (Lfx.Data.Row)RowFactura); this.Comprobante = Factura; if (this.Comprobante.Anulado && AceptarAnuladas == false) { EtiquetaAviso.Text = "Este comprobante fue anulado."; OkButton.Visible = false; } else if (Factura.Cancelado && AceptarCanceladas == false) { EtiquetaAviso.Text = "Comprobante ya fue pagado."; OkButton.Visible = false; } else if (Factura.ImporteCancelado > 0 && Factura.Cancelado == false) { EtiquetaAviso.Text = "Este comprobante fue pagado parcialmente."; OkButton.Visible = true; } else { EtiquetaAviso.Text = ""; OkButton.Visible = true; } } else { EtiquetaAviso.Text = ""; OkButton.Visible = false; } }
internal Lfx.Types.OperationResult AgregarFactura(Lbl.Comprobantes.ComprobanteFacturable factura) { Lbl.Comprobantes.Recibo Rec = this.Elemento as Lbl.Comprobantes.Recibo; if (Rec.Facturas == null) { Rec.Facturas = new Lbl.Comprobantes.ColeccionComprobanteImporte(); } else { foreach (Lbl.Comprobantes.ComprobanteImporte CompImp in Rec.Facturas) { Lbl.Comprobantes.ComprobanteConArticulos Fc = CompImp.Comprobante; if (Fc.Id == factura.Id) { return(new Lfx.Types.FailureOperationResult("La factura seleccionada ya está en la lista.")); } } } Rec.Facturas.AddWithValue(factura, factura.ImporteImpago); this.MostrarFacturas(); return(new Lfx.Types.SuccessOperationResult()); }
private void MostrarVistaPrevia() { int PV = EntradaPV.ValueInt; int Desde = EntradaDesde.ValueInt; if ((EntradaHasta.ValueInt == 0 || EntradaHasta.ValueInt < Desde) && this.ActiveControl != EntradaHasta) { EntradaHasta.ValueInt = Desde; } int Hasta = EntradaHasta.ValueInt; int Cantidad = Hasta - Desde + 1; string IncluyeTipos = ""; switch (EntradaTipo.TextKey) { case "A": IncluyeTipos = "'FA', 'NCA', 'NDA'"; break; case "B": IncluyeTipos = "'FB', 'NCB', 'NDB'"; break; case "C": IncluyeTipos = "'FC', 'NCC', 'NDC'"; break; case "E": IncluyeTipos = "'FE', 'NCE', 'NDE'"; break; case "M": IncluyeTipos = "'FM', 'NCM', 'NDM'"; break; default: IncluyeTipos = "'" + EntradaTipo.TextKey + "'"; break; } if (ProximosNumeros.ContainsKey(PV) == false) { ProximosNumeros[PV] = this.Connection.FieldInt("SELECT MAX(numero) FROM comprob WHERE impresa=1 AND tipo_fac IN (" + IncluyeTipos + ") AND pv=" + PV.ToString()) + 1; } if (PV <= 0 || Desde <= 0 || Cantidad <= 0) { EtiquetaAviso.Text = "El rango seleccionado no es válido."; ComprobanteVistaPrevia.Visible = false; ListadoFacturas.Visible = false; OkButton.Visible = false; return; } if (Desde > ProximosNumeros[PV] || Hasta > ProximosNumeros[PV]) { EtiquetaAviso.Text = "No se puede reimprimir el rango seleccionado porque todavía no se utilizaron los comprobantes desde el " + ProximosNumeros[PV].ToString() + " al " + (Desde - 1).ToString(); ComprobanteVistaPrevia.Visible = false; ListadoFacturas.Visible = false; OkButton.Visible = false; return; } ComprobanteVistaPrevia.Visible = Cantidad == 1; ListadoFacturas.Visible = Cantidad > 1; if (Cantidad == 1) { int IdFactura = this.Connection.FieldInt("SELECT id_comprob FROM comprob WHERE impresa=1 AND tipo_fac IN (" + IncluyeTipos + ") AND pv=" + PV.ToString() + " AND numero=" + Desde.ToString()); Lbl.Comprobantes.ComprobanteFacturable FacturaInicial = null; if (IdFactura > 0) { FacturaInicial = new Lbl.Comprobantes.ComprobanteFacturable(this.Connection, IdFactura); } if (FacturaInicial != null && FacturaInicial.Existe) { ComprobanteVistaPrevia.Elemento = FacturaInicial; ComprobanteVistaPrevia.ActualizarControl(); ComprobanteVistaPrevia.TemporaryReadOnly = true; ComprobanteVistaPrevia.Visible = true; if (FacturaInicial.Anulado) { EtiquetaAviso.Text = "El comprobante fue anulado y no puede reimprimirse."; OkButton.Visible = false; } else { EtiquetaAviso.Text = ""; OkButton.Visible = true; } } else { ComprobanteVistaPrevia.Visible = false; EtiquetaAviso.Text = "El comprobante " + EntradaTipo.TextKey + " " + PV.ToString("0000") + "-" + Lfx.Types.Parsing.ParseInt(EntradaDesde.Text).ToString("00000000") + " aun no fue impreso y no puede reimprimirse."; EntradaOrden.TextKey = "0"; OkButton.Visible = false; } } else if (Cantidad > 1) { System.Data.DataTable TablaFacturas = this.Connection.Select("SELECT * FROM comprob WHERE impresa=1 AND anulada=0 AND tipo_fac IN (" + IncluyeTipos + ") AND pv=" + PV.ToString() + " AND numero BETWEEN " + Desde.ToString() + " AND " + Hasta.ToString()); Lbl.Comprobantes.ColeccionComprobanteConArticulos Facturas = new Lbl.Comprobantes.ColeccionComprobanteConArticulos(this.Connection, TablaFacturas); ListadoFacturas.BeginUpdate(); ListadoFacturas.Items.Clear(); foreach (Lbl.Comprobantes.ComprobanteConArticulos Fac in Facturas) { ListViewItem Itm = ListadoFacturas.Items.Add(Fac.Tipo.ToString()); Itm.SubItems.Add(Fac.PV.ToString("0000") + "-" + Fac.Numero.ToString("00000000")); Itm.SubItems.Add(Fac.Fecha.ToString(Lfx.Types.Formatting.DateTime.ShortDatePattern)); Itm.SubItems.Add(Fac.Cliente.ToString()); Itm.SubItems.Add(Lfx.Types.Formatting.FormatCurrency(Fac.Total)); } ListadoFacturas.EndUpdate(); EtiquetaAviso.Text = "Se van a reimprimir " + Cantidad.ToString() + " comprobantes, incluyendo los que se detallan a continuación."; this.OkButton.Visible = true; } else { EtiquetaAviso.Text = "Debe seleccionar un rango que inlcuya al menos 1 comprobante."; ListadoFacturas.Items.Clear(); this.OkButton.Visible = false; } }
private void ProcesarReimpresion(string tipo, int pv, int desde, int hasta) { using (Lfx.Data.Connection Conn = Lfx.Workspace.Master.GetNewConnection("Reimpresión de comprobantes")) { int Cantidad = Math.Abs(hasta - desde); Lfx.Types.OperationProgress Progreso = new Lfx.Types.OperationProgress("Reimprimiendo", "Se están reimprimiendo " + Cantidad.ToString() + " comprobantes."); Progreso.Cancelable = true; Progreso.Max = Cantidad; Progreso.Modal = true; Progreso.Advertise = true; Progreso.Begin(); string IncluyeTipos = ""; switch (tipo) { case "A": IncluyeTipos = "'FA', 'NCA', 'NDA'"; break; case "B": IncluyeTipos = "'FB', 'NCB', 'NDB'"; break; case "C": IncluyeTipos = "'FC', 'NCC', 'NDC'"; break; case "E": IncluyeTipos = "'FE', 'NCE', 'NDE'"; break; case "M": IncluyeTipos = "'FM', 'NCM', 'NDM'"; break; default: IncluyeTipos = "'" + EntradaTipo.TextKey + "'"; break; } int Paso = desde < hasta ? 1 : -1; for (int Numero = desde; Numero != hasta; Numero += Paso) { int IdFactura = Connection.FieldInt("SELECT id_comprob FROM comprob WHERE impresa=1 AND anulada=0 AND tipo_fac IN (" + IncluyeTipos + ") AND pv=" + pv.ToString() + " AND numero=" + Numero.ToString()); if (IdFactura == 0) { // No existe, supongo que está anulado, lo salteo } else { Lbl.Comprobantes.ComprobanteFacturable Fac = new Lbl.Comprobantes.ComprobanteFacturable(Conn, IdFactura); Progreso.ChangeStatus("Imprimiendo " + Fac.ToString()); Lazaro.Impresion.Comprobantes.ImpresorComprobanteConArticulos Impr = new Lazaro.Impresion.Comprobantes.ImpresorComprobanteConArticulos(Fac, null); Impr.Imprimir(); } Progreso.Advance(1); if (Progreso.Cancelar) { break; } } Progreso.End(); } }
private void MostrarVistaPrevia() { int PV = EntradaPV.ValueInt; int Desde = EntradaDesde.ValueInt; if ((EntradaHasta.ValueInt == 0 || EntradaHasta.ValueInt < Desde) && this.ActiveControl != EntradaHasta) EntradaHasta.ValueInt = Desde; int Hasta = EntradaHasta.ValueInt; int Cantidad = Hasta - Desde + 1; string IncluyeTipos = ""; switch (EntradaTipo.TextKey) { case "A": IncluyeTipos = "'FA', 'NCA', 'NDA'"; break; case "B": IncluyeTipos = "'FB', 'NCB', 'NDB'"; break; case "C": IncluyeTipos = "'FC', 'NCC', 'NDC'"; break; case "E": IncluyeTipos = "'FE', 'NCE', 'NDE'"; break; case "M": IncluyeTipos = "'FM', 'NCM', 'NDM'"; break; default: IncluyeTipos = "'" + EntradaTipo.TextKey + "'"; break; } if (ProximosNumeros.ContainsKey(PV) == false) ProximosNumeros[PV] = this.Connection.FieldInt("SELECT MAX(numero) FROM comprob WHERE impresa=1 AND tipo_fac IN (" + IncluyeTipos + ") AND pv=" + PV.ToString()) + 1; if (PV <= 0 || Desde <= 0 || Cantidad <= 0) { EtiquetaAviso.Text = "El rango seleccionado no es válido."; ComprobanteVistaPrevia.Visible = false; ListadoFacturas.Visible = false; OkButton.Visible = false; return; } if (Desde > ProximosNumeros[PV] || Hasta > ProximosNumeros[PV]) { EtiquetaAviso.Text = "No se puede reimprimir el rango seleccionado porque todavía no se utilizaron los comprobantes desde el " + ProximosNumeros[PV].ToString() + " al " + (Desde - 1).ToString(); ComprobanteVistaPrevia.Visible = false; ListadoFacturas.Visible = false; OkButton.Visible = false; return; } ComprobanteVistaPrevia.Visible = Cantidad == 1; ListadoFacturas.Visible = Cantidad > 1; if (Cantidad == 1) { int IdFactura = this.Connection.FieldInt("SELECT id_comprob FROM comprob WHERE impresa=1 AND tipo_fac IN (" + IncluyeTipos + ") AND pv=" + PV.ToString() + " AND numero=" + Desde.ToString()); Lbl.Comprobantes.ComprobanteFacturable FacturaInicial = null; if (IdFactura > 0) FacturaInicial = new Lbl.Comprobantes.ComprobanteFacturable(this.Connection, IdFactura); if (FacturaInicial != null && FacturaInicial.Existe) { ComprobanteVistaPrevia.Elemento = FacturaInicial; ComprobanteVistaPrevia.ActualizarControl(); ComprobanteVistaPrevia.TemporaryReadOnly = true; ComprobanteVistaPrevia.Visible = true; if (FacturaInicial.Anulado) { EtiquetaAviso.Text = "El comprobante fue anulado y no puede reimprimirse."; OkButton.Visible = false; } else { EtiquetaAviso.Text = ""; OkButton.Visible = true; } } else { ComprobanteVistaPrevia.Visible = false; EtiquetaAviso.Text = "El comprobante " + EntradaTipo.TextKey + " " + PV.ToString("0000") + "-" + Lfx.Types.Parsing.ParseInt(EntradaDesde.Text).ToString("00000000") + " aun no fue impreso y no puede reimprimirse."; EntradaOrden.TextKey = "0"; OkButton.Visible = false; } } else if (Cantidad > 1) { System.Data.DataTable TablaFacturas = this.Connection.Select("SELECT * FROM comprob WHERE impresa=1 AND anulada=0 AND tipo_fac IN (" + IncluyeTipos + ") AND pv=" + PV.ToString() + " AND numero BETWEEN " + Desde.ToString() + " AND " + Hasta.ToString()); Lbl.Comprobantes.ColeccionComprobanteConArticulos Facturas = new Lbl.Comprobantes.ColeccionComprobanteConArticulos(this.Connection, TablaFacturas); ListadoFacturas.BeginUpdate(); ListadoFacturas.Items.Clear(); foreach (Lbl.Comprobantes.ComprobanteConArticulos Fac in Facturas) { ListViewItem Itm = ListadoFacturas.Items.Add(Fac.Tipo.ToString()); Itm.SubItems.Add(Fac.PV.ToString("0000") + "-" + Fac.Numero.ToString("00000000")); Itm.SubItems.Add(Fac.Fecha.ToString(Lfx.Types.Formatting.DateTime.ShortDatePattern)); Itm.SubItems.Add(Fac.Cliente.ToString()); Itm.SubItems.Add(Lfx.Types.Formatting.FormatCurrency(Fac.Total)); } ListadoFacturas.EndUpdate(); EtiquetaAviso.Text = "Se van a reimprimir " + Cantidad.ToString() + " comprobantes, incluyendo los que se detallan a continuación."; this.OkButton.Visible = true; } else { EtiquetaAviso.Text = "Debe seleccionar un rango que inlcuya al menos 1 comprobante."; ListadoFacturas.Items.Clear(); this.OkButton.Visible = false; } }
private void ProcesarReimpresion(string tipo, int pv, int desde, int hasta) { using (Lfx.Data.Connection Conn = Lfx.Workspace.Master.GetNewConnection("Reimpresión de comprobantes")) { int Cantidad = Math.Abs(hasta - desde); Lfx.Types.OperationProgress Progreso = new Lfx.Types.OperationProgress("Reimprimiendo", "Se están reimprimiendo " + Cantidad.ToString() + " comprobantes."); Progreso.Cancelable = true; Progreso.Max = Cantidad; Progreso.Modal = true; Progreso.Advertise = true; Progreso.Begin(); string IncluyeTipos = ""; switch (tipo) { case "A": IncluyeTipos = "'FA', 'NCA', 'NDA'"; break; case "B": IncluyeTipos = "'FB', 'NCB', 'NDB'"; break; case "C": IncluyeTipos = "'FC', 'NCC', 'NDC'"; break; case "E": IncluyeTipos = "'FE', 'NCE', 'NDE'"; break; case "M": IncluyeTipos = "'FM', 'NCM', 'NDM'"; break; default: IncluyeTipos = "'" + EntradaTipo.TextKey + "'"; break; } int Paso = desde < hasta ? 1 : -1; for (int Numero = desde; Numero != hasta; Numero += Paso) { int IdFactura = Connection.FieldInt("SELECT id_comprob FROM comprob WHERE impresa=1 AND anulada=0 AND tipo_fac IN (" + IncluyeTipos + ") AND pv=" + pv.ToString() + " AND numero=" + Numero.ToString()); if (IdFactura == 0) { // No existe, supongo que está anulado, lo salteo } else { Lbl.Comprobantes.ComprobanteFacturable Fac = new Lbl.Comprobantes.ComprobanteFacturable(Conn, IdFactura); Progreso.ChangeStatus("Imprimiendo " + Fac.ToString()); Lazaro.Impresion.Comprobantes.ImpresorComprobanteConArticulos Impr = new Lazaro.Impresion.Comprobantes.ImpresorComprobanteConArticulos(Fac, null); Impr.Imprimir(); } Progreso.Advance(1); if (Progreso.Cancelar) break; } Progreso.End(); } }
public GeneradorFiscal(Lbl.Comprobantes.ComprobanteFacturable comprobante) : base(comprobante) { }
public abstract List <string> FormatearRegistro(int lineNumber, Lbl.Comprobantes.ComprobanteFacturable Comp);
public GeneradorElectronico(Lbl.Comprobantes.ComprobanteFacturable comprobante) : base(comprobante) { }