Example #1
0
 public void copy(ref T_PayFone cpy)
 {
     st_telefone    = cpy.st_telefone;
     tg_tipoCelular = cpy.tg_tipoCelular;
     fk_cartao      = cpy.fk_cartao;
     fk_terminal    = cpy.fk_terminal;
 }
        public override bool execute( )
        {
            Registry("execute exec_pf_autorizaInstalacao ");

            /// USER [ execute ]

            T_PayFone pf = new T_PayFone(this);

            if (!pf.selectIdentity(pf_ativa.get_fk_payfone()))
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro aplicativo";
                return(false);
            }

            output_st_telefone = pf.get_st_telefone();

            if (pf.get_tg_tipoCelular() == TipoCelular.LOJA)
            {
                output_tg_tipoCelular = "0";

                T_Terminal term = new T_Terminal(this);

                if (!term.selectIdentity(pf.get_fk_terminal()))
                {
                    output_st_codResp = "80";
                    output_st_msg     = "Erro aplicativo";
                    return(false);
                }

                output_st_terminal = term.get_nu_terminal();
            }
            else
            {
                output_tg_tipoCelular = "1";
            }

            pf_ativa.set_tg_status(Context.CLOSED);
            pf_ativa.set_dt_ativacao(GetDataBaseTime());

            if (!pf_ativa.synchronize_LINK_PFAtivacao())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro aplicativo";
                return(false);
            }

            /// USER [ execute ] END

            Registry("execute done exec_pf_autorizaInstalacao ");

            return(true);
        }
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute ins_payFoneLojista ");

            /// USER [ execute ]

            pf = new T_PayFone(this);

            if (pf.select_rows_telefone(input_st_pf_telefone))
            {
                PublishError("Telefone já utilizado");
                return(false);
            }

            pf.Reset();

            pf.set_fk_cartao(Context.NOT_SET);
            pf.set_fk_terminal(term.get_identity());
            pf.set_st_telefone(input_st_pf_telefone);
            pf.set_tg_tipoCelular(TipoCelular.LOJA);

            if (!pf.create_T_PayFone())
            {
                return(false);
            }

            string m_sSessionSeed = "abcdefghijklmnopqrstuvxywz0123456789";
            string st_cod_ativ    = "";

            Random randObj = new Random();

            int iLen = m_sSessionSeed.Length;

            for (int t = 0; t < 8; ++t)
            {
                st_cod_ativ += m_sSessionSeed[randObj.Next(0, iLen)].ToString();
            }

            LINK_PFAtivacao l_pfativa = new LINK_PFAtivacao(this);

            l_pfativa.set_fk_payfone(pf.get_identity());
            l_pfativa.set_dt_ativacao(GetDataBaseTime());
            l_pfativa.set_st_ativacao(st_cod_ativ);
            l_pfativa.set_tg_status(Context.OPEN);

            if (!l_pfativa.create_LINK_PFAtivacao())
            {
                return(false);
            }

            PublishNote("Sucesso na criação de PayFone. Código: " + st_cod_ativ);

            /// USER [ execute ] END

            Registry("execute done ins_payFoneLojista ");

            return(true);
        }
