Ejemplo n.º 1
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_terminalLoja ");

            /// USER [ execute ]

            while (term.fetch())
            {
                if (term.get_fk_loja() == Context.NOT_SET)
                {
                    continue;
                }

                DadosTerminal dt = new DadosTerminal();

                dt.set_st_terminal(term.get_nu_terminal());
                dt.set_st_localizacao(term.get_st_localizacao());

                output_array_generic_lst.Add(dt);
            }

            /// USER [ execute ] END

            Registry("execute done fetch_terminalLoja ");

            return(true);
        }
Ejemplo n.º 2
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_termLoja ");

            /// USER [ execute ]

            T_Terminal term = new T_Terminal(this);

            if (!term.select_fk_loja(loj.get_identity()))
            {
                PublishError("Nenhum terminal cadastrado para a loja");
                return(false);
            }

            while (term.fetch())
            {
                DadosTerminal dt = new DadosTerminal();

                dt.set_st_terminal(term.get_nu_terminal());
                dt.set_st_localizacao(term.get_st_localizacao());

                output_array_generic_lst.Add(dt);
            }

            /// USER [ execute ] END

            Registry("execute done fetch_termLoja ");

            return(true);
        }
Ejemplo n.º 3
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_terminais ");

            /// USER [ execute ]

            T_Terminal m_term = new T_Terminal(this);

            for (int t = 0; t < var_util.indexCSV(input_st_csvId); ++t)
            {
                if (!m_term.selectIdentity(var_util.getCSV(t)))
                {
                    return(false);
                }

                DadosTerminal dt = new DadosTerminal();

                dt.set_st_terminal(m_term.get_nu_terminal());
                dt.set_st_localizacao(m_term.get_st_localizacao());

                output_array_generic_lst.Add(dt);
            }
            /// USER [ execute ] END

            Registry("execute done fetch_terminais ");

            return(true);
        }
        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);
        }
Ejemplo n.º 5
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute del_Terminal ");

            /// USER [ execute ]

            input_st_terminal = input_st_terminal.PadLeft(8, '0');

            T_Terminal term_upd = new T_Terminal(this);

            while (term.fetch())
            {
                if (term.get_nu_terminal() == input_st_terminal)
                {
                    term_upd.ExclusiveAccess();

                    term_upd.selectIdentity(term.get_identity());

                    term_upd.set_fk_loja(Context.NONE);

                    if (!term_upd.synchronize_T_Terminal())
                    {
                        return(false);
                    }

                    term_upd.ReleaseExclusive();

                    PublishNote("Terminal " + input_st_terminal + " removido com sucesso");
                    return(true);
                }
            }

            /// USER [ execute ] END

            Registry("execute done del_Terminal ");

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

            Registry("execute fetch_reciboVendaGift ");

            /// USER [ execute ]

            LOG_Transacoes ltr  = new LOG_Transacoes(this);
            T_Loja         loj  = new T_Loja(this);
            T_Terminal     term = new T_Terminal(this);
            T_Cartao       cart = new T_Cartao(this);

            if (!ltr.select_rows_nsu(input_nsu, GetTodayStartTime(), GetTodayEndTime()))
            {
                return(false);
            }

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

            fk_transacao = ltr.get_identity();

            if (!loj.selectIdentity(ltr.get_fk_loja()))
            {
                return(false);
            }

            if (!term.selectIdentity(ltr.get_fk_terminal()))
            {
                return(false);
            }

            if (!cart.selectIdentity(ltr.get_fk_cartao()))
            {
                return(false);
            }

            ArrayList lstContent = new ArrayList();

            lstContent.Add("Gift Card Lindóia Shopping");
            lstContent.Add("Rede ConveyNET");
            lstContent.Add("Cod. Estab: " + loj.get_st_loja());
            lstContent.Add("Nr.Cartao: " + cart.get_st_empresa() + "." + cart.get_st_matricula());
            lstContent.Add("No. Terminal: " + term.get_nu_terminal());
            lstContent.Add("Loja: " + loj.get_st_nome());
            lstContent.Add("--------------------------------------");
            lstContent.Add("Cod.Process.: 2000 - Cartao Convenio");

            string data = ltr.get_dt_transacao();

            lstContent.Add("Data Trans.: " + data.Substring(8, 2) + "/" +
                           data.Substring(5, 2) + "/" +
                           data.Substring(0, 4) + " Hora: " +
                           data.Substring(11, 8));

            lstContent.Add("NSU: " + ltr.get_nu_nsu());
            lstContent.Add("");
            lstContent.Add("");
            lstContent.Add("VALOR TOT. R$ " + new money().formatToMoney(ltr.get_vr_total()));
            lstContent.Add("");
            lstContent.Add("");
            lstContent.Add("Operador: " + user.get_st_nome());

            for (int t = 0; t < lstContent.Count; ++t)
            {
                DataPortable port = new DataPortable();
                port.setValue("linha", lstContent[t].ToString());
                output_array_generic_lst.Add(port);
            }

            /// USER [ execute ] END

            Registry("execute done fetch_reciboVendaGift ");

            return(true);
        }
