Example #1
0
        /*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;
            }
        }