Example #4
0
        public override bool authenticate( )
        {
            if (base.authenticate() == false)
            {
                return(false);
            }

            Registry("authenticate fetch_rel_1_rtc ");

            /// USER [ authenticate ]

            input_st_cart = input_st_cart.PadLeft(14, '0');

            l_tr = new LOG_Transacoes(this);

            // ## Confere telefone

            if (input_st_pf.Length == 10)
            {
                T_PayFone pf = new T_PayFone(this);

                if (!pf.select_rows_telefone(input_st_pf))
                {
                    PublishError("Telefone inválido");
                    return(true);
                }
                else
                {
                    if (!pf.fetch())
                    {
                        return(false);
                    }

                    st_cart_id = pf.get_fk_cartao();
                }
            }

            // ##  Confere cartão

            else if (input_st_cart.Length == 14)
            {
                T_Cartao cart = new T_Cartao(this);

                if (!cart.select_rows_tudo(input_st_cart.Substring(0, 6),                               // empresa
                                           input_st_cart.Substring(6, 6),                               // matricula
                                           input_st_cart.Substring(12, 2)))                             // titularidade
                {
                    PublishError("Cartão inválido");
                    return(true);
                }
                else
                {
                    if (!cart.fetch())
                    {
                        return(false);
                    }

                    st_cart_id = cart.get_identity();
                }
            }

            // ## Confere Loja

            loj = new T_Loja(this);

            if (input_st_loja.Length > 0)
            {
                // ## Busca pelo código

                if (!loj.select_rows_loja(input_st_loja))
                {
                    PublishError("Loja inexistente");
                    return(true);
                }

                if (!loj.fetch())
                {
                    return(false);
                }

                fk_loja = loj.get_identity();
            }

            // ## Seleciona os registros de transações

            l_tr.select_rows_dt_cart(input_st_dt_ini,
                                     input_st_dt_fim,
                                     st_cart_id);

            /// USER [ authenticate ] END

            Registry("authenticate done fetch_rel_1_rtc ");

            return(true);
        }
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute exec_pf_consultaAutorizacao ");

            /// USER [ execute ]

            // ## Busca telefone de lojista

            pf_lojista = new T_PayFone(this);

            if (!pf_lojista.select_rows_telefone(input_st_tel_lojista))
            {
                output_st_codResp = "98";
                output_st_msg     = "Telefone invalido";
                return(false);
            }

            if (!pf_lojista.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## busca pendência pelo cartão e terminal

            T_PendPayFone pendPayFone = new T_PendPayFone(this);

            if (pendPayFone.select_rows_cart_term(cart.get_identity(),
                                                  pf_lojista.get_fk_terminal()))
            {
                // ## Pega do mais novo ao mais antigo

                pendPayFone.SetReversedFetch();

                // ## Somente primeiros três registros

                while (pendPayFone.fetch() && output_array_generic_lst.Count < 3)
                {
                    PF_DadosConsultaAutorizacao tmp = new PF_DadosConsultaAutorizacao();

                    tmp.set_vr_valor(pendPayFone.get_vr_valor());
                    tmp.set_st_nsu(pendPayFone.get_nu_nsu());
                    tmp.set_tg_sit(pendPayFone.get_en_situacao());

                    DateTime dt_data = Convert.ToDateTime(pendPayFone.get_dt_inclusao());

                    tmp.set_dt_ocorr(new StringBuilder().Append(dt_data.Day.ToString().PadLeft(2, '0'))
                                     .Append(@"/")
                                     .Append(dt_data.Month.ToString().PadLeft(2, '0'))
                                     .Append(@"/")
                                     .Append(dt_data.Year.ToString()).ToString());

                    output_array_generic_lst.Add(tmp);
                }
            }

            while (output_array_generic_lst.Count < 3)
            {
                output_array_generic_lst.Add(new PF_DadosConsultaAutorizacao());
            }

            /// USER [ execute ] END

            Registry("execute done exec_pf_consultaAutorizacao ");

            return(true);
        }