Ejemplo n.º 7
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_rel_1_rtc ");

            /// USER [ execute ]

            // ##
            // ## O seguinte trecho indexa as lojas possíveis
            // ## de retorno para uma determinada empresa.
            // ##
            // ## E, no caso de a empresa original ser administradora
            // ## de empresas, indexar todas as lojas de todas empresas
            // ## desta rede.
            // ##

            Hashtable hshLojas = new Hashtable();

            #region - filtro de lojas da empresa -

            if (user.get_tg_nivel() == TipoUsuario.Administrador)
            {
                T_Empresa emp_orig = new T_Empresa(this);

                // ## Busca empresa original

                if (!emp_orig.select_rows_empresa(user.get_st_empresa()))
                {
                    return(false);
                }

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

                LINK_LojaEmpresa lnk = new LINK_LojaEmpresa(this);

                // ## busca relacionamento das empresas com lojas

                if (lnk.select_fk_empresa_geral(emp_orig.get_identity()))
                {
                    while (lnk.fetch())
                    {
                        // ## indexa lojas

                        hshLojas [lnk.get_fk_loja()] = "*";
                    }
                }

                // ## busca empresas administradas

                T_Empresa emp_lnk_admin = new T_Empresa(this);

                if (emp_lnk_admin.select_fk_admin(emp_orig.get_identity()))
                {
                    while (emp_lnk_admin.fetch())
                    {
                        // ## busca lojas de cada empresa administrada

                        LINK_LojaEmpresa lnk_admin = new LINK_LojaEmpresa(this);

                        if (lnk_admin.select_fk_empresa_geral(emp_lnk_admin.get_identity()))
                        {
                            while (lnk_admin.fetch())
                            {
                                // ## indexa loja

                                hshLojas [lnk_admin.get_fk_loja()] = "*";
                            }
                        }
                    }
                }
            }

            #endregion

            StringBuilder sb = new StringBuilder();

            long vr_tot           = 0;
            long vr_tot_cancelado = 0;

            T_Terminal term = new T_Terminal(this);

            while (l_tr.fetch())
            {
                // ## Filtra lojas não vinculadas à empresa

                if (hshLojas.Count > 0)
                {
                    if (hshLojas [l_tr.get_fk_loja()] == null)
                    {
                        continue;
                    }
                }

                // ## Busca terminal

                if (term.selectIdentity(l_tr.get_fk_terminal()))
                {
                    if (fk_loja.Length > 0)
                    {
                        if (term.get_fk_loja() != fk_loja)
                        {
                            continue;
                        }
                    }

                    if (!loj.selectIdentity(term.get_fk_loja()))
                    {
                        continue;
                    }

                    if (input_st_cidade.Length > 0)
                    {
                        if (!loj.get_st_cidade().Contains(input_st_cidade))
                        {
                            continue;
                        }
                    }

                    if (input_st_estado.Length > 0)
                    {
                        if (!loj.get_st_estado().Contains(input_st_estado))
                        {
                            continue;
                        }
                    }

                    if (l_tr.get_tg_contabil() == Context.TRUE)
                    {
                        if (l_tr.get_tg_confirmada() == TipoConfirmacao.Cancelada)
                        {
                            vr_tot_cancelado += l_tr.get_int_vr_total();
                        }
                        else
                        if (l_tr.get_tg_confirmada() == TipoConfirmacao.Confirmada)
                        {
                            vr_tot += l_tr.get_int_vr_total();
                        }
                    }
                }

                // ## Copia dados para memória

                Rel_RTC rtc = new Rel_RTC();

                rtc.set_st_loja(loj.get_st_nome());
                rtc.set_st_term(term.get_nu_terminal());
                rtc.set_st_nsu(l_tr.get_nu_nsu());
                rtc.set_vr_total(l_tr.get_vr_total());
                rtc.set_nu_parc(l_tr.get_nu_parcelas());
                rtc.set_dt_trans(l_tr.get_dt_transacao());
                rtc.set_tg_status(l_tr.get_tg_confirmada());
                rtc.set_st_motivo(l_tr.get_st_msg_transacao());
                rtc.set_en_op_cartao(l_tr.get_en_operacao());

                DataPortable mem_rtc = rtc as DataPortable;

                // ## obtem indice

                sb.Append(MemorySave(ref mem_rtc));
                sb.Append(",");

                if (l_tr.get_int_nu_parcelas() > 1)
                {
                    T_Parcelas parc = new T_Parcelas(this);

                    if (parc.select_fk_log_trans(l_tr.get_identity()))
                    {
                        while (parc.fetch())
                        {
                            Rel_RTC rtc2 = new Rel_RTC();

                            rtc2.set_vr_total(parc.get_vr_valor());
                            rtc2.set_nu_parc(parc.get_nu_indice());
                            rtc2.set_dt_trans(l_tr.get_dt_transacao());
                            rtc2.set_tg_status(l_tr.get_tg_confirmada());
                            rtc2.set_st_motivo(l_tr.get_st_msg_transacao());
                            rtc2.set_en_op_cartao(l_tr.get_en_operacao());

                            DataPortable mem_rtc_parc = rtc2 as DataPortable;

                            // ## obtem indice

                            sb.Append(MemorySave(ref mem_rtc_parc));
                            sb.Append(",");
                        }
                    }
                }
            }

            string list_ids = sb.ToString().TrimEnd(',');

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            // ## obtem indice geral

            output_st_csv = MemorySave(ref dp);

            // ## obtem dados adicionais

            T_Cartao cart = new T_Cartao(this);

            if (!cart.selectIdentity(st_cart_id))
            {
                return(false);
            }

            T_Empresa emp = new T_Empresa(this);

            if (!emp.select_rows_empresa(cart.get_st_empresa()))
            {
                return(false);
            }

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

            string nome = "";

            if (cart.get_st_titularidade() != "01")
            {
                T_Dependente dep = new T_Dependente(this);

                dep.select_rows_prop_tit(cart.get_fk_dadosProprietario(), cart.get_st_titularidade());
                dep.fetch();

                nome = dep.get_st_nome() + " (Dependente)";
            }
            else
            {
                T_Proprietario prot = new T_Proprietario(this);

                prot.selectIdentity(cart.get_fk_dadosProprietario());

                nome = prot.get_st_nome() + " - CPF " + prot.get_st_cpf();
            }

            output_st_empresa = emp.get_st_fantasia();

            output_st_cartao = cart.get_st_empresa() + "." +
                               cart.get_st_matricula() + "." +
                               cart.get_st_titularidade() + ":" +
                               cart.get_nu_viaCartao() + " - " +
                               nome;

            output_st_total_periodo   = vr_tot.ToString();
            output_st_total_cancelado = vr_tot_cancelado.ToString();



            // ##### ------------------------------------------------------
            // ##### Relatório extra sobre todas as parcelas do cartão
            // ##### ------------------------------------------------------
            {
                T_Cartao cart_parc     = new T_Cartao(this);
                T_Cartao cart_parc_dep = new T_Cartao(this);

                ArrayList lstDeps = new ArrayList();

                if (cart_parc.selectIdentity(st_cart_id))
                {
                    if (cart_parc.get_tg_tipoCartao() == TipoCartao.presente)
                    {
                        return(true);
                    }

                    if (cart_parc_dep.select_rows_empresa_matricula(cart_parc.get_st_empresa(),
                                                                    cart_parc.get_st_matricula()))
                    {
                        while (cart_parc_dep.fetch())
                        {
                            lstDeps.Add(cart_parc_dep.get_identity());
                        }
                    }
                }

                StringBuilder sb_parcs = new StringBuilder();

                T_Parcelas parc = new T_Parcelas(this);

                for (int u = 1; u <= 12; ++u)
                {
                    string cur_pac = "Comprometimento mensal (" + u.ToString() + ")";

                    if (u == 1)
                    {
                        cur_pac += " - vigente";
                    }

                    bool HasContent   = false;
                    long tot_parc_ind = 0;

                    if (parc.select_rows_relat_parc(u.ToString(), ref lstDeps))
                    {
                        while (parc.fetch())
                        {
                            if (!term.selectIdentity(parc.get_fk_terminal()))
                            {
                                continue;
                            }

                            if (!loj.selectIdentity(term.get_fk_loja()))
                            {
                                continue;
                            }

                            if (l_tr.selectIdentity(parc.get_fk_log_transacoes()))
                            {
                                if (l_tr.get_tg_confirmada() != TipoConfirmacao.Confirmada)
                                {
                                    continue;
                                }
                            }

                            tot_parc_ind += parc.get_int_vr_valor();

                            HasContent = true;

                            Rel_RTC rtc = new Rel_RTC();

                            rtc.set_st_loja(loj.get_st_nome());
                            rtc.set_st_term(term.get_nu_terminal());
                            rtc.set_st_nsu(l_tr.get_nu_nsu());
                            rtc.set_vr_total(parc.get_vr_valor());
                            rtc.set_nu_parc(u.ToString());
                            rtc.set_dt_trans(l_tr.get_dt_transacao());
                            rtc.set_tg_status(l_tr.get_tg_confirmada());
                            rtc.set_st_motivo(l_tr.get_st_msg_transacao());
                            rtc.set_en_op_cartao(l_tr.get_en_operacao());

                            rtc.set_st_indice_parcela(parc.get_nu_indice());

                            DataPortable mem_rtc = rtc as DataPortable;

                            // ## obtem indice

                            sb_parcs.Append(MemorySave(ref mem_rtc));
                            sb_parcs.Append(",");
                        }
                    }

                    if (!HasContent)
                    {
                        break;
                    }

                    output_st_parcs       += cur_pac + ",";
                    output_st_parcs_total += tot_parc_ind.ToString() + "," +
                                             (cart_parc.get_int_vr_limiteMensal() - tot_parc_ind).ToString() + ",";
                }

                string list_ids_parc = sb_parcs.ToString().TrimEnd(',');

                DataPortable dp_parcs = new DataPortable();

                dp_parcs.setValue("ids", list_ids_parc);

                output_st_parcs_content = MemorySave(ref dp_parcs);
                output_st_parcs         = output_st_parcs.TrimEnd(',');
                output_st_parcs_total   = output_st_parcs_total.TrimEnd(',');
            }

            /// USER [ execute ] END

            Registry("execute done fetch_rel_1_rtc ");

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

            Registry("execute fetch_consultaTransacao ");

            /// USER [ execute ]

            T_Terminal term = new T_Terminal(this);
            T_Cartao   cart = new T_Cartao(this);
            T_Loja     loj  = new T_Loja(this);

            StringBuilder sb = new StringBuilder();

            int  i_nu_parc  = 0;
            long i_vr_valor = 0;

            if (nu_parc.Length > 0)
            {
                i_nu_parc = Convert.ToInt32(nu_parc);
            }

            if (vr_valor.Length > 0)
            {
                i_vr_valor = Convert.ToInt64(vr_valor);
            }

            string nsu = input_cont_dct.get_st_nsu();

            Hashtable hshEmpresas = new Hashtable();

            #region - para o caso de administrador -

            if (user.get_tg_nivel() == TipoUsuario.Administrador)
            {
                T_Empresa emp_admin = new T_Empresa(this);

                if (emp_admin.select_rows_empresa(user.get_st_empresa()))
                {
                    if (!emp_admin.fetch())
                    {
                        return(false);
                    }

                    T_Empresa emp_tb = new T_Empresa(this);

                    // ## Para o caso de empresa administradora de empresas

                    if (emp_tb.select_fk_admin(emp_admin.get_identity()))
                    {
                        while (emp_tb.fetch())
                        {
                            hshEmpresas [emp_tb.get_identity()] = "*";
                        }
                    }
                }
            }

            #endregion

            // ## Busca as transações

            SQL_LOGGING_ENABLE = false;

            int max_trans = 200;

            if (input_cont_header.get_tg_user_type() == TipoUsuario.SuperUser)
            {
                max_trans = 1000;
            }

            while (l_tr.fetch())
            {
                // ## Filtro de empresas
                // ## somente de administradora ou de vinculadas

                if (hshEmpresas.Count > 0)
                {
                    if (hshEmpresas [l_tr.get_fk_empresa()] == null)
                    {
                        continue;
                    }
                }

                if (nsu.Length > 0)
                {
                    if (l_tr.get_nu_nsu() != nsu)
                    {
                        continue;
                    }
                }

                if (st_cart_id.Length > 0)
                {
                    if (l_tr.get_fk_cartao() != st_cart_id)
                    {
                        continue;
                    }
                }

                if (nu_parc.Length > 0)
                {
                    if (l_tr.get_int_nu_parcelas() < i_nu_parc)
                    {
                        continue;
                    }
                }

                if (vr_valor.Length > 0)
                {
                    if (l_tr.get_int_vr_total() < i_vr_valor)
                    {
                        continue;
                    }
                }

                if (en_oper.Length > 0)
                {
                    if (l_tr.get_en_operacao() != en_oper)
                    {
                        continue;
                    }
                }

                if (en_conf.Length > 0)
                {
                    if (l_tr.get_tg_confirmada() != en_conf)
                    {
                        continue;
                    }
                }

                if (fk_empresa.Length > 0)
                {
                    if (l_tr.get_fk_empresa() != fk_empresa)
                    {
                        continue;
                    }
                }

                if (fk_terminal.Length > 0)
                {
                    if (l_tr.get_fk_terminal() != fk_terminal)
                    {
                        continue;
                    }
                }

                term.Reset();
                loj.Reset();
                cart.Reset();

                // ## Busca terminal

                term.selectIdentity(l_tr.get_fk_terminal());

                if (fk_loja.Length > 0)
                {
                    if (term.get_fk_loja() != fk_loja)
                    {
                        continue;
                    }
                }

                loj.selectIdentity(l_tr.get_fk_loja());
                cart.selectIdentity(l_tr.get_fk_cartao());

                // ## Cria registro em memória

                if (--max_trans == 0)
                {
                    PublishNote("Limite máximo de registros excedido");
                    break;
                }

                DadosConsultaTransacao dt = new DadosConsultaTransacao();

                dt.set_en_oper(l_tr.get_en_operacao());
                dt.set_st_nsu(l_tr.get_nu_nsu());

                dt.set_st_cartao(cart.get_st_empresa() + "." +
                                 cart.get_st_matricula() + "." +
                                 cart.get_st_titularidade());

                dt.set_st_cnpj_loja(loj.get_st_nome());

                dt.set_st_terminal(term.get_nu_terminal());
                dt.set_vr_valor(l_tr.get_vr_total());
                dt.set_nu_parcelas(l_tr.get_nu_parcelas());
                dt.set_dt_transacao(l_tr.get_dt_transacao());
                dt.set_tg_status(l_tr.get_tg_confirmada());

                dt.set_st_msg_erro(l_tr.get_st_msg_transacao() +
                                   l_tr.get_st_doc());

                DataPortable tmp = dt as DataPortable;

                // ## indexa em memória

                sb.Append(MemorySave(ref tmp));
                sb.Append(",");
            }

            SQL_LOGGING_ENABLE = true;

            string list_ids = sb.ToString().TrimEnd(',');

            if (list_ids == "")
            {
                PublishNote("Nenhum resultado foi encontrado");
                return(true);
            }

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            // ## cria indexador de bloco

            output_st_csv_id = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_consultaTransacao ");

            return(true);
        }
