private static object ExecImprimir(string comando) { string SubComandoImprimir = Lfx.Types.Strings.GetNextToken(ref comando, " ").Trim(); switch (SubComandoImprimir.ToUpperInvariant()) { case "COMPROBANTE": case "COMPROB": int IdComprobante = Lfx.Types.Parsing.ParseInt(Lfx.Types.Strings.GetNextToken(ref comando, " ")); Lfx.Types.OperationResult ResultadoImpresion; using (Lfx.Data.Connection DataBaseImprimir = Lfx.Workspace.Master.GetNewConnection("Imprimir comprobante")) using (System.Data.IDbTransaction Trans = DataBaseImprimir.BeginTransaction()) { Lbl.Comprobantes.ComprobanteConArticulos Comprob = new Lbl.Comprobantes.ComprobanteConArticulos(DataBaseImprimir, IdComprobante); Lazaro.Impresion.Comprobantes.ImpresorComprobanteConArticulos Impresor = new Impresion.Comprobantes.ImpresorComprobanteConArticulos(Comprob, Trans); ResultadoImpresion = Impresor.Imprimir(); if (ResultadoImpresion.Success) { Trans.Commit(); } else { Trans.Rollback(); } } return(ResultadoImpresion); default: int itemId = Lfx.Types.Parsing.ParseInt(Lfx.Types.Strings.GetNextToken(ref comando, " ").Trim()); Type TipoElem = Lbl.Instanciador.InferirTipo(SubComandoImprimir); if (TipoElem != null && itemId > 0) { using (Lfx.Data.Connection DbImprimir = Lfx.Workspace.Master.GetNewConnection("Imprimir " + TipoElem.ToString() + " " + itemId.ToString())) { Lbl.IElementoDeDatos Elem = Lbl.Instanciador.Instanciar(TipoElem, DbImprimir, itemId); Lfx.Types.OperationResult Res; using (System.Data.IDbTransaction Trans = DbImprimir.BeginTransaction()) { Lazaro.Impresion.ImpresorElemento Impresor = Lazaro.Impresion.Instanciador.InstanciarImpresor(Elem, Trans); string ImprimirEn = Lfx.Types.Strings.GetNextToken(ref comando, " ").Trim().ToUpperInvariant(); if (ImprimirEn == "EN") { // El nombre de la impresora es lo que resta del comando // No lo puedo separar con GetNextToken porque puede contener espacios string NombreImpresora = comando; Impresor.Impresora = Lbl.Impresion.Impresora.InstanciarImpresoraLocal(DbImprimir, NombreImpresora); } Res = Impresor.Imprimir(); if (Res.Success) { Trans.Commit(); } else { Trans.Rollback(); } } return(Res); } } break; } return(null); }
private static object ExecImprimir(string comando) { string SubComandoImprimir = Lfx.Types.Strings.GetNextToken(ref comando, " ").Trim(); switch (SubComandoImprimir.ToUpperInvariant()) { case "COMPROBANTE": case "COMPROB": int IdComprobante = Lfx.Types.Parsing.ParseInt(Lfx.Types.Strings.GetNextToken(ref comando, " ")); Lfx.Types.OperationResult ResultadoImpresion; using (Lfx.Data.Connection DataBaseImprimir = Lfx.Workspace.Master.GetNewConnection("Imprimir comprobante")) using (System.Data.IDbTransaction Trans = DataBaseImprimir.BeginTransaction()) { Lbl.Comprobantes.ComprobanteConArticulos Comprob = new Lbl.Comprobantes.ComprobanteConArticulos(DataBaseImprimir, IdComprobante); Lazaro.Impresion.Comprobantes.ImpresorComprobanteConArticulos Impresor = new Impresion.Comprobantes.ImpresorComprobanteConArticulos(Comprob, Trans); ResultadoImpresion = Impresor.Imprimir(); if (ResultadoImpresion.Success) Trans.Commit(); else Trans.Rollback(); } return ResultadoImpresion; default: int itemId = Lfx.Types.Parsing.ParseInt(Lfx.Types.Strings.GetNextToken(ref comando, " ").Trim()); Type TipoElem = Lbl.Instanciador.InferirTipo(SubComandoImprimir); if (TipoElem != null && itemId > 0) { using (Lfx.Data.Connection DbImprimir = Lfx.Workspace.Master.GetNewConnection("Imprimir " + TipoElem.ToString() + " " + itemId.ToString())) { Lbl.IElementoDeDatos Elem = Lbl.Instanciador.Instanciar(TipoElem, DbImprimir, itemId); Lfx.Types.OperationResult Res; using (System.Data.IDbTransaction Trans = DbImprimir.BeginTransaction()) { Lazaro.Impresion.ImpresorElemento Impresor = Lazaro.Impresion.Instanciador.InstanciarImpresor(Elem, Trans); string ImprimirEn = Lfx.Types.Strings.GetNextToken(ref comando, " ").Trim().ToUpperInvariant(); if (ImprimirEn == "EN") { // El nombre de la impresora es lo que resta del comando // No lo puedo separar con GetNextToken porque puede contener espacios string NombreImpresora = comando; Impresor.Impresora = Lbl.Impresion.Impresora.InstanciarImpresoraLocal(DbImprimir, NombreImpresora); } Res = Impresor.Imprimir(); if (Res.Success) { Trans.Commit(); } else { Trans.Rollback(); } } return Res; } } break; } return null; }