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 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);
        }
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute exec_pf_consultaPendencia ");

            /// USER [ execute ]

            // ## Busca pendênciade um cartão

            T_PendPayFone pendPayFone = new T_PendPayFone(this);

            if (!pendPayFone.select_rows_cart_sit(pf_usuario.get_fk_cartao(),
                                                  TipoPendPayFone.PENDENTE))
            {
                output_st_codResp = "01";
                output_st_msg     = "Nenhuma pendencia";
                return(false);
            }

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

            // ## Busca terminal da pendência

            T_Terminal tmp_term = new T_Terminal(this);

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

            // ## Busca Loja vinculada ao terminal

            T_Loja loj = new T_Loja(this);

            if (!loj.selectIdentity(tmp_term.get_fk_loja()))
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

            // ## Devolve nsu, valor e nome da loja

            output_st_nsu      = pendPayFone.get_nu_nsu();
            output_st_valor    = pendPayFone.get_vr_valor();
            output_st_nomeLoja = loj.get_st_nome();

            /// USER [ execute ] END

            Registry("execute done exec_pf_consultaPendencia ");

            return(true);
        }