Ejemplo n.º 9
0
        public override bool execute( )
        {
            Registry("execute exec_login ");

            /// USER [ execute ]

            output_tg_trocaSenha = Context.FALSE;

            user = new T_Usuario(this);

            user.ExclusiveAccess();

            // ## Busca usuário com nome e cód de empresa

            if (loginLojista)
            {
                string st_loja = input_st_empresa.Replace("L", "");

                T_Loja loj = new T_Loja(this);

                if (!loj.select_rows_loja(st_loja))
                {
                    PublishError("Usuário ou senha incorretos");
                    return(false);
                }

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

                T_Terminal term = new T_Terminal(this);

                if (!term.select_fk_loja(loj.get_identity()))
                {
                    PublishError("Usuário ou senha incorretos");
                    return(false);
                }

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

                LINK_UsuarioTerminal lut = new LINK_UsuarioTerminal(this);

                if (!lut.select_fk_term(term.get_identity()))
                {
                    PublishError("Usuário ou senha incorretos");
                    return(false);
                }

                bool found = false;

                T_Usuario usr_lojista = new T_Usuario(this);

                while (lut.fetch())
                {
                    if (!usr_lojista.selectIdentity(lut.get_fk_user()))
                    {
                        return(false);
                    }

                    Trace(usr_lojista.get_st_nome());

                    if (usr_lojista.get_st_nome() == input_st_nome)
                    {
                        found = true;
                        break;
                    }
                }

                if (!found)
                {
                    PublishError("Usuário ou senha incorretos");
                    return(false);
                }

                if (!user.selectIdentity(usr_lojista.get_identity()))
                {
                    return(false);
                }

                input_st_empresa = st_loja;

                output_cont_header.set_nu_terminal(term.get_nu_terminal());
            }
            else
            {
                if (!user.select_rows_login(input_st_nome, input_st_empresa))
                {
                    PublishError("Usuário ou senha incorretos");
                    return(false);
                }

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

            // ## Confere bloqueio

            if (user.get_tg_bloqueio() != Context.FALSE)
            {
                PublishError("Usuário ou senha incorretos");
                return(false);
            }

            // ## Confere senha

            if (user.get_st_senha() != input_st_senha)
            {
                user.set_nu_senhaErrada(Convert.ToString(user.get_int_nu_senhaErrada() + 1));

                if (user.get_int_nu_senhaErrada() >= 3)
                {
                    // ## Na terceira senha errada, bloqueia cartão

                    //user.set_tg_bloqueio      ( Context.TRUE  );
                    //user.set_nu_senhaErrada   (  0            );
                }

                // ## Atualiza

                if (!user.synchronize_T_Usuario())
                {
                    return(false);
                }

                PublishError("Usuário ou senha incorretos");
                return(false);
            }
            else
            {
                // ## Zera senhas erradas

                ut_coverMark(1);

                user.set_nu_senhaErrada(0);
            }

            // ## Caso o ultimo logoff não foi executado, ou seja,
            // ## o usuário não fechou corretamente sua última instância

            if (user.get_tg_logoff() == Context.FALSE)
            {
                // ## Mais de cinco minutos se passaram...

                if (TimeSpanCtrl(user.get_dt_ultUso(),
                                 TSpan_Mode.MORE_THAN,
                                 5,
                                 TSpan_Range.Minutes) == true)
                {
                    PublishNote("Disconectando sessão ociosa por mais de cinco minutos");
                }
                else
                {
                    PublishError("Não são permitidas multiplas sessões");
                    return(false);
                }
            }

            // ## Seto que o logoff precisa ser feito

            user.set_tg_logoff(Context.FALSE);

            // ## Confere se senha expirou...

            if (TimeSpanCtrl(user.get_dt_trocaSenha(),
                             TSpan_Mode.MORE_THAN,
                             60,
                             TSpan_Range.Days) == true)
            {
                output_tg_trocaSenha = Context.TRUE;

                PublishNote("É necessário trocar sua senha");
            }

            // ## Confere se admin requisitou troca de senha

            if (user.get_tg_trocaSenha() == Context.TRUE)
            {
                output_tg_trocaSenha = Context.TRUE;

                PublishNote("É necessário trocar sua senha");
            }

            // ## Seto login feito agora

            user.set_dt_ultUso(GetDataBaseTime());

            // ## Atualizo usuário

            if (!user.synchronize_T_Usuario())
            {
                return(false);
            }

            output_cont_header.set_st_session(var_SessionKey);
            output_cont_header.set_st_empresa(input_st_empresa);
            output_cont_header.set_st_user_id(user.get_identity());
            output_cont_header.set_tg_user_type(user.get_tg_nivel());

            /// USER [ execute ] END

            Registry("execute done exec_login ");

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

            Registry("execute fetch_consultaLojasGift ");

            /// USER [ execute ]

            input_st_empresa = input_st_empresa.PadLeft(6, '0');

            T_Empresa emp = new T_Empresa(this);

            if (!emp.select_rows_empresa(input_st_empresa))
            {
                PublishError("Empresa não disponível");
                return(false);
            }

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

            LINK_LojaEmpresa lje  = new LINK_LojaEmpresa(this);
            T_Loja           loj  = new T_Loja(this);
            T_Terminal       term = new T_Terminal(this);

            StringBuilder sb = new StringBuilder();

            ArrayList lstSort = new ArrayList();

            if (lje.select_fk_empresa_geral(emp.get_identity()))
            {
                SQL_LOGGING_ENABLE = false;

                while (lje.fetch())
                {
                    if (loj.selectIdentity(lje.get_fk_loja()))
                    {
                        lstSort.Add(loj.get_st_nome());
                    }
                }

                lstSort.Sort();

                for (int t = 0; t < lstSort.Count; ++t)
                {
                    string nome_loja = lstSort[t].ToString();

                    if (loj.select_rows_nome(nome_loja))
                    {
                        if (loj.fetch())
                        {
                            if (!term.select_fk_loja(loj.get_identity()))
                            {
                                return(false);
                            }

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

                            DadosLoja dl = new DadosLoja();

                            dl.set_st_nome(loj.get_st_nome() + " - " + loj.get_st_social());
                            dl.set_st_obs(term.get_nu_terminal());

                            DataPortable tmp = dl as DataPortable;

                            // ## obtem indexador

                            sb.Append(MemorySave(ref tmp));
                            sb.Append(",");
                        }
                    }
                }

                SQL_LOGGING_ENABLE = true;
            }

            string list_ids = sb.ToString().TrimEnd(',');

            if (list_ids == "")
            {
                PublishNote("Nenhum resultado foi encontrado");
                return(true);
            }

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            // ## Obtem indexador geral

            output_st_csv_id = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_consultaLojasGift ");

            return(true);
        }
Ejemplo n.º 11
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_rel_2_rlt ");

            /// USER [ execute ]

            if (input_cont_header.get_tg_user_type() != TipoUsuario.Lojista)
            {
                input_st_empresa = input_st_empresa.PadLeft(6, '0');

                T_Empresa emp = new T_Empresa(this);

                if (!emp.select_rows_empresa(input_st_empresa))
                {
                    PublishError("Empresa não disponível");
                    return(false);
                }
            }
            else
            {
                input_st_empresa = "";
            }

            // ##
            // ## O seguinte trecho indexa as lojas possíveis
            // ## de retorno para uma determinada empresa.
            // ##
            // ## E, no caso de a empresa original ser administradora
            // ## de empresas, indexar todas as lojas de todas empresas
            // ## desta rede.
            // ##

            Hashtable hshLojas = new Hashtable();

            #region - filtro de lojas da empresa -

            if (user.get_tg_nivel() == TipoUsuario.Administrador)
            {
                T_Empresa emp_orig = new T_Empresa(this);

                // ## Busca empresa original

                if (!emp_orig.select_rows_empresa(user.get_st_empresa()))
                {
                    return(false);
                }

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

                LINK_LojaEmpresa lnk = new LINK_LojaEmpresa(this);

                // ## busca relacionamento das empresas com lojas

                if (lnk.select_fk_empresa_geral(emp_orig.get_identity()))
                {
                    while (lnk.fetch())
                    {
                        // ## indexa lojas

                        hshLojas [lnk.get_fk_loja()] = "*";
                    }
                }

                // ## busca empresas administradas

                T_Empresa emp_lnk_admin = new T_Empresa(this);

                if (emp_lnk_admin.select_fk_admin(emp_orig.get_identity()))
                {
                    while (emp_lnk_admin.fetch())
                    {
                        // ## busca lojas de cada empresa administrada

                        LINK_LojaEmpresa lnk_admin = new LINK_LojaEmpresa(this);

                        if (lnk_admin.select_fk_empresa_geral(emp_lnk_admin.get_identity()))
                        {
                            while (lnk_admin.fetch())
                            {
                                // ## indexa loja

                                hshLojas [lnk_admin.get_fk_loja()] = "*";
                            }
                        }
                    }
                }
            }

            #endregion

            StringBuilder sb = new StringBuilder();

            Hashtable hsh_term_confirmada = new Hashtable();
            Hashtable hsh_term_cancelada  = new Hashtable();
            Hashtable hsh_term            = new Hashtable();

            T_Terminal term = new T_Terminal(this);
            T_Cartao   cart = new T_Cartao(this);

            string term_ident = "";

            long vr_sub_confirmada = 0,
                 vr_sub_cancelada  = 0,
                 vr_tot_confirmada = 0,
                 vr_tot_cancelada  = 0;

            ArrayList tmp_Terms = new ArrayList();

            // ## Busca registros de transações

            while (l_tr.fetch())
            {
                if (hshLojas.Count > 0)
                {
                    if (hshLojas [l_tr.get_fk_loja()] == null)
                    {
                        continue;
                    }
                }

                // ## Busca terminal referente

                if (!term.selectIdentity(l_tr.get_fk_terminal()))
                {
                    continue;
                }

                term_ident = term.get_nu_terminal();

                // ## Captura terminais

                if (hsh_term [term_ident] == null)
                {
                    DadosTerminal dt = new DadosTerminal();

                    dt.set_st_terminal(term.get_nu_terminal());
                    dt.set_st_localizacao(term.get_st_localizacao());

                    output_array_generic_lstTerminais.Add(dt);

                    tmp_Terms.Add(term_ident);

                    hsh_term [term_ident] = 1;
                }

                // ## Busca cartão relacionado

                if (!cart.selectIdentity(l_tr.get_fk_cartao()))
                {
                    continue;
                }

                if (input_st_empresa.Length > 0)
                {
                    if (cart.get_st_empresa() != input_st_empresa)
                    {
                        continue;
                    }
                }

                // ## Se transação deve ser contabilizada

                if (l_tr.get_tg_contabil() == Context.TRUE)
                {
                    long cur_val = l_tr.get_int_vr_total();

                    if (l_tr.get_tg_confirmada() == TipoConfirmacao.Confirmada)
                    {
                        if (hsh_term_confirmada [term_ident] == null)
                        {
                            vr_sub_confirmada = (long)0;
                        }
                        else
                        {
                            vr_sub_confirmada = (long)hsh_term_confirmada [term_ident];
                        }

                        vr_tot_confirmada += cur_val;

                        hsh_term_confirmada [term_ident] = vr_sub_confirmada + cur_val;
                    }
                    else if (l_tr.get_tg_confirmada() == TipoConfirmacao.Cancelada)
                    {
                        if (hsh_term_cancelada [term_ident] == null)
                        {
                            vr_sub_cancelada = (long)0;
                        }
                        else
                        {
                            vr_sub_cancelada = (long)hsh_term_cancelada [term_ident];
                        }

                        vr_tot_cancelada += cur_val;

                        hsh_term_cancelada [term_ident] = vr_sub_cancelada + cur_val;
                    }
                }

                Rel_RLT rlt = new Rel_RLT();

                rlt.set_st_cartao(cart.get_st_empresa() + "." +
                                  cart.get_st_matricula() + "." +
                                  cart.get_st_titularidade());

                rlt.set_st_nsu(l_tr.get_nu_nsu());
                rlt.set_vr_total(l_tr.get_vr_total());
                rlt.set_nu_parc(l_tr.get_nu_parcelas());
                rlt.set_dt_trans(l_tr.get_dt_transacao());
                rlt.set_tg_status(l_tr.get_tg_confirmada());
                rlt.set_st_motivo(l_tr.get_st_msg_transacao());
                rlt.set_en_op_cartao(l_tr.get_en_operacao());
                rlt.set_st_terminal(term_ident);

                DataPortable mem_rlt = rlt as DataPortable;

                // ## Grava em memória

                sb.Append(MemorySave(ref mem_rlt));
                sb.Append(",");
            }

            string list_ids = sb.ToString().TrimEnd(',');

            if (list_ids == "")
            {
                PublishNote("Nenhum resultado foi encontrado");
                return(false);
            }

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            // ## Gera identificador geral

            output_st_csv = MemorySave(ref dp);

            long value_sub = 0;

            // ## Percorre terminais

            for (int t = 0; t < tmp_Terms.Count; ++t)
            {
                term_ident = tmp_Terms[t].ToString();

                if (hsh_term_confirmada [term_ident] == null)
                {
                    hsh_term_confirmada [term_ident] = (long)0;
                }
                if (hsh_term_cancelada [term_ident] == null)
                {
                    hsh_term_cancelada  [term_ident] = (long)0;
                }

                // ## Contabiiza

                value_sub = (long)hsh_term_confirmada [term_ident];

                output_st_csv_subtotal += value_sub.ToString() + ",";

                value_sub = (long)hsh_term_cancelada [term_ident];

                output_st_csv_subtotal_cancelado += value_sub.ToString() + ",";
            }

            output_st_csv_subtotal           = output_st_csv_subtotal.TrimEnd(',');
            output_st_csv_subtotal_cancelado = output_st_csv_subtotal_cancelado.TrimEnd(',');
            output_st_total           = vr_tot_confirmada.ToString();
            output_st_total_cancelado = vr_tot_cancelada.ToString();

            /// USER [ execute ] END

            Registry("execute done fetch_rel_2_rlt ");

            return(true);
        }
