示例#1
0
        private void btGerarArquivo_Click(object sender, EventArgs e)
        {
            //try
            //{
            if (txAno.Text.Equals(""))
            {
                MessageBox.Show("Informe Ano de Processamento!");
                txAno.Focus();
                return;
            }

            if (txCodigoMunicipio.Text.Equals(""))
            {
                MessageBox.Show("Informe Código do Município!");
                txCodigoMunicipio.Focus();
                return;
            }

            if (txtCodUnidade.Text.Equals(""))
            {
                MessageBox.Show("Informe Código da Unidade!");
                txtCodUnidade.Focus();
                return;
            }



            #region Criação do arquivo

            // Variáveis de apoio
            String pathGerarArquivo = path + @"\ArquivosGerados";
            String nomeArquivo      = @"\IA-PA" + txAno.Text + FuncoesUteis.preencher(cbUnidadeGestora.SelectedValue.ToString(), "0", 0, 3)
                                      + txCodigoMunicipio.Text + "-"
                                      + getTipoArquivo()
                                      + "-" + Convert.ToDateTime(DateTime.Now.ToString()).ToString("ddMMyyyy") + ".txt";

            String nomeArquivoApoio = @"\IA-PA-APOIO-" + txAno.Text + FuncoesUteis.preencher(cbUnidadeGestora.SelectedValue.ToString(), "0", 0, 3)
                                      + txCodigoMunicipio.Text + "-"
                                      + getTipoArquivo()
                                      + "-" + Convert.ToDateTime(DateTime.Now.ToString()).ToString("ddMMyyyy") + ".txt";


            String linha    = "";
            Int16  contador = 1;


            // Verifica a existencia do diretorio TXT

            if (!Directory.Exists(pathGerarArquivo))
            {
                Directory.CreateDirectory(pathGerarArquivo);
            }


            StreamWriter arquivo = new StreamWriter(pathGerarArquivo + nomeArquivo);
            // StreamWriter arquivoApoio = new StreamWriter(pathGerarArquivo + nomeArquivoApoio);


            #endregion

            #region Header do arquivo

            linha = "000"
                    + FuncoesUteis.preencher(contador.ToString(), "0", 0, 10)
                    + " "
                    + txAno.Text
                    + txCodigoMunicipio.Text
                    + getTipoEsfera()
                    + " "
                    + txVersaoTCM.Text
                    + getTipoArquivo()
                    + DateTime.Now.Day.ToString().PadLeft(2, '0') + DateTime.Now.Month.ToString().PadLeft(2, '0') + DateTime.Now.Year.ToString()
                    + FuncoesUteis.preencher(" ", " ", 0, 20) // Codigo da declaração
                                                              //+ FuncoesUteis.preencher(" ", " ", 0, 20) // Codigo da declaração a retificar
                                                              //+ FuncoesUteis.preencher(txCNPJResponsavel.Text, "0", 0, 14) // CNPJ do orgao responsável pela declaração
                    + FuncoesUteis.preencher(" ", " ", 0, 100)
                    + FuncoesUteis.preencher(" ", " ", 0, 860)
                    + "*";
            arquivo.WriteLine(linha);

            #endregion

            #region Ordenador/Contador

            DataTable dados = contabilidade.getOrdenadores(cbUnidadeGestora.SelectedValue.ToString(), nomeBD_AUX, nomeBD_CPC);

            String cpfContador  = "";
            String cpfOrdenador = "";

            barraProgresso.Maximum = dados.Rows.Count;
            barraProgresso.Value   = 1;
            foreach (DataRow linhaDados in dados.Rows)
            {
                contador++;
                linha = "";

                if (linhaDados["tpIdentificadorPessoa"].ToString().Equals("1"))
                {
                    cpfOrdenador = FuncoesUteis.converteCPFToString(linhaDados["nrCpf"].ToString());
                }
                else
                {
                    cpfContador = FuncoesUteis.converteCPFToString(linhaDados["nrCpf"].ToString());
                }

                linha += "010";
                linha += FuncoesUteis.preencher(contador.ToString(), "0", 0, 10);
                linha += " ";
                linha += getTipoEsfera();
                linha += FuncoesUteis.preencher(txtCodUnidade.Text, "0", 0, 10);
                linha += FuncoesUteis.preencher(FuncoesUteis.converteCPFToString(linhaDados["nrCpf"].ToString()), "0", 0, 11);
                linha += getIntervaloOrdenador(getTipoArquivo());
                linha += FuncoesUteis.preencher(linhaDados["tpIdentificadorPessoa"].ToString(), "0", 0, 1);
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(linhaDados["nmPessoa"].ToString()), " ", 1, 50);
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(linhaDados["dsCargo"].ToString()), " ", 1, 30);
                linha += FuncoesUteis.preencher(linhaDados["nrIdentidade"].ToString(), "0", 0, 20);
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(linhaDados["nmOrgaoEmissor"].ToString()), " ", 1, 20);
                linha += Convert.ToDateTime(linhaDados["dtEmissaoIdentidade"].ToString()).ToString("ddMMyyyy");
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(linhaDados["dsEndereco"].ToString()), " ", 1, 50);
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(linhaDados["dsBairro"].ToString()), " ", 1, 20);
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(linhaDados["dsCidade"].ToString()), " ", 1, 20);
                linha += FuncoesUteis.preencher(linhaDados["cdCEP"].ToString(), "0", 0, 8);
                linha += FuncoesUteis.preencher(linhaDados["sgUF"].ToString(), " ", 1, 2);
                linha += FuncoesUteis.preencher(linhaDados["nrTelefoneResidencial"].ToString(), "0", 0, 10);
                linha += FuncoesUteis.preencher(linhaDados["nrTelefoneComercial"].ToString(), "0", 0, 10);
                linha += FuncoesUteis.preencher(linhaDados["nrTelefoneCelular"].ToString(), "0", 0, 10);
                linha += FuncoesUteis.preencher(linhaDados["dsEnderecoEletronico"].ToString(), " ", 1, 100);
                linha += FuncoesUteis.preencher(" ", " ", 1, 788);
                linha += "*";

                arquivo.WriteLine(linha);
                barraProgresso.Value = contador - 1;
            }


            #endregion

            #region Fonte de Recursos

            dados = contabilidade.getFonteRecurso(nomeBD_CPC);
            barraProgresso.Value   = 0;
            barraProgresso.Maximum = dados.Rows.Count;
            int contaProgresso = 0;
            foreach (DataRow linhaDados in dados.Rows)
            {
                contador++;
                linha  = "";
                linha += "020";
                linha += FuncoesUteis.preencher(contador.ToString(), "0", 0, 10);
                linha += " ";
                linha += getTipoEsfera();
                linha += FuncoesUteis.preencher(txtCodUnidade.Text, "0", 0, 10);
                linha += FuncoesUteis.preencher(linhaDados["cdFonteRecurso"].ToString(), "0", 1, 10);
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(linhaDados["dsFonteRecurso"].ToString()).ToUpper(), " ", 1, 60);
                linha += FuncoesUteis.preencher(" ", " ", 0, 1104);
                linha += "*";

                arquivo.WriteLine(linha);
                contaProgresso++;
                barraProgresso.Value = contaProgresso - 1;
            }
            #endregion


            #region Movimento
            // Tipo SQL
            int tipo = 0;
            if (getTipoArquivo() == "901" || getTipoArquivo() == "902" || getTipoArquivo() == "903")
            {
                tipo = 1;
            }

            dados = contabilidade.getMovimento(nomeBD_AUX
                                               , tipo
                                               , FuncoesUteis.getMesInicio(getTipoArquivo())
                                               , FuncoesUteis.getMesFim(getTipoArquivo())
                                               , cbUnidadeGestora.SelectedValue.ToString()
                                               , nomeBD_PPA, nomeBD_CPC, nomeBD_CPE);


            String contaContabil          = "";
            String naturezaReceitaDespesa = "";
            String linhaApoio             = "";
            String linhaLancamento        = "";

            int seqMovimento = 0;

            barraProgresso.Value   = 0;
            barraProgresso.Maximum = dados.Rows.Count;
            foreach (DataRow rowMov in dados.Rows)
            {
                contaContabil = rowMov["cdNivelContabil"].ToString();

                if (seqMovimento > 46)
                {
                    naturezaReceitaDespesa = "";
                }



                linha      = "";
                linhaApoio = "";

                seqMovimento++;


                linhaApoio  = FuncoesUteis.preencher(Convert.ToString(contador), "0", 0, 10);
                linhaApoio += contaContabil;
                linhaApoio += FuncoesUteis.preencher(rowMov["idLancamento"].ToString(), "0", 0, 6);
                linhaApoio += FuncoesUteis.preencher(rowMov["nrAnoLancamento"].ToString(), "0", 0, 6);


                linha  = "";
                linha += "100";
                linha += FuncoesUteis.preencher(Convert.ToString(contador), "0", 0, 10);
                linha += " ";
                linha += FuncoesUteis.preencher(getTipoEsfera(), "0", 0, 1);
                linha += FuncoesUteis.preencher(txtCodUnidade.Text, "0", 0, 10);
                linha += FuncoesUteis.preencher(Convert.ToString(seqMovimento), "0", 0, 10);
                linha += Convert.ToDateTime(rowMov["dtMovimento"].ToString()).ToString("ddMMyyyy");

                contaContabil = contaContabil.Replace(".", "");
                if (contaContabil.Length > 11)
                {
                    contaContabil = contaContabil.Substring(0, 11);
                }

                //contaContabil = ajusteConta(contaContabil, rowMov["tpOperacao"].ToString());



                linhaLancamento = contabilidade.getLancamentoPadrao(rowMov["cdFornecedor"].ToString()
                                                                    , rowMov["cdUnidadeGestora"].ToString()
                                                                    , rowMov["cdEmenta"].ToString()
                                                                    , rowMov["idLancamento"].ToString()
                                                                    , rowMov["nrAnoLancamento"].ToString()
                                                                    , rowMov["cdTipoLicitacao"].ToString()
                                                                    , rowMov["tpOperacao"].ToString()
                                                                    , rowMov["cdNivelContabil"].ToString()
                                                                    , rowMov["naturezaReceitaDespesa"].ToString()
                                                                    , rowMov["cdOrgao"].ToString()
                                                                    , nomeBD_AUX
                                                                    , nomeBD_CPC);



                linha += linhaLancamento.Substring(0, 4)
                         + contabilidade.ajustaConta(linhaLancamento.Substring(4, 11), nomeBD_AUX)
                         + linhaLancamento.Substring(15);
                linha += FuncoesUteis.preencher(FuncoesUteis.formataNumero(rowMov["vlMovimento"].ToString()), "0", 0, 15);
                // Vinculo contábil
                linha += FuncoesUteis.preencher("0", "0", 0, 10);

                linha += FuncoesUteis.preencher(cmbEsferaOrc.Text.Substring(0, 2), "0", 0, 2);

                linha += FuncoesUteis.preencher(cmbTipoAdm.Text.Substring(0, 1), "0", 1, 1);

                linha += FuncoesUteis.preencher(rowMov["cdFuncao"].ToString(), "0", 0, 2);
                linha += FuncoesUteis.preencher(rowMov["cdSubFuncao"].ToString(), "0", 0, 3);
                linha += FuncoesUteis.preencher(rowMov["cdPrograma"].ToString(), "0", 0, 4);
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(rowMov["dsPrograma"].ToString().ToUpper()), " ", 1, 100).Substring(0, 100);
                linha += "1";
                // No e Descricao do Projeto Atividade
                linha += FuncoesUteis.preencher(rowMov["nrProjetoAtividade"].ToString(), "0", 0, 3);
                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(rowMov["dsProjetoAtividade"].ToString().ToUpper()), " ", 1, 100).Substring(0, 100);

                linha += FuncoesUteis.preencher(rowMov["cdFonteRecurso"].ToString(), "0", 0, 10);
                // Tipo alteração orcamnetaria
                linha += FuncoesUteis.preencher("0", "0", 0, 2);
                // No da Lei
                linha += FuncoesUteis.preencher("0", "0", 1, 10);
                // Data da lei
                linha += "01012014";     //FuncoesUteis.preencher("0", "0", 1, 8);
                // No portaria/decreto
                linha += FuncoesUteis.preencher("0", "0", 0, 10);
                // Data da portaria
                linha += "01012014";      //FuncoesUteis.preencher("0", "0", 1, 8);
                // No Documento
                linha += FuncoesUteis.preencher("0", "0", 0, 10);
                //Codigo Documento PRocessado
                linha += FuncoesUteis.preencher("0", "0", 0, 2);
                //CPF/CNPJ
                linha += FuncoesUteis.preencher(FuncoesUteis.limpaCaracter(rowMov["nrDocumento"].ToString()), "0", 0, 14);

                if (rowMov["nmCredor"].ToString() == "")
                {
                    linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(txNome.Text), " ", 1, 50);
                }
                else
                {
                    linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(rowMov["nmCredor"].ToString()), " ", 1, 50);
                }

                // Modalidade empenho
                linha += FuncoesUteis.preencher(rowMov["cdTipoEmpenho"].ToString(), "0", 0, 1);
                // Modalidade licitacao
                //linha += "02";
                // Modelidade Licitação
                linha += FuncoesUteis.preencher(rowMov["tpModalidadeLicitacao"].ToString(), "0", 0, 2);
                // TIpo Licitacao
                linha += FuncoesUteis.preencher(rowMov["cdTipoLicitacao"].ToString(), "0", 0, 1);
                // No Licitacao
                linha += FuncoesUteis.preencher(rowMov["nrLicitacao"].ToString(), " ", 1, 15);
                if (rowMov["dtHomologacao"].ToString().Equals(""))
                {
                    linha += Convert.ToDateTime(rowMov["dtMovimento"].ToString()).ToString("ddMMyyyy");
                }
                else
                {
                    linha += Convert.ToDateTime(rowMov["dtHomologacao"].ToString()).ToString("ddMMyyyy");
                }

                linha += FuncoesUteis.preencher(FuncoesUteis.removeAlfa(rowMov["dsObjetoDespesa"].ToString()), " ", 1, 100).Substring(0, 100);
                // Tipo Apuracao
                linha += "1";
                // TIpo pubicacao
                linha += "1";
                // Data Publicacao
                linha += Convert.ToDateTime(rowMov["dtMovimento"].ToString()).ToString("ddMMyyyy");
                // Vlaor Adjundicado
                linha += FuncoesUteis.preencher("0", "0", 0, 15);
                linha += contabilidade.getLinhaDocLiquidacao(nomeBD_CPI, rowMov["cdUnidadeGestora"].ToString().Trim(),
                                                             rowMov["dtAnoLicitacao"].ToString().Trim(),
                                                             rowMov["nrLicitacao"].ToString().Trim());

                // Valor ISS
                linha += FuncoesUteis.preencher("0", "0", 0, 15);
                // Valor INSS
                linha += FuncoesUteis.preencher("0", "0", 0, 15);
                // Validade Nota
                linha += "3112" + txAno.Text;
                // BAnco
                linha += FuncoesUteis.preencher(rowMov["cdBanco"].ToString(), "0", 0, 3);
                // agencia
                linha += FuncoesUteis.preencher(rowMov["cdAgencia"].ToString(), " ", 1, 10);
                // Conta corrente
                if (rowMov["cdContaCorrente"].ToString() == "")
                {
                    linha += FuncoesUteis.preencher(" ", " ", 1, 10);
                }
                else
                {
                    String[] strContaInt = rowMov["cdContaCorrente"].ToString().Split(',');
                    int      cdContaInt  = Convert.ToInt32(strContaInt[0]);
                    linha += FuncoesUteis.preencher(cdContaInt.ToString(), " ", 1, 10);
                }
                // Tipo Transação
                linha += "1";
                // No transacao
                linha += FuncoesUteis.preencher("0", "0", 0, 15);
                // CPF Ordenador
                linha += FuncoesUteis.preencher(cpfOrdenador, "0", 0, 11);
                // CPF Contador
                linha += FuncoesUteis.preencher(cpfContador, "0", 0, 11);
                // Calssificação da receira/natureza
                naturezaReceitaDespesa = rowMov["naturezaReceitaDespesa"].ToString().Replace(".", "");

                if (naturezaReceitaDespesa.Length > 10)
                {
                    naturezaReceitaDespesa = naturezaReceitaDespesa.Substring(0, 10);
                }
                naturezaReceitaDespesa = ajusteNaturezaReceitaDespesa(naturezaReceitaDespesa);
                linha += FuncoesUteis.preencher(naturezaReceitaDespesa, "0", 0, 10);
                linha += contabilidade.getReciboMural(rowMov["nrEmpenho"].ToString(), rowMov["dtAnoEmissao"].ToString(), nomeBD_AUX, nomeBD_CPE);

                linha += FuncoesUteis.preencher(" ", " ", 1, 84);
                linha += "*";
                contador++;
                arquivo.WriteLine(linha);
                //arquivoApoio.WriteLine(linhaApoio);
                barraProgresso.Value = seqMovimento - 1;
            }

            #endregion

            linha = "999" + FuncoesUteis.preencher(contador.ToString(), "0", 0, 10) + FuncoesUteis.preencher(" ", " ", 0, 1189) + "*";

            arquivo.Close();
            arquivo.Dispose();

            //arquivoApoio.Close();
            //arquivoApoio.Dispose();

            MessageExcept.messageFacede("Arquivo Gerado", 2);

            /*}
             * catch (Exception ex)
             * {
             *  //ex.Message();
             *  //MessageExcept.messageFacede("Erro ao gerar arquivo:\n" + ex.Message, 1);
             * }
             * finally {
             *
             * }*/
        }
