public Result Print(CommandDocument document) { int ultimo = 0; Documentos curso; try { printer = new HASAR(); Inicializar(printer, document.Header); printer.Comenzar(); if (HasError(printer, document.Header, out message)) { throw new Exception(message); } //si no hay comprobante abierto cancela curso = printer.DocumentoEnCurso; if (curso == Documentos.D_NO_DOCUMENTO_EN_CURSO) { throw new Exception("No hay documentos en curso iniciados"); } //imprimir los comandos foreach (var command in document.Commands) { printer.Enviar(command); } double total = 0; printer.LeerMontoTotal(FiscalHelper.GetDocumentoIVA(curso), out total); DocPrinter doc = new DocPrinter(); doc.Class = FiscalHelper.GetDocumentClass(curso); doc.DocDate = printer.FechaHoraFiscal; doc.PosNum = FiscalHelper.GetPosNumer(printer); doc.Type = FiscalHelper.GetDocumentType(curso); doc.DocNum = FiscalHelper.GetUltimoComprobanteACancelar(curso, printer).ToString(); doc.TotalAmount = total; printer.Finalizar(); return(new Success(doc)); } catch (Exception ex) { printer.Abortar(); try { curso = printer.DocumentoEnCurso; if (curso != Documentos.D_NO_DOCUMENTO_EN_CURSO) { ultimo = FiscalHelper.GetUltimoComprobanteACancelar(curso, printer); printer.TratarDeCancelarTodo(); } } catch (Exception) { } printer.Finalizar(); return(new Fail((ultimo == 0) ? string.Empty : ultimo.ToString(), ex.Message, ex)); } }
public Result Print(TestDocument document) { try { printer = new HASAR(); Inicializar(printer, document.Header); printer.Comenzar(); if (HasError(printer, document.Header, out message)) { throw new Exception(message); } try { printer.TratarDeCancelarTodo(); } catch (System.Exception) { } if (HasError(printer, document.Header, out message)) { throw new Exception(message); } printer.BorrarFantasiaEncabezadoCola(false, false, true); printer.AbrirComprobanteNoFiscal(); printer.ImprimirTextoNoFiscal("Impresora:" + document.Header.PrinterName); printer.ImprimirTextoNoFiscal("IP:" + document.Header.Ip); printer.ImprimirTextoNoFiscal("Puerto:" + document.Header.Port.ToString()); printer.ImprimirTextoNoFiscal("Sucursal:" + document.Header.Channel); printer.ImprimirTextoNoFiscal("Caja:" + document.Header.Registry); if (HasError(printer, document.Header, out message)) { throw new Exception(message); } printer.CerrarComprobanteNoFiscal(); printer.Finalizar(); return(new Success()); } catch (Exception ex) { printer.Abortar(); try { printer.TratarDeCancelarTodo(); } catch (Exception) { } printer.Finalizar(); return(new Fail(ex.Message, ex)); } }
public Result Print(OpenCommandDocument document) { int ultimo = 0; Documentos curso; try { printer = new HASAR(); Inicializar(printer, document.Header); printer.Comenzar(); if (HasError(printer, document.Header, out message)) { throw new Exception(message); } try { //si hay un documento en curso busco el numero al cancelarlo curso = printer.DocumentoEnCurso; if (curso != Documentos.D_NO_DOCUMENTO_EN_CURSO) { ultimo = FiscalHelper.GetUltimoComprobanteACancelar(curso, printer); printer.TratarDeCancelarTodo(); } } catch (Exception) { } if (HasError(printer, document.Header, out message)) { throw new Exception(message); } //imprimir los comandos foreach (var command in document.Commands) { printer.Enviar(command); } //pedir comprobate curso = printer.DocumentoEnCurso; DocPrinter doc = new DocPrinter(); doc.Class = FiscalHelper.GetDocumentClass(curso); doc.DocDate = printer.FechaHoraFiscal; doc.PosNum = FiscalHelper.GetPosNumer(printer); doc.Type = FiscalHelper.GetDocumentType(curso); doc.DocNum = FiscalHelper.GetUltimoComprobanteACancelar(curso, printer).ToString(); printer.Finalizar(); return(new Success((ultimo != 0) ? ultimo.ToString() : string.Empty, doc)); } catch (Exception ex) { printer.Abortar(); try { curso = printer.DocumentoEnCurso; if (curso != Documentos.D_NO_DOCUMENTO_EN_CURSO) { ultimo = FiscalHelper.GetUltimoComprobanteACancelar(curso, printer); printer.TratarDeCancelarTodo(); } } catch (Exception) { } printer.Finalizar(); return(new Fail((ultimo != 0) ? ultimo.ToString() : string.Empty, ex.Message, ex)); } }