Monte 3 funções
- Separa letras de números
- Remove caracteres especiais e acentos.
- Remove caracteres em branco duplicados.
Input: Rua Jose de Sá brito167,apto005SÃO@PAULO – SP
Output: Rua Jose de Sa Brito 167 Apto 5 SAOPAULO SP
- Crie uma WebApi com um endpoint
GET /sanitize/:endereco
que receba uma string, execute as funções criadas no passo anterior nesta string e devolva o resultado UpperCase em um JSON como exemplo:
{
input: 'Rua Jose de Sá brito167,apto@@@005SÃO PAULO – SP',
output: 'RUA JOSE DE SA BRITO 167 APTO 5 SAO PAULO SP'
}
- Em seguida, crie uma aplicação do tipo Console Application e leia o arquivo CLIENTE_XPTO.TXT localizado na pasta /files/input e aplique as seguintes regras definida na sub-seção Regras
Seq | Ini | Tam | Alfa/Numerico | Descrição |
---|---|---|---|---|
1 | 1 | 1 | N | Código do registro |
2 | 2 | 14 | N | Número do CNPJ da instituição informante ajustado à direita e preenchido com zeros à esquerda |
3 | 16 | 8 | N | Data do movimento (AAAAMMDD) – data de geração do arquivo |
4 | 24 | 4 | N | Número de DDD do telefone de contato da instituição informante |
5 | 28 | 8 | N | Número do telefone de contato da instituição informante |
6 | 36 | 4 | N | Número de ramal do telefone de contato da instituição informante |
7 | 40 | 70 | A | Nome/Razao Social da Instituição |
8 | 110 | 200 | X | Endereço (Tipo, Logradouro, Numero, Complemento) |
9 | 310 | 50 | A | Cidade |
10 | 360 | 2 | A | UF |
11 | 362 | 8 | N | CEP |
12 | 370 | 3 | N | Indentificação do registro |
13 | 373 | 8 | X | Informar o LOGON a ser utilizado na contabilização das cartas comunicado e anotações. |
14 | 381 | 101 | X | Espaços em Branco |
15 | 482 | 3 | X | Código de erros |
16 | 485 | 7 | N | Seqüência do registro |
Seq | Descrição |
---|---|
1 | CNPJ |
2 | Logradouro |
2 | Número |
2 | Complemento |
3 | Cidade |
4 | UF |
5 | CEP |
6 | Nome do contato da instituição informante |
7 | Sequencia do Registro |
- No campo de endereço, aplique a função criada no teste anterior chamando o endpoint criado na webApi.
- Altere a ordem das colunas e o formato do arquivo, para que o arquivo de saída respeite o layout definido em Layout de Saída
- O endereço deve ficar separado em três colunas, logradouro, número e complemento
- É considerado complemento, tudo aquilo que vem após o primeiro número do endereço. Ex.: R MARIA HELENA 405 CS 6 | o complemento é CS 6
- Os campos do layout de saída devem ser separados por TABs (ASCII 9).
- Salve o arquivo no diretório /files/output com o nome de {NomeOriginal}_YYYYMMDD_Resultado.TXT.
- Mova o arquivo original para o diretório /files/input/processed
- Testes automatizados serão avaliados como um bom extra.
Imagine que você precise adicionar uma funcionalidade em um WebApp existente. Você agora irá oferecer à seu cliente um serviço em que ele possa realizar uma negativação na Serasa.
(Negativação é o processo de registro de um CNPJ junto à Serasa, informando à Serasa que determinado CNPJ não é um bom pagador, pois deixou uma dívida em aberto.)
Você sabe que:
- Seu cliente possui diversos CNPJ em que ele gostaria de fazer a negativação.
- A negativação é iniciada fazendo uma chamada à uma API da Serasa.
- A comunicação é feita através de uma API da Serasa e ela devolve status 200 quando a requisição foi enviada com sucesso ou status 400 caso a requisição seja enviada de maneira incorreta. Sem corpo de resposta.
- A negativação pela Serasa demora até 2 dias para devolver um resultado.
- O retorno com o resultado da negativação é devolvido através de um FTP disponibilizado pela Serasa em um arquivo TXT de layout com campos de tamanho fixo (estilo mainframe).
- A Serasa realiza o processo de negativação, porém, não mantém um histórico do que foi negativado.
- Quando um CNPJ paga sua dívida, ele precisa ser desnegativado. Este processo deve ser feito pelo cliente que fez a negativação em nossa plataforma.
Descreva como resolveria este problema. Pode ser um vídeo, um Word, um ambiente simulado. O importante é demonstrar uma solução.
Faça um fork desse projeto e suba sua resolução para o git. Pode ser uma PR aqui neste repositório ou um repo próprio. No caso de subir para um repo próprio envie um e-mail para adriano@thinkdata.com.br informando que o seu teste foi finalizado.