Exemplo n.º 1
0
 public void copy(ref T_Parcelas cpy)
 {
     nu_nsu            = cpy.nu_nsu;
     fk_empresa        = cpy.fk_empresa;
     fk_cartao         = cpy.fk_cartao;
     dt_inclusao       = cpy.dt_inclusao;
     nu_parcela        = cpy.nu_parcela;
     vr_valor          = cpy.vr_valor;
     nu_indice         = cpy.nu_indice;
     tg_pago           = cpy.tg_pago;
     fk_loja           = cpy.fk_loja;
     nu_tot_parcelas   = cpy.nu_tot_parcelas;
     fk_terminal       = cpy.fk_terminal;
     fk_log_transacoes = cpy.fk_log_transacoes;
 }
Exemplo n.º 2
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_reciboVendaLojista ");

            /// 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_venda, GetTodayStartTime(), GetTodayEndTime()))
            {
                return(false);
            }

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

            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("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("");

            if (ltr.get_int_nu_parcelas() == 1)
            {
                lstContent.Add("VALOR TOT. R$ " + new money().formatToMoney(ltr.get_vr_total()));
                lstContent.Add("");
                lstContent.Add("");
            }
            else
            {
                T_Parcelas parc = new T_Parcelas(this);

                int t = 1;

                if (parc.select_fk_log_trans(ltr.get_identity()))
                {
                    while (parc.fetch())
                    {
                        lstContent.Add("Parcela (" + t.ToString() + ") R$ " + new money().formatToMoney(parc.get_vr_valor()));
                        ++t;
                    }

                    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_reciboVendaLojista ");

            return(true);
        }
Exemplo n.º 3
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);
        }
        public override bool execute( )
        {
            Registry("execute fetch_extratoWebFuturo ");

            /// USER [ execute ]

            T_Cartao cart          = new T_Cartao(this);
            T_Cartao cart_parc_dep = new T_Cartao(this);

            if (!cart.select_rows_tudo(input_st_cartao.Substring(0, 6),
                                       input_st_cartao.Substring(6, 6),
                                       input_st_cartao.Substring(12, 2)))
            {
                PublishError("Matrícula não disponível");
                return(false);
            }

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

            if (cart.get_st_senha() != input_st_senha)
            {
                PublishError("Senha inválida");
                return(false);
            }

            T_Empresa emp = new T_Empresa(this);

            if (!emp.select_rows_empresa(cart.get_st_empresa()))
            {
                PublishError("Empresa inválida");
                return(false);
            }

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

            T_Parcelas parc = new T_Parcelas(this);

            ArrayList lstDeps = new ArrayList();

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

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

            StringBuilder sb_parcs = new StringBuilder();

            for (int t = 2; t <= emp.get_int_nu_parcelas(); ++t)
            {
                if (parc.select_rows_relat_parc(t.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;
                            }
                        }

                        Rel_RTC rtc = new Rel_RTC();

                        rtc.set_st_loja(loj.get_st_nome());
                        rtc.set_vr_total(parc.get_vr_valor());
                        rtc.set_nu_parc(parc.get_nu_tot_parcelas());
                        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(",");
                    }
                }
            }

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

            DataPortable dp_parcs = new DataPortable();

            dp_parcs.setValue("ids", list_ids_parc);

            output_st_content = MemorySave(ref dp_parcs);

            /// USER [ execute ] END

            Registry("execute done fetch_extratoWebFuturo ");

            return(true);
        }
        public override bool execute( )
        {
            Registry("execute exec_pos_cancelaVendaEmpresarial ");

            /// USER [ execute ]

            // ## Buscar parcelas com NSU e data de hoje
            // ## pois somente pode-se cancelar transações no mesmo dia

            T_Parcelas parc = new T_Parcelas(this);

            if (!parc.select_rows_nsu(input_st_nsu_cancel,
                                      GetTodayStartTime(),
                                      GetTodayEndTime()))
            {
                output_st_msg = "erro aplicativo";
                return(false);
            }

            T_Parcelas tmp = new T_Parcelas(this);

            while (parc.fetch())
            {
                // ## Atualizar parcela

                tmp.ExclusiveAccess();

                if (!tmp.selectIdentity(parc.get_identity()))
                {
                    output_st_msg = "erro aplicativo";
                    return(false);
                }

                // ## Se parcela já foi cancelada, sair

                if (tmp.get_tg_pago() == TipoParcela.CANCELADA)
                {
                    output_st_msg = "prev. cancel";
                    return(false);
                }

                // ## Se for cartão edu, estornar imediatamente no disponivel

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

                    cart.set_vr_disp_educacional(disp.ToString());
                }
                else if (cart.get_tg_tipoCartao() == TipoCartao.presente)
                {
                    cart.set_vr_limiteTotal(cart.get_int_vr_limiteTotal() + tmp.get_int_vr_valor());
                }

                // ## Atualizar

                if (!tmp.synchronize_T_Parcelas())
                {
                    output_st_msg = "erro aplicativo";
                    return(false);
                }
            }

            // ## Atualiza cartão

            if (!cart.synchronize_T_Cartao())
            {
                output_st_msg = "erro aplicativo";
                return(false);
            }

            output_st_msg = "NSU: " + input_st_nsu_cancel.TrimStart('0');
            var_codResp   = "0000";

            /// USER [ execute ] END

            Registry("execute done exec_pos_cancelaVendaEmpresarial ");

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

            Registry("execute fetch_reciboRepasse ");

            /// USER [ execute ]

            T_RepasseLoja rep = new T_RepasseLoja(this);

            if (!rep.selectIdentity(input_id_repasse))
            {
                return(false);
            }

            string st_extra = rep.get_st_ident();

            T_Loja loj = new T_Loja(this);

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

            output_cont_rec.set_loja(loj.get_st_nome() + " - " + loj.get_st_social());
            output_cont_rec.set_cnpj(loj.get_nu_CNPJ());
            output_cont_rec.set_pagto(rep.get_tg_opcao());

            LINK_RepasseParcela lrp     = new LINK_RepasseParcela(this);
            T_Parcelas          parc    = new T_Parcelas(this);
            T_Cartao            cart    = new T_Cartao(this);
            LINK_LojaEmpresa    loj_emp = new LINK_LojaEmpresa(this);

            long vr_compras = 0;
            long dias_rep   = 0;

            string fk_empresa = "";

            if (lrp.select_fk_rep(input_id_repasse))
            {
                while (lrp.fetch())
                {
                    parc.selectIdentity(lrp.get_fk_parcela());
                    cart.selectIdentity(parc.get_fk_cartao());

                    if (fk_empresa == "")
                    {
                        fk_empresa = parc.get_fk_empresa();

                        loj_emp.select_fk_empresa_loja(fk_empresa, loj.get_identity());
                        loj_emp.fetch();

                        dias_rep = loj_emp.get_int_nu_dias_repasse();

                        if (rep.get_tg_opcao() != TipoPagamento.Dinheiro)
                        {
                            if (rep.get_tg_opcao() != TipoPagamento.Cheque)
                            {
                                // deposito
                                st_extra = " Banco : " + loj_emp.get_st_banco() + " - Ag. " + loj_emp.get_st_ag() + " Conta: " + loj_emp.get_st_conta();
                            }
                            else
                            {
                                st_extra = rep.get_st_ident();
                            }
                        }
                    }

                    vr_compras += parc.get_int_vr_valor();

                    DadosRepasse dr = new DadosRepasse();

                    dr.set_st_cartao(cart.get_st_empresa() + "." + cart.get_st_matricula());
                    dr.set_dt_trans(parc.get_dt_inclusao());
                    dr.set_st_nsu(parc.get_nu_nsu());
                    dr.set_vr_total(parc.get_vr_valor());

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

                    tim = tim.AddDays(dias_rep);

                    dr.set_dt_repasse(GetDataBaseTime(tim));

                    output_array_generic_lst.Add(dr);
                }
            }

            long desc = vr_compras - rep.get_int_vr_valor();

            output_cont_rec.set_vr_compras(vr_compras.ToString());
            output_cont_rec.set_tx_admin(new money().formatToMoney(loj_emp.get_tx_admin()) + "%");
            output_cont_rec.set_vr_desc(new money().formatToMoney(desc.ToString()));
            output_cont_rec.set_vr_tot_rep(rep.get_vr_valor());
            output_cont_rec.set_st_extra(st_extra);

            /// USER [ execute ] END

            Registry("execute done fetch_reciboRepasse ");

            return(true);
        }