Ejemplo n.º 12
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_dadosNSU ");

            /// USER [ execute ]

            // ## Obter cartão pela parcela

            T_Cartao cart = new T_Cartao(this);

            if (!cart.selectIdentity(parc.get_fk_cartao()))
            {
                return(false);
            }

            // ## Obter proprietário

            T_Proprietario prot = new T_Proprietario(this);

            if (!prot.selectIdentity(cart.get_fk_dadosProprietario()))
            {
                return(false);
            }

            // ## Obter terminal

            T_Terminal term = new T_Terminal(this);

            if (!term.selectIdentity(l_tr.get_fk_terminal()))
            {
                return(false);
            }

            // ## Obter valor primeira parcela

            long valor = parc.get_int_vr_valor();

            // ## Somar valor demais parcelas

            while (parc.fetch())
            {
                valor += parc.get_int_vr_valor();
            }

            // ## Copiar dados

            output_cont_d_nsu.set_st_terminal(term.get_nu_terminal());
            output_cont_d_nsu.set_st_nome(prot.get_st_nome());

            T_Dependente dep_f = new T_Dependente(this);

            if (dep_f.select_rows_prop_tit(cart.get_fk_dadosProprietario(),
                                           cart.get_st_titularidade()))
            {
                if (dep_f.fetch())
                {
                    output_cont_d_nsu.set_st_nome(dep_f.get_st_nome());
                }
            }

            output_cont_d_nsu.set_dt_operacao(parc.get_dt_inclusao());
            output_cont_d_nsu.set_st_empresa(cart.get_st_empresa());
            output_cont_d_nsu.set_st_matricula(cart.get_st_matricula());
            output_cont_d_nsu.set_st_titularidade(cart.get_st_titularidade());
            output_cont_d_nsu.set_vr_valor(valor.ToString());
            output_cont_d_nsu.set_st_cartao(cart.get_st_empresa() +
                                            cart.get_st_matricula() +
                                            cart.get_st_titularidade());

            /// USER [ execute ] END

            Registry("execute done fetch_dadosNSU ");

            return(true);
        }
