public void valida(string linha, int numLinha) { if (linha.Length != 240) { textoValidacao += ("Linha: " + numLinha + " Fora do Padrão: quantidade de colunas é difente de 240! esta linha possui: " + linha.Length + " colunas<br>"); } else { try { // Descrição do Registro “HEADER” de Lote - “1” string tipoOperacao = linha.Substring(8, 1); // 1.04 009 009 X(001) Tipo de Operação string tipoServico = linha.Substring(9, 2); // 1.05 010 011 9(002) Tipo de Serviço string formaLancamento = linha.Substring(11, 2); // 1.06 012 013 9(002) Forma de Lançamento string verLayoutLote = linha.Substring(13, 3); // 1.07 014 016 9(003) Versão do leiaute do lote string filler8 = linha.Substring(16, 1); // 1.08 017 017 X(001) Filler string tipoInscricao = linha.Substring(17, 1); // 1.09 018 018 9(001) Tipo de inscrição string numInscricao = linha.Substring(18, 14); // 1.10 019 032 9(014) Número da inscrição string codConvenio = linha.Substring(32, 6); // 1.11 033 038 9(006) Código Convênio no Banco string tipoCompromisso = linha.Substring(38, 2); // 1.12 039 040 9(002) Tipo de Compromisso string codCompromisso = linha.Substring(40, 4); // 1.13 041 044 9(004) Código do compromisso string paramTrans = linha.Substring(44, 2); // 1.14 045 046 X(002) Parâmetro de transmissão string filler15 = linha.Substring(46, 6); // 1.15 047 052 X(006) Filler string agContaCorrente = linha.Substring(52, 5); // 1.16 053 057 9(005) Agencia da Conta Corrente string dvAgencia = linha.Substring(57, 1); // 1.17 058 058 X(001) DV da Agência string numContaCorrente = linha.Substring(58, 12); // 1.18 059 070 9(012) Número da Conta Corrente string DvContaCorrente = linha.Substring(70, 1); // 1.19 071 071 X(001) DV da Conta Corrente string digAgConta = linha.Substring(71, 1); // 1.20 072 072 X(001) Dígito da Agência/Conta string nomeEmpresa = linha.Substring(72, 30); // 1.21 073 102 X(030) Nome da Empresa string msgAviso1 = linha.Substring(102, 40); // 1.22 103 142 X(040) Mensagem de Aviso 1 string logradouro = linha.Substring(142, 30); // 1.23 143 172 X(030) Logradouro string numLocal = linha.Substring(172, 5); // 1.24 173 177 9(005) Número no local string complemento = linha.Substring(177, 15); // 1.25 178 192 X(015) Complemento string cidade = linha.Substring(192, 20); // 1.26 193 212 X(020) Cidade string cep = linha.Substring(212, 5); // 1.27 213 217 9(005) CEP string complementoCep = linha.Substring(217, 3); // 1.28 218 220 X(003) Complemento CEP string siglaEstado = linha.Substring(220, 2); // 1.29 221 222 X(002) Sigla do Estado string usoFebraban = linha.Substring(222, 8); // 1.30 223 230 X(008) Uso exclusivo FEBRABAN string ocorrencias = linha.Substring(230, 10); // 1.31 231 240 X(010) Ocorrências switch (tipoOperacao) { case "C": break; case "D": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: tipo de Operação = " + tipoOperacao + " : preencher com C (compromisso de pagamento) ou D (compromisso de recebimento)<br>"); break; } switch (tipoServico) { case "00": break; case "05": break; case "10": break; case "20": break; case "30": break; case "50": break; case "60": break; case "70": break; case "75": break; case "80": break; case "90": break; case "98": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: tipo de Serviço = " + tipoServico + " : preencher conforme tabela G025<br>"); break; } switch (formaLancamento) { case "01": break; case "02": break; case "03": break; case "05": break; case "10": break; case "11": break; case "30": break; case "31": break; case "41": break; case "50": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: tipo de Serviço = " + formaLancamento + " : preencher conforme tabela G029<br>"); break; } if (!verLayoutLote.Contains("041")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: ver. do layout do lote = " + verLayoutLote + " : o pradão é 041<br>"); } if (!filler8.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: filler 8 = " + filler8 + " : preencher com espaços<br>"); } switch (tipoInscricao) { case "1": break; case "2": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Num. Inscricao = " + tipoInscricao + " : preencher com 1 (pessoa física) ou 2 (pessoa jurídica)<br>"); break; } try { long.Parse(numInscricao); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Num. Inscricao = " + linha.Substring(18, 32) + " : preencher com CPF ou CNPJ" + erro); } try { int.Parse(codConvenio); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Cod. Convênio = " + linha.Substring(32, 38) + " : preencher com o código do convênio informado pelo Banco" + erro); } switch (tipoCompromisso) { case "01": break; case "02": break; case "03": break; case "06": break; case "11": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: tipo de compromisso = " + tipoCompromisso + " : preencher com o tipo de compromisso:<br>"); textoValidacao += ("Linha: " + numLinha + " >>>> 01 (Pag. Fornecedor), 02 (Pag. Salários), 03 (Autopagamento), 06 (Salário Ampliação de Base), 11 (Débito em conta) <br>"); break; } try { int.Parse(codCompromisso); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Cod. compromisso = " + codCompromisso + " : preencher com o código do compromisso informado pelo Banco<br>"); } if (paramTrans.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: param. de Transmissão = " + paramTrans + " : está em branco! preencher com o código informado pelo Banco<br>"); } if (!filler15.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: filler 15 = " + filler15 + " : preencher com espaços<br>"); } try { int.Parse(agContaCorrente); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: ag. conta corrente = " + agContaCorrente + " : preencher com a agência da conta<br>"); } if (dvAgencia.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: DV. da agência = " + dvAgencia + " : está em branco! preencher com DV. da agência<br>"); } try { long.Parse(numContaCorrente); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: num. da conta corrente = " + numContaCorrente + " : preencher com num. da conta corrente<br>"); } if (DvContaCorrente.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: DV da Conta Corrente = " + DvContaCorrente + " : está em branco! preencher com DV da Conta Corrente<br>"); } if (!digAgConta.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: dígito da Agência/Conta = " + digAgConta + " : preencher com espaços<br>"); } if (nomeEmpresa.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Nome da Empresa = " + nomeEmpresa + " : está em branco!<br>"); } Auxiliar aux = new Auxiliar(); aux.apagaCaracterEspecial(numLinha, msgAviso1); if (logradouro.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Logradouro = " + logradouro + " : está em branco!<br>"); } try { //int numLocalParse = int.Parse(numLocal.Trim()); //string.Format("%05d", int.Parse(numLocal.Trim())); // preenche com zero a esquerda if (numLocal.Trim().Length < numLocal.Length) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número no local = " + numLocal + " : preencher com o zero a esquerda<br>"); } } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número no local = " + numLocal + " : preencher com o número no local<br>"); } if (complemento.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Complemento = " + complemento + " : está em branco!<br>"); } if (cidade.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Cidade = " + cidade + " : está em branco!<br>"); } try { //int.Parse(cep.Trim()); //string.Format("%05d", int.Parse(cep.Trim())); // preenche com zero a esquerda if (cep.Trim().Length < cep.Length) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: CEP = " + cep + " : preencher com o zero a esquerda<br>"); } } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: CEP = " + cep + " : preencher com o CEP<br>"); } //if (cep.Contains(" ")) //{ // textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Complemento do CEP = " + cep + " : está em branco!<br>"); //} if (complementoCep.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Complemento do CEP = " + complementoCep + " : está em branco!<br>"); } Auxiliar auxEstado = new Auxiliar(); auxEstado.validaEstado(numLinha, siglaEstado); if (!usoFebraban.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Uso exclusivo FEBRABAN = " + usoFebraban + " : preencher com espaços<br>"); } if (!ocorrencias.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Ocorrências = " + ocorrencias + " : preencher com espaços<br>"); } } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " não consegui ler a linha do registro 1 (HEADER LOTE) = " + linha + "Erro: " + erro); } } }
public void validaRegistroJ(string linha, int numLinha) { if (linha.Length != 240) { textoValidacao += ("Linha: " + numLinha + " Fora do Padrão: quantidade de colunas é difente de 240! esta linha possui: " + linha.Length + " colunas<br>"); } else { try { // Descrição do Registro DETALHE - “J” (registro obrigatório) string tipoMovimento = linha.Substring(14, 1); //J.06 015 015 9(001) Tipo Movimento string codMovimento = linha.Substring(15, 2); //J.07 016 017 9(002) Cód. Movimento string bancoDestino = linha.Substring(17, 3); //J.08 018 020 9(003) Banco destino string codMoeda = linha.Substring(20, 1); //J.09 021 021 9(001) Cód. Moeda string dvCodBarras = linha.Substring(21, 1); //J.10 022 022 9(001) DV Cód. Barras string fatorVenc = linha.Substring(22, 4); //J.11 023 026 9(004) Fator de vencimento string valorDocumento = linha.Substring(26, 8); //J.12 027 036 9(008) v99 Valor do Documento string campoLivre = linha.Substring(36, 25); //J.13 037 061 X(025) Campo Livre string nomeCedente = linha.Substring(61, 30); //J.14 062 091 X(030) Nome do Cedente string dataVencimento = linha.Substring(91, 8); //J.15 092 099 9(008) Data Vencimento string valorTitulo = linha.Substring(99, 15); //J.16 100 114 9(015) v99 Valor do Título string valorDesconto = linha.Substring(114, 15); //J.17 115 129 9(013) v99 Valor do desconto + Abatimento string valorMulta = linha.Substring(129, 15); //J.18 130 144 9(013) v99 Valor da mora + multa string dataPagamento = linha.Substring(144, 8); //J.19 145 152 9(008) Data do Pagamento string valorPagamento = linha.Substring(152, 15); //J.20 153 167 9(015)v99 Valor Pagamento string quantidadeMoeda = linha.Substring(167, 10); //J.21 168 182 9(010)v99999 Quantidade Moeda string numDocumentoEmpresa = linha.Substring(182, 6); //J.22 183 188 X(006) Número documento atribuído pela empresa string filler23 = linha.Substring(188, 14); //J.23 189 202 X(014) Filler - preencher com espaço. string numDocumentoBanco = linha.Substring(202, 9); //J.24 203 211 9(009) Número documento atribuído pelo banco string filler25 = linha.Substring(211, 11); //J.25 212 222 X(011) Filler string codigoDaMoeda = linha.Substring(222, 2); //J.26 223 224 9(002) Código da Moeda = 04(TRD) ou 02(Dólar) ou 06(UFIR diária) ou 09(Real) string usoFebraban = linha.Substring(224, 6); //J.27 225 230 X(006) Uso FEBRABAN string ocorrenciasRetorno = linha.Substring(230, 10); //J.28 231 240 X(010) Ocorrências do Retorno switch (tipoMovimento) { case "0": break; case "9": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: tipo de Movimento = " + tipoMovimento + " : preencher com “0” (inclusão) ou “9” (exclusão)<br>"); break; } switch (codMovimento) { case "00": break; case "09": break; case "10": break; case "11": break; case "23": break; case "99": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: cod. de Movimento = " + codMovimento + " : preencher conforme tabela G061<br>"); break; } Auxiliar auxBancoDestino = new Auxiliar(); auxBancoDestino.validaCodBanco(numLinha, bancoDestino); textoValidacao += auxBancoDestino.TextoValidacao; try { int.Parse(codMoeda); switch (codMoeda) { case "0": break; case "9": break; default: textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Cod. moeda = " + codMoeda + " : Está diferente do padrão FEBRABAN<br>"); break; } } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Cod. codMoeda = " + codMoeda + " : preencher com o código da moeda conforme constante da 4a posição na barra da cobrança = 9(Real) ou 2(Moeda Variável)" + erro); } try { int.Parse(dvCodBarras); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: DV Cod. Barra = " + dvCodBarras + " : preencher conforme código de barras, constante da 5a posição da barra da cobrança" + erro); } try { int.Parse(fatorVenc); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: fator de Vencimento = " + fatorVenc + " : preencher com o fator de vencimento constante da 6a a 9a posição da barra da cobrança" + erro); } try { int.Parse(valorDocumento); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor do Documento = " + valorDocumento + " : Preencher conforme constante da 10a a 19a posições da barra da cobrança" + erro); } if (campoLivre.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Campo Livre = " + campoLivre + " : está em branco! preencher conforme constante da 20a a 44a posições na barra da cobrança<br>"); } if (nomeCedente.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Nome do Cedente = " + nomeCedente + " : está em branco! preencher com Nome do Cedente<br>"); } try { int.Parse(dataVencimento); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Data de Vencimento = " + dataVencimento + " : preencher com a data de vencimento do bloqueto" + erro); } try { int.Parse(valorDesconto); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor do Desconto = " + valorDesconto + " : preencher se for o caso" + erro); } try { int.Parse(valorMulta); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor da mora + multa = " + valorMulta + " : Válido somente para bloquetos da CAIXA, bloquetos de outros bancos não podem ser pagos em atraso" + erro); } try { int.Parse(dataPagamento); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Data do Pagamento = " + dataPagamento + " : Mensagem: " + erro); } try { int.Parse(valorPagamento); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor Pagamento = " + valorPagamento + " : Mensagem: " + erro); } try { int.Parse(quantidadeMoeda); } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Quantidade Moeda = " + quantidadeMoeda + " : preencher com a quantidade de moeda para pagamentos a serem realizados com moeda variável " + erro); } if (numDocumentoEmpresa.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número documento atribuído pela empresa = " + numDocumentoEmpresa + " : está em branco!<br>"); } if (!filler23.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Filler = " + filler23 + " : preencher com espaços!<br>"); } if (!numDocumentoBanco.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Número documento atribuído pelo banco = " + numDocumentoBanco + " : preencher com espaços!<br>"); } if (!filler25.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Filler = " + filler25 + " : preencher com espaços!<br>"); } try { int.Parse(codigoDaMoeda); switch (codigoDaMoeda) { case "02": break; case "04": break; case "06": break; case "09": break; default: textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Código da Moeda = " + codigoDaMoeda + " : Está diferente do padrão FEBRABAN<br>"); break; } } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Código da Moeda = " + codigoDaMoeda + " : Mensagem: " + erro); } if (!usoFebraban.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Uso FEBRABAN = " + usoFebraban + " : preencher com espaços!<br>"); } if (!ocorrenciasRetorno.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Ocorrências do Retorno = " + ocorrenciasRetorno + " : preencher com espaços!<br>"); } } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " não consegui ler a linha do registro J = " + linha + "<br>" + erro); } } }
internal void validaRegistroB(string linha, int numLinha) { if (linha.Length != 240) { textoValidacao += ("Linha: " + numLinha + " Fora do Padrão: quantidade de colunas é difente de 240! esta linha possui: " + linha.Length + " colunas<br>"); } else { try { string usoFebraban = linha.Substring(14, 3); // B.06 015 017 X(003) Uso FEBRABAN - preencher com espaços string tipoInscricao = linha.Substring(17, 1); // B.07 018 018 9(001) Tipo Inscrição - “1” = quando CPF (pessoa física) “2” = quando CNPJ (pessoa jurídica) string numInscricao = linha.Substring(18, 14); // B.08 019 032 9(014) Número Inscrição - preencher com o número do CPF quando no campo B.07 for preenchido com “1” ou o número do CNPJ quando no campo B.07 for preenchido com “2” string logradouro = linha.Substring(32, 30); // B.09 033 062 X(030) Logradouro - preencher com o nome da Rua, Avenida, Alameda string numLocal = linha.Substring(62, 5); // B.10 063 067 9(005) Número no local - preencher com número do endereço string complemento = linha.Substring(67, 15); // B.11 068 082 X(015) Complemento - preencher com o complemento do endereço string bairro = linha.Substring(82, 15); // B.12 083 097 X(015) Bairro - preencher com o bairro do endereço string cidade = linha.Substring(97, 20); // B.13 098 117 X(020) Cidade - preencher com cidade do endereço string cep = linha.Substring(117, 5); // B.14 118 122 9(005) CEP - Código de Endereçamento Postal string complementoCep = linha.Substring(122, 3); // B.15 123 125 X(003) Complemento CEP - complemento do Código de Endereçamento Postal string siglaEstado = linha.Substring(125, 2); // B.16 126 127 X(002) UF do Estado string dataVencimento = linha.Substring(127, 8); // B.17 128 135 9(008) Data do Vencimento string valorDocumento = linha.Substring(135, 15); // B.18 136 150 9(015) V99 Valor do Documento - preencher com zeros string valorAbatimento = linha.Substring(150, 15); // B.19 151 165 9(015) V99 Valor do Abatimento - preencher com zeros string valorDesconto = linha.Substring(165, 15); // B.20 166 180 9(015) V99 Valor do Desconto - preencher com zeros string valorMora = linha.Substring(180, 15); // B.21 181 195 9(015) V99 Valor da Mora - preencher com zeros string valorMulta = linha.Substring(195, 15); // B.22 196 210 9(015) V99 Valor da Multa - preencher com zeros string codDocfavorecido = linha.Substring(210, 15); // B.23 211 225 X(015) Código Documento Favorecido - preencher com espaços. Quando o campo 1.06 for “10” – OP, preencher com o nº do favorecido. Nos demais casos, preencher com espaços string usoFebraban2 = linha.Substring(225, 15); // B.24 226 240 X(015) Uso da FEBRABAN - preencher com espaço if (!usoFebraban.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Uso FEBRABAN = " + usoFebraban + " : preencher com espaços!<br>"); } switch (tipoInscricao) { case "1": break; case "2": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Num. Inscricao = " + tipoInscricao + " : preencher com 1 (pessoa física) ou 2 (pessoa jurídica)<br>"); break; } try { long.Parse(numInscricao); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Num. Inscricao = " + numInscricao + " : preencher com CPF ou CNPJ<br>"); } if (logradouro.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Logradouro = " + logradouro + " : está em branco!<br>"); } try { if (numLocal.Trim().Length < numLocal.Length) { if (numLocal.Trim().Length < 1) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número no local = " + numLocal + " : favor preencher - Exemplo: 00007 <br>"); } textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número no local = " + numLocal + " : preencher com o zero a esquerda<br>"); } } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número no local = " + numLocal + " : preencher com o número no local<br>"); } if (complemento.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Complemento = " + complemento + " : está em branco!<br>"); } if (bairro.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Bairro = " + logradouro + " : está em branco!<br>"); } if (cidade.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Cidade = " + cidade + " : está em branco!<br>"); } if (cep.Trim().Length < cep.Length) { if (cep.Trim().Length < 1) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: CEP = " + cep + " : preencher com o zero a esquerda<br>"); } else { textoValidacao += ("Linha: " + numLinha + " Erro no campo: CEP = " + cep + " : preencher com o zero a esquerda<br>"); } } if (cep.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Complemento do CEP = " + cep + " : está em branco!<br>"); } if (complementoCep.Trim().Length < complementoCep.Length) { if (complementoCep.Trim().Length < 1) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: CEP = " + complementoCep + " : preencher com o zero a esquerda<br>"); } else { textoValidacao += ("Linha: " + numLinha + " Erro no campo: CEP = " + complementoCep + " : preencher com o zero a esquerda<br>"); } } if (complementoCep.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Complemento do CEP = " + complementoCep + " : está em branco!<br>"); } Auxiliar auxEstado = new Auxiliar(); auxEstado.validaEstado(numLinha, siglaEstado); textoValidacao += auxEstado.TextoValidacao; try { DateTime dataVenc = DateTime.ParseExact(dataVencimento, "ddMMyyyy", CultureInfo.InvariantCulture); if (dataVenc < (DateTime.Now.AddDays(-1))) { textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Data de Vencimento = " + dataVencimento + " : já está vencida!<br>"); } } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Data de Vencimento = " + dataVencimento + " : preencher com a data de vencimento<br>"); } //faz o resto logo!! if (!valorDocumento.Contains("000000000000000")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor do Documento = " + valorDocumento + " : preencher com zeros!<br>"); } if (!valorAbatimento.Contains("000000000000000")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor do Abatimento = " + valorAbatimento + " : preencher com zeros!<br>"); } if (!valorDesconto.Contains("000000000000000")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor do Desconto = " + valorDesconto + " : preencher com zeros!<br>"); } if (!valorMora.Contains("000000000000000")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor da Mora = " + valorMora + " : preencher com zeros!<br>"); } if (!valorMulta.Contains("000000000000000")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor da Multa = " + valorMulta + " : preencher com zeros!<br>"); } //faz essa função logo!! // codDocfavorecido = linha.Substring(210, 15); // B.23 211 225 X(015) Código Documento Favorecido - preencher com espaços. // Quando o campo 1.06 for “10” – OP, preencher com o nº do favorecido. Nos demais casos, preencher com espaços if (!usoFebraban2.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Uso FEBRABAN = " + usoFebraban + " : preencher com espaços!<br>"); } } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " não consegui ler a linha do registro J = " + linha + "<br>" + erro); } } }
public String lerRetornoCnab240(Stream arquivo) { string linha, linhaHeaderRetorno = "", linhaTraillerRetorno = "", linhaHeaderLote = "", linhaTraillerLote = "", mensagemValidacao = ""; int contadorLinhas = 0, contadorHeaderRetorno = 0, contadorTraillerRetorno = 0, contadorHeaderLote = 0, contadorTraillerLote = 0, quantPagamento = 0; int numNsr = 1, numLote = 1, campoQuantRegLote = 0, quantRegLote = 2; long somaValorPagamento = 0, campoSomaValorPagamento = 0, campoSomaQuantMoeda = 0, somaQuantMoeda = 0; //StreamWriter sw = new StreamWriter(caminhoLogValidacao + "\\validacao.log", true, UTF8Encoding.UTF8); try { // construtor que recebe o objeto do tipo arquivo StreamReader sr = new StreamReader(arquivo); // emquanto houver linhas while (((linha = sr.ReadLine()) != null)) { contadorLinhas++; if (linha.Length > 7) { string codBanco = linha.Substring(0, 3); if (!codBanco.Contains("104")) { mensagemValidacao += ("Erro no campo: Código do Banco = " + codBanco + " : código pradão é 104<br>"); } string codRegistro = linha.Substring(7, 1); switch (codRegistro) { case "0": linhaHeaderRetorno = linha; //mensagemValidacao += ("Linha: " + contadorLinhas + ": Validando registro do Tipo: 0 (Header Retorno)...<br>"); contadorHeaderRetorno++; mensagemValidacao += ("Nome da Empresa: " + linhaHeaderRetorno.Substring(72, 30) + "<br>"); if (linha.Substring(17, 1).Contains("1")) { mensagemValidacao += ("CPF: " + linhaHeaderRetorno.Substring(18, 14) + "<br>"); } if (linha.Substring(17, 1).Contains("2")) { mensagemValidacao += ("CNPJ: " + linhaHeaderRetorno.Substring(18, 14) + "<br>"); } mensagemValidacao += ("Convênio: " + linhaHeaderRetorno.Substring(32, 6) + "<br>NSA: " + linhaHeaderRetorno.Substring(157, 6) + "<br><br>"); break; case "1": linhaHeaderLote = linha; //mensagemValidacao += ("Linha: " + contadorLinhas + ": Validando registro do Tipo: 1 (Header Lote)...<br>"); Auxiliar auxLoteHeader = new Auxiliar(); auxLoteHeader.validaNumeroLotes(contadorLinhas, linha, numLote); mensagemValidacao += auxLoteHeader.TextoValidacao; contadorHeaderLote++; break; case "3": if (linha.Substring(13, 1).Equals("A", StringComparison.InvariantCultureIgnoreCase)) { mensagemValidacao += ("Linha: " + contadorLinhas + ": Pagamento do tipo: A...<br>"); Auxiliar aux = new Auxiliar(); aux.validaNumeroLotes(contadorLinhas, linha, numLote); aux.validaNsr(contadorLinhas, linha, numNsr); mensagemValidacao += aux.TextoValidacao; quantRegLote++; quantPagamento++; somaValorPagamento += long.Parse(linha.Substring(119, 15)); somaQuantMoeda += long.Parse(linha.Substring(114, 10)); string codBancoDestino = linha.Substring(20, 3); // A.09 021 023 9(003) Código Banco de Destino string codAgenciaDestino = linha.Substring(23, 5); // A.10 024 028 9(005) Código da Agência de Destino string dvAgenciaDestino = linha.Substring(28, 1); // A.11 029 029 X(001) DV Agência de Destino string contaCorrenteDestino = linha.Substring(29, 12); // A.12 030 041 9(012) Conta Corrente Destino string dvContaDestino = linha.Substring(41, 1); // A.13 042 042 X(001) DV Conta Destino string dvAgenciaContaDestino = linha.Substring(42, 1); // A.14 043 043 X(001) DV Agência/Conta Destino string nomeFavorecido = linha.Substring(43, 30); // A.15 044 073 X(030) Nome do terceiro - favorecido string numDocAtribuidoEmpresa = linha.Substring(73, 6); // A.16 074 079 9(006) Número do Documento Atribuído pela Empresa string dataVencimento = linha.Substring(93, 8); // A.19 094 101 9(008) Data de vencimento string valorLancamento = linha.Substring(119, 15); // A.22 120 134 9(015) Valor do Lançamento string ocorrencias = linha.Substring(230, 10); // A.36 231 240 X(010) Ocorrências - preencher com espaços valorLancamento = aux.converteEmMoeda(contadorLinhas, linha, valorLancamento); ocorrencias = aux.TrataOcorencias(ocorrencias); mensagemValidacao += (" - Banco: " + codBancoDestino + " - Ag: " + codAgenciaDestino + "-" + dvAgenciaDestino + " - Cta: " + contaCorrenteDestino + "-" + dvAgenciaDestino + "-" + dvAgenciaContaDestino + "<br> - Favorecido: " + nomeFavorecido + "<br> - Numero do Documento: " + numDocAtribuidoEmpresa + " - Vencimento: " + dataVencimento + " - Valor: " + valorLancamento + "<br> - Ocorrências: " + ocorrencias + "<br>"); } if (linha.Substring(13, 1).Equals("B", StringComparison.InvariantCultureIgnoreCase)) { //mensagemValidacao +=("Linha: " + contadorLinhas + ": Pagamento do tipo: B...<br>"); //Auxiliar auxLoteSeg = new Auxiliar(); //auxLoteSeg.validaNumeroLotes(contadorLinhas, linha, numLote, mensagemValidacao); //auxLoteSeg.validaNsr(contadorLinhas, linha, numNsr, mensagemValidacao); quantRegLote++; //RegistroB regB = new RegistroB(); //regB.validaRegistroB(linha, contadorLinhas, mensagemValidacao); } if (linha.Substring(13, 1).Equals("J", StringComparison.InvariantCultureIgnoreCase)) { mensagemValidacao += ("Linha: " + contadorLinhas + ": Pagamento do tipo: J...<br>"); Auxiliar aux = new Auxiliar(); aux.validaNumeroLotes(contadorLinhas, linha, numLote); aux.validaNsr(contadorLinhas, linha, numNsr); mensagemValidacao += aux.TextoValidacao; quantRegLote++; quantPagamento++; somaValorPagamento += long.Parse(linha.Substring(152, 15)); somaQuantMoeda += long.Parse(linha.Substring(167, 10)); string bancoDestino = linha.Substring(17, 3); //J.08 018 020 9(003) Banco destino string nomeCedente = linha.Substring(61, 30); //J.14 062 091 X(030) Nome do Cedente string dataVencimento = linha.Substring(91, 8); //J.15 092 099 9(008) Data Vencimento string valorPagamento = linha.Substring(152, 15); //J.20 153 167 9(015)v99 Valor Pagamento string numDocumentoEmpresa = linha.Substring(182, 6); //J.22 183 188 X(006) Número documento atribuído pela empresa string ocorrencias = linha.Substring(230, 10); //J.28 231 240 X(010) Ocorrências do Retorno valorPagamento = aux.converteEmMoeda(contadorLinhas, linha, valorPagamento); ocorrencias = aux.TrataOcorencias(ocorrencias); mensagemValidacao += (" - Banco: " + bancoDestino + " - Cedente: " + nomeCedente + " - Numero do Documento: " + numDocumentoEmpresa + " - Vencimento: " + dataVencimento + " - Valor: " + valorPagamento + "<br> - Ocorrências: " + ocorrencias + "<br>"); } if (linha.Substring(13, 1).Equals("K", StringComparison.InvariantCultureIgnoreCase)) { mensagemValidacao += ("Linha: " + contadorLinhas + ": Pagamento do Tipo: K...<br>"); Auxiliar aux = new Auxiliar(); aux.validaNumeroLotes(contadorLinhas, linha, numLote); aux.validaNsr(contadorLinhas, linha, numNsr); mensagemValidacao += aux.TextoValidacao; quantRegLote++; quantPagamento++; somaValorPagamento += long.Parse(linha.Substring(119, 15)); somaQuantMoeda = long.Parse(linha.Substring(114, 10)); string codSegmentoEmpresa = linha.Substring(18, 1); //K. 019 019 9(001) Código Segmento Empresa string numDocEmpresa = linha.Substring(73, 6); //K. 074 079 X(006) Número do documento na Empresa string dataLancamento = linha.Substring(93, 8); //K. 094 101 9(008) Data Lançamento string valorLancamento = linha.Substring(119, 15); //K. 120 134 9(015) v99 Valor Lançamento string dataEfetivacao = linha.Substring(154, 8); //K. 155 162 9(008) Data da efetivação string ocorrencias = linha.Substring(230, 10); //K. 231 240 X(010) Ocorrências para retorno valorLancamento = aux.converteEmMoeda(contadorLinhas, linha, valorLancamento); ocorrencias = aux.TrataOcorencias(ocorrencias); codSegmentoEmpresa = aux.SegmentoEmpresa(codSegmentoEmpresa); mensagemValidacao += (" - Segmento empresa: " + codSegmentoEmpresa + " - Numero do Documento: " + numDocEmpresa + "<br> - Data: " + dataLancamento + " - Valor: " + valorLancamento + "<br> - Ocorrências: " + ocorrencias + "<br>"); } numNsr++; break; case "5": linhaTraillerLote = linha; //mensagemValidacao += ("Linha: " + contadorLinhas + ": Validando registro do Tipo: 5 (Trailler Lote)...<br>"); try { campoQuantRegLote = int.Parse(linha.Substring(17, 6)); campoSomaValorPagamento = long.Parse(linha.Substring(23, 18)); campoSomaQuantMoeda = long.Parse(linha.Substring(41, 15)); if (campoQuantRegLote != quantRegLote) { mensagemValidacao += ("Linha: " + contadorLinhas + " Erro no campo: Somatório de registros do lote: " + campoQuantRegLote + " A soma dos registros neste lote é: " + quantRegLote + "<br>"); } if (campoSomaValorPagamento != somaValorPagamento) { Auxiliar aux = new Auxiliar(); string campoSomaValorPag = aux.converteEmMoeda(contadorLinhas, linha, campoSomaValorPagamento.ToString()); string somaValorPag = aux.converteEmMoeda(contadorLinhas, linha, somaValorPagamento.ToString()); mensagemValidacao += ("Linha: " + contadorLinhas + " Erro no campo: Somatório de valores: " + campoSomaValorPag + " A soma dos valores neste lote é: " + somaValorPag + "<br>"); } if (campoSomaQuantMoeda != somaQuantMoeda) { mensagemValidacao += ("Linha: " + contadorLinhas + " Erro no campo: Somatório de quantidade moeda: " + campoSomaQuantMoeda + " A soma de quantidade moeda neste lote é: " + somaQuantMoeda + "<br>"); } } catch (Exception erro) { mensagemValidacao += ("Linha: " + contadorLinhas + " Erro na formatação do registro do Tipo: 5 (Trailler Lote)...<br>" + erro + "<br>"); } quantRegLote = 2; somaQuantMoeda = 0; somaValorPagamento = 0; contadorTraillerLote++; numNsr = 1; numLote++; break; case "9": linhaTraillerRetorno = linha; //mensagemValidacao += ("Linha: " + contadorLinhas + ": Validando registro do Tipo: 9 (Trailler Retorno)...<br>"); try { int quantRegistrosArq = int.Parse(linhaTraillerRetorno.Substring(23, 6)); if (contadorLinhas != quantRegistrosArq) { mensagemValidacao += ("Linha: " + contadorLinhas + " Erro no campo: Quantidade de Registros do Arquivo: " + quantRegistrosArq + " A soma de linhas neste arquivo é: " + contadorLinhas + "<br>"); } } catch (Exception erro) { mensagemValidacao += ("Linha: " + contadorLinhas + " Erro na formatação do registro do Tipo: 9 (Trailler Retorno)...<br>" + erro + "<br>"); } contadorTraillerRetorno++; break; default: mensagemValidacao += ("Linha: " + contadorLinhas + ": Não foi possível identificar a linha: " + linha + "<br>"); break; } } else { mensagemValidacao += ("Linha: " + contadorLinhas + ": Não foi possível identificar a linha: " + linha + "<br>"); } } // fecha o laço while sr.Close(); //fecha o StreamReader } catch (IOException ex) { mensagemValidacao += ("Linha: " + contadorLinhas + " Ocorreu um erro ao ler o arquivo: " + ex + "<br>"); } catch (FormatException ex) { mensagemValidacao += ("Linha: " + contadorLinhas + " Ocorreu um erro ao ler o arquivo: " + ex + "<br>"); } if (contadorHeaderRetorno - contadorTraillerRetorno == 0) { mensagemValidacao += ("<br>Quantidade de lotes: " + contadorHeaderLote + "<br>Quantidade de pagamentos: " + quantPagamento + "<br>Quantidade de linhas lidas: " + contadorLinhas + "<br><br>"); } else { mensagemValidacao += ("<br>Problema com HEADER ou TRAILLER da Retorno!<br>Quant. Header: " + contadorHeaderRetorno + "<br>Quant. Trailler: " + contadorTraillerRetorno + "<br><br>"); } return(mensagemValidacao); }
public String lerRemessaCnab240(Stream arquivo) { string linha, linhaHeaderRemessa = "", linhaTraillerRemessa = "", linhaHeaderLote = "", linhaTraillerLote = "", mensagemValidacao = ""; int contadorLinhas = 0, contadorHeaderRemessa = 0, contadorTraillerRemessa = 0, contadorHeaderLote = 0, contadorTraillerLote = 0, quantPagamento = 0; int numNsr = 1, numLote = 1, campoQuantRegLote = 0, quantRegLote = 2, quantLote = 0; long somaValorPagamento = 0, campoSomaValorPagamento = 0, campoSomaQuantMoeda = 0, somaQuantMoeda = 0; try { // construtor que recebe o objeto do tipo arquivo StreamReader sr = new StreamReader(arquivo); // emquanto houver linhas while (((linha = sr.ReadLine()) != null)) { contadorLinhas++; if (linha.Length > 7) { string codBanco = linha.Substring(0, 3); if (!codBanco.Contains("104")) { mensagemValidacao += ("Erro no campo: Código do Banco = " + codBanco + " : código pradão é 104<br>"); } string codRegistro = linha.Substring(7, 1); switch (codRegistro) { case "0": linhaHeaderRemessa = linha; //mensagemValidacao += ("Linha: " + contadorLinhas + ": Validando registro do Tipo: 0 (Header Remessa)...<br>"); Registro0 validaReg0 = new Registro0( ); validaReg0.valida(linha, contadorLinhas, mensagemValidacao); mensagemValidacao = validaReg0.TextoValidacao; contadorHeaderRemessa++; mensagemValidacao += ("Nome da Empresa: " + linhaHeaderRemessa.Substring(72, 30) + "<br>"); if (linha.Substring(17, 1).Contains("1")) { mensagemValidacao += ("CPF: " + linhaHeaderRemessa.Substring(18, 14) + "<br>"); } if (linha.Substring(17, 1).Contains("2")) { mensagemValidacao += ("CNPJ: " + linhaHeaderRemessa.Substring(18, 14) + "<br>"); } mensagemValidacao += ("Convênio: " + linhaHeaderRemessa.Substring(32, 6) + "<br>NSA: " + linhaHeaderRemessa.Substring(157, 6) + "<br><br>"); break; case "1": linhaHeaderLote = linha; //mensagemValidacao +=("Linha: " + contadorLinhas + ": Validando registro do Tipo: 1 (Header Lote)...<br>"); Auxiliar auxLoteHeader = new Auxiliar(); auxLoteHeader.validaNumeroLotes(contadorLinhas, linha, numLote); mensagemValidacao += auxLoteHeader.TextoValidacao; Registro1 validaReg1 = new Registro1(); validaReg1.valida(linha, contadorLinhas); mensagemValidacao += validaReg1.TextoValidacao; contadorHeaderLote++; break; case "3": if (linha.Substring(13, 1).Equals("A", StringComparison.InvariantCultureIgnoreCase)) { //mensagemValidacao +=("Linha: " + contadorLinhas + ": Validando registro do Tipo: A...<br>"); Auxiliar auxLoteSeg = new Auxiliar(); auxLoteSeg.validaNumeroLotes(contadorLinhas, linha, numLote); auxLoteSeg.validaNsr(contadorLinhas, linha, numNsr); mensagemValidacao += auxLoteSeg.TextoValidacao; quantRegLote++; quantPagamento++; somaValorPagamento += long.Parse(linha.Substring(119, 15)); somaQuantMoeda += long.Parse(linha.Substring(114, 10)); RegistroA regA = new RegistroA(); regA.validaRegistroA(linha, contadorLinhas); mensagemValidacao += regA.TextoValidacao; } if (linha.Substring(13, 1).Equals("B", StringComparison.InvariantCultureIgnoreCase)) { //mensagemValidacao +=("Linha: " + contadorLinhas + ": Validando registro do Tipo: B...<br>"); Auxiliar auxLoteSeg = new Auxiliar(); auxLoteSeg.validaNumeroLotes(contadorLinhas, linha, numLote); auxLoteSeg.validaNsr(contadorLinhas, linha, numNsr); mensagemValidacao += auxLoteSeg.TextoValidacao; quantRegLote++; RegistroB regB = new RegistroB(); regB.validaRegistroB(linha, contadorLinhas); mensagemValidacao += regB.TextoValidacao; } if (linha.Substring(13, 1).Equals("J", StringComparison.InvariantCultureIgnoreCase)) { //mensagemValidacao +=("Linha: " + contadorLinhas + ": Validando registro do Tipo: J...<br>"); Auxiliar auxLoteSeg = new Auxiliar(); auxLoteSeg.validaNumeroLotes(contadorLinhas, linha, numLote); auxLoteSeg.validaNsr(contadorLinhas, linha, numNsr); mensagemValidacao += auxLoteSeg.TextoValidacao; quantRegLote++; quantPagamento++; somaValorPagamento += long.Parse(linha.Substring(152, 15)); somaQuantMoeda += long.Parse(linha.Substring(167, 10)); RegistroJ regJ = new RegistroJ(); regJ.validaRegistroJ(linha, contadorLinhas); mensagemValidacao += regJ.TextoValidacao; } if (linha.Substring(13, 1).Equals("K", StringComparison.InvariantCultureIgnoreCase)) { //mensagemValidacao +=("Linha: " + contadorLinhas + ": Validando registro do Tipo: K...<br>"); Auxiliar auxLoteSeg = new Auxiliar(); auxLoteSeg.validaNumeroLotes(contadorLinhas, linha, numLote); auxLoteSeg.validaNsr(contadorLinhas, linha, numNsr); mensagemValidacao += auxLoteSeg.TextoValidacao; quantRegLote++; quantPagamento++; somaValorPagamento += long.Parse(linha.Substring(119, 15)); somaQuantMoeda = long.Parse(linha.Substring(114, 10)); RegistroK regK = new RegistroK(); regK.validaRegistroK(linha, contadorLinhas, mensagemValidacao); mensagemValidacao = regK.TextoValidacao; } numNsr++; break; case "5": linhaTraillerLote = linha; //mensagemValidacao +=("Linha: " + contadorLinhas + ": Validando registro do Tipo: 5 (Trailler Lote)...<br>"); try { campoQuantRegLote = int.Parse(linha.Substring(17, 6)); campoSomaValorPagamento = long.Parse(linha.Substring(23, 18)); campoSomaQuantMoeda = long.Parse(linha.Substring(41, 15)); if (campoQuantRegLote != quantRegLote) { mensagemValidacao += ("Erro no campo: Somatório de registros do lote: " + campoQuantRegLote + " A soma dos registros neste lote é: " + quantRegLote + "<br>"); } if (campoSomaValorPagamento != somaValorPagamento) { Auxiliar aux = new Auxiliar(); string campoSomaValorPag = aux.converteEmMoeda(contadorLinhas, linha, campoSomaValorPagamento.ToString()); string somaValorPag = aux.converteEmMoeda(contadorLinhas, linha, somaValorPagamento.ToString()); mensagemValidacao += ("Erro no campo: Somatório de valores: " + campoSomaValorPag + " A soma dos valores neste lote é: " + somaValorPag + "<br>"); } if (campoSomaQuantMoeda != somaQuantMoeda) { mensagemValidacao += ("Erro no campo: Somatório de quantidade moeda: " + campoSomaQuantMoeda + " A soma de quantidade moeda neste lote é: " + somaQuantMoeda + "<br>"); } } catch (Exception erro) { mensagemValidacao += ("Erro na formatação do registro do Tipo: 5 (Trailler Lote)...<br>" + erro + "<br>"); } Registro5 validaReg5 = new Registro5(); validaReg5.valida(linha, mensagemValidacao); mensagemValidacao = validaReg5.TextoValidacao; quantRegLote = 2; somaQuantMoeda = 0; somaValorPagamento = 0; contadorTraillerLote++; numNsr = 1; numLote++; quantLote++; break; case "9": linhaTraillerRemessa = linha; //mensagemValidacao +=("Linha: " + contadorLinhas + ": Validando registro do Tipo: 9 (Trailler Remessa)...<br>"); Registro9 validaReg9 = new Registro9(); validaReg9.valida(linha, contadorLinhas, mensagemValidacao, quantLote); mensagemValidacao = validaReg9.TextoValidacao; contadorTraillerRemessa++; break; default: mensagemValidacao += ("Linha: " + contadorLinhas + ": Não foi possível identificar a linha: " + linha + "<br>"); break; } } else { mensagemValidacao += ("Linha: " + contadorLinhas + ": Não foi possível identificar a linha: " + linha + "<br>"); } } // fecha o laço while sr.Close(); //fecha o StreamReader } catch (IOException ex) { mensagemValidacao += ("Ocorreu um erro ao ler o arquivo: " + ex + "<br>"); } catch (FormatException ex) { mensagemValidacao += ("Ocorreu um erro ao ler o arquivo: " + ex + "<br>"); } if (contadorHeaderRemessa - contadorTraillerRemessa == 0) { mensagemValidacao += ("<br>Quantidade de lotes: " + contadorHeaderLote + "<br>Quantidade de pagamentos: " + quantPagamento + "<br>Quantidade de linhas lidas: " + contadorLinhas + "<br><br>"); } else { mensagemValidacao += ("<br>Problema com HEADER ou TRAILLER da remessa!<br>Quant. Header: " + contadorHeaderRemessa + "<br>Quant. Trailler: " + contadorTraillerRemessa + "<br><br>"); } return(mensagemValidacao); }
internal void validaRegistroA(string linha, int numLinha) { if (linha.Length != 240) { textoValidacao += ("Linha: " + numLinha + " Fora do Padrão: quantidade de colunas é difente de 240! esta linha possui: " + linha.Length + " colunas<br>"); } else { try { string tipoMovimento = linha.Substring(14, 1); // A.06 015 015 9(001) Tipo de movimento string codInstrucaoMovimento = linha.Substring(15, 2); // A.07 016 017 9(002) Código Instrução Movimento string camaraCompensacao = linha.Substring(17, 3); // A.08 018 020 9(003) Câmara de Compensação string codBancoDestino = linha.Substring(20, 3); // A.09 021 023 9(003) Código Banco de Destino string codAgenciaDestino = linha.Substring(23, 5); // A.10 024 028 9(005) Código da Agência de Destino string dvAgenciaDestino = linha.Substring(28, 1); // A.11 029 029 X(001) DV Agência de Destino string contaCorrenteDestino = linha.Substring(29, 12); // A.12 030 041 9(012) Conta Corrente Destino string dvContaDestino = linha.Substring(41, 1); // A.13 042 042 X(001) DV Conta Destino string dvAgenciaContaDestino = linha.Substring(42, 1); // A.14 043 043 X(001) DV Agência/Conta Destino string nomeFavorecido = linha.Substring(43, 30); // A.15 044 073 X(030) Nome do terceiro - favorecido string numDocAtribuidoEmpresa = linha.Substring(73, 6); // A.16 074 079 9(006) Número do Documento Atribuído pela Empresa string filler = linha.Substring(79, 13); // A.17 080 092 X(013) Filler string tipoConta = linha.Substring(92, 1); // A.18 093 093 X(001) Tipo de conta string dataVencimento = linha.Substring(93, 8); // A.19 094 101 9(008) Data de vencimento string tipoMoeda = linha.Substring(101, 3); // A.20 102 104 X(003) Tipo de Moeda string quantMoeda = linha.Substring(114, 10); // A.21 105 119 9(010) Quantidade de Moeda string valorLancamento = linha.Substring(119, 15); // A.22 120 134 9(015) Valor do Lançamento string numDocBanco = linha.Substring(134, 9); // A.23 135 143 9(009) Número Documento Banco string filler24 = linha.Substring(143, 3); // A.24 144 146 X(003) Filler string quantParcelas = linha.Substring(146, 2); // A.25 147 148 9(002) Quantidade de Parcelas string indicadorBloqueio = linha.Substring(148, 1); // A.26 149 149 X(001) Indicador de Bloqueio, indica se as parcelas posteriores deverão ser efetivadas ou não. Caso alguma não seja efetuada, preencher: S - Bloqueia as demais parcelas ou N - Não bloqueia as demais parcelas string indicadorFormaParcelamento = linha.Substring(149, 1); // A.27 150 150 9(001) Indicador Forma de Parcelamento, preencher: “1” - Data Fixa ou “2” - Periódico ou “3” - Dia útil string periodoOuDiaVencimento = linha.Substring(150, 2); // A.28 151 152 X(002) Período ou dia de vencimento, preencher com número desejado para o tratamento do Indicador da Forma de Parcelamento, sendo: - Quando for informado o Indicador de Forma de Lançamento, Data Fixa, significa que será efetuado no dia informado, por exemplo, se for informado 05, será efetuado o lançamento no dia 05 de cada mês; - Quando for informado o Indicador de Forma de Lançamento, Periódico, significa que será efetuado a cada período informado, por exemplo, se for informado 05, será efetuado a cada 5 dias; - Quando for informado o Indicador de Forma de Parcelamento, Dia útil, significa que será efetuado no dia útil informado, por exemplo, se for informado 05, será efetuado no 5º dia útil do mês string numeroParcela = linha.Substring(152, 2); // A.29 153 154 9(002) Número Parcela - Quando parcela única informar “00” string dataEfetivacao = linha.Substring(154, 8); // A.30 155 162 9(008) Data da efetivação - na remessa deve ser preenchido com zeros string valorRealEfetivado = linha.Substring(162, 15); // A.31 163 177 9(015) Valor Real Efetivado - na remessa deve ser preenchidos com zeros string informacao2 = linha.Substring(177, 40); // A.32 178 217 X(040) Informação 2 - preencher com espaços string FinalidadeDoc = linha.Substring(217, 2); // A.33 218 219 9(002) Finalidade DOC - preencher conforme tabela P005, quando pagamento através de DOC para os demais preencher com “00” string usoFebraban = linha.Substring(219, 10); // A.34 220 229 X(010) Uso FEBRABAN - preencher com espaços string avisoFavorecido = linha.Substring(229, 1); // A.35 230 230 9(001) Aviso ao Favorecido - preencher conforme tabela P006 string ocorrencias = linha.Substring(230, 10); // A.36 231 240 X(010) Ocorrências - preencher com espaços switch (tipoMovimento) { case "0": break; case "9": break; default: textoValidacao += ("Linha: " + numLinha + " Atenção no campo: Tipo de movimento = " + tipoMovimento + " : preencher: “0” - inclusão ou “9” - exclusão<br>"); break; } if (!codInstrucaoMovimento.Contains("00")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Código Instrução Movimento = " + codInstrucaoMovimento + " : preencher com “00”<br>"); } switch (camaraCompensacao) { case "018": break; case "700": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Câmara de Compensação = " + camaraCompensacao + " : preencher: “018” – Finalidade TED ou “700” – Finalidade DOC<br>"); break; } Auxiliar auxBancoDestino = new Auxiliar(); auxBancoDestino.validaCodBanco(numLinha, codBancoDestino); textoValidacao += auxBancoDestino.TextoValidacao; try { int.Parse(codAgenciaDestino); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Código da Agência de Destino = " + codAgenciaDestino + " : preencher com código da Agência do favorecido<br>"); } if (dvAgenciaDestino.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: DV Agência de Destino = " + dvAgenciaDestino + " : preencher com o dígito verificador da Agência do favorecido<br>"); } try { long.Parse(contaCorrenteDestino); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Conta Corrente Destino = " + contaCorrenteDestino + " : preencher com o número da conta corrente do favorecido<br>"); } if (dvContaDestino.Contains(" ") && codBancoDestino.Equals("104")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: DV Conta Destino = " + dvContaDestino + " : preencher com o dígito verificador da conta corrente do favorecido<br>"); } if (!dvAgenciaContaDestino.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: DV Agência/Conta Destino = " + dvAgenciaContaDestino + " : preencher com espaço<br>"); } if (nomeFavorecido.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Nome do terceiro = " + nomeFavorecido + " : preencher com o nome do favorecido<br>"); } try { int.Parse(numDocAtribuidoEmpresa); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número do Documento Atribuído pela Empresa = " + numDocAtribuidoEmpresa + " : preencher com o número do agendamento atribuído pela empresa<br>"); } if (!filler.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Filler = " + filler + " : preencher com espaços<br>"); } switch (tipoConta) { case "0": break; case "1": break; case "2": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Tipo de conta – Finalidade TED = " + tipoConta + " : preencher: “0” – Sem conta ou “1” – Conta corrente ou “2” – Poupança<br>"); break; } try { int.Parse(dataVencimento); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Data de vencimento = " + dataVencimento + " : preencher com a data de vencimento do agendamento (DDMMAAAA)<br>"); } switch (tipoMoeda) { case "BRL": break; case "USD": break; case "UFR": break; case "TRD": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Tipo de Moeda = " + tipoConta + " : preencher: “BRL”(Real) ou “USD”(Dólar Americano) ou “UFR”(UFIR) ou “TRD”(Taxa Referencial Diária)<br>"); break; } try { int.Parse(quantMoeda); if (!tipoMoeda.Equals("BRL") && quantMoeda.Equals("0000000000")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Quantidade de Moeda = " + quantMoeda + "informar a quantidade de moeda a ser convertida<br>"); } } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Quantidade de Moeda = " + quantMoeda + " : informar a quantidade de moeda a ser convertida, quando moeda BRL preencher com zeros<br>"); } try { int.Parse(valorLancamento); if (tipoMoeda.Equals("BRL") && valorLancamento.Equals("0000000000000")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor do Lançamento = " + valorLancamento + "informar o valor do lançamento quando tipo de moeda BRL<br>"); } } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor do Lançamento = " + valorLancamento + " : informar o valor do lançamento quando tipo de moeda BRL<br>"); } if (!numDocBanco.Contains("000000000")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número Documento Banco = " + numDocBanco + " : preencher com zeros<br>"); } if (!filler24.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Filler = " + filler24 + " : preencher com espaços<br>"); } try { int numParcelas = int.Parse(quantParcelas); if (numParcelas < 1) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Quantidade de Parcelas = " + quantParcelas + " :preencher com a quantidade de parcelas a ser efetuado o pagamento, para pagamento único preencher com “01”<br>"); } } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Quantidade de Parcelas = " + quantParcelas + " : preencher com a quantidade de parcelas a ser efetuado o pagamento, para pagamento único preencher com “01”<br>"); } switch (indicadorBloqueio) { case "S": break; case "N": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Indicador de Bloqueio = " + indicadorBloqueio + " : preencher: S - Bloqueia as demais parcelas ou N - Não bloqueia as demais parcelas<br>"); break; } switch (indicadorFormaParcelamento) { case "1": break; case "2": break; case "3": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Indicador Forma de Parcelamento = " + indicadorFormaParcelamento + " : preencher: “1” - Data Fixa ou “2” - Periódico ou “3” - Dia útil<br>"); break; } if (periodoOuDiaVencimento.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Período ou dia de vencimento = " + periodoOuDiaVencimento + " : preencher com número desejado para o tratamento do Indicador da Forma de Parcelamento<br>"); } try { if (!numeroParcela.Contains("00") && quantParcelas.Contains("1")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número Parcela = " + numeroParcela + " : Quando parcela única informar “00”<br>"); } int.Parse(numeroParcela); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Número Parcela = " + numeroParcela + " : Quando parcela única informar “00”<br>"); } try { int.Parse(dataEfetivacao); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Data da efetivação = " + dataEfetivacao + " : na remessa deve ser preenchido com zeros<br>"); } try { int.Parse(valorRealEfetivado); } catch (Exception e) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Valor Real Efetivado = " + valorRealEfetivado + " : na remessa deve ser preenchido com zeros<br>"); } if (!informacao2.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Informação 2 = " + informacao2 + " : preencher com espaços<br>"); } switch (FinalidadeDoc) { case "01": break; case "02": break; case "03": break; case "04": break; case "05": break; case "06": break; case "07": break; case "08": break; case "09": break; case "10": break; case "11": break; case "00": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Finalidade DOC = " + FinalidadeDoc + " : preencher conforme tabela P005, se não for DOC preencher com “00”<br>"); break; } if (!usoFebraban.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Uso FEBRABAN = " + usoFebraban + " : preencher com espaços!<br>"); } switch (avisoFavorecido) { case "0": break; case "2": break; case "5": break; case "6": break; case "7": break; default: textoValidacao += ("Linha: " + numLinha + " Erro no campo: Aviso ao Favorecido = " + avisoFavorecido + " : preencher conforme tabela P006<br>"); break; } if (!ocorrencias.Contains(" ")) { textoValidacao += ("Linha: " + numLinha + " Erro no campo: Ocorrências do Retorno = " + ocorrencias + " : preencher com espaços!<br>"); } } catch (Exception erro) { textoValidacao += ("Linha: " + numLinha + " não consegui ler a linha do registro J = " + linha + "<br>" + erro); } } }