Exemplo n.º 7
0
        public void GetSaldoDisponivel(ref T_Cartao cart, ref long dispMensal, ref long dispTotal)
        {
            Transaction tr = cart.var_Transaction;

            bool changed = false;

            if (tr.SQL_LOGGING_ENABLE == true)
            {
                tr.SQL_LOGGING_ENABLE = false;
                changed = true;
            }

            ArrayList lstCartoes = new ArrayList();

            T_Cartao c_t = new T_Cartao(tr);

            c_t.select_rows_empresa_matricula(cart.get_st_empresa(), cart.get_st_matricula());

            while (c_t.fetch())
            {
                lstCartoes.Add(c_t.get_identity());
            }

            if (cart.get_tg_tipoCartao() == TipoCartao.empresarial)
            {
                tr.Trace("Empresarial!");

                LOG_Transacoes ltr  = new LOG_Transacoes(tr);
                T_Parcelas     parc = new T_Parcelas(tr);

                // Verifica disponivel mensal nas parcelas
                if (parc.select_rows_cartao_mensal(ref lstCartoes, "1"))                      // este mês
                {
                    while (parc.fetch())
                    {
                        if (ltr.selectIdentity(parc.get_fk_log_transacoes()))                              // busca transação
                        {
                            if (ltr.get_tg_confirmada() == TipoConfirmacao.Confirmada ||
                                ltr.get_tg_confirmada() == TipoConfirmacao.Pendente)
                            {
                                dispMensal -= parc.get_int_vr_valor();
                            }
                        }
                    }
                }

                parc.Reset();

                // Verifica disponivel total nas parcelas
                if (parc.select_rows_cartao(ref lstCartoes, "1"))                       // nu_parcela >= 1 (ou seja, no futuro)
                {
                    while (parc.fetch())
                    {
                        if (ltr.selectIdentity(parc.get_fk_log_transacoes()))                              // busca transação
                        {
                            if (ltr.get_tg_confirmada() == TipoConfirmacao.Confirmada ||
                                ltr.get_tg_confirmada() == TipoConfirmacao.Pendente)
                            {
                                dispTotal -= parc.get_int_vr_valor();
                            }
                        }
                    }
                }

                if (dispMensal < 0)
                {
                    dispMensal = 0;
                }

                if (dispTotal < 0)
                {
                    dispTotal = 0;
                }
            }
            else if (cart.get_tg_tipoCartao() == TipoCartao.educacional)
            {
                dispMensal = cart.get_int_vr_disp_educacional();
                dispTotal  = cart.get_int_vr_disp_educacional();
            }

            if (changed)
            {
                tr.SQL_LOGGING_ENABLE = true;
            }
        }
        public override bool finish( )
        {
            Registry("finish exec_pos_vendaEmpresarialSITEF ");

            /// USER [ finish ]

            if (IsFail)
            {
                // ## Nsu não foi criado!
                l_nsu.set_dt_log(GetDataBaseTime());

                if (!l_nsu.create_LOG_NSU())
                {
                    output_st_msg = "Erro aplicativo";
                    return(false);
                }

                var_nu_nsuAtual    = l_nsu.get_identity();
                var_operacaoCartao = var_operacaoCartaoFail;
            }

            // ## Copiar dados para saída

            output_cont_pr.set_st_codResp(var_codResp);
            output_cont_pr.set_st_nsuRcb(var_nu_nsuAtual.PadLeft(6, '0'));

            output_cont_pr.set_st_nsuBanco(new StringBuilder().Append(DateTime.Now.Year.ToString())
                                           .Append(DateTime.Now.Month.ToString("00"))
                                           .Append(DateTime.Now.Day.ToString("00"))
                                           .Append(var_nu_nsuAtual.PadLeft(6, '0')).ToString());

            output_cont_pr.set_st_PAN(cart.get_st_empresa() + cart.get_st_matricula());

            output_cont_pr.set_st_mesPri(Context.EMPTY);
            output_cont_pr.set_st_loja(loj.get_st_loja());
            output_cont_pr.set_st_nomeCliente(var_nomeCliente);

            output_cont_pr.set_st_variavel(info.get_st_empresaAfiliada());

            LOG_Transacoes l_tr = new LOG_Transacoes(this);

            #region - registra a transação -

            l_tr.set_fk_terminal(term.get_identity());
            l_tr.set_fk_empresa(emp.get_identity());
            l_tr.set_fk_cartao(cart.get_identity());
            l_tr.set_vr_total(var_vr_total);
            l_tr.set_nu_parcelas(var_nu_parcelas);
            l_tr.set_nu_nsu(var_nu_nsuAtual);
            l_tr.set_dt_transacao(GetDataBaseTime());
            l_tr.set_nu_cod_erro(output_cont_pr.get_st_codResp());
            l_tr.set_nu_nsuOrig(input_cont_pe.get_st_nsuOrigemSITEF());
            l_tr.set_en_operacao(var_operacaoCartao);
            l_tr.set_st_msg_transacao("TERMINAL SITEF: " + input_cont_pe.get_st_terminalSITEF());
            l_tr.set_fk_loja(term.get_fk_loja());
            l_tr.set_st_doc(st_doc);

            if (IsFail)
            {
                l_tr.set_tg_confirmada(TipoConfirmacao.Erro);
                l_tr.set_tg_contabil(Context.FALSE);
            }
            else
            {
                l_tr.set_tg_confirmada(TipoConfirmacao.Pendente);
                l_tr.set_tg_contabil(Context.TRUE);
            }

            if (cart.get_tg_tipoCartao() == TipoCartao.educacional)
            {
                l_tr.set_vr_saldo_disp(cart.get_vr_disp_educacional());
                l_tr.set_vr_saldo_disp_tot(cart.get_vr_educacional());
            }
            else
            {
                l_tr.set_vr_saldo_disp(vr_dispMes.ToString());
                l_tr.set_vr_saldo_disp_tot(vr_dispTot.ToString());
            }

            #endregion

            //alterado

            output_cont_pr.set_st_variavel("Saldo disponível no mês: " + new money().setMoneyFormat(vr_dispMes) + " * " +
                                           "Saldo disponível parcelado: " + new money().setMoneyFormat(vr_dispTot));

            l_tr.create_LOG_Transacoes();

            #region - vincula parcelas com a transação -

            T_Parcelas parc_upd = new T_Parcelas(this);

            // ## Como o registro da transação é feito depois,
            // ## vincular as parcelas com este mesmo registro.

            for (int t = 0; t < lstParcs.Count; ++t)
            {
                parc_upd.ExclusiveAccess();

                if (parc_upd.selectIdentity(lstParcs[t].ToString()))
                {
                    parc_upd.set_fk_log_transacoes(l_tr.get_identity());

                    parc_upd.synchronize_T_Parcelas();
                }

                parc_upd.ReleaseExclusive();
            }

            #endregion

            /// USER [ finish ] END

            Registry("finish done exec_pos_vendaEmpresarialSITEF ");

            if (remoteTransaction == true)
            {
                return(true);
            }

            DataPortable dp_out = new DataPortable();

            dp_out.MapTagValue(COMM_OUT_EXEC_POS_VENDAEMPRESARIAL.st_msg, output_st_msg);

            var_Comm.AddExitPortable(ref dp_out);

            DataPortable dp_cont_1 = new DataPortable();

            dp_cont_1.MapTagContainer(COMM_OUT_EXEC_POS_VENDAEMPRESARIAL.pr, output_cont_pr as DataPortable);

            var_Comm.AddExitPortable(ref dp_cont_1);

            return(true);
        }