示例#2
0
        public String getLinhaDocLiquidacao(String nmBancoCPI, String cdUndGestora, String dtAno, String pNrEmpenho)
        {
            String linha = "";

            if (!pNrEmpenho.Equals(""))
            {
                StringBuilder sql = new StringBuilder();
                sql.Append("SELECT top 1 nrEmpenho,tpDocumento,nrSerie,nrDocumento,dtEmissaoDocto ");
                sql.Append(",vlICMSDestacado,vlICMSRetido,nrSerieSeloSEFA,nrSeloSEFA,cdCST ");
                sql.Append("FROM " + nmBancoCPI + "..PA_DocumentoLiquidacao where cdUnidadeGestora = " + cdUndGestora);
                sql.Append(" and dtAnoEmissao = " + dtAno + " and nrEmpenho = '" + pNrEmpenho + "'");


                DataTable linhas = conexao.retornarDataSet(sql.ToString());

                if (linhas.Rows.Count > 0)
                {
                    linha = "";
                    DataRow dados = linhas.Rows[0];

                    linha += FuncoesUteis.preencher(dados["tpDocumento"].ToString(), "0", 0, 2);
                    linha += FuncoesUteis.preencher(dados["nrSerie"].ToString(), " ", 1, 5);
                    linha += FuncoesUteis.preencher(dados["nrDocumento"].ToString(), "0", 0, 10);
                    linha += Convert.ToDateTime(dados["dtEmissaoDocto"].ToString()).ToString("ddMMyyyy");
                    linha += FuncoesUteis.preencher(FuncoesUteis.formataNumero(dados["vlICMSDestacado"].ToString()), "0", 0, 15);
                    linha += FuncoesUteis.preencher(FuncoesUteis.formataNumero(dados["vlICMSRetido"].ToString()), "0", 0, 15);
                    linha += FuncoesUteis.preencher(dados["nrSerieSeloSEFA"].ToString(), "0", 0, 2);
                    linha += FuncoesUteis.preencher(dados["nrSeloSEFA"].ToString(), "0", 0, 10);
                    //linha += FuncoesUteis.preencher((dados["dtEmissaoDocto"].ToString()), "0", 1, 6);
                    linha += Convert.ToDateTime(dados["dtEmissaoDocto"].ToString()).ToString("MMyyyy");
                    linha += FuncoesUteis.preencher(dados["cdCST"].ToString(), "0", 0, 4);
                }
                else
                {
                    linha += FuncoesUteis.preencher("0", "0", 1, 2);
                    linha += FuncoesUteis.preencher("0", "0", 1, 5);
                    linha += FuncoesUteis.preencher("0", "0", 1, 10);
                    linha += FuncoesUteis.preencher("0", "0", 1, 8);
                    linha += FuncoesUteis.preencher("0", "0", 1, 15);
                    linha += FuncoesUteis.preencher("0", "0", 1, 15);
                    linha += FuncoesUteis.preencher("0", "0", 1, 2);
                    linha += FuncoesUteis.preencher("0", "0", 1, 10);
                    linha += FuncoesUteis.preencher("010114", "0", 1, 6);
                    linha += FuncoesUteis.preencher("0", "0", 1, 4);
                }
            }
            else
            {
                linha += FuncoesUteis.preencher("0", "0", 1, 2);
                linha += FuncoesUteis.preencher("0", "0", 1, 5);
                linha += FuncoesUteis.preencher("0", "0", 1, 10);
                linha += FuncoesUteis.preencher("0", "0", 1, 8);
                linha += FuncoesUteis.preencher("0", "0", 1, 15);
                linha += FuncoesUteis.preencher("0", "0", 1, 15);
                linha += FuncoesUteis.preencher("0", "0", 1, 2);
                linha += FuncoesUteis.preencher("0", "0", 1, 10);
                linha += FuncoesUteis.preencher("0", "0", 1, 6);
                linha += FuncoesUteis.preencher("0", "0", 1, 4);
            }
            return(linha);
        }