/*public void ImprimirTicket() * { * //fiscalHasar.DatosCliente(cliente.RazonSocial, "", FiscalPrinterLib.TiposDeDocumento.TIPO_NINGUNO , FiscalPrinterLib.TiposDeResponsabilidades.CONSUMIDOR_FINAL, 1); * fiscalHasar.AbrirComprobanteFiscal(FiscalPrinterLib.DocumentosFiscales.TICKET_C); * fiscalHasar.ImprimirTextoFiscal("texto fiscal 1"); * fiscalHasar.ImprimirItem("item 1", 1, 10, 0.21, 0); * object vuelto; * object numero; * fiscalHasar.ImprimirPago("Efectivo", 10, "",out vuelto); * fiscalHasar.CerrarComprobanteFiscal(1,out numero); * } * * public void ImprimirTicketFactura(ClienteEntity cliente) * { * fiscalHasar.DatosCliente(cliente.RazonSocial, "", FiscalPrinterLib.TiposDeDocumento.TIPO_NINGUNO, FiscalPrinterLib.TiposDeResponsabilidades.CONSUMIDOR_FINAL, 1); * if (cliente.CondicionDeIVA.Descripcion == "MONOTRIBUTO" || cliente.CondicionDeIVA.Descripcion == "EXENTO") * fiscalHasar.AbrirComprobanteFiscal(FiscalPrinterLib.DocumentosFiscales.TICKET_FACTURA_B); * if (cliente.CondicionDeIVA.Descripcion=="RESPONSABLE INSCRIPTO") * fiscalHasar.AbrirComprobanteFiscal(FiscalPrinterLib.DocumentosFiscales.TICKET_FACTURA_A); * fiscalHasar.ImprimirTextoFiscal("texto fiscal 1"); * fiscalHasar.ImprimirItem("item 1", 1, 10, 0.21, 0); * object vuelto; * object numero; * fiscalHasar.ImprimirPago("Efectivo", 10, "", out vuelto); * fiscalHasar.CerrarComprobanteFiscal(1, out numero); * }*/ public void ImprimirTicketFactura(IComprobante factura, IComprobante recibo, decimal vueltoefectivo) { abortar = false; switch (factura.Responsable.CondicionDeIVA) { case SituacionIVA.SIN_DATO: throw new Exception("No se puede facturar a un cliente que no tiene declarada situacion respecto al IVA"); case SituacionIVA.CONSUMIDOR_FINAL: fiscalHasar.AbrirComprobanteFiscal(FiscalPrinterLib.DocumentosFiscales.TICKET_C); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("Hubo error al abrir comprobante. Se cancelará el comprobante. " + descripcionErrorFiscal); fiscalHasar.CancelarComprobante(); abortar = true; } break; case SituacionIVA.MONOTRIBUTO: fiscalHasar.DatosCliente(factura.Responsable.RazonSocial, factura.Responsable.CUIT.Replace("-", ""), FiscalPrinterLib.TiposDeDocumento.TIPO_CUIT, FiscalPrinterLib.TiposDeResponsabilidades.MONOTRIBUTO, 1); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("hubo error al cargar datos cliente:" + descripcionErrorFiscal); } fiscalHasar.AbrirComprobanteFiscal(FiscalPrinterLib.DocumentosFiscales.TICKET_FACTURA_B); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("Hubo error al abrir comprobante. Se cancelará el comprobante. " + descripcionErrorFiscal); fiscalHasar.CancelarComprobante(); abortar = true; } break; case SituacionIVA.RESPONSABLE_INSCRIPTO: fiscalHasar.DatosCliente(factura.Responsable.RazonSocial, factura.Responsable.CUIT.Replace("-", ""), FiscalPrinterLib.TiposDeDocumento.TIPO_CUIT, FiscalPrinterLib.TiposDeResponsabilidades.RESPONSABLE_INSCRIPTO, 1); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("hubo error al cargar datos cliente:" + descripcionErrorFiscal); } fiscalHasar.AbrirComprobanteFiscal(FiscalPrinterLib.DocumentosFiscales.TICKET_FACTURA_A); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("Hubo error al abrir comprobante. Se cancelará el comprobante. " + descripcionErrorFiscal); fiscalHasar.CancelarComprobante(); abortar = true; } break; case SituacionIVA.EXENTO: fiscalHasar.DatosCliente(factura.Responsable.RazonSocial, factura.Responsable.CUIT.Replace("-", ""), FiscalPrinterLib.TiposDeDocumento.TIPO_CUIT, FiscalPrinterLib.TiposDeResponsabilidades.RESPONSABLE_EXENTO, 1); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("hubo error al cargar datos cliente:" + descripcionErrorFiscal); } fiscalHasar.AbrirComprobanteFiscal(FiscalPrinterLib.DocumentosFiscales.TICKET_FACTURA_B); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("Hubo error al abrir comprobante. Se cancelará el comprobante. " + descripcionErrorFiscal); fiscalHasar.CancelarComprobante(); abortar = true; } break; } //IMPRIMO RENGLONES foreach (IItem renglon in factura.Items) { fiscalHasar.ImprimirItem(renglon.DescripcionCorta, (double)renglon.Cantidad, (double)renglon.Precio, (double)renglon.TasaIVA, (double)renglon.Impuestos); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("Hubo error al abrir comprobante. Se cancelará el comprobante. " + descripcionErrorFiscal); fiscalHasar.CancelarComprobante(); abortar = true; } } //COBRANZA if (!abortar) { object vuelto; object numero; //IMPRIMO PAGOS if (recibo != null) { foreach (IItem ren in recibo.Items) { Console.WriteLine((ren.Total + vueltoefectivo)); fiscalHasar.ImprimirPago(ren.Descripcion, (double)(ren.Total + vueltoefectivo), "", out vuelto); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("Hubo error al abrir comprobante. Se cancelará el comprobante. " + descripcionErrorFiscal); fiscalHasar.CancelarComprobante(); abortar = true; } } } else { fiscalHasar.ImprimirPago("CUENTA CORRIENTE", (double)factura.Total, "", out vuelto); if (fiscalHasar.HuboErrorFiscal) { Console.WriteLine("Hubo error al abrir comprobante. Se cancelará el comprobante. " + descripcionErrorFiscal); fiscalHasar.CancelarComprobante(); abortar = true; } } if (!abortar) { fiscalHasar.CerrarComprobanteFiscal(1, out numero); factura.Numero = string.Format("{0}-{1}", factura.PuntoDeVenta.PadLeft(4, Char.Parse("0")), numero.ToString().PadLeft(8, Char.Parse("0"))); Console.WriteLine(numero); } } }
public void Comprobantefiscal(int modelofiscal, int puerto, string razonsocial, string documento, int tiporesponsabilidad, string domicilio, DataTable dtDetalles, double montototal) { string msg = "ok"; object varcantidaditemvendido = 0; object varmontoventas = 0; object varmontopagado = 0; object varmontoivanoinscripto = 0; object varmontoimpuestointerno = 0; object varmontoiva = 0; object varnumerofactura = 0; try { // HASAR mihasar = new HASAR(); FiscalPrinterLib.HASAR mihasar = new FiscalPrinterLib.HASAR(); mihasar.ErrorFiscal += new _FiscalEvents_ErrorFiscalEventHandler(mihasar_ErrorFiscal); mihasar.ErrorImpresora += new _FiscalEvents_ErrorImpresoraEventHandler(mihasar_ErrorImpresora); mihasar.FaltaPapel += new _FiscalEvents_FaltaPapelEventHandler(mihasar_FaltaPapel); mihasar.ImpresoraNoResponde += new _FiscalEvents_ImpresoraNoRespondeEventHandler(mihasar_ImpresoraNoResponde); mihasar.ProgresoDeteccion += new _FiscalEvents_ProgresoDeteccionEventHandler(mihasar_ProgresoDeteccion); switch (modelofiscal) { case 1: mihasar.Modelo = ModelosDeImpresoras.MODELO_P441; break; default: msg = "no es el modelo indicado"; break; } mihasar.Puerto = puerto; mihasar.Comenzar(); //responsable inscripto mihasar.DatosCliente(razonsocial, documento, TiposDeDocumento.TIPO_DNI, TiposDeResponsabilidades.CONSUMIDOR_FINAL, domicilio); mihasar.AbrirComprobanteFiscal(DocumentosFiscales.TICKET_C); //imprimir item foreach (DataRow row in dtDetalles.Rows) { mihasar.ImprimirItem(row["Producto"].ToString(), Convert.ToDouble(row["cantidad"].ToString()), Convert.ToDouble(row["Importe"].ToString()), 21.0, 0.0); //Descripcion , cantidad, monto, iva, impuesto interno } mihasar.Subtotal(false, out varcantidaditemvendido, out varmontoventas, out varmontoiva, out varmontopagado, out varmontoivanoinscripto, out varmontoimpuestointerno); string mensaje = ("Subtotal Comprobante ::: $ " + varmontoventas.ToString()); mihasar.CerrarComprobanteFiscal(1, out varnumerofactura); this.cantidaditemvendido = varcantidaditemvendido; this.montoventas = varmontoventas; this.montoiva = varmontoiva; this.montopagado = varmontopagado; this.montoivanoinscripto = varmontoivanoinscripto; this.montoimpuestointerno = varmontoimpuestointerno; this.numerofactura = varnumerofactura; } catch (Exception ex) { throw; } }