private void MostrarErrorFiscal(Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.Respuesta Res) { FormError FormFiscalError = new FormError(); FormFiscalError.Mostrar(Res); FormFiscalError.ShowDialog(); }
internal void Mostrar(Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.Respuesta Res) { switch (Res.Error) { case Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.Ok: EtiquetaError.Text = "OK???"; break; case Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.ErrorBCC: EtiquetaError.Text = "BCC"; break; case Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.Error: EtiquetaError.Text = "Error genérico"; break; case Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.ErrorFiscal: EtiquetaError.Text = "Error fiscal"; break; case Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.ErrorImpresora: EtiquetaError.Text = "Error impresora"; break; case Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.NAK: EtiquetaError.Text = "NAK"; break; case Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.TimeOut: EtiquetaError.Text = "Timeout"; break; } EtiquetaLugar.Text = Res.Lugar; EtiquetaMensaje.Text = Res.Mensaje; EtiquetaComando.Text = Res.CodigoComando.ToString(); if (Res.Campos != null) { EtiquetaCampos.Text = string.Join(Environment.NewLine, Res.Campos.ToArray()); } EtiquetaEstadoImpresora.Text = Res.ExplicarEstadoImpresora(); EtiquetaEstadoFiscal.Text = Res.ExplicarEstadoFiscal(); CancelCommandButton.Visible = false; }
private void EventoProgramador(object source, System.Timers.ElapsedEventArgs e) { Programador.Stop(); Watchdog_LastOp = System.DateTime.Now; //Busco un PV que corresponda a esta terminal if (this.PV == 0) { Programador.Start(); return; } Watchdog.Stop(); try { using (IDbTransaction Trans = this.Impresora.Connection.BeginTransaction()) { var Actualizar = new qGen.Update("pvs", new qGen.Where("id_pv", this.PVenta)); Actualizar.ColumnValues.AddWithValue("lsa", new qGen.SqlExpression("NOW()")); this.Impresora.Connection.ExecuteNonQuery(Actualizar); Trans.Commit(); } } catch { // Nada } Lfx.Services.Task ProximaTarea = Lfx.Workspace.Master.DefaultScheduler.GetNextTask("fiscal" + this.PV.ToString()); if (ProximaTarea != null) { string Comando = ProximaTarea.Command; string SubComando = Lfx.Types.Strings.GetNextToken(ref Comando, " ").Trim().ToUpper(); Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.Respuesta Res; switch (SubComando) { case "REBOOT": FormEstado.MostrarEstado("Reiniciando..."); Impresora.EstadoServidor = Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.EstadoServidorFiscal.Reiniciando; //this.End(true); break; case "END": FormEstado.MostrarEstado("Cerrando..."); Impresora.EstadoServidor = Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.EstadoServidorFiscal.Apagando; //this.End(false); break; case "CIERRE": FormEstado.MostrarEstado("Imprimiendo cierre..."); Res = Impresora.ObtenerEstadoImpresora(); if (Res.EstadoFiscal.DocumentoFiscalAbierto) { Res = Impresora.CancelarDocumentoFiscal(); System.Threading.Thread.Sleep(500); } else if (Res.Error == Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.Ok) { string SubComandoCierre = Lfx.Types.Strings.GetNextToken(ref Comando, " ").Trim().ToUpper(); Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.Respuesta ResultadoCierre = Impresora.Cierre(SubComandoCierre, true); if (SubComandoCierre == "Z" && ResultadoCierre.Error == Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.Ok) { //Si hizo un cierre Z correctamente, actualizo la variable LCZ using (IDbTransaction Trans = this.Impresora.Connection.BeginTransaction()) { qGen.Update Actualizar = new qGen.Update("pvs", new qGen.Where("id_pv", this.PVenta)); Actualizar.ColumnValues.AddWithValue("ultimoz", new qGen.SqlExpression("NOW()")); this.Impresora.Connection.ExecuteNonQuery(Actualizar); Trans.Commit(); } } if (ResultadoCierre.Error != Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.Ok) { MostrarErrorFiscal(ResultadoCierre); } System.Threading.Thread.Sleep(100); } break; case "CANCELAR": FormEstado.MostrarEstado("Cancelando comprobante..."); string ItemCancelar = Lfx.Types.Strings.GetNextToken(ref Comando, " ").Trim().ToUpper(); switch (ItemCancelar) { case "FISCAL": Impresora.CancelarDocumentoFiscal(); System.Threading.Thread.Sleep(500); break; } break; case "IMPRIMIR": FormEstado.MostrarEstado("Imprimiendo..."); int IdFactura = Lfx.Types.Parsing.ParseInt(Lfx.Types.Strings.GetNextToken(ref Comando, " ").Trim()); Res = Impresora.ObtenerEstadoImpresora(); if (Res.EstadoFiscal.DocumentoFiscalAbierto) { Res = Impresora.CancelarDocumentoFiscal(); System.Threading.Thread.Sleep(500); } if (Res.HacerCierreZ) { Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("Hacer Cierre Z", "Es obligatorio hacer un Cierre Z antes de continuar. ¿Desea hacer el cierre ahora?"); Pregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo; if (Pregunta.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // Hago el cierre, y Res es el resultado del cierre Res = Impresora.Cierre("Z", true); System.Threading.Thread.Sleep(500); } else { // No quiso hacer el cierre. Devuelvo un error Programador.Start(); Watchdog.Start(); return; } } if (Res.Error == Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.Ok) { Res = Impresora.ImprimirComprobante(IdFactura); } if (Res.Error != Lazaro.Base.Util.Impresion.Comprobantes.Fiscal.ErroresFiscales.Ok) { MostrarErrorFiscal(Res); FormEstado.MostrarEstado("Cancelando documento..."); if (Res.EstadoFiscal.DocumentoFiscalAbierto) { Res = Impresora.CancelarDocumentoFiscal(); } Programador.Start(); Watchdog.Start(); return; } break; } } Programador.Start(); Watchdog.Start(); }