Ejemplo n.º 13
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_consultaLoja ");

            /// USER [ execute ]

            T_Terminal term = new T_Terminal(this);

            // ## Obtem filtros da entrada

            string nome   = input_cont_dcl.get_st_nome().ToUpper(),
                   cidade = input_cont_dcl.get_st_cidade(),
                   estado = input_cont_dcl.get_st_estado(),
                   codigo = input_cont_dcl.get_st_loja();

            long min_qtd = 0;

            if (input_cont_dcl.get_nu_qtd_term().Length > 0)
            {
                min_qtd = Convert.ToInt32(input_cont_dcl.get_nu_qtd_term());
            }

            long memory = Convert.ToInt64(new InstallData().maxPacket) / 360;

            Hashtable hshLojas = new Hashtable();

            #region - lojas para um determinado administrador -

            if (user.get_tg_nivel() == TipoUsuario.Administrador)
            {
                if (!emp.select_rows_empresa(user.get_st_empresa()))
                {
                    PublishError("CNPJ de empresa inválido");
                    return(false);
                }

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

                LINK_LojaEmpresa lnk = new LINK_LojaEmpresa(this);

                if (lnk.select_fk_empresa_geral(emp.get_identity()))
                {
                    while (lnk.fetch())
                    {
                        hshLojas [lnk.get_fk_loja()] = "*";
                    }
                }
            }

            #endregion

            bool bNome = false;

            if (nome.Length > 0)
            {
                bNome = true;
            }

            bool bCod = false;

            if (codigo.Length > 0)
            {
                bCod = true;
            }

            ArrayList lstSortLojas = new ArrayList();
            Hashtable hshSortLojas = new Hashtable();

            LINK_LojaEmpresa loj_emp_conv = new LINK_LojaEmpresa(this);
            T_Empresa        emp_comp     = new T_Empresa(this);

            // ## Loop diferente para ambos os tipos de consulta
            // ## em um só bloco

            for (;;)
            {
                if (IsEmpresa)
                {
                    // ## Busca do relacionamento loja e empresa

                    if (!loj_emp.fetch())
                    {
                        break;
                    }

                    // ## Se loja não existir, sair

                    if (!loj.selectIdentity(loj_emp.get_fk_loja()))
                    {
                        return(false);
                    }
                }
                else
                {
                    // ## busca proximo registro do select all

                    if (!loj.fetch())
                    {
                        break;
                    }

                    if (hshLojas.Count > 0)
                    {
                        // ##  filtro lojas no caso de admin

                        if (hshLojas [loj.get_identity()] == null)
                        {
                            continue;
                        }
                    }
                }

                // ## Verifica qtd de terminais

                term.select_fk_loja(loj.get_identity());

                if (bCod)
                {
                    if (loj.get_st_loja() != codigo)
                    {
                        continue;
                    }
                }

                if (bNome)
                {
                    if (!loj.get_st_nome().ToUpper().Contains(nome))
                    {
                        if (!loj.get_st_social().ToUpper().Contains(nome))
                        {
                            continue;
                        }
                    }
                }

                if (min_qtd > 0)
                {
                    if (term.GetCount() < min_qtd)
                    {
                        continue;
                    }
                }

                if (cidade.Length > 0)
                {
                    if (!loj.get_st_cidade().Contains(cidade))
                    {
                        continue;
                    }
                }

                if (estado.Length > 0)
                {
                    if (!loj.get_st_estado().Contains(estado))
                    {
                        continue;
                    }
                }

                // ## Copia dados para memória

                DadosLoja dl = new DadosLoja();

                string id_loja = loj.get_st_nome().Trim() + " - " + loj.get_st_social().Trim();

                lstSortLojas.Add(id_loja);

                dl.set_st_loja(loj.get_st_loja());
                dl.set_st_nome(id_loja);
                dl.set_st_cidade(loj.get_st_cidade());
                dl.set_st_estado(loj.get_st_estado());

                dl.set_st_endereco("Tel: " + loj.get_nu_telefone() + " End: " + loj.get_st_endereco());

                dl.set_nu_diasRep(loj_emp.get_nu_dias_repasse());

                string tx = loj_emp.get_tx_admin().PadLeft(3, '0');

                dl.set_nu_pctRep(tx.Insert(tx.Length - 2, ",") + "%");

                string st_terms = " (";

                int terms = 0;

                while (term.fetch())
                {
                    if (term.get_fk_loja() == Context.NOT_SET)
                    {
                        continue;
                    }

                    terms++;

                    st_terms += term.get_nu_terminal().TrimStart('0') + ", ";
                }

                st_terms = terms.ToString() + st_terms.Trim().TrimEnd(',') + ")";

                dl.set_st_obs(st_terms);
                dl.set_nu_CNPJ(loj.get_nu_CNPJ());

                string convs = "";

                if (loj_emp_conv.select_fk_loja(loj.get_identity()))
                {
                    while (loj_emp_conv.fetch())
                    {
                        emp_comp.selectIdentity(loj_emp_conv.get_fk_empresa());

                        convs += emp_comp.get_st_empresa().TrimStart('0') + ",";
                    }
                }

                dl.set_st_convenios(convs.TrimEnd(','));

                hshSortLojas [id_loja] = dl;
            }

            lstSortLojas.Sort();

            StringBuilder sb = new StringBuilder();

            for (int t = 0; t < lstSortLojas.Count; ++t)
            {
                DadosLoja dl = hshSortLojas [lstSortLojas [t]] as DadosLoja;

                DataPortable tmp = dl as DataPortable;

                // ## obtem indexador

                sb.Append(MemorySave(ref tmp));
                sb.Append(",");
            }

            string list_ids = sb.ToString().TrimEnd(',');

            if (list_ids == "")
            {
                PublishNote("Nenhum resultado foi encontrado");
                return(true);
            }

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            // ## Obtem indexador geral

            output_st_csv_id = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_consultaLoja ");

            return(true);
        }