Example #6
0
        public override bool authenticate( )
        {
            Registry("authenticate type_pf_base ");

            /// USER [ authenticate ]

            output_st_codResp = "00";

            pf_usuario = new T_PayFone(this);
            l_nsu      = new LOG_NSU(this);
            term       = new T_Terminal(this);
            emp        = new T_Empresa(this);
            cart       = new T_Cartao(this);

            if (!pf_usuario.select_rows_telefone(input_st_telefone))
            {
                output_st_codResp = "99";
                output_st_msg     = "Telefone invalido";
                return(false);
            }

            if (!pf_usuario.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            if (!cart.selectIdentity(pf_usuario.get_fk_cartao()))
            {
                output_st_codResp = "90";
                output_st_msg     = "Cartão invalido";
                return(false);
            }

            if (cart.get_tg_status() == CartaoStatus.Bloqueado)
            {
                output_st_codResp = "19";
                output_st_msg     = "Cartão inválido";
                return(false);
            }

            if (cart.get_tg_tipoCartao() == TipoCartao.empresarial)
            {
                int year  = 2000 + Convert.ToInt32(cart.get_st_venctoCartao().Substring(2, 2));
                int month = Convert.ToInt32(cart.get_st_venctoCartao().Substring(0, 2));
                int day   = 1;

                DateTime tim_venc = new DateTime(year, month, day);

                if (tim_venc < DateTime.Now)
                {
                    output_st_codResp = "21";
                    output_st_msg     = "Cartão vencido";
                    return(false);
                }
            }

            if (!emp.select_rows_empresa(cart.get_st_empresa()))
            {
                output_st_codResp = "88";
                output_st_msg     = "Empresa invalida";
                return(false);
            }

            if (!emp.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            if (emp.get_tg_blocked() == Context.TRUE)
            {
                output_st_msg     = "Empresa bloqueada";
                output_st_codResp = "0621";
                return(false);
            }

            /// USER [ authenticate ] END

            Registry("authenticate done type_pf_base ");

            return(true);
        }
        public override bool authenticate( )
        {
            if (base.authenticate() == false)
            {
                return(false);
            }

            Registry("authenticate exec_pf_gravaPendencia ");

            /// USER [ authenticate ]

            var_valorTotal = input_vr_valor;

            // ## Busca payfone do lojista pelo tel informado

            pf_lojista = new T_PayFone(this);

            if (!pf_lojista.select_rows_telefone(input_st_telefoneLoja))
            {
                output_st_codResp = "98";
                output_st_msg     = "Telefone inválido";
                return(false);
            }

            if (!pf_lojista.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Busca terminal pelo payfone do lojista

            if (!term.selectIdentity(pf_lojista.get_fk_terminal()))
            {
                output_st_codResp = "87";
                output_st_msg     = "Terminal invalido";
                return(false);
            }

            T_Loja loj = new T_Loja(this);

            if (!loj.selectIdentity(term.get_fk_loja()))
            {
                output_st_codResp = "87";
                output_st_msg     = "Terminal invalido";
                return(false);
            }

            if (loj.get_tg_blocked() == Context.TRUE)
            {
                output_st_codResp = "87";
                output_st_msg     = "Terminal invalido";
                return(false);
            }

            // ## Busca empresa

            T_Empresa emp = new T_Empresa(this);

            if (!emp.select_rows_empresa(cart.get_st_empresa()))
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            if (!emp.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Se empresa estiver bloqueada, sair

            if (emp.get_tg_blocked() == Context.TRUE)
            {
                output_st_codResp = "65";
                output_st_msg     = "Empresa bloqueada";
                return(false);
            }

            /// USER [ authenticate ] END

            Registry("authenticate done exec_pf_gravaPendencia ");

            return(true);
        }
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute exec_pf_cancelaVenda ");

            /// USER [ execute ]

            // ## Buscar pendência (já confirmada) para cancelamento

            T_PendPayFone pend = new T_PendPayFone(this);

            pend.ExclusiveAccess();

            if (!pend.select_rows_nsu(input_st_nsu_cancelado))
            {
                output_st_codResp = "01";
                output_st_msg     = "NSU inválido (" + input_st_nsu_cancelado.TrimStart('0') + ")";
                return(false);
            }

            if (!pend.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Buscar terminal vinculado

            term = new T_Terminal(this);

            if (!term.selectIdentity(pend.get_fk_terminal()))
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            var_valorTotal = pend.get_vr_valor();

            // ## Buscar lojista pelo terminal usado na pendência

            T_PayFone pf_lojista = new T_PayFone(this);

            if (!pf_lojista.select_fk_term(pend.get_fk_terminal()))
            {
                output_st_codResp = "05";
                output_st_msg     = "Lojista invalido";
                return(false);
            }

            // ## Confere se telefones batem

            if (pf_lojista.get_st_telefone() != input_st_tel_lojista)
            {
                output_st_codResp = "06";
                output_st_msg     = "Lojista invalido";
            }

            // ## Se não estiver confirmado, não pode cancelar

            if (pend.get_en_situacao() != TipoPendPayFone.CONFIRMADO)
            {
                output_st_codResp = "02";
                output_st_msg     = "NSU não confirmado " + input_st_nsu_cancelado.TrimStart('0');
                return(false);
            }

            // ## Se já estiver cancelado, não pode cancelar

            if (pend.get_en_situacao() == TipoPendPayFone.CANCELADO)
            {
                output_st_codResp = "02";
                output_st_msg     = "NSU prev. cancelado " + input_st_nsu_cancelado.TrimStart('0');
                return(false);
            }

            // ## Atribui como cancelado

            pend.set_en_situacao(TipoPendPayFone.CANCELADO);

            // ## Atualizar

            if (!pend.synchronize_T_PendPayFone())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Buscar parcelas de hoje para determinado NSU

            T_Parcelas parc = new T_Parcelas(this);

            parc.ExclusiveAccess();

            if (!parc.select_rows_nsu(pend.get_nu_nsu(),
                                      GetTodayStartTime(),
                                      GetTodayEndTime()))
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            if (!parc.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Buscar cartão envolvido

            T_Cartao cart = new T_Cartao(this);

            cart.ExclusiveAccess();

            if (!cart.selectIdentity(parc.get_fk_cartao()))
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Se for edu, disponibilizar imediatamente (estorno)

            if (cart.get_tg_tipoCartao() == TipoCartao.educacional)
            {
                long disp = Convert.ToInt64(cart.get_vr_disp_educacional()) +
                            Convert.ToInt64(parc.get_vr_valor());

                cart.set_vr_disp_educacional(disp.ToString());
            }

            // ## Atualiza cartão

            if (!cart.synchronize_T_Cartao())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Atualizar transação original

            LOG_Transacoes tmp_l_tr = new LOG_Transacoes(this);

            tmp_l_tr.ExclusiveAccess();

            if (!tmp_l_tr.select_rows_nsu_oper(input_st_nsu_cancelado,
                                               OperacaoCartao.PAY_FONE_GRAVA_PEND,
                                               GetTodayStartTime(),
                                               GetTodayEndTime()))
            {
                output_st_msg = "NSU inválido (" + input_st_nsu_cancelado.TrimStart('0') + ")";
                return(false);
            }

            if (!tmp_l_tr.fetch())
            {
                output_st_msg = "Erro aplicativo";
                return(false);
            }

            // ## Confirma cancelamento

            tmp_l_tr.set_tg_contabil(Context.TRUE);
            tmp_l_tr.set_tg_confirmada(TipoConfirmacao.Cancelada);

            // ## Atualiza transação

            if (!tmp_l_tr.synchronize_LOG_Transacoes())
            {
                output_st_msg = "Erro aplicativo";
                return(false);
            }

            output_st_codResp = "00";
            output_st_msg     = "NSU: " + input_st_nsu_cancelado.TrimStart('0');

            /// USER [ execute ] END

            Registry("execute done exec_pf_cancelaVenda ");

            return(true);
        }
        public override bool authenticate( )
        {
            if (base.authenticate() == false)
            {
                return(false);
            }

            Registry("authenticate fetch_consultaTransacao ");

            /// USER [ authenticate ]

            l_tr = new LOG_Transacoes(this);

            // ## obtem filtros rápidos

            string cod_empresa = input_cont_dct.get_st_cod_empresa().PadLeft(6, '0');
            string cnpj_loja   = input_cont_dct.get_st_cnpj_loja();
            string cod_loja    = input_cont_dct.get_st_cod_loja();
            string st_terminal = input_cont_dct.get_st_terminal().PadLeft(8, '0').TrimEnd('0');
            string dt_ini      = input_cont_dct.get_dt_ini();
            string dt_fim      = input_cont_dct.get_dt_fim();
            string st_cart     = input_cont_dct.get_st_cartao();
            string st_telefone = input_cont_dct.get_st_telefone();

            #region - resolve todos os links -

            // ## Confere telefone

            if (st_telefone.Length == 10)
            {
                T_PayFone pf = new T_PayFone(this);

                if (!pf.select_rows_telefone(st_telefone))
                {
                    PublishError("Telefone inválido");
                    return(true);
                }
                else
                {
                    if (!pf.fetch())
                    {
                        return(false);
                    }

                    st_cart_id = pf.get_fk_cartao();
                }
            }

            // ##  Confere cartão

            else if (st_cart.Length > 0)
            {
                T_Cartao cart = new T_Cartao(this);

                if (!cart.select_rows_tudo(cod_empresa,                                         // empresa
                                           st_cart.PadLeft(6, '0'),                             // matricula
                                           "01"))                                               // titularidade
                {
                    PublishError("Cartão inválido");
                    return(true);
                }
                else
                {
                    if (!cart.fetch())
                    {
                        return(false);
                    }

                    st_cart_id = cart.get_identity();
                }
            }

            // ## Confere pelo código de empresa

            if (cod_empresa.Length > 0)
            {
                T_Empresa emp = new T_Empresa(this);

                if (cod_empresa == "000000" &&
                    (input_cont_header.get_tg_user_type() == TipoUsuario.SuperUser ||
                     input_cont_header.get_tg_user_type() == TipoUsuario.OperadorConvey))
                {
                    cod_empresa = "";
                }
                else
                {
                    if (!emp.select_rows_empresa(cod_empresa))
                    {
                        PublishError("Código de Empresa inexistente");
                        return(false);
                    }

                    if (!emp.fetch())
                    {
                        return(false);
                    }

                    fk_empresa = emp.get_identity();
                }
            }

            // ## Confere por cód de loja

            if (cnpj_loja.Length > 0)
            {
                T_Loja loj = new T_Loja(this);

                if (!loj.select_rows_cnpj(cnpj_loja))
                {
                    PublishError("CNPJ de Loja inexistente");
                    return(false);
                }

                if (!loj.fetch())
                {
                    return(false);
                }

                fk_loja = loj.get_identity();
            }
            else if (cod_loja.Length > 0)
            {
                T_Loja loj = new T_Loja(this);

                if (!loj.select_rows_loja(cod_loja))
                {
                    PublishError("Código de Loja inexistente");
                    return(false);
                }

                if (!loj.fetch())
                {
                    return(false);
                }

                fk_loja = loj.get_identity();
            }

            // ## Busca Relação da loja com Empresa (Convênio)

            if ((cnpj_loja.Length > 0 || cod_loja.Length > 0) &&
                cod_empresa.Length > 0)
            {
                LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

                if (!loj_emp.select_fk_empresa_loja(fk_empresa, fk_loja))
                {
                    PublishError("Loja não conveniada com a empresa");
                    return(false);
                }
            }

            // ## Confere terminal

            if (st_terminal.Length > 0)
            {
                T_Terminal term = new T_Terminal(this);

                if (!term.select_rows_terminal(st_terminal))
                {
                    PublishError("Terminal inexistente");
                    return(false);
                }

                if (!term.fetch())
                {
                    return(false);
                }

                fk_terminal = term.get_identity();

                // ## Confere convenio com loja (se preenchida)

                if (fk_empresa.Length > 0)
                {
                    if (term.get_fk_loja() != fk_empresa)
                    {
                        PublishError("Terminal não residente à loja");
                        return(false);
                    }
                }
            }

            #endregion

            // ## Obtem mais filtros

            st_nsu   = input_cont_dct.get_st_nsu();
            nu_parc  = input_cont_dct.get_nu_parcelas();
            en_oper  = input_cont_dct.get_en_oper();
            vr_valor = input_cont_dct.get_vr_valor();

            if (input_cont_dct.get_tg_status() != "-1")
            {
                en_conf = input_cont_dct.get_tg_status();
            }

            // ## Escolha da query mais vantajosa pela ordem de filtros
            // ## informados

            if (fk_terminal.Length > 0 &&
                fk_empresa.Length > 0 &&
                dt_ini.Length > 0 &&
                dt_fim.Length > 0)
            {
                // ## Obtem registros com período

                if (!l_tr.select_rows_term_emp_dt(fk_terminal,
                                                  fk_empresa,
                                                  dt_ini,
                                                  dt_fim))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (fk_terminal.Length > 0 &&
                     fk_empresa.Length > 0 &&
                     dt_ini.Length > 0)
            {
                // ## Obtem registros com período inicial

                if (!l_tr.select_rows_term_emp_dt_ini(fk_terminal,
                                                      fk_empresa,
                                                      dt_ini))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (fk_terminal.Length > 0 &&
                     fk_empresa.Length > 0)
            {
                // ## Obtem registros com terminal e empresa

                if (!l_tr.select_fk_term_empresa(fk_terminal, fk_empresa))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (dt_ini.Length > 0 && dt_fim.Length > 0)
            {
                // ## Obtem registro por período de inicio e fim

                if (!l_tr.select_rows_dt(dt_ini, dt_fim))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (dt_ini.Length > 0)
            {
                // ## Obtem registro por período de inicio

                if (!l_tr.select_rows_dt_ini(dt_ini))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (fk_empresa.Length > 0)
            {
                // ## Obtem registros com empresa

                if (!l_tr.select_fk_empresa(fk_empresa))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (fk_terminal.Length > 0)
            {
                // ## Obtem registros com terminal

                if (!l_tr.select_fk_terminal(fk_terminal))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (nu_parc.Length > 0 &&
                     en_oper.Length > 0 &&
                     vr_valor.Length > 0 &&
                     dt_ini.Length > 0 &&
                     dt_fim.Length > 0)
            {
                // ## Obtem registro por parcelas, operacao, valor
                // ## e por período de inicio e fim

                if (!l_tr.select_rows_par_oper_valor_dt(nu_parc,
                                                        en_oper,
                                                        vr_valor,
                                                        dt_ini,
                                                        dt_fim))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (nu_parc.Length > 0 &&
                     en_oper.Length > 0 &&
                     vr_valor.Length > 0 &&
                     dt_ini.Length > 0)
            {
                // ## Obtem registro por parcelas, operacao, valor
                // ## e por período de inicio

                if (!l_tr.select_rows_par_oper_valor_dt_ini(nu_parc,
                                                            en_oper,
                                                            vr_valor,
                                                            dt_ini))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (nu_parc.Length > 0 &&
                     en_oper.Length > 0 &&
                     vr_valor.Length > 0)
            {
                // ## Obtem registro por parcelas, operacao, valor

                if (!l_tr.select_rows_par_oper_valor(nu_parc, en_oper, vr_valor))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (nu_parc.Length > 0 &&
                     en_oper.Length > 0)
            {
                // ## Obtem registro por parcelas, operacao

                if (!l_tr.select_rows_parc_oper(nu_parc, en_oper))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (nu_parc.Length > 0)
            {
                // ## Obtem registro por parcelas

                if (!l_tr.select_rows_parc(nu_parc))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (st_cart_id.Length > 0)
            {
                // ## Obtem registro por somente determinado cartão

                if (!l_tr.select_fk_cartao(st_cart_id))
                {
                    PublishError("NSU inválido");
                    return(false);
                }
            }
            else
            {
                // ## Obtem TODOS os registros

                if (!l_tr.selectAll())
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }

            /// USER [ authenticate ] END

            Registry("authenticate done fetch_consultaTransacao ");

            return(true);
        }
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_pf_telefoneLojista ");

            /// USER [ execute ]

            // ## Obtem loja por código

            T_Loja loj = new T_Loja(this);

            if (loj.select_rows_loja(input_st_loja))
            {
                if (!loj.fetch())
                {
                    return(false);
                }

                // ## Obtem terminais vinculados

                T_Terminal term = new T_Terminal(this);

                if (term.select_fk_loja(loj.get_identity()))
                {
                    T_PayFone pf = new T_PayFone(this);

                    // ## Para todos os terminais

                    while (term.fetch())
                    {
                        // ## busca payfone

                        if (pf.select_fk_term(term.get_identity()))
                        {
                            // ## para todos os registros

                            while (pf.fetch())
                            {
                                // ## somente lojista

                                if (pf.get_tg_tipoCelular() == TipoCelular.LOJA)
                                {
                                    // ## Achou telefone

                                    output_st_telefone = pf.get_st_telefone();
                                    return(true);
                                }
                            }
                        }
                    }
                }
            }

            ///
            /// USER [ execute ] END

            Registry("execute done fetch_pf_telefoneLojista ");

            return(true);
        }
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute exec_pf_cancelaPendenciaLojista ");

            /// USER [ execute ]

            // ## Busco pendência de payfone

            T_PendPayFone pend = new T_PendPayFone(this);

            pend.ExclusiveAccess();

            if (!pend.select_rows_nsu(input_st_nsu_cancelado))
            {
                output_st_codResp = "01";
                output_st_msg     = "NSU inválido (" + input_st_nsu_cancelado.TrimStart('0') + ")";
                return(false);
            }

            if (!pend.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Busco terminal

            if (!term.selectIdentity(pend.get_fk_terminal()))
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            var_valorTotal = pend.get_vr_valor();

            T_PayFone pf_lojista = new T_PayFone(this);

            // ## Busco pelo lojista cujo telefone (terminal) está vinculado
            // ## à pendência

            if (!pf_lojista.select_fk_term(pend.get_fk_terminal()))
            {
                output_st_codResp = "05";
                output_st_msg     = "Lojista invalido";
                return(false);
            }

            if (!pf_lojista.fetch())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Conferir se telefones batem

            if (pf_lojista.get_st_telefone() != input_st_tel_lojista)
            {
                output_st_codResp = "06";
                output_st_msg     = "Lojista inválido";
            }

            // ## Se pendência já deixou de ser pendente, sair

            if (pend.get_en_situacao() != TipoPendPayFone.PENDENTE)
            {
                output_st_codResp = "02";
                output_st_msg     = "NSU não pendente (" + input_st_nsu_cancelado.TrimStart('0') + ")";
                return(false);
            }

            // ## Cancelar pendência do lojista

            pend.set_en_situacao(TipoPendPayFone.CANCELADO);

            if (!pend.synchronize_T_PendPayFone())
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Atualizar transação original

            LOG_Transacoes tmp_l_tr = new LOG_Transacoes(this);

            tmp_l_tr.ExclusiveAccess();

            if (!tmp_l_tr.select_rows_nsu_oper(input_st_nsu_cancelado,
                                               OperacaoCartao.PAY_FONE_GRAVA_PEND,
                                               GetTodayStartTime(),
                                               GetTodayEndTime()))
            {
                output_st_msg = "NSU inválido (" + input_st_nsu_cancelado.TrimStart('0') + ")";
                return(false);
            }

            if (!tmp_l_tr.fetch())
            {
                output_st_msg = "Erro aplicativo";
                return(false);
            }

            // ## Cancelar transação

            tmp_l_tr.set_tg_contabil(Context.FALSE);
            tmp_l_tr.set_tg_confirmada(TipoConfirmacao.Cancelada);

            // ## Atualizar tabela

            if (!tmp_l_tr.synchronize_LOG_Transacoes())
            {
                output_st_msg = "Erro aplicativo";
                return(false);
            }

            output_st_codResp = "00";
            output_st_msg     = "NSU: " + input_st_nsu_cancelado.TrimStart('0');

            /// USER [ execute ] END

            Registry("execute done exec_pf_cancelaPendenciaLojista ");

            return(true);
        }