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); } } }
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); } } }