Ejemplo n.º 14
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_rel_3_fech ");

            /// USER [ execute ]

            // ##
            // ## O seguinte trecho indexa as lojas possíveis
            // ## de retorno para uma determinada empresa.
            // ##
            // ## E, no caso de a empresa original ser administradora
            // ## de empresas, indexar todas as lojas de todas empresas
            // ## desta rede.
            // ##

            Hashtable hshLojas = new Hashtable();

            T_Loja           loj     = new T_Loja(this);
            T_Parcelas       parc    = new T_Parcelas(this);
            T_Cartao         cart    = new T_Cartao(this);
            T_Terminal       term    = new T_Terminal(this);
            T_Proprietario   prot    = new T_Proprietario(this);
            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

            string aff = "";

            switch (input_en_tipo)
            {
            case "0":                           // por Loja
            {
                #region Por Loja

                Hashtable hsh_loja           = new Hashtable();
                Hashtable hsh_sub_total_loja = new Hashtable();

                StringBuilder sb = new StringBuilder();

                long nu_total_empresa = 0;

                ArrayList lstLojas = new ArrayList();

                // ## Busca registros

                while (log_fech.fetch())
                {
                    if (aff == "")
                    {
                        aff = " - " + log_fech.get_st_afiliada();
                    }

                    // ## Busca tabelas auxiliares

                    if (!loj.selectIdentity(log_fech.get_fk_loja()))
                    {
                        return(false);
                    }

                    if (!cart.selectIdentity(log_fech.get_fk_cartao()))
                    {
                        return(false);
                    }

                    if (!prot.selectIdentity(cart.get_fk_dadosProprietario()))
                    {
                        return(false);
                    }

                    if (!parc.selectIdentity(log_fech.get_fk_parcela()))
                    {
                        return(false);
                    }

                    if (!term.selectIdentity(parc.get_fk_terminal()))
                    {
                        return(false);
                    }

                    if (input_st_afiliada != "")
                    {
                        if (log_fech.get_st_afiliada() != input_st_afiliada)
                        {
                            continue;
                        }
                    }

                    string pct = "000";

                    if (loj_emp.select_fk_empresa_loja(emp.get_identity(), loj.get_identity()))
                    {
                        if (loj_emp.fetch())
                        {
                            pct = loj_emp.get_tx_admin();
                        }
                    }

                    double tx = loj_emp.get_int_tx_admin();

                    pct = pct.PadLeft(3, '0');
                    pct = pct.Insert(pct.Length - 2, ".") + "%";

                    string st_loja = loj.get_st_nome() + " - Perc.: " + pct + "<br>" + loj.get_st_social() + " - CNPJ: " + loj.get_nu_CNPJ();

                    // ## Guarda nomes de lojas

                    if (hsh_loja [st_loja] == null)
                    {
                        hsh_sub_total_loja [st_loja] = (long)0;
                        hsh_loja           [st_loja] = "*";

                        lstLojas.Add(st_loja);
                    }

                    long valor    = log_fech.get_int_vr_valor();
                    long sub_loja = (long)hsh_sub_total_loja [st_loja];

                    nu_total_empresa += valor;

                    hsh_sub_total_loja [st_loja] = sub_loja + valor;

                    // ## Grava registro em memória

                    DadosFechamento df = new DadosFechamento();

                    df.set_st_cartao(cart.get_st_empresa() + "." +
                                     cart.get_st_matricula() + "." +
                                     cart.get_st_titularidade());

                    df.set_st_terminal(term.get_nu_terminal());
                    df.set_st_loja(st_loja);
                    df.set_st_nsu(parc.get_nu_nsu());
                    df.set_dt_trans(parc.get_dt_inclusao());
                    df.set_vr_valor(log_fech.get_vr_valor());

                    df.set_st_nome(prot.get_st_nome());

                    long repasse = Convert.ToInt64(log_fech.get_int_vr_valor() - (log_fech.get_int_vr_valor() * tx / 10000));

                    df.set_vr_repasse(repasse.ToString());

                    df.set_nu_parcela(parc.get_nu_indice() +
                                      "/" +
                                      parc.get_nu_tot_parcelas());

                    DataPortable mem_rlt = df as DataPortable;

                    // ## Gera identificador

                    sb.Append(MemorySave(ref mem_rlt));
                    sb.Append(",");
                }

                output_st_total = nu_total_empresa.ToString();

                string list_ids = sb.ToString().TrimEnd(',');

                if (list_ids == "")
                {
                    PublishNote("Nenhum registro encontrado");
                    return(false);
                }

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                // ## gera identificador de todos os registros

                output_st_csv_loja_content = MemorySave(ref dp);

                lstLojas.Sort();

                for (int t = 0; t < lstLojas.Count; ++t)
                {
                    string loja = lstLojas[t].ToString();

                    long sub_total = (long)hsh_sub_total_loja [loja];

                    output_st_csv_subtotal_loja += sub_total.ToString() + ",";
                    output_st_csv_loja          += loja + ",";
                }

                output_st_csv_loja          = output_st_csv_loja.TrimEnd(',');
                output_st_csv_subtotal_loja = output_st_csv_subtotal_loja.TrimEnd(',');

                #endregion

                break;
            }

            case "1":                     // por cartao
            {
                #region Por Cartao

                Hashtable hsh_cartao           = new Hashtable();
                Hashtable hsh_sub_total_cartao = new Hashtable();

                StringBuilder sb = new StringBuilder();

                long nu_total_cartao = 0;

                ArrayList lstCart = new ArrayList();

                while (log_fech.fetch())
                {
                    if (aff == "")
                    {
                        if (log_fech.get_st_afiliada().Trim().Length != 0)
                        {
                            aff = " - " + log_fech.get_st_afiliada();
                        }
                    }

                    if (!loj.selectIdentity(log_fech.get_fk_loja()))
                    {
                        return(false);
                    }

                    if (!parc.selectIdentity(log_fech.get_fk_parcela()))
                    {
                        return(false);
                    }

                    if (!cart.selectIdentity(log_fech.get_fk_cartao()))
                    {
                        return(false);
                    }

                    if (!prot.selectIdentity(cart.get_fk_dadosProprietario()))
                    {
                        return(false);
                    }

                    string cartao = prot.get_st_nome() + "<br>CPF: " +
                                    prot.get_st_cpf() + " Cartão: " +
                                    cart.get_st_empresa() + "." +
                                    cart.get_st_matricula() + "<br>";

                    if (hsh_cartao [cartao] == null)
                    {
                        hsh_sub_total_cartao [cartao] = (long)0;
                        hsh_cartao           [cartao] = "*";

                        lstCart.Add(cartao);
                    }

                    long valor      = log_fech.get_int_vr_valor();
                    long sub_cartao = (long)hsh_sub_total_cartao [cartao];

                    nu_total_cartao += valor;
                    hsh_sub_total_cartao [cartao] = sub_cartao + valor;

                    DadosFechamento df = new DadosFechamento();

                    df.set_st_cartao(cartao);

                    df.set_st_loja("(" + loj.get_st_loja() + ") " + loj.get_st_nome());
                    df.set_st_nsu(parc.get_nu_nsu());
                    df.set_dt_trans(parc.get_dt_inclusao());
                    df.set_vr_valor(log_fech.get_vr_valor());
                    df.set_st_cnpj(loj.get_nu_CNPJ());
                    df.set_st_matricula(cart.get_st_matricula());

                    df.set_nu_parcela(parc.get_nu_indice() +
                                      "/" +
                                      parc.get_nu_tot_parcelas());

                    DataPortable mem_rlt = df as DataPortable;

                    sb.Append(MemorySave(ref mem_rlt));
                    sb.Append(",");
                }

                output_st_total = nu_total_cartao.ToString();

                string list_ids = sb.ToString().TrimEnd(',');

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                output_st_csv_cartao_content = MemorySave(ref dp);

                lstCart.Sort();

                for (int t = 0; t < lstCart.Count; ++t)
                {
                    string st_cart = lstCart[t].ToString();

                    long sub_total = (long)hsh_sub_total_cartao [st_cart];

                    output_st_csv_subtotal_cartao += sub_total.ToString() + ",";
                    output_st_csv_cartao          += st_cart + ",";
                }

                output_st_csv_subtotal_cartao = output_st_csv_subtotal_cartao.TrimEnd(',');
                output_st_csv_cartao          = output_st_csv_cartao.TrimEnd(',');

                #endregion

                break;
            }
            }

            output_st_empresa += aff;

            /// USER [ execute ] END

            Registry("execute done fetch_rel_3_fech ");

            return(true);
        }