Exemplo n.º 9
0
        public override bool authenticate( )
        {
            if (base.authenticate() == false)
            {
                return(false);
            }

            Registry("authenticate fetch_dadosNSU ");

            /// USER [ authenticate ]

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

            // ## Obter transação original

            parc = new T_Parcelas(this);
            l_tr = new LOG_Transacoes(this);

            DateTime start = Convert.ToDateTime(input_dt_hoje);
            DateTime end   = Convert.ToDateTime(input_dt_hoje).AddDays(1);

            // ## Filtrar por NSU e data informada

            if (!l_tr.select_rows_nsu(input_st_nsu,
                                      GetDataBaseTime(start),
                                      GetDataBaseTime(end)))
            {
                PublishError("NSU inválido");
                return(false);
            }

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

            if (l_tr.get_tg_confirmada() != input_tg_confirmada)
            {
                if (input_tg_confirmada == TipoConfirmacao.Pendente)
                {
                    PublishError("NSU não está pendente");
                    return(false);
                }
                else
                {
                    PublishError("NSU previamente cancelado");
                    return(false);
                }
            }

            // ## Buscar parcelas

            if (!parc.select_rows_nsu(input_st_nsu,
                                      GetDataBaseTime(start),
                                      GetDataBaseTime(end)))
            {
                PublishError("NSU inválido");
                return(false);
            }

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

            /// USER [ authenticate ] END

            Registry("authenticate done fetch_dadosNSU ");

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

            Registry("execute exec_pf_autorizaVendaPendente ");

            /// USER [ execute ]

            // ## Busco pendência de acordo com NSU

            pendPayFone = new T_PendPayFone(this);

            /*DateTime tim = new DateTime ( DateTime.Now.Year,
             *                            DateTime.Now.Month,
             *                            DateTime.Now.Day );
             */

            if (!pendPayFone.select_rows_nsu(input_st_nsu

                                             /*GetDataBaseTime ( tim ) ,
                                              *          GetDataBaseTime ( tim.AddDays(1) )*/))
            {
                output_st_codResp = "01";
                output_st_msg     = "Nenhuma pendência (" + input_st_nsu.TrimStart('0') + ")";
                return(false);
            }

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

            // ## Busco terminal de acordo com FK da pendência

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

            var_valorTotal = pendPayFone.get_vr_valor();

            Trace(pendPayFone.get_en_situacao());

            // ## Se sit. já foi confirmada, sair

            if (pendPayFone.get_en_situacao() == TipoPendPayFone.CONFIRMADO)
            {
                output_st_codResp = "03";
                output_st_msg     = "NSU Prev. Confirmado (" + input_st_nsu.TrimStart('0') + ")";
                return(false);
            }

            // ## Se esta pendência já foi cancelada ou negada, sair

            if (pendPayFone.get_en_situacao() == TipoPendPayFone.NEGADO ||
                pendPayFone.get_en_situacao() == TipoPendPayFone.CANCELADO)
            {
                output_st_codResp = "04";
                output_st_msg     = "NSU Prev. Cancelado (" + input_st_nsu.TrimStart('0') + ")";
                return(false);
            }

            // ## Atualizar senhas

            cart.ExclusiveAccess();

            // ## Busco o mesmo registro para atualização

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

            // ## Verifico senhas

            if (cart.get_st_senha() != input_st_senha)
            {
                long senhasErradas = cart.get_int_nu_senhaErrada() + 1;

                cart.set_nu_senhaErrada(senhasErradas.ToString());

                // ## Cinco senhas erradas, bloqueia cartão vinculado ao payfone

                if (senhasErradas > 4)
                {
                    cart.set_tg_status(CartaoStatus.Bloqueado);
                }

                // ## Atualiza

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

                output_st_codResp = "02";
                output_st_msg     = "Senha Errada";
                return(false);
            }
            else
            {
                // ## Zera senhas

                cart.set_nu_senhaErrada(Context.NONE);

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

            // ## Verifica disponivel mensal nas parcelas

            T_Parcelas parc = new T_Parcelas(this);

            vr_limMes = cart.get_int_vr_limiteMensal();
            vr_limTot = cart.get_int_vr_limiteTotal() + cart.get_int_vr_extraCota();

            new ApplicationUtil().GetSaldoDisponivel(ref cart, ref vr_limMes, ref vr_limTot);

            // ## Conferir limite mensal

            if (pendPayFone.get_int_vr_valor() > vr_limMes)
            {
                output_st_codResp = "03";
                output_st_msg     = "limite mês excedido";
                return(false);
            }

            // ## Conferir limite total

            if (pendPayFone.get_int_vr_valor() > vr_limTot)
            {
                output_st_codResp = "04";
                output_st_msg     = "limite total excedido";
                return(false);
            }

            // ## Criar as parcelas

            T_Parcelas new_parc = new T_Parcelas(this);

            #region - atribuição -

            new_parc.set_nu_nsu(input_st_nsu);
            new_parc.set_fk_empresa(emp.get_identity());
            new_parc.set_fk_cartao(cart.get_identity());
            new_parc.set_dt_inclusao(GetDataBaseTime());
            new_parc.set_nu_parcela("1");
            new_parc.set_nu_tot_parcelas("1");
            new_parc.set_nu_indice("1");
            new_parc.set_vr_valor(pendPayFone.get_vr_valor());
            new_parc.set_tg_pago(TipoParcela.EM_ABERTO);

            #endregion

            // ## Buscar terminal

            term = new T_Terminal(this);

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

            // ## Atribuir os links corretamente

            new_parc.set_fk_loja(term.get_fk_loja());
            new_parc.set_fk_terminal(term.get_identity());

            // ## Confirmo a pendência

            pendPayFone.set_en_situacao(TipoPendPayFone.CONFIRMADO);

            // ## Atualizar tabela

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

            // ## Busco transação de gravação de pendência do payfone

            LOG_Transacoes l_tr = new LOG_Transacoes(this);

            l_tr.ExclusiveAccess();

            if (!l_tr.select_rows_nsu_oper(input_st_nsu,
                                           OperacaoCartao.PAY_FONE_GRAVA_PEND,
                                           GetTodayStartTime(),
                                           GetTodayEndTime()))
            {
                output_st_codResp = "80";
                output_st_msg     = "Erro de aplicativo";
                return(false);
            }

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

            output_st_nsu_autorizado = input_st_nsu;

            // ## Confirmo esta transação

            l_tr.set_tg_contabil(Context.TRUE);
            l_tr.set_tg_confirmada(TipoConfirmacao.Confirmada);

            // ## Atualizo

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

            // ## Atribuo a minha transação para a parcela criada com payfone

            new_parc.set_fk_log_transacoes(l_tr.get_identity());

            // ## Crio o registro na tabela de parcelas (somente a vista!)

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

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

            /// USER [ execute ] END

            Registry("execute done exec_pf_autorizaVendaPendente ");

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

            Registry("execute schedule_fech_mensal ");

            /// USER [ execute ]

            T_Parcelas parc = new T_Parcelas(this);

            string mes = DateTime.Now.Month.ToString().PadLeft(2, '0');
            string ano = DateTime.Now.Year.ToString();

            T_Cartao cart     = new T_Cartao(this);
            T_Cartao cart_upd = new T_Cartao(this);

            if (parc.select_rows_emp_fechamento(emp.get_identity(), "0"))                  // numero parcela > 0
            {
                T_Parcelas       tmp  = new T_Parcelas(this);
                LOG_Transacoes   ltr  = new LOG_Transacoes(this);
                T_InfoAdicionais info = new T_InfoAdicionais(this);

                while (parc.fetch())
                {
                    if (!tmp.selectIdentity(parc.get_identity()))
                    {
                        continue;
                    }

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

                    if (!ltr.selectIdentity(parc.get_fk_log_transacoes()))
                    {
                        continue;
                    }

                    if (ltr.get_tg_confirmada() != TipoConfirmacao.Confirmada)
                    {
                        continue;
                    }

                    if (st_empresaAfiliada != "")
                    {
                        if (!info.selectIdentity(cart.get_fk_infoAdicionais()))
                        {
                            continue;
                        }

                        if (info.get_st_empresaAfiliada().ToUpper().Trim() != st_empresaAfiliada.ToUpper().Trim())
                        {
                            continue;
                        }
                    }

                    if (parc.get_int_nu_parcela() == 1)
                    {
                        LOG_Fechamento log_fech = new LOG_Fechamento(this);

                        log_fech.set_st_mes(mes);
                        log_fech.set_st_ano(ano);
                        log_fech.set_vr_valor(parc.get_vr_valor());
                        log_fech.set_dt_fechamento(GetDataBaseTime());
                        log_fech.set_fk_empresa(parc.get_fk_empresa());
                        log_fech.set_fk_loja(parc.get_fk_loja());
                        log_fech.set_fk_cartao(parc.get_fk_cartao());
                        log_fech.set_fk_parcela(parc.get_identity());
                        log_fech.set_dt_compra(parc.get_dt_inclusao());
                        log_fech.set_nu_parcela(parc.get_nu_parcela());

                        log_fech.set_st_afiliada(st_empresaAfiliada);

                        log_fech.set_st_cartao(cart.get_st_empresa() +
                                               cart.get_st_matricula() +
                                               cart.get_st_titularidade());

                        if (!log_fech.create_LOG_Fechamento())
                        {
                            return(false);
                        }
                    }

                    // decrementa parcela
                    tmp.set_nu_parcela(tmp.get_int_nu_parcela() - 1);

                    tmp.set_tg_pago(Context.TRUE);

                    if (!tmp.synchronize_T_Parcelas())
                    {
                        return(false);
                    }
                }
            }

            //zera cota extra de todo mundo

            if (cart.select_rows_empresa(emp.get_st_empresa()))
            {
                while (cart.fetch())
                {
                    cart_upd.ExclusiveAccess();

                    cart_upd.selectIdentity(cart.get_identity());
                    cart_upd.set_vr_extraCota("0");

                    cart_upd.synchronize_T_Cartao();
                    cart_upd.ReleaseExclusive();
                }
            }


            /// USER [ execute ] END

            Registry("execute done schedule_fech_mensal ");

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

            Registry("execute fetch_consultaCartao ");

            /// USER [ execute ]

            // ## Filtro para busca de cartões

            StringBuilder sb = new StringBuilder();

            T_Cartao       cart = new T_Cartao(this);
            T_Proprietario prot = new T_Proprietario(this);
            T_Parcelas     parc = new T_Parcelas(this);

            ApplicationUtil util = new ApplicationUtil();

            string st_cart = input_cont_dcc.get_st_cartao();
            string st_cpf  = input_cont_dcc.get_st_cpf();

            // ## Se for cartão especifico

            if (st_cart.Length > 0)
            {
                // admin ou oper
                if (input_cont_dcc.get_st_empresa().Length > 0)
                {
                    if (!cart.select_rows_empresa_matricula(input_cont_dcc.get_st_empresa(),
                                                            st_cart.PadLeft(6, '0')))
                    {
                        return(true);
                    }
                }
                else                 // root
                {
                    if (!cart.select_rows_mat(st_cart.PadLeft(6, '0')))
                    {
                        return(true);
                    }
                }
            }

            // ## Se cpf ou cnpj for informado

            else if (st_cpf.Length > 0)
            {
                if (prot.select_rows_cpf(st_cpf))
                {
                    prot.fetch();

                    if (!cart.select_rows_prop(prot.get_identity()))
                    {
                        return(true);
                    }
                }
            }

            // ## Se for de código de empresa específica

            else if (input_cont_dcc.get_st_empresa().Length > 0)
            {
                if (!cart.select_rows_empresa(input_cont_dcc.get_st_empresa()))
                {
                    return(true);
                }
            }

            // ## Busca todos registros

            else
            {
                if (!cart.selectAll())
                {
                    return(true);
                }
            }

            bool nome      = false,
                 total     = false,
                 mensal    = false,
                 cotaExtra = false,
                 cidade    = false,
                 estado    = false;

            string st_nome   = input_cont_dcc.get_st_nome().ToUpper(),
                   st_cidade = input_cont_dcc.get_st_cidade(),
                   st_estado = input_cont_dcc.get_st_estado(),
                   expedido  = input_cont_dcc.get_tg_expedido();

            int i_total  = 0,
                i_mensal = 0,
                i_cota   = 0;

            // ## Prepara flags de filtro

            if (st_nome.Length > 0)
            {
                nome = true;
            }
            if (input_cont_dcc.get_vr_limTotal().Length > 0)
            {
                total = true;
            }
            if (input_cont_dcc.get_vr_limMensal().Length > 0)
            {
                mensal = true;
            }
            if (input_cont_dcc.get_vr_cotaExtra().Length > 0)
            {
                cotaExtra = true;
            }
            if (st_cidade.Length > 0)
            {
                cidade = true;
            }
            if (st_estado.Length > 0)
            {
                estado = true;
            }

            // ## Obtem valores rápidos para comparação

            if (total)
            {
                i_total = Convert.ToInt32(input_cont_dcc.get_vr_limTotal());
            }
            if (mensal)
            {
                i_mensal = Convert.ToInt32(input_cont_dcc.get_vr_limMensal());
            }
            if (cotaExtra)
            {
                i_cota = Convert.ToInt32(input_cont_dcc.get_vr_cotaExtra());
            }

            // ## Busca todos os registros selecionados

            bool todos     = false;
            bool hab       = false;
            bool bloq      = false;
            bool canc      = false;
            bool adminGift = false;

            if (input_cont_dcc.get_tg_bloqueado() == "3")               // todos
            {
                todos = true;
            }
            else
            {
                if (input_cont_dcc.get_tg_bloqueado() == Context.FALSE)                   // 0
                {
                    hab = true;
                }
                else if (input_cont_dcc.get_tg_bloqueado() == Context.TRUE)                   // 1
                {
                    bloq = true;
                }
                else
                {
                    canc = true;                     // 2
                }
            }

            if (input_cont_header.get_tg_user_type() == TipoUsuario.AdminGift)
            {
                adminGift = false;
            }

            T_Dependente dep_f     = new T_Dependente(this);
            T_Cartao     cart_prop = new T_Cartao(this);

            while (cart.fetch())
            {
                string dep = "";

                if (cart.get_tg_emitido() != expedido)
                {
                    continue;
                }

                if (adminGift)
                {
                    if (cart.get_fk_dadosProprietario() == "0")
                    {
                        continue;
                    }
                }

                if (!todos)
                {
                    if (bloq)
                    {
                        if (cart.get_tg_status() != CartaoStatus.Bloqueado)
                        {
                            continue;
                        }
                    }
                    else if (canc)
                    {
                        if (cart.get_tg_status() != CartaoStatus.Bloqueado)
                        {
                            continue;
                        }

                        if (cart.get_tg_status() == CartaoStatus.Bloqueado &&
                            cart.get_tg_motivoBloqueio() != MotivoBloqueio.CANCELAMENTO)
                        {
                            continue;
                        }
                    }
                    else if (hab)
                    {
                        if (cart.get_tg_status() != CartaoStatus.Habilitado)
                        {
                            continue;
                        }
                    }
                }

                if (total)
                {
                    if (cart.get_int_vr_limiteTotal() < i_total)
                    {
                        continue;
                    }
                }

                if (mensal)
                {
                    if (cart.get_int_vr_limiteMensal() < i_mensal)
                    {
                        continue;
                    }
                }

                if (cotaExtra)
                {
                    if (cart.get_int_vr_extraCota() < i_cota)
                    {
                        continue;
                    }
                }

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

                if (cidade)
                {
                    if (!prot.get_st_cidade().Contains(st_cidade))
                    {
                        continue;
                    }
                }

                if (estado)
                {
                    if (!prot.get_st_UF().Contains(st_estado))
                    {
                        continue;
                    }
                }

                if (cart.get_st_titularidade() != "01")
                {
                    if (!dep_f.select_rows_prop_tit(cart.get_fk_dadosProprietario(), cart.get_st_titularidade()))
                    {
                        continue;
                    }

                    if (!dep_f.fetch())
                    {
                        continue;
                    }

                    dep = dep_f.get_st_nome().ToUpper();

                    // Dependente
                    if (nome)
                    {
                        if (!dep.Contains(st_nome))
                        {
                            continue;
                        }
                    }
                }
                else
                {
                    if (nome)
                    {
                        if (!prot.get_st_nome().ToUpper().Contains(st_nome))
                        {
                            continue;
                        }
                    }
                }

                DadosCartao dc = new DadosCartao();

                dc.set_st_empresa(cart.get_st_empresa());
                dc.set_st_matricula(cart.get_st_matricula());

                dc.set_st_titularidade(cart.get_st_titularidade() + ":" +
                                       cart.get_nu_viaCartao());

                if (cart.get_fk_dadosProprietario() != Context.NONE)
                {
                    if (dep.Length > 0)
                    {
                        dc.set_st_proprietario(dep);
                    }
                    else
                    {
                        dc.set_st_proprietario(prot.get_st_nome());
                    }

                    dc.set_st_cpf(prot.get_st_cpf());
                }

                dc.set_tg_status(cart.get_tg_status());

                if (cart.get_tg_tipoCartao() == TipoCartao.presente)
                {
                    dc.set_vr_limiteTotal("0");
                    dc.set_vr_limiteMensal("0");
                    dc.set_vr_extraCota("0");
                    dc.set_vr_dispMes("0");
                    dc.set_vr_dispTotal(cart.get_vr_limiteTotal());
                }
                else
                {
                    long dispMensal = 0,
                         dispTotal  = 0;

                    if (cart.get_st_titularidade() != "01")
                    {
                        if (!cart_prop.select_rows_tudo(cart.get_st_empresa(),
                                                        cart.get_st_matricula(),
                                                        "01"))
                        {
                            continue;
                        }

                        if (!cart_prop.fetch())
                        {
                            continue;
                        }

                        dc.set_vr_limiteTotal(cart_prop.get_vr_limiteTotal());
                        dc.set_vr_limiteMensal(cart_prop.get_vr_limiteMensal());
                        dc.set_vr_extraCota(cart_prop.get_vr_extraCota());

                        dispMensal = cart_prop.get_int_vr_limiteMensal() + cart_prop.get_int_vr_extraCota();
                        dispTotal  = cart_prop.get_int_vr_limiteTotal() + cart_prop.get_int_vr_extraCota();
                    }
                    else
                    {
                        dc.set_vr_limiteTotal(cart.get_vr_limiteTotal());
                        dc.set_vr_limiteMensal(cart.get_vr_limiteMensal());
                        dc.set_vr_extraCota(cart.get_vr_extraCota());

                        dispMensal = cart.get_int_vr_limiteMensal() + cart.get_int_vr_extraCota();
                        dispTotal  = cart.get_int_vr_limiteTotal() + cart.get_int_vr_extraCota();
                    }

                    // ## Obtem saldo disponível

                    util.GetSaldoDisponivel(ref cart, ref dispMensal, ref dispTotal);

                    dc.set_vr_dispMes(dispMensal.ToString());
                    dc.set_vr_dispTotal(dispTotal.ToString());
                }

                DataPortable tmp = dc as DataPortable;

                // ## obtem identificador

                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);

            // ## Copia para saida um identificador de bloco

            output_st_csv_cartao = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_consultaCartao ");

            return(true);
        }
Exemplo n.º 13
0
        public override bool execute( )
        {
            Registry("execute fetch_extratoWeb ");

            /// USER [ execute ]

            T_Cartao cart        = new T_Cartao(this);
            T_Cartao cart_all    = new T_Cartao(this);
            T_Cartao cart_search = new T_Cartao(this);

            string emp = input_st_cartao.Substring(0, 6);
            string mat = input_st_cartao.Substring(6, 6);

            if (!cart.select_rows_tudo(emp, mat, input_st_cartao.Substring(12, 2)))
            {
                PublishError("Matrícula não disponível");
                return(false);
            }

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

            if (cart.get_st_senha() != input_st_senha)
            {
                PublishError("Senha inválida");
                return(false);
            }

            ArrayList lst_all_carts = new ArrayList();

            if (cart_all.select_rows_empresa_matricula(emp, mat))
            {
                while (cart_all.fetch())
                {
                    lst_all_carts.Add(cart_all.get_identity());
                }
            }

            string mes = input_st_cartao.Substring(14, 2);
            string ano = input_st_cartao.Substring(16, 4);

            LOG_Transacoes l_tr = new LOG_Transacoes(this);
            T_Loja         loj  = new T_Loja(this);
            T_Parcelas     parc = new T_Parcelas(this);

            T_Dependente   dep  = new T_Dependente(this);
            T_Proprietario prot = new T_Proprietario(this);

            StringBuilder sb_parcs = new StringBuilder();

            LOG_Fechamento lf = new LOG_Fechamento(this);

            if (lf.select_rows_mes_ano_carts(mes, ano, ref lst_all_carts))
            {
                while (lf.fetch())
                {
                    if (!loj.selectIdentity(lf.get_fk_loja()))
                    {
                        continue;
                    }

                    if (!parc.selectIdentity(lf.get_fk_parcela()))
                    {
                        continue;
                    }

                    if (!parc.fetch())
                    {
                        continue;
                    }

                    string nome = "";

                    if (!cart_search.selectIdentity(lf.get_fk_cartao()))
                    {
                        continue;
                    }

                    if (cart_search.get_st_titularidade() == "01")
                    {
                        if (!prot.selectIdentity(cart_search.get_fk_dadosProprietario()))
                        {
                            continue;
                        }

                        nome = prot.get_st_nome();
                    }
                    else
                    {
                        if (!dep.select_rows_prop_tit(cart_search.get_fk_dadosProprietario(), cart_search.get_st_titularidade()))
                        {
                            continue;
                        }

                        if (!dep.fetch())
                        {
                            continue;
                        }

                        nome = dep.get_st_nome();
                    }

                    if (parc.get_vr_valor() == "0")
                    {
                        continue;
                    }

                    Rel_RTC rtc = new Rel_RTC();

                    rtc.set_dt_trans(parc.get_dt_inclusao());
                    rtc.set_st_loja(loj.get_st_nome());
                    rtc.set_st_nsu(parc.get_nu_nsu());
                    rtc.set_vr_total(parc.get_vr_valor());
                    rtc.set_st_indice_parcela(parc.get_nu_indice());
                    rtc.set_st_term(parc.get_nu_tot_parcelas());
                    rtc.set_en_op_cartao(nome);

                    DataPortable mem_rtc = rtc as DataPortable;

                    // ## obtem indice

                    sb_parcs.Append(MemorySave(ref mem_rtc));
                    sb_parcs.Append(",");
                }
            }
            else             // presente e futuro
            {
                DateTime dt_target = new DateTime(Convert.ToInt32(ano), Convert.ToInt32(mes), 1);

                DateTime dt_it = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);

                int my_parc = 1;

                while (dt_it < dt_target)
                {
                    my_parc++;
                    dt_it = dt_it.AddMonths(1);
                }

                if (parc.select_rows_cartao(ref lst_all_carts, my_parc.ToString()))
                {
                    while (parc.fetch())
                    {
                        if (!loj.selectIdentity(parc.get_fk_loja()))
                        {
                            continue;
                        }

                        string nome = "";

                        if (!cart_search.selectIdentity(parc.get_fk_cartao()))
                        {
                            continue;
                        }

                        if (cart_search.get_st_titularidade() == "01")
                        {
                            if (!prot.selectIdentity(cart_search.get_fk_dadosProprietario()))
                            {
                                continue;
                            }

                            nome = prot.get_st_nome();
                        }
                        else
                        {
                            if (!dep.select_rows_prop_tit(cart_search.get_fk_dadosProprietario(), cart_search.get_st_titularidade()))
                            {
                                continue;
                            }

                            if (!dep.fetch())
                            {
                                continue;
                            }

                            nome = dep.get_st_nome();
                        }

                        Rel_RTC rtc = new Rel_RTC();

                        rtc.set_dt_trans(parc.get_dt_inclusao());
                        rtc.set_st_loja(loj.get_st_nome());
                        rtc.set_st_nsu(parc.get_nu_nsu());
                        rtc.set_vr_total(parc.get_vr_valor());
                        rtc.set_st_indice_parcela(parc.get_nu_indice());
                        rtc.set_st_term(parc.get_nu_tot_parcelas());
                        rtc.set_en_op_cartao(nome);

                        DataPortable mem_rtc = rtc as DataPortable;

                        // ## obtem indice

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

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

            DataPortable dp_parcs = new DataPortable();

            dp_parcs.setValue("ids", list_ids_parc);

            output_st_content = MemorySave(ref dp_parcs);

            ApplicationUtil var_util = new ApplicationUtil();

            long dispMensal = cart.get_int_vr_limiteMensal() + cart.get_int_vr_extraCota(),
                 dispTotal  = cart.get_int_vr_limiteTotal() + cart.get_int_vr_extraCota();

            var_util.GetSaldoDisponivel(ref cart, ref dispMensal, ref dispTotal);

            output_vr_disp = dispMensal.ToString();
            output_vr_lim  = (cart.get_int_vr_limiteMensal() + cart.get_int_vr_extraCota()).ToString();

            /// USER [ execute ] END

            Registry("execute done fetch_extratoWeb ");

            return(true);
        }
        public override bool authenticate( )
        {
            Registry("authenticate exec_pos_vendaEmpresarialSITEF ");

            /// USER [ authenticate ]

            cart  = new T_Cartao(this);
            emp   = new T_Empresa(this);
            l_nsu = new LOG_NSU(this);
            info  = new T_InfoAdicionais(this);
            prot  = new T_Proprietario(this);
            loj   = new T_Loja(this);

            // Default é erro genérico
            var_codResp = "9999";

            // Normal
            var_nu_nsuAtual    = Context.NONE;
            var_nu_nsuEntidade = Context.NONE;

            // Cancelamento
            var_nu_nsuOrig    = Context.NONE;
            var_nu_nsuEntOrig = Context.NONE;

            // Valores básicos de comércio
            var_vr_total    = input_cont_pe.get_vr_valor();
            var_nu_parcelas = input_cont_pe.get_nu_parcelas();

            var_codResp = "0606";

            // alterado

            #region - valida loja AO INVES DE TERMINAL (antigo) -

            // ## Busca terminal pelo seu código

            // pega os 7 ultimos
            if (!loj.select_rows_loja(input_cont_pe.get_st_terminal().Substring(1).TrimStart('0')))
            {
                output_st_msg = "Loja inexistente";
                var_codResp   = "0303";
                return(false);
            }

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

            // alterado!
            // busca o primeiro terminal vinculado

            if (!term.select_fk_loja(loj.get_identity()))
            {
                output_st_msg = "Erro do terminal";
                return(false);
            }

            term.fetch();

            #endregion

            // continua igual

            #region - valida empresa -

            // ## Busca empresa informada

            if (!emp.select_rows_empresa(input_cont_pe.get_st_empresa()))
            {
                output_st_msg = "Empresa inexistente";
                var_codResp   = "0303";
                return(false);
            }

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

            // ## Caso empresa bloqueada, sair

            if (emp.get_tg_bloq() == Context.TRUE)
            {
                output_st_msg = "Empresa bloqueada";
                var_codResp   = "0303";
                return(false);
            }

            #endregion

            // alterado!

            #region - valida relação da Loja do Terminal com Empresa (Convênio)

            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

            if (!loj_emp.select_fk_empresa_loja(emp.get_identity(), loj.get_identity()))
            {
                output_st_msg = "Loja não conveniada";
                var_codResp   = "0303";
                return(false);
            }

            if (loj.get_tg_blocked() == Context.TRUE)
            {
                output_st_msg = "Loja bloqueada";
                var_codResp   = "0303";
                return(false);
            }

            if (loj.get_tg_cancel() == Context.TRUE)
            {
                output_st_msg = "Loja cancelada";
                var_codResp   = "0303";
                return(false);
            }

            #endregion

            // continua igual

            #region - valida cartão -

            if (!cart.select_rows_tudo(input_cont_pe.get_st_empresa(),
                                       input_cont_pe.get_st_matricula(),
                                       input_cont_pe.get_st_titularidade()))
            {
                output_st_msg = "Cartão inexistente";
                var_codResp   = "0606";
                return(false);
            }

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

            // ## Verifica bloqueio

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

            if (cart.get_tg_emitido() != StatusExpedicao.Expedido)
            {
                output_st_msg = "Cartão inválido";
                var_codResp   = "0505";
                return(false);
            }

            if (cart.get_tg_tipoCartao() == TipoCartao.educacional)
            {
                // ## No caso educacional, permitir somente venda
                // ## em uma parcela

                if (input_cont_pe.get_nu_parcelas().TrimStart('0') != "1")
                {
                    output_st_msg = "Somente uma parcela";
                    var_codResp   = "0606";
                    return(false);
                }
            }

            // ## Conferir vencto do cartão

            /*
             * if ( cart.get_tg_tipoCartao() == TipoCartao.empresarial )
             * {
             *      int year  = 2000 + Convert.ToInt32 ( cart.get_st_venctoCartao().Substring ( 2,2 ) );
             *      int month = Convert.ToInt32 ( cart.get_st_venctoCartao().Substring ( 0,2 ) );
             *      int day   = 1;
             *
             * DateTime tim_venc = new DateTime ( year, month, day );
             *
             * if ( tim_venc < DateTime.Now )
             *      {
             * output_st_msg     = "Cartão vencido";
             * var_codResp       = "7676";
             * return false;
             *      }
             * }
             */

            #endregion

            var_vr_total    = input_cont_pe.get_vr_valor();
            var_nu_parcelas = input_cont_pe.get_nu_parcelas();

            SQL_LOGGING_ENABLE = false;

            // continua igual

            #region - Verifica disponivel mensal nas parcelas -

            T_Parcelas parc = new T_Parcelas(this);

            string myId = cart.get_identity();

            if (cart.get_st_titularidade() != "01")
            {
                cart.select_rows_tudo(cart.get_st_empresa(),
                                      cart.get_st_matricula(),
                                      "01");
                cart.fetch();
            }

            vr_dispMes = cart.get_int_vr_limiteMensal() + cart.get_int_vr_extraCota();
            vr_dispTot = cart.get_int_vr_limiteTotal() + cart.get_int_vr_extraCota();

            vr_valor = Convert.ToInt64(input_cont_pe.get_vr_valor());

            if (cart.get_tg_tipoCartao() != TipoCartao.presente)
            {
                new ApplicationUtil().GetSaldoDisponivel(ref cart, ref vr_dispMes, ref vr_dispTot);

                int tmp_nu_parc = Convert.ToInt32(input_cont_pe.get_nu_parcelas());

                if (tmp_nu_parc > 1)
                {
                    if (vr_valor > vr_dispTot)
                    {
                        output_st_msg = "limite excedido";
                        var_codResp   = "2727";

                        SQL_LOGGING_ENABLE = true;

                        return(false);
                    }

                    LOG_Transacoes ltr     = new LOG_Transacoes(this);
                    T_Parcelas     parcTot = new T_Parcelas(this);

                    string tmp = input_cont_pe.get_st_valores();

                    ArrayList lstCartoes = new ArrayList();

                    T_Cartao c_t = new T_Cartao(this);

                    c_t.select_rows_empresa_matricula(cart.get_st_empresa(),
                                                      cart.get_st_matricula());

                    while (c_t.fetch())
                    {
                        lstCartoes.Add(c_t.get_identity());
                    }

                    for (int t = 1, index_pos = 0; t <= tmp_nu_parc; ++t)
                    {
                        long valor_unit_parc = Convert.ToInt64(tmp.Substring(index_pos, 12));

                        index_pos += 12;

                        if (valor_unit_parc > cart.get_int_vr_limiteMensal())
                        {
                            output_st_msg = "limite excedido";
                            var_codResp   = "2727";

                            SQL_LOGGING_ENABLE = true;

                            return(false);
                        }

                        long dispMesParc = cart.get_int_vr_limiteMensal();

                        // Verifica disponivel mensal nas parcelas
                        if (parcTot.select_rows_cartao_mensal(ref lstCartoes, t.ToString()))                              // este mês
                        {
                            while (parcTot.fetch())
                            {
                                if (ltr.selectIdentity(parcTot.get_fk_log_transacoes()))                                      // busca transação
                                {
                                    if (ltr.get_tg_confirmada() == TipoConfirmacao.Confirmada ||
                                        ltr.get_tg_confirmada() == TipoConfirmacao.Pendente)
                                    {
                                        dispMesParc -= parcTot.get_int_vr_valor();
                                    }
                                }
                            }
                        }

                        if (valor_unit_parc > dispMesParc)
                        {
                            output_st_msg = "limite excedido";
                            var_codResp   = "2727";

                            SQL_LOGGING_ENABLE = true;

                            return(false);
                        }
                    }
                }
                else
                {
                    if (vr_valor > vr_dispMes || vr_valor > vr_dispTot)
                    {
                        output_st_msg = "limite excedido";
                        var_codResp   = "2727";

                        SQL_LOGGING_ENABLE = true;

                        return(false);
                    }
                }
            }
            else
            {
                if (vr_valor > cart.get_int_vr_limiteTotal())
                {
                    output_st_msg = "limite excedido";
                    var_codResp   = "2727";

                    SQL_LOGGING_ENABLE = true;

                    return(false);
                }
            }

            if (myId != cart.get_identity())
            {
                // restaurar cartão dep
                cart.selectIdentity(myId);
            }

            #endregion

            SQL_LOGGING_ENABLE = true;

            /// USER [ authenticate ] END

            Registry("authenticate done exec_pos_vendaEmpresarialSITEF ");

            return(true);
        }
Exemplo n.º 15
0
        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( )
        {
            Registry("execute exec_pos_vendaEmpresarialSITEF ");

            /// USER [ execute ]

            #region - atualizar senhas -

            cart.ExclusiveAccess();

            if (!cart.selectIdentity(cart.get_identity()))
            {
                output_st_msg = "Erro aplicativo";
                return(false);
            }

            if (!prot.selectIdentity(cart.get_fk_dadosProprietario()))
            {
                output_st_msg = "Erro aplicativo";
                return(false);
            }

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

                if (!dep.select_rows_prop_tit(cart.get_fk_dadosProprietario(), cart.get_st_titularidade()))
                {
                    output_st_msg = "Erro aplicativo";
                    return(false);
                }

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

                var_nomeCliente = dep.get_st_nome();
            }
            else
            {
                var_nomeCliente = prot.get_st_nome();
            }

            if (IsDigitado)
            {
                string cod_acesso = new ApplicationUtil().calculaCodigoAcesso(cart.get_st_empresa(),
                                                                              cart.get_st_matricula(),
                                                                              cart.get_st_titularidade(),
                                                                              cart.get_nu_viaCartao(),
                                                                              prot.get_st_cpf());

                Trace(cod_acesso);

                if (cod_acesso != input_cont_pe.get_st_senha())
                {
                    output_st_msg = "Senha inválida";
                    var_codResp   = "4343";
                    return(false);
                }
            }
            else
            {
                if (cart.get_st_senha() != input_cont_pe.get_st_senha())
                {
                    long senhasErradas = cart.get_int_nu_senhaErrada() + 1;

                    cart.set_nu_senhaErrada(senhasErradas.ToString());

                    if (senhasErradas > 4)
                    {
                        cart.set_tg_status(CartaoStatus.Bloqueado);
                        cart.set_tg_motivoBloqueio(MotivoBloqueio.SENHA_ERRADA);
                        cart.set_dt_bloqueio(GetDataBaseTime());
                    }

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

                    output_st_msg = "Senha inválida";
                    var_codResp   = "4343";
                    return(false);
                }
                else
                {
                    cart.set_nu_senhaErrada(Context.NONE);
                }
            }

            if (cart.get_tg_tipoCartao() == TipoCartao.presente)
            {
                cart.set_vr_limiteTotal(cart.get_int_vr_limiteTotal() - vr_valor);

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

            cart.ReleaseExclusive();

            #endregion

            #region - busca informações extras -

            if (!info.selectIdentity(cart.get_fk_infoAdicionais()))
            {
                output_st_msg = "Erro aplicativo";
                return(false);
            }

            #endregion

            #region - Faz efetivamente a venda -

            int tmp_nu_parc = Convert.ToInt32(input_cont_pe.get_nu_parcelas());
            int index_pos   = 0;

            string tmp_variavel = input_cont_pe.get_st_valores();

            if (tmp_variavel.Length < tmp_nu_parc * 12)
            {
                output_st_msg = "formato incorreto";
                return(false);
            }

            if (cart.get_tg_tipoCartao() != TipoCartao.presente)
            {
                if (tmp_nu_parc > emp.get_int_nu_parcelas())
                {
                    output_st_msg = "excede max. parcelas";
                    var_codResp   = "1212";
                    return(false);
                }
            }

            #region - obtem nsu -

            l_nsu.set_dt_log(GetDataBaseTime());

            if (!l_nsu.create_LOG_NSU())
            {
                output_st_msg = "Erro aplicativo";
                return(false);
            }

            #endregion

            var_nu_nsuAtual    = l_nsu.get_identity();
            var_nu_nsuEntidade = var_nu_nsuAtual;

            var_dt_transacao = GetDataBaseTime();

            // ## Criar parcelas

            for (int t = 1; t <= tmp_nu_parc; ++t)
            {
                T_Parcelas parc = new T_Parcelas(this);

                string valor_unit_parc = tmp_variavel.Substring(index_pos, 12);

                index_pos += 12;

                #region - atribui valores e links à parcela -

                parc.set_nu_nsu(l_nsu.get_identity());
                parc.set_fk_empresa(emp.get_identity());
                parc.set_fk_cartao(cart.get_identity());
                parc.set_dt_inclusao(var_dt_transacao);
                parc.set_nu_parcela(t.ToString());
                parc.set_vr_valor(valor_unit_parc);
                parc.set_nu_indice(t.ToString());
                parc.set_tg_pago(TipoParcela.EM_ABERTO);
                parc.set_fk_loja(loj.get_identity());
                parc.set_nu_tot_parcelas(tmp_nu_parc.ToString());
                parc.set_fk_terminal(term.get_identity());

                #endregion

                if (!parc.create_T_Parcelas())
                {
                    output_st_msg = "erro aplicativo";
                    return(false);
                }

                lstParcs.Add(parc.get_identity());
            }

            #endregion

            var_codResp = "0000";

            /// USER [ execute ] END

            Registry("execute done exec_pos_vendaEmpresarialSITEF ");

            return(true);
        }
        public override bool execute( )
        {
            Registry("execute fetch_consultaLojistaRep ");

            /// USER [ execute ]

            T_Loja loj = new T_Loja(this);

            if (!loj.select_rows_loja(input_cnpj))
            {
                PublishError("Cnpj não disponível");
                return(false);
            }

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

            if (loj.get_st_senha() != input_pass)
            {
                PublishError("Senha inválida");
                return(false);
            }

            T_Empresa emp = new T_Empresa(this);

            if (!emp.select_rows_empresa(input_empresa.PadLeft(6, '0')))
            {
                PublishError("Empresa não disponível");
                return(false);
            }

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

            LINK_LojaEmpresa lje = new LINK_LojaEmpresa(this);

            if (!lje.select_fk_empresa_loja(emp.get_identity(), loj.get_identity()))
            {
                PublishError("Loja não conveniada com associação");
                return(false);
            }

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

            double tx = lje.get_int_tx_admin();

            T_Cartao       cart = new T_Cartao(this);
            T_Parcelas     parc = new T_Parcelas(this);
            LOG_Transacoes ltr  = new LOG_Transacoes(this);
            LOG_Fechamento lf   = new LOG_Fechamento(this);

            StringBuilder sb = new StringBuilder();

            if (lf.select_rows_mes_ano(input_mes.PadLeft(2, '0'),
                                       input_ano.PadLeft(2, '0'),
                                       emp.get_identity()))
            {
                if (lf.RowCount() > 0)
                {
                    while (lf.fetch())
                    {
                        if (lf.get_fk_loja() != loj.get_identity())
                        {
                            continue;
                        }

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

                        if (!ltr.selectIdentity(parc.get_fk_log_transacoes()))
                        {
                            return(false);
                        }

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

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

                        DadosConsultaTransacao dct = new DadosConsultaTransacao();

                        dct.set_dt_transacao(ltr.get_dt_transacao());
                        dct.set_st_nsu(ltr.get_nu_nsu());
                        dct.set_nu_parcelas(parc.get_nu_indice());

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

                        dct.set_vr_valor(ltr.get_vr_total());

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

                        dct.set_vr_repasse(repasse.ToString());

                        DataPortable tmp = dct as DataPortable;

                        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);

            output_st_content = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_consultaLojistaRep ");

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

            Registry("execute exec_repasseLoja ");

            /// USER [ execute ]

            loj = new T_Loja(this);

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

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

            T_RepasseLoja rl = new T_RepasseLoja(this);

            rl.set_dt_efetiva(GetDataBaseTime());
            rl.set_fk_loja(loj.get_identity());
            rl.set_st_ident(input_st_ident);
            rl.set_tg_opcao(input_tg_opcao);
            rl.set_vr_valor(input_vr_valor);

            if (!rl.create_T_RepasseLoja())
            {
                return(false);
            }

            output_id_confRepasse = rl.get_identity();

            LINK_RepasseParcela lrp = new LINK_RepasseParcela(this);

            T_Parcelas parc = new T_Parcelas(this);

            for (int t = 0; t < input_array_generic_lstPar.Count; ++t)
            {
                DadosRepasse dr = new DadosRepasse(input_array_generic_lstPar[t] as DataPortable);

                if (dr.get_tg_confirmado() == Context.FALSE)
                {
                    continue;
                }

                parc.ExclusiveAccess();

                if (!parc.selectIdentity(dr.get_id_parcela()))
                {
                    return(false);
                }

                // esta parcela foi repassada
                parc.set_tg_pago(Context.TRUE);

                if (!parc.synchronize_T_Parcelas())
                {
                    return(false);
                }

                parc.ReleaseExclusive();

                lrp.set_fk_parcela(parc.get_identity());
                lrp.set_fk_repasseLoja(rl.get_identity());

                if (!lrp.create_LINK_RepasseParcela())
                {
                    return(false);
                }
            }

            PublishNote("Repasse feito com sucesso");

            /// USER [ execute ] END

            Registry("execute done exec_repasseLoja ");

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

            Registry("execute fetch_repasseData ");

            /// USER [ execute ]

            DateTime t_start = Convert.ToDateTime(input_dt_ini);
            DateTime t_end   = t_start.AddDays(1);

            Hashtable hshLojas = new Hashtable();

            ArrayList lstEmpresas = new ArrayList();

            // ## Busca empresa

            T_Empresa emp      = new T_Empresa(this);
            T_Empresa emp_link = new T_Empresa(this);

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

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

            lstEmpresas.Add(emp.get_identity());

            if (emp_link.select_fk_admin(emp.get_identity()))
            {
                while (emp_link.fetch())
                {
                    lstEmpresas.Add(emp_link.get_identity());
                }
            }

            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

            // ## Busca convenios

            if (!loj_emp.select_rows_empresas(ref lstEmpresas))
            {
                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);
            T_Parcelas     parc = new T_Parcelas(this);

            StringBuilder sb       = new StringBuilder();
            StringBuilder sb_lojas = new StringBuilder();

            while (loj_emp.fetch())
            {
                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 repasse    = 0,
                     total_loja = 0;

                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);
                        }

                        DadosRepasse dr = new DadosRepasse();

                        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());

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

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

                        dr.set_dt_trans(parc.get_dt_inclusao());

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

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

                        dr.set_vr_repasse(repasse.ToString());
                        dr.set_id_parcela(parc.get_identity());

                        DateTime tm_rep = Convert.ToDateTime(dr.get_dt_repasse());

                        dr.set_tg_confirmado(Context.TRUE);

                        if (tm_rep <= t_start)
                        {
                            total_loja += repasse;
                        }
                        else if (tm_rep <= t_end)
                        {
                            total_loja += repasse;
                        }

                        // salva registro do detalhe
                        {
                            DataPortable mem = dr as DataPortable;

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

                // salva registro da loja
                if (total_loja > 0)
                {
                    DadosSumarioRepasse dsr = new DadosSumarioRepasse();

                    dsr.set_st_loja("(" + loj.get_st_loja() + ") " + loj.get_st_nome() + " - " + loj.get_st_social());
                    dsr.set_st_codLoja(loj.get_st_loja());
                    dsr.set_vr_valor(total_loja.ToString());

                    DataPortable mem = dsr as DataPortable;

                    sb_lojas.Append(MemorySave(ref mem));
                    sb_lojas.Append(",");
                }
            }

            // ## Guarda indexador de grupo dos detalhes
            {
                string list_ids = sb.ToString().TrimEnd(',');

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

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                output_block_detalhe_loja = MemorySave(ref dp);
            }

            // ## Guarda indexador de grupo de sumario das lojas
            {
                string list_ids = sb_lojas.ToString().TrimEnd(',');

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

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                output_block_sumario_loja = MemorySave(ref dp);
            }

            /// USER [ execute ] END

            Registry("execute done fetch_repasseData ");

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

            Registry("execute fetch_rel_dirCont ");

            /// USER [ execute ]

            T_Empresa emp = new T_Empresa(this);

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

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

            output_st_nome_empresa = emp.get_st_fantasia();

            StringBuilder sb_content = new StringBuilder();

            {
                DadosContabilGift dcg = new DadosContabilGift();

                dcg.set_st_item("Quant. Cartões Cancelados");

                T_Cartao cart = new T_Cartao(this);

                cart.SetCountMode();

                cart.select_rows_canc(input_cont_header.get_st_empresa(),
                                      input_dt_ini,
                                      input_dt_fim,
                                      MotivoBloqueio.CANCELAMENTO,
                                      TipoCartao.presente,
                                      CartaoStatus.Bloqueado);

                dcg.set_nu_valor(cart.GetCount().ToString());

                Trace(dcg.get_st_item());
                Trace(dcg.get_nu_valor());

                DataPortable port = dcg;

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

            {
                DadosContabilGift dcg = new DadosContabilGift();

                dcg.set_st_item("Quant. Recargas");

                LOG_VendaCartaoGift lvc = new LOG_VendaCartaoGift(this);

                lvc.SetCountMode();

                lvc.select_rows_cargas(input_dt_ini,
                                       input_dt_fim,
                                       emp.get_identity(),
                                       Context.FALSE);

                dcg.set_nu_valor(lvc.GetCount().ToString());

                Trace(dcg.get_st_item());
                Trace(dcg.get_nu_valor());

                DataPortable port = dcg;

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

            long vendidos = 0;

            {
                DadosContabilGift dcg = new DadosContabilGift();

                dcg.set_st_item("Quant. Cartões Vendidos");

                LOG_VendaCartaoGift lvc = new LOG_VendaCartaoGift(this);

                lvc.SetCountMode();

                lvc.select_rows_cargas(input_dt_ini,
                                       input_dt_fim,
                                       emp.get_identity(),
                                       Context.TRUE);


                vendidos = lvc.GetCount();

                dcg.set_nu_valor(vendidos.ToString());

                Trace(dcg.get_st_item());
                Trace(dcg.get_nu_valor());

                DataPortable port = dcg;

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

            long disp = 0;

            {
                DadosContabilGift dcg = new DadosContabilGift();

                dcg.set_st_item("Saldo Anterior");

                T_Cartao cart = new T_Cartao(this);

                cart.SetCountMode();

                cart.select_rows_gift_disp(Context.NONE, TipoCartao.presente);

                disp = cart.GetCount();

                long anterior = vendidos + cart.GetCount();

                dcg.set_nu_valor(anterior.ToString());

                DataPortable port = dcg;

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

            {
                DadosContabilGift dcg = new DadosContabilGift();

                dcg.set_st_item("Saldo Atual");
                dcg.set_nu_valor(disp.ToString());

                DataPortable port = dcg;

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

            long novo_cartao_carga = 0;
            long cartao_recarga    = 0;

            long tarifa_novo_cartao_carga = 0;
            long tarifa_cartao_recarga    = 0;

            {
                DadosContabilGift dcg = new DadosContabilGift();

                dcg.set_st_item("Movimento do dia");
                dcg.set_nu_valor("0");

                LOG_VendaCartaoGift lvc = new LOG_VendaCartaoGift(this);

                T_ExtraGift eGift = new T_ExtraGift(this);

                eGift.selectAll();
                eGift.fetch();

                long vr_valor  = 0;
                long tx_adesao = eGift.get_int_vr_valor();

                eGift.fetch();

                long tx_recarga = eGift.get_int_vr_valor();

                // novo cartão
                lvc.select_rows_cargas(input_dt_ini,
                                       input_dt_fim,
                                       emp.get_identity(),
                                       Context.TRUE);

                long qtd_novo_cartao_carga = lvc.RowCount();

                while (lvc.fetch())
                {
                    novo_cartao_carga += lvc.get_int_vr_carga();
                }

                tarifa_novo_cartao_carga = qtd_novo_cartao_carga * tx_adesao;

                vr_valor += novo_cartao_carga + tarifa_novo_cartao_carga;

                lvc.Reset();

                // recargas
                if (lvc.select_rows_cargas(input_dt_ini,
                                           input_dt_fim,
                                           emp.get_identity(),
                                           Context.FALSE))
                {
                    long qtd_cartao_recarga = lvc.RowCount();

                    while (lvc.fetch())
                    {
                        cartao_recarga += lvc.get_int_vr_carga();
                    }

                    tarifa_cartao_recarga = qtd_cartao_recarga * tx_recarga;

                    vr_valor += cartao_recarga + tarifa_cartao_recarga;
                }

                dcg.set_nu_valor("R$ " + new money().formatToMoney(vr_valor.ToString()));

                DataPortable port = dcg;

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

            output_cont_dsc.set_vr_tot_carga((cartao_recarga + novo_cartao_carga).ToString());
            output_cont_dsc.set_vr_tot_tarifa((tarifa_cartao_recarga + tarifa_novo_cartao_carga).ToString());

            long tot_compras = 0;
            long tot_taxa    = 0;
            long tot_repasse = 0;

            {
                T_Parcelas       parc    = new T_Parcelas(this);
                LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

                // busca parcelas da empresa no dia
                if (parc.select_rows_empresa_gift(emp.get_identity(), input_dt_ini, input_dt_fim))
                {
                    while (parc.fetch())
                    {
                        // busca convenio
                        if (!loj_emp.select_fk_empresa_loja(emp.get_identity(), parc.get_fk_loja()))
                        {
                            return(false);
                        }

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

                        double tx = loj_emp.get_int_tx_admin();

                        long taxa = Convert.ToInt64(parc.get_int_vr_valor() * tx / 10000);

                        tot_compras += parc.get_int_vr_valor();
                        tot_taxa    += taxa;
                        tot_repasse += Convert.ToInt64(parc.get_int_vr_valor() - taxa);
                    }
                }
            }

            output_cont_dsc.set_vr_tot_compras(tot_compras.ToString());
            output_cont_dsc.set_vr_tot_tx(tot_taxa.ToString());
            output_cont_dsc.set_vr_tot_repasse(tot_repasse.ToString());

            // indexa todos os items
            {
                string list_ids = sb_content.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_contents = MemorySave(ref dp);
            }

            /// USER [ execute ] END

            Registry("execute done fetch_rel_dirCont ");

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

            Registry("execute fetch_rel_residuo_gift ");

            /// USER [ execute ]

            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);
            }

            output_st_nome_empresa = emp.get_st_fantasia();

            T_Cartao       cart = new T_Cartao(this);
            T_Proprietario prot = new T_Proprietario(this);
            T_Parcelas     parc = new T_Parcelas(this);

            StringBuilder sb = new StringBuilder();

            LOG_VendaCartaoGift lvc = new LOG_VendaCartaoGift(this);

            if (cart.select_rows_emp_valor(input_st_empresa))
            {
                while (cart.fetch())
                {
                    if (cart.get_tg_tipoCartao() != TipoCartao.presente)
                    {
                        continue;
                    }

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

                    if (cart.get_int_vr_limiteTotal() == 0)
                    {
                        continue;
                    }

                    if (cart.get_tg_status() == CartaoStatus.Bloqueado)
                    {
                        continue;
                    }

                    DadosCartao dc = new DadosCartao();

                    dc.set_st_matricula(cart.get_st_matricula());
                    dc.set_st_proprietario(prot.get_st_nome());
                    dc.set_vr_limiteTotal(cart.get_vr_limiteTotal());

                    parc.SetReversedFetch();

                    if (parc.select_rows_ult_compra(cart.get_identity()))
                    {
                        if (!parc.fetch())
                        {
                            continue;
                        }

                        dc.set_dt_ultUso(parc.get_dt_inclusao());
                    }

                    lvc.SetReversedFetch();

                    if (lvc.select_fk_cart(cart.get_identity()))
                    {
                        if (!lvc.fetch())
                        {
                            continue;
                        }

                        dc.set_dt_ultCarga(lvc.get_dt_compra());
                        dc.set_vr_extraCota(lvc.get_vr_carga());
                    }
                    else
                    {
                        dc.set_vr_extraCota("0");
                    }

                    DataPortable port = dc as DataPortable;

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

            DataPortable port_ids = new DataPortable();

            port_ids.setValue("ids", sb.ToString().TrimEnd(','));

            output_st_block = MemorySave(ref port_ids);

            /// USER [ execute ] END

            Registry("execute done fetch_rel_residuo_gift ");

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

            Registry("execute fetch_dadosCartao ");

            /// USER [ execute ]

            T_Cartao cart = new T_Cartao(this);

            // ## Busca cartão específico

            if (!cart.select_rows_tudo(input_st_cart_empresa,
                                       input_st_cart_mat,
                                       input_st_cart_tit))
            {
                PublishError("Cartão inexistente");
                return(false);
            }

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

            // ## Busca proprietário

            T_Proprietario prot = new T_Proprietario(this);

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

            // ## Obter nome

            if (cart.get_tg_tipoCartao() == TipoCartao.educacional)
            {
                output_st_nome = cart.get_st_aluno();
            }
            else
            {
                output_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_st_nome = dep_f.get_st_nome();
                    }
                }
            }

            if (cart.get_tg_tipoCartao() != TipoCartao.presente)
            {
                // ## Conferir parcelas

                T_Parcelas parc = new T_Parcelas(this);

                long vr_limMes = cart.get_int_vr_limiteMensal();
                long vr_limTot = cart.get_int_vr_limiteTotal() + cart.get_int_vr_extraCota();

                // ## Obter saldo disponivel

                new ApplicationUtil().GetSaldoDisponivel(ref cart, ref vr_limMes, ref vr_limTot);

                output_vr_dispMes   = vr_limMes.ToString();
                output_vr_dispTotal = vr_limTot.ToString();

                // ## Obter empresa

                T_Empresa emp = new T_Empresa(this);

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

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

                // ## informar max de parcelas

                output_nu_maxParcelas = emp.get_nu_parcelas();
            }
            else
            {
                output_vr_dispTotal = cart.get_vr_limiteTotal();
            }

            /// USER [ execute ] END

            Registry("execute done fetch_dadosCartao ");

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

            Registry("execute fetch_rel_repEfetivo ");

            /// USER [ execute ]

            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);
            }

            output_st_nome_empresa = emp.get_st_fantasia();

            T_RepasseLoja repLoja = new T_RepasseLoja(this);

            if (!repLoja.select_rows_dt(input_dt_ini, input_dt_fim))
            {
                PublishError("Nenhum repasse encontrado");
                return(false);
            }

            LINK_RepasseParcela lrp     = new LINK_RepasseParcela(this);
            LINK_LojaEmpresa    loj_emp = new LINK_LojaEmpresa(this);
            T_Loja     loj  = new T_Loja(this);
            T_Parcelas parc = new T_Parcelas(this);
            T_Cartao   cart = new T_Cartao(this);

            StringBuilder sb_lojas        = new StringBuilder();
            StringBuilder sb_content      = new StringBuilder();
            StringBuilder sb_contentPagto = new StringBuilder();

            string id_rep_loja = "";

            while (repLoja.fetch())
            {
                if (!loj.selectIdentity(repLoja.get_fk_loja()))
                {
                    return(false);
                }

                if (input_st_loja.Length > 0)
                {
                    if (loj.get_st_loja() != input_st_loja)
                    {
                        continue;
                    }
                }

                if (!loj_emp.select_fk_empresa_loja(emp.get_identity(), loj.get_identity()))
                {
                    return(false);
                }

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

                // obtenho identificação geral deste pagto
                id_rep_loja = loj.get_st_nome() + " [" + loj.get_st_loja() + "] Perc.: " + ((double)loj_emp.get_int_tx_admin() / 100).ToString().Replace(",", ".") + "% <br>Data Repasse: " + repLoja.get_dt_efetiva();

                sb_lojas.Append(id_rep_loja);
                sb_lojas.Append(",");

                double tx = loj_emp.get_int_tx_admin();

                DadosPagtoRepasse dpr = new DadosPagtoRepasse();

                dpr.set_st_loja(id_rep_loja);
                dpr.set_vr_valor(repLoja.get_vr_valor());
                dpr.set_tg_opcao(repLoja.get_tg_opcao());
                dpr.set_dt_pagto(repLoja.get_dt_efetiva());

                if (repLoja.get_tg_opcao() != TipoPagamento.Cheque &&
                    repLoja.get_tg_opcao() != TipoPagamento.Dinheiro)
                {
                    // valor em depósito
                    dpr.set_st_extra("Banco (" + loj_emp.get_st_banco() +
                                     ") Agência (" + loj_emp.get_st_ag() +
                                     ") Conta (" + loj_emp.get_st_conta() + ")");
                }
                else
                {
                    dpr.set_st_extra(repLoja.get_st_ident());
                }

                // index em memoria, retrieve depois
                {
                    DataPortable port = dpr;

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

                // busco detalhes

                if (!lrp.select_fk_rep(repLoja.get_identity()))
                {
                    return(false);
                }

                while (lrp.fetch())
                {
                    if (!parc.selectIdentity(lrp.get_fk_parcela()))
                    {
                        return(false);
                    }

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

                    DadosRepasse dr = new DadosRepasse();

                    dr.set_st_loja(id_rep_loja);

                    dr.set_st_nsu(parc.get_nu_nsu());
                    dr.set_dt_trans(parc.get_dt_inclusao());
                    dr.set_st_cartao(cart.get_st_empresa() + "." +
                                     cart.get_st_matricula() + "." +
                                     cart.get_st_titularidade());

                    long det_tot = Convert.ToInt64(parc.get_int_vr_valor() - (parc.get_int_vr_valor() * tx / 10000));

                    dr.set_vr_repasse(det_tot.ToString());
                    dr.set_vr_total(parc.get_vr_valor());

                    // index em memoria, retrieve depois
                    {
                        DataPortable port = dr;

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

            output_st_csv_lojas = sb_lojas.ToString().TrimEnd(',');

            // indexa todos os items
            {
                string list_ids = sb_content.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_contents = MemorySave(ref dp);
            }

            // indexa todos os pagamentos
            {
                string list_ids = sb_contentPagto.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_pagto = MemorySave(ref dp);
            }

            /// USER [ execute ] END

            Registry("execute done fetch_rel_repEfetivo ");

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

            Registry("execute fetch_rel_5_rle ");

            /// USER [ execute ]


            // # Disabilita escrita em disco
            // # AVISO: somente por motivos de performance
            // # Somente recomendado para relatórios em produção

            SQL_LOGGING_ENABLE = false;

            StringBuilder sb = new StringBuilder();

            Hashtable hsh_loja_confirmada = new Hashtable();
            Hashtable hsh_loja_cancelada  = new Hashtable();

            Hashtable hsh_loja = new Hashtable();             // guarda se container foi gerado
            ArrayList tmp_loja = new ArrayList();             // lista de  lojas

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

            LINK_LojaEmpresa link = new LINK_LojaEmpresa(this);
            T_Cartao         cart = new T_Cartao(this);

            string id = "";

            // # Busca todos os convênios de uma empresa

            if (link.select_fk_empresa_geral(emp.get_identity()))
            {
                while (link.fetch())
                {
                    loj.Reset();

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

                    id = loj.get_identity();

                    #region - identifico a loja -

                    if (hsh_loja [id] == null)
                    {
                        DadosLoja dl = new DadosLoja();

                        dl.set_st_loja(id);
                        dl.set_st_nome("(" + loj.get_st_loja() + ") " + loj.get_st_nome());

                        output_array_generic_lstLojas.Add(dl);

                        tmp_loja.Add(id);
                        hsh_loja [id] = 1;
                    }

                    #endregion

                    if (!l_tr.select_rows_dt_loj(input_st_dt_ini,
                                                 input_st_dt_fim,
                                                 id))
                    {
                        continue;
                    }

                    T_Parcelas parc = new T_Parcelas(this);

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

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

                        #region - contabiliza -

                        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_loja_confirmada [id] == null)
                                {
                                    vr_sub_confirmada = (long)0;
                                }
                                else
                                {
                                    vr_sub_confirmada = (long)hsh_loja_confirmada [id];
                                }

                                vr_tot_confirmada += cur_val;

                                hsh_loja_confirmada [id] = vr_sub_confirmada + cur_val;
                            }
                            else if (l_tr.get_tg_confirmada() == TipoConfirmacao.Cancelada)
                            {
                                if (hsh_loja_cancelada [id] == null)
                                {
                                    vr_sub_cancelada = (long)0;
                                }
                                else
                                {
                                    vr_sub_cancelada = (long)hsh_loja_cancelada [id];
                                }

                                vr_tot_cancelada += cur_val;

                                hsh_loja_cancelada [id] = vr_sub_cancelada + cur_val;
                            }
                        }

                        #endregion

                        Rel_RLE rle = new Rel_RLE();

                        #region - atribui ao container -

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

                        rle.set_st_nsu(l_tr.get_nu_nsu());
                        rle.set_vr_total(l_tr.get_vr_total());
                        rle.set_nu_parc(l_tr.get_nu_parcelas());

                        if (parc.select_fk_log_trans(l_tr.get_identity()))
                        {
                            if (parc.fetch())
                            {
                                rle.set_st_nsu(l_tr.get_nu_nsu());
                            }
                        }

                        rle.set_dt_trans(l_tr.get_dt_transacao());
                        rle.set_tg_status(l_tr.get_tg_confirmada());
                        rle.set_st_motivo(l_tr.get_st_msg_transacao());
                        rle.set_en_op_cartao(l_tr.get_en_operacao());
                        rle.set_st_loja(id);

                        #endregion

                        DataPortable mem_rle = rle as DataPortable;

                        // # Guarda registro

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

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

                DataPortable dp = new DataPortable();

                dp.setValue("ids", list_ids);

                // # Guarda todos os registros

                output_st_csv = MemorySave(ref dp);

                #region - calcula totais -

                long value_sub = 0;

                for (int t = 0; t < tmp_loja.Count; ++t)
                {
                    id = tmp_loja[t] as string;

                    if (hsh_loja_confirmada [id] == null)
                    {
                        hsh_loja_confirmada [id] = (long)0;
                    }
                    if (hsh_loja_cancelada  [id] == null)
                    {
                        hsh_loja_cancelada  [id] = (long)0;
                    }

                    value_sub = (long)hsh_loja_confirmada [id];

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

                    value_sub = (long)hsh_loja_cancelada [id];

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

                #endregion

                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_5_rle ");

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

            Registry("execute fetch_rel_prevLojista ");

            /// USER [ execute ]

            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);
            }

            T_Loja loj = new T_Loja(this);

            if (!loj.select_rows_loja(input_cont_header.get_st_empresa().TrimStart('0')))
            {
                return(false);
            }

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

            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);

            if (!loj_emp.select_fk_empresa_loja(emp.get_identity(),
                                                loj.get_identity()))
            {
                PublishError("Loja não conveniada com empresa");
                return(false);
            }

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

            double tx = loj_emp.get_int_tx_admin();

            T_Parcelas     parc = new T_Parcelas(this);
            T_Cartao       cart = new T_Cartao(this);
            LOG_Transacoes ltr  = new LOG_Transacoes(this);

            if (parc.select_rows_lojista_emp(loj.get_identity(),
                                             emp.get_identity(),
                                             "1"))
            {
                SQL_LOGGING_ENABLE = false;

                StringBuilder sb = new StringBuilder();

                while (parc.fetch())
                {
                    if (parc.get_tg_pago() == Context.TRUE)
                    {
                        continue;
                    }

                    if (!ltr.selectIdentity(parc.get_fk_log_transacoes()))
                    {
                        continue;
                    }

                    if (ltr.get_tg_confirmada() != TipoConfirmacao.Confirmada)
                    {
                        continue;
                    }

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

                    if (cart.get_st_empresa() != emp.get_st_empresa())
                    {
                        continue;
                    }

                    DadosRepasse dr = new DadosRepasse();

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

                    dr.set_st_nsu(parc.get_nu_nsu());
                    dr.set_dt_trans(parc.get_dt_inclusao());
                    dr.set_id_parcela(parc.get_nu_indice());
                    dr.set_vr_total(parc.get_vr_valor());

                    //DateTime t_rep = Convert.ToDateTime ( p

                    //dr.set_dt_repasse   (

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

                    dr.set_vr_repasse(repasse.ToString());

                    DataPortable mem_rtc = dr as DataPortable;

                    // ## obtem indice

                    sb.Append(MemorySave(ref mem_rtc));
                    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);

                SQL_LOGGING_ENABLE = true;
            }

            /// USER [ execute ] END

            Registry("execute done fetch_rel_prevLojista ");

            return(true);
        }
Exemplo n.º 27
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);
        }