protected void btnGerar_Click(object sender, EventArgs e) { //UTF-8 ISO-8859-1 verificar qual utilizar Remessa remessa = new Remessa(); Nomedoarquivo = Path.Combine(Path.GetTempPath(), System.IO.Path.GetRandomFileName() + ".txt"); StreamWriter sw = new StreamWriter(Nomedoarquivo, true, System.Text.Encoding.GetEncoding("UTF-8")); PortadoresBL portadoresBL = new PortadoresBL(); TitulosBL titulosBL = new TitulosBL(); SelecaoTitulos selTitulos = new SelecaoTitulos(); selTitulos.CodTitulos = txtIntTitulos.Text; selTitulos.PortadorId = ddlPortador.SelectedValue; selTitulos.DataEmissaoIni = txtDtEmiIni.Text; selTitulos.DataEmissaoFim = txtDtEmiFim.Text; selTitulos.DataVencimentoIni = txtDtVencIni.Text; selTitulos.DataVencimentoFim = txtDtVencFim.Text; selTitulos.Tipo = "R"; remessa.DiasProtesto = txtDiasUm.Text; remessa.Instrucao1 = ddlInstrucao1.SelectedValue; remessa.Instrucao2 = ddlInstrucao2.SelectedValue; remessa.CodOcorrencia = ddlRemessa.SelectedValue; remessa.JuroMora = ddlJuroMora.SelectedValue; StringBuilder arquivo = new StringBuilder(); int v_seq = 1; string codCedente = ""; List<Portadores> portadores = portadoresBL.PesquisarBL(utils.ComparaIntComZero(ddlPortador.SelectedValue)); foreach (Portadores ltPor in portadores) { titulosBL.ArquivoRemessaMontarHeader(arquivo, ltPor, v_seq.ToString()); sw.WriteLine(arquivo); codCedente = ltPor.CodCedente.ToString(); } List<Titulos> titulos = titulosBL.PesquisarBuscaBL(selTitulos); foreach (Titulos ltTit in titulos) { v_seq++; arquivo.Clear(); titulosBL.ArquivoRemessaMontarTransacao(arquivo, ltTit, remessa, v_seq.ToString(), codCedente); sw.WriteLine(arquivo); } arquivo.Clear(); v_seq++; titulosBL.ArquivoRemessaMontarTrailler(arquivo, "300", v_seq.ToString()); sw.WriteLine(arquivo); sw.Close(); lkbDownload.Visible = true; lkbDownload.Text = "remessa_" + ddlPortador.SelectedItem.Text.Replace(" ", "_") + "_" + DateTime.Now.ToString("dd_MM_yyyy") + ".txt"; btnGerar.Visible = false; }
public StringBuilder ArquivoRemessaMontarTransacao(StringBuilder transacao, Titulos titulo, Remessa remessa, string seq, string codCedente) { decimal v_taxa_juro = 0; //posicoes 001 - 001 transacao.Append("1"); //posicoes 002 - 017 utils.IncluirCampoAlfanumerico(transacao, " ", 16); //posicoes 018 - 030 codigo cedente utils.IncluirCampoNumerico(transacao, codCedente, 13); //posicoes 031 - 037 brancos utils.IncluirCampoAlfanumerico(transacao," ", 7); //posicoes 038 - 062 utils.IncluirCampoAlfanumerico(transacao,titulo.Id.ToString(), 25); //posicoes 063 - 072 nosso numero transacao.Append("0000000000"); //posicoes 073 - 104 mensagem no bloqueto utils.IncluirCampoAlfanumerico(transacao, " ", 32); //posicoes 105 - 107 brancos utils.IncluirCampoAlfanumerico(transacao," ", 3); //posicoes 108 -108 tipo de carteira transacao.Append(titulo.Portador.Carteira != null ? titulo.Portador.Carteira : "0"); //posicoes 109 - 110 codigo de ocorrencia transacao.Append(remessa.CodOcorrencia); //posicoes 111 - 120 seu numero utils.IncluirCampoAlfanumerico(transacao, titulo.Numero.ToString(), 10); //posicoes 121 - 126 data de vencimento transacao.Append(titulo.DataVencimento.ToString("ddMMyy")); //posicoes 127 - 139 valor do título utils.IncluirCampoNumerico(transacao, titulo.Valor.ToString(), 13); //posicoes 140 - 142 transacao.Append("041"); //posicoes 123 - 147 brancos utils.IncluirCampoAlfanumerico(transacao, "", 5); //posicoes 148 - 149 tipo de documento //cobrança credenciada banrisul CCB transacao.Append("08"); //posicoes 150 - 150 aceite transacao.Append("A"); //posicoes 151 - 156 transacao.Append(titulo.DataEmissao.ToString("ddMMyy")); //posicoes 157 - 158 instrucao 1 e //posicoes 159 - 160 instrucao 2 if (titulo.Portador.Carteira == "R" || titulo.Portador.Carteira == "S" || titulo.Portador.Carteira == "X" || titulo.Portador.Carteira == "N") utils.IncluirCampoAlfanumerico(transacao, " ", 4); else { utils.IncluirCampoNumerico(transacao, remessa.Instrucao1, 2); utils.IncluirCampoNumerico(transacao, remessa.Instrucao2, 2); } //posicoes 161 - 161 código de mora if (titulo.Portador.Carteira == "R" || titulo.Portador.Carteira == "S" || titulo.Portador.Carteira == "X" || titulo.Portador.Carteira == "N") transacao.Append(" "); else utils.IncluirCampoNumerico(transacao, remessa.JuroMora, 1); //posicoes 162 - 173 if (titulo.Portador.Carteira == "R" || titulo.Portador.Carteira == "S" || titulo.Portador.Carteira == "X" || titulo.Portador.Carteira == "N") utils.IncluirCampoAlfanumerico(transacao, string.Empty, 12); else utils.IncluirCampoNumerico(transacao, ((titulo.Valor * v_taxa_juro) / 100).ToString(), 12); //posicoes 174 - 179 data de desconto utils.IncluirCampoNumerico(transacao, "0", 6); //posicoes 180 - 192 valor do desconto utils.IncluirCampoNumerico(transacao, "0", 13); //posicoes 193 - 205 valor IOF utils.IncluirCampoNumerico(transacao, "0", 13); //posicoes 206 - 218 valor do abatimento utils.IncluirCampoNumerico(transacao, "0", 13); //posicoes 219 - 220 tipo de inscrição do sacado //01 pessoa fisica, 02 pessoa juridica utils.IncluirCampoNumerico(transacao, titulo.Pessoas.Tipo == "F" ? "01" : "02", 2); //posicoes 221 - 234 cpf/cnfp utils.IncluirCampoNumerico(transacao, titulo.Pessoas.CpfCnpj, 14); //posicoes 235 - 269 nome do sacado utils.IncluirCampoAlfanumerico(transacao, titulo.Pessoas.Nome, 35); //posicoes 270 - 274 brancos utils.IncluirCampoAlfanumerico(transacao, " ", 5); //posicoes 275 - 314 endereco utils.IncluirCampoAlfanumerico(transacao, titulo.Pessoas.Endereco, 40); //posicoes 315 - 321 utils.IncluirCampoAlfanumerico(transacao, " ", 7); //posicoes 322 - 324 taxa para multa. utils.IncluirCampoNumerico(transacao, "0", 3); //posicoes 325 - 326 n° dias para multa apos vencimento utils.IncluirCampoNumerico(transacao, "0", 2); //posicoes 327 - 334 cep utils.IncluirCampoNumerico(transacao, titulo.Pessoas.Cep.Replace("-",""), 8); //posicoes 335 - 349 cidade utils.IncluirCampoAlfanumerico(transacao, titulo.Pessoas.Cidade.Descricao, 15); //posicoes 350 - 351 UF utils.IncluirCampoAlfanumerico(transacao, titulo.Pessoas.Cidade.Estados.Uf, 2); //posices 352 - 355 taxa para pagamento antecipado utils.IncluirCampoNumerico(transacao, "0", 4); //posicoes 356 - 356 brancos utils.IncluirCampoAlfanumerico(transacao, "", 1); //posicoes 357 - 369 valor para calculo desconto utils.IncluirCampoNumerico(transacao, "0", 13); //posicoes 370 - 371 n° dias para protesto ou devolução if (titulo.Portador.Carteira == "R" || titulo.Portador.Carteira == "S" || titulo.Portador.Carteira == "X" || titulo.Portador.Carteira == "N") utils.IncluirCampoAlfanumerico(transacao, " ", 2); else { if (remessa.Instrucao1 == "09" || remessa.Instrucao1 == "15") utils.IncluirCampoNumerico(transacao, remessa.DiasProtesto, 2); else if (remessa.Instrucao2 == "09" || remessa.Instrucao2 == "15") utils.IncluirCampoNumerico(transacao, remessa.DiasProtesto, 2); else utils.IncluirCampoNumerico(transacao, "0", 2); } //posicoes 372 - 394 brancos utils.IncluirCampoAlfanumerico(transacao, " ", 23); //posicoes 395 - 400 sequencial utils.IncluirCampoNumerico(transacao, seq, 6); return transacao; }