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 { * * }*/ }
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); }