Example #1
0
        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);
        }
Example #2
0
                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;
                }