# Avaliador de multas de transito Esse projeto tem como fim avaliar várias multas de trânsito e aplicar os devidos pontos na Carteira Nacional de Habilitação (CNH) e taxas para o infrator. ## Funcionamento O projeto ira receber um CSV contendo os seguintes campos na ordem: 1) Placa: Caracteres da placa de identificação do veículo 2) Tipo de infração: Gravidade da infração 3) Data da infração: Data e hora do cometimento da infração 4) Data da notificação: Data e hora que a multa foi enviada ao infrator via Correios ou correio eletrônico 5) Data de pagamento: Data e hora que a multa foi paga 6) RG do infrator: Documento de identidade do infrator 7) Nome do infrator: Nome do infrator Com esse CSV o programa deve criar outro CSV de retorno agrupado por RG com os seguintes dados: 1) RG do infrator: Documento de identidade do infrator 2) Nome do infrator: Nome do infrator 3) Placas dos veículos do infrator: Lista de placas possuídas pelo infrator separadas por vírgula e espaço `, ` 4) Status da CNH: Status da CNH do infrator depois dos cálculos, pode ser Ativa ou Revogada 5) Pontos da CNH: Numero de pontos na CNH 6) Valor total: Valor a ser pago pelo infrator Notas: - Os campos dos CSV de entrada e saída devem estar separados por ponto e vírgula `;` - Todas as datas estarão no formato ISO 8601, ex: `2021-04-25 15:00:00` ## Regras para o calculo de pontos e multas A gravidade da infração pode ser classificada em 4: Leve, Média, Grave e Gravíssima Para cada uma delas um valor monetário e um determinado valor de pontos na CNH são associados segundo a tabela abaixo. - Leve: 3 pontos e um valor de R$ 88,38 - Média: 4 pontos e um valor de R$ 130,16 - Grave: 5 pontos e um valor de R$ 195,23 - Gravíssima: 7 pontos e um valor de R$ 293,47 O status da CNH será `Revogada` quando o total de pontos for: - 20 pontos, no período de 12 meses, caso tenha duas ou mais infrações gravíssimas; - 30 pontos, no período de 12 meses, caso tenha uma infração gravíssima; - 40 pontos, no período de 12 meses, caso não tenha nenhuma infração gravíssima. Caso contrario o status será `Ativa` Nota: O período de referência é na data e hora que o programa rodar, logo 12 meses antes de rodar o programa. Para determinar o valor a ser pago deve se olhar a data de notificação: - Dentro de 30 dias: será aplicado um desconto de 40% do valor base da multa - Depois dos 30 dias: Acréscimo de 14,75% por mês do valor base da multa (calculo de juros simples) Nota 1: O período de referência é na data e hora que o programa rodar, logo 15 dias atrás estaria dentro do período para desconto de 40% Nota 2: Caso a diferença entre a data de notificação e a data da infração exceda 30 dias não deve ser aplicada nenhuma multa nem pontos na CNH ## Exemplos Tomando que o programa foi rodado dia 31 janeiro de 2000 ### Exemplo 1 Entrada: https://docs.google.com/spreadsheets/d/18txnSYX4fw5LAHxBrKYo2DH4hXvnrRP9STdg3WfvEQk/edit#gid=1515543470 ``` Placa;Tipo de infração;Data da infração;Data da notificação;Data de pagamento;RG do infrator;Nome do infrator ARE-9420;Gravíssima;1999-11-05 15:00:00;2000-01-25 10:00:00;;467191153;Josevaldo Cal. O. Teiro KVI-2310;Gravíssima;2000-01-01 15:00:00;2000-01-04 10:00:00;;467191153;Josevaldo Cal. O. Teiro KVI-2310;Grave;2000-01-04 15:00:00;2000-01-05 10:00:00;;467191153;Josevaldo Cal. O. Teiro ARE-9420;Gravíssima;2000-01-10 15:00:00;2000-01-25 10:00:00;;467191153;Josevaldo Cal. O. Teiro ``` Saida: https://docs.google.com/spreadsheets/d/1emXd0X5W8meWMchN22t1PedBxq_gi3RYgxGdP8_XrDA/edit#gid=725426471 ``` RG do infrator;Nome do infrator;Placas dos veículos do infrator;Status da CNH;Pontos da CNH;Valor total 467191153;Josevaldo Cal. O. Teiro;ARE-9420, KVI-2310;Ativa;19;469,30 ``` ## Considerações finais É desejável que o programa seja desenvolvido com localização em mente, o cliente possui vários clientes que falam espanhol e residem no Brasil, então os nomes dos campos de saída devem estar em espanhol ou português dependendo da configuração do projeto, lembrando que isso é apenas um planejamento futuro e não deve ser implementado agora.