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

            Registry("execute fetch_dadosLoja ");

            /// USER [ execute ]

            // ## Copia para saida

            output_cont_dl.set_st_loja(loj.get_st_loja());
            output_cont_dl.set_nu_CNPJ(loj.get_nu_CNPJ());
            output_cont_dl.set_st_nome(loj.get_st_nome());
            output_cont_dl.set_st_social(loj.get_st_social());
            output_cont_dl.set_st_endereco(loj.get_st_endereco());
            output_cont_dl.set_st_enderecoInst(loj.get_st_enderecoInst());
            output_cont_dl.set_nu_inscEst(loj.get_nu_inscEst());

            output_cont_dl.set_st_cidade(loj.get_st_cidade());
            output_cont_dl.set_st_estado(loj.get_st_estado());
            output_cont_dl.set_nu_CEP(loj.get_nu_CEP());
            output_cont_dl.set_nu_telefone(loj.get_nu_telefone());
            output_cont_dl.set_nu_fax(loj.get_nu_fax());
            output_cont_dl.set_st_contato(loj.get_st_contato());
            output_cont_dl.set_vr_mensalidade(loj.get_vr_mensalidade());
            output_cont_dl.set_nu_contaDeb(loj.get_nu_contaDeb());
            output_cont_dl.set_st_obs(loj.get_st_obs());

            output_cont_dl.set_nu_pctValor(loj.get_nu_pctValor());
            output_cont_dl.set_vr_transacao(loj.get_vr_transacao());
            output_cont_dl.set_vr_minimo(loj.get_vr_minimo());
            output_cont_dl.set_nu_franquia(loj.get_nu_franquia());
            output_cont_dl.set_nu_periodoFat(loj.get_nu_periodoFat());
            output_cont_dl.set_nu_diavenc(loj.get_nu_diavenc());
            output_cont_dl.set_nu_bancoFat(loj.get_nu_bancoFat());
            output_cont_dl.set_tg_tipoCobranca(loj.get_tg_tipoCobranca());
            output_cont_dl.set_tg_blocked(loj.get_tg_blocked());
            output_cont_dl.set_tg_cancel(loj.get_tg_cancel());
            output_cont_dl.set_tg_isento(loj.get_tg_isentoFat());
            output_cont_dl.set_st_senhaWeb(loj.get_st_senha());

            LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this);
            T_Empresa        emp     = new T_Empresa(this);

            string convs = "";

            if (loj_emp.select_fk_loja(loj.get_identity()))
            {
                while (loj_emp.fetch())
                {
                    emp.selectIdentity(loj_emp.get_fk_empresa());

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

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

            /// USER [ execute ] END

            Registry("execute done fetch_dadosLoja ");

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

            Registry("execute fetch_arquivoFat ");

            /// USER [ execute ]

            T_Faturamento fat     = new T_Faturamento(this);
            T_Faturamento fat_upd = new T_Faturamento(this);

            if (!fat.select_rows_dt_venc(input_dia_venc_ini,
                                         input_dia_venc_fim,
                                         TipoSitFat.Pendente))
            {
                PublishError("Nenhum registro encontrado");
                return(false);
            }

            StringBuilder sb_content = new StringBuilder();

            T_Empresa emp = new T_Empresa(this);
            T_Loja    loj = new T_Loja(this);

            if (input_tg_debito == Context.FALSE)
            {
                #region - DOC -

                long seq           = 1;
                long vr_total_tits = 0;

                string cnpj   = "";
                string nome   = "";
                string end    = "";
                string cidade = "";
                string estado = "";
                string cep    = "";

                #region - HEADER -
                {
                    DataPortable port = new DataPortable();

                    string header = "01REMESSA" +
                                    " ".PadLeft(17, ' ') +
                                    Parametros.Cedente.PadLeft(12, '0') +
                                    " ".PadLeft(8, ' ') +
                                    Parametros.Empresa.PadRight(30, ' ') +
                                    "041BANRISUL" +
                                    " ".PadLeft(7, ' ') +
                                    DateTime.Now.Day.ToString("00") +
                                    DateTime.Now.Month.ToString("00") +
                                    (DateTime.Now.Year - 2000).ToString("00") +
                                    " ".PadLeft(294, ' ') +
                                    "000001";

                    port.setValue("line", header);

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

                while (fat.fetch())
                {
                    if (fat.get_fk_empresa() != Context.FALSE)
                    {
                        if (!emp.selectIdentity(fat.get_fk_empresa()))
                        {
                            return(false);
                        }

                        if (emp.get_tg_tipoCobranca() != TipoCobranca.Doc)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        if (!loj.selectIdentity(fat.get_fk_loja()))
                        {
                            return(false);
                        }

                        if (loj.get_tg_tipoCobranca() != TipoCobranca.Doc)
                        {
                            continue;
                        }
                    }

                    bool registroValido = true;

                    if (fat.get_int_vr_cobranca() < 500 && fat.get_int_vr_cobranca() > 0)
                    {
                        ins_despesa tr = new ins_despesa(this);

                        tr.input_cont_header = input_cont_header;

                        if (fat.get_fk_empresa() != Context.FALSE)
                        {
                            tr.input_st_codigo = emp.get_st_empresa();
                        }
                        else
                        {
                            tr.input_st_codigo = loj.get_st_loja();
                        }

                        tr.input_tg_desconto = Context.FALSE;
                        tr.input_vr_cobranca = fat.get_vr_cobranca();
                        tr.input_st_extra    = "Adiamento de cobrança";

                        tr.quiet = true;

                        tr.RunOnline();

                        registroValido = false;
                    }

                    if (fat.get_int_vr_cobranca() == 0)
                    {
                        registroValido = false;
                    }

                    if (registroValido)
                    {
                        seq++;

                        StringBuilder sb_line = new StringBuilder();

                        string dv = fat.get_dt_vencimento().Substring(8, 2) +                                   // dia
                                    fat.get_dt_vencimento().Substring(5, 2) +                                   // mes
                                    fat.get_dt_vencimento().Substring(2, 2);                                    // ano

                        vr_total_tits += fat.get_int_vr_cobranca() + 350;

                        if (fat.get_fk_empresa() != Context.FALSE)
                        {
                            nome   = emp.get_st_social().PadRight(35, ' ').Substring(0, 35);
                            end    = emp.get_st_endereco().PadRight(40, ' ').Substring(0, 40);
                            cnpj   = emp.get_nu_CNPJ().PadLeft(14, '0');
                            cidade = emp.get_st_cidade().PadRight(15, ' ').Substring(0, 15);
                            estado = emp.get_st_estado().PadRight(2, ' ');
                            cep    = emp.get_nu_CEP().PadRight(8, '0');
                        }
                        else
                        {
                            nome   = loj.get_st_social().PadRight(35, ' ').Substring(0, 35);
                            end    = loj.get_st_endereco().PadRight(40, ' ').Substring(0, 40);
                            cnpj   = loj.get_nu_CNPJ().PadLeft(14, '0');
                            cidade = loj.get_st_cidade().PadRight(15, ' ').Substring(0, 15);
                            estado = loj.get_st_estado().PadRight(2, ' ');
                            cep    = loj.get_nu_CEP().PadRight(8, '0');
                        }

                        sb_line.Append("1");
                        sb_line.Append("0".PadLeft(16, '0'));
                        sb_line.Append(Parametros.Cedente.PadLeft(12, '0'));
                        sb_line.Append("0".PadLeft(8, '0'));
                        sb_line.Append(fat.get_identity().PadRight(25, ' '));                                          // ??? Dados de retorno
                        sb_line.Append(" ".PadLeft(10, ' '));
                        sb_line.Append("Multa de 10% após vencto.".PadRight(32, ' '));                                 // Msg imp no bloqueto
                        sb_line.Append(" ".PadLeft(3, ' '));
                        sb_line.Append("1");                                                                           // tipo de carteira
                        sb_line.Append("01");                                                                          // código de ocorrência
                        sb_line.Append(fat.get_identity().ToString().PadRight(10, ' '));                               // seu numero
                        sb_line.Append(dv);                                                                            // dia vencimento
                        sb_line.Append(fat.get_vr_cobranca().PadLeft(13, '0'));
                        sb_line.Append("041");                                                                         // banco
                        sb_line.Append(" ".PadLeft(5, ' '));
                        sb_line.Append("06");                                                                          // cobrança escritural
                        sb_line.Append("N");                                                                           // aceite
                        sb_line.Append(DateTime.Now.Day.ToString("00"));
                        sb_line.Append(DateTime.Now.Month.ToString("00"));
                        sb_line.Append((DateTime.Now.Year - 2000).ToString("00"));
                        sb_line.Append("09");                                                                                                      // código de protesto! (09) protestar (15) devolver
                        sb_line.Append("  ");
                        sb_line.Append("0");                                                                                                       // codigo de mora (0) diario (1) mensal
                        sb_line.Append("0".PadLeft(12, '0'));                                                                                      // valor juros diario
                        sb_line.Append("0".PadLeft(6, '0'));                                                                                       // data desconto antecipado
                        sb_line.Append("0".PadLeft(13, '0'));                                                                                      // valor desconto
                        sb_line.Append("0".PadLeft(13, '0'));                                                                                      // valor iof
                        sb_line.Append("0".PadLeft(13, '0'));                                                                                      // abatimento
                        sb_line.Append("02");                                                                                                      // tipo de inscrição CNPJ
                        sb_line.Append(cnpj);
                        sb_line.Append(nome);
                        sb_line.Append(" ".PadLeft(5, ' '));
                        sb_line.Append(end);
                        sb_line.Append(" ".PadLeft(7, ' '));
                        sb_line.Append("0".PadLeft(3, '0'));
                        sb_line.Append("0".PadLeft(2, '0'));
                        sb_line.Append(cep);
                        sb_line.Append(cidade);
                        sb_line.Append(estado);
                        sb_line.Append("0".PadLeft(4, '0'));
                        sb_line.Append(" ");
                        sb_line.Append("0".PadLeft(13, '0'));
                        sb_line.Append("15");
                        sb_line.Append(" ".PadLeft(23, ' '));
                        sb_line.Append(seq.ToString().PadLeft(6, '0'));

                        DataPortable port = new DataPortable();

                        port.setValue("line", sb_line.ToString());

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

                    fat_upd.ExclusiveAccess();

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

                    if (registroValido)
                    {
                        fat_upd.set_tg_situacao(TipoSitFat.EmCobrança);
                    }
                    else
                    {
                        fat_upd.set_tg_situacao(TipoSitFat.PagoDoc);
                    }

                    if (!fat_upd.synchronize_T_Faturamento())
                    {
                        return(false);
                    }

                    fat_upd.ReleaseExclusive();
                }

                // ## TRAILER
                {
                    DataPortable port = new DataPortable();

                    string trailer = "9" +
                                     " ".PadLeft(26, ' ') +
                                     vr_total_tits.ToString().PadLeft(13, '0') +
                                     " ".PadLeft(354, ' ') +
                                     seq.ToString("000000");

                    port.setValue("line", trailer);

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

                #endregion
            }
            else
            {
                #region - DÉBITO EM CONTA -

                long seq           = 1;
                long vr_total_tits = 0;

                string conta_deb = "";
                string dt_venc   = "";

                LOG_NSA l_nsa = new LOG_NSA(this);

                l_nsa.set_dt_log(GetDataBaseTime());

                l_nsa.create_LOG_NSA();

                #region - HEADER -
                {
                    DataPortable port = new DataPortable();

                    string header = "A1" +
                                    Parametros.ConvenioDebConta +
                                    " ".PadLeft(15, ' ') +
                                    "Starfiche".PadRight(20, ' ') +
                                    "041BANRISUL".PadRight(23, ' ') +
                                    DateTime.Now.Year.ToString("0000") +
                                    DateTime.Now.Month.ToString("00") +
                                    DateTime.Now.Day.ToString("00") +
                                    l_nsa.get_identity().PadLeft(6, '0') +
                                    "04DEBITOAUTOMATICO".PadRight(69, ' ');

                    port.setValue("line", header);

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

                while (fat.fetch())
                {
                    if (fat.get_fk_empresa() != Context.FALSE)
                    {
                        if (!emp.selectIdentity(fat.get_fk_empresa()))
                        {
                            return(false);
                        }

                        if (emp.get_tg_tipoCobranca() == TipoCobranca.Doc)
                        {
                            continue;
                        }

                        if (emp.get_int_nu_bancoFat() != 41)
                        {
                            continue;
                        }

                        conta_deb = emp.get_nu_contaDeb();
                    }
                    else
                    {
                        if (!loj.selectIdentity(fat.get_fk_loja()))
                        {
                            return(false);
                        }

                        if (loj.get_tg_tipoCobranca() == TipoCobranca.Doc)
                        {
                            continue;
                        }

                        if (loj.get_int_nu_bancoFat() != 41)
                        {
                            continue;
                        }

                        conta_deb = loj.get_nu_contaDeb();
                    }

                    dt_venc = fat.get_dt_vencimento().Substring(0, 4) +
                              fat.get_dt_vencimento().Substring(5, 2) +
                              fat.get_dt_vencimento().Substring(8, 2);

                    vr_total_tits += fat.get_int_vr_cobranca();

                    StringBuilder sb_line = new StringBuilder();

                    sb_line.Append("E");
                    sb_line.Append(fat.get_identity().PadRight(25, ' '));
                    sb_line.Append(conta_deb.PadRight(14, ' '));
                    sb_line.Append(" ".PadRight(4, ' '));
                    sb_line.Append(dt_venc);
                    sb_line.Append(fat.get_vr_cobranca().PadLeft(15, '0'));
                    sb_line.Append("03");
                    sb_line.Append(fat.get_identity().PadRight(60, ' '));
                    sb_line.Append(" ".PadRight(20, ' '));
                    sb_line.Append("0");

                    DataPortable port = new DataPortable();

                    port.setValue("line", sb_line.ToString());

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

                    fat_upd.ExclusiveAccess();

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

                    fat_upd.set_tg_situacao(TipoSitFat.EmCobrança);

                    if (!fat_upd.synchronize_T_Faturamento())
                    {
                        return(false);
                    }

                    fat_upd.ReleaseExclusive();
                }

                #region - TRAILER -
                {
                    ++seq;

                    DataPortable port = new DataPortable();

                    string trailer = "Z" + seq.ToString().PadLeft(6, '0') +
                                     vr_total_tits.ToString().PadLeft(17, '0') +
                                     " ".PadLeft(126, ' ');

                    port.setValue("line", trailer);

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

                #endregion
            }

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

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

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            output_st_msg = MemorySave(ref dp);



            LOG_NS_FAT l_nsFat = new LOG_NS_FAT(this);

            l_nsFat.set_dt_log(GetDataBaseTime());

            l_nsFat.create_LOG_NS_FAT();

            output_nu_nsFat = l_nsFat.get_identity();


            // Limpa avisos do ins_despesa
            this.objection.Clear();

            /// USER [ execute ] END

            Registry("execute done fetch_arquivoFat ");

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

            Registry("execute fetch_consultaLoja ");

            /// USER [ execute ]

            T_Terminal term = new T_Terminal(this);

            // ## Obtem filtros da entrada

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

            long min_qtd = 0;

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

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

            Hashtable hshLojas = new Hashtable();

            #region - lojas para um determinado administrador -

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

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

                LINK_LojaEmpresa lnk = new LINK_LojaEmpresa(this);

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

            #endregion

            bool bNome = false;

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

            bool bCod = false;

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

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

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

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

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

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

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

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

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

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

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

                // ## Verifica qtd de terminais

                term.select_fk_loja(loj.get_identity());

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

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

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

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

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

                // ## Copia dados para memória

                DadosLoja dl = new DadosLoja();

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

                lstSortLojas.Add(id_loja);

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

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

                dl.set_nu_diasRep(loj_emp.get_nu_dias_repasse());

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

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

                string st_terms = " (";

                int terms = 0;

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

                    terms++;

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

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

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

                string convs = "";

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

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

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

                hshSortLojas [id_loja] = dl;
            }

            lstSortLojas.Sort();

            StringBuilder sb = new StringBuilder();

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

                DataPortable tmp = dl as DataPortable;

                // ## obtem indexador

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

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

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

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            // ## Obtem indexador geral

            output_st_csv_id = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_consultaLoja ");

            return(true);
        }