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

            Registry("execute fetch_listaConveniosLoja ");

            /// USER [ execute ]

            // ## Obtem empresas vinculadas à loja

            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

            if (loj_emp.select_fk_loja(loj.get_identity()))
            {
                T_Empresa emp = new T_Empresa(this);

                while (loj_emp.fetch())
                {
                    // ## Busca empresa

                    if (!emp.selectIdentity(loj_emp.get_fk_empresa()))
                    {
                        return(false);
                    }

                    // ## Copiar dados

                    DadosEmpresa de = new DadosEmpresa();

                    de.set_st_empresa(emp.get_st_empresa());
                    de.set_st_fantasia(emp.get_st_fantasia());
                    de.set_tx_convenio(loj_emp.get_tx_admin());
                    de.set_nu_dias_convenio(loj_emp.get_nu_dias_repasse());
                    de.set_st_ag(loj_emp.get_st_ag());
                    de.set_st_banco(loj_emp.get_st_banco());
                    de.set_st_conta(loj_emp.get_st_conta());

                    output_array_generic_lst.Add(de);
                }
            }

            if (output_array_generic_lst.Count == 0)
            {
                PublishNote("Nenhum convênio disponível");
            }

            /// USER [ execute ] END

            Registry("execute done fetch_listaConveniosLoja ");

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

            Registry("execute fetch_rel_listaLojas ");

            /// USER [ execute ]

            T_Empresa emp = new T_Empresa(this);

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

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

            output_nome_emp = emp.get_st_fantasia();

            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

            if (!loj_emp.select_fk_empresa_geral(emp.get_identity()))
            {
                PublishError("Nenhuma loja cadastrada");
                return(false);
            }

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

            StringBuilder sb = new StringBuilder();

            while (loj_emp.fetch())
            {
                if (!loj.selectIdentity(loj_emp.get_fk_loja()))
                {
                    continue;
                }

                if (!term.select_fk_loja(loj.get_identity()))
                {
                    continue;
                }

                DataPortable port = new DataPortable();

                port.setValue("cod", loj.get_st_loja());
                port.setValue("nome", loj.get_st_nome() + " - " + loj.get_st_social());
                port.setValue("tel", loj.get_nu_telefone());
                port.setValue("cid", loj.get_st_cidade());
                port.setValue("est", loj.get_st_estado());
                port.setValue("term", term.RowCount().ToString());
                port.setValue("cnpj", loj.get_nu_CNPJ());
                port.setValue("drep", loj_emp.get_nu_dias_repasse());
                port.setValue("prep", loj_emp.get_tx_admin().PadLeft(4, '0').Insert(2, ",") + " %");

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

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

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            // ## obtem indice geral

            output_id = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_rel_listaLojas ");

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

            Registry("execute fetch_rel_4_rrp ");

            /// USER [ execute ]

            DateTime t_end = Convert.ToDateTime(input_dt_fim).AddDays(1);

            // ##
            // ## 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

            // ## Busca empresa

            T_Empresa emp = new T_Empresa(this);

            if (!emp.select_rows_empresa(input_st_empresa))
            {
                PublishError("Código de empresa inválida");
                return(false);
            }

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

            output_st_nome_empresa = emp.get_st_fantasia();

            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

            // ## Busca convenios

            if (!loj_emp.select_fk_empresa_geral(emp.get_identity()))
            {
                PublishError("Nenhuma loja cadastrada");
                return(false);
            }

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

            long total       = 0;
            long total_geral = 0;

            StringBuilder sb = new StringBuilder();

            // ## Busca registros de convênios

            T_Parcelas parc = new T_Parcelas(this);

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

                // ## Busca loja

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

                double tx   = loj_emp.get_int_tx_admin();
                long   dias = loj_emp.get_int_nu_dias_repasse();

                long subtotal   = 0,
                     repasse    = 0,
                     total_loja = 0;

                // ## Busca nas transações do periodo

                bool zerada = true;

                if (parc.select_rows_repasse(loj.get_identity(),
                                             TipoParcela.EM_ABERTO))                      // ainda não pagos
                {
                    while (parc.fetch())
                    {
                        if (ltr.selectIdentity(parc.get_fk_log_transacoes()))
                        {
                            if (ltr.get_tg_confirmada() != TipoConfirmacao.Confirmada)
                            {
                                continue;
                            }
                        }

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

                        DateTime tim = Convert.ToDateTime(parc.get_dt_inclusao()).AddDays(dias);

                        // fora da faixa requerida pelo relatório
                        if (tim > t_end)
                        {
                            continue;
                        }

                        DadosRepasse dr = new DadosRepasse();

                        dr.set_tg_tipoCartao(cart.get_tg_tipoCartao());
                        dr.set_st_nsu(parc.get_nu_nsu());
                        dr.set_st_loja(loj.get_st_loja());

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

                        dr.set_dt_trans(parc.get_dt_inclusao());
                        dr.set_vr_total(parc.get_vr_valor());

                        // acerta data correta do repasse
                        dr.set_dt_repasse(GetDataBaseTime(tim));

                        total_loja += parc.get_int_vr_valor();
                        repasse     = Convert.ToInt64(parc.get_int_vr_valor() - (parc.get_int_vr_valor() * tx / 10000));
                        subtotal   += repasse;

                        dr.set_vr_repasse(repasse.ToString());

                        DataPortable mem = dr as DataPortable;

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

                        zerada = false;
                    }
                }

                if (!zerada)
                {
                    total       += subtotal;
                    total_geral += total_loja;

                    output_st_csv_lojas      += loj.get_st_loja() + ",";
                    output_st_csv_nome_lojas += loj.get_st_nome() +
                                                " - CNPJ (" + loj.get_nu_CNPJ() +
                                                ") - Percentual " + ((double)loj_emp.get_int_tx_admin() / 100).ToString().Replace(",", ".") +
                                                "% - Dias de repasse " + loj_emp.get_nu_dias_repasse() + ",";

                    output_st_csv_subtotal       += subtotal.ToString() + ",";
                    output_st_csv_subtotal_geral += total_loja.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);

            // ## Guarda indexador de grupo

            output_st_csv_content = MemorySave(ref dp);

            output_st_csv_lojas          = output_st_csv_lojas.TrimEnd(',');
            output_st_csv_nome_lojas     = output_st_csv_nome_lojas.TrimEnd(',');
            output_st_csv_subtotal       = output_st_csv_subtotal.TrimEnd(',');
            output_st_csv_subtotal_geral = output_st_csv_subtotal_geral.TrimEnd(',');

            output_st_total       = total.ToString();
            output_st_total_geral = total_geral.ToString();

            /// USER [ execute ] END

            Registry("execute done fetch_rel_4_rrp ");

            return(true);
        }