Skip to content

Conversão de Placa de Carro - Formato Antigo (LLLNNNN) para Formato Mercosul / PIV (LLLNLNN) #177

@camilamaia

Description

@camilamaia

Seu pedido de recurso está relacionado a um problema? Por favor, descreva.

Dada uma String correspondente a uma placa de carro válida no formato antigo (LLLNNNN), retornar uma String representando esta mesma placa no Formato Mercosul / PIV (LLLNLNN).

Definição do Formato Antigo (LLLNNNN), segundo a RESOLUÇÃO 231 DE 15 DE MARÇO DE 2007:

Composto por 7 (sete) caracteres alfanuméricos individualizados sendo o primeiro grupo composto por 3
(três), resultante do arranjo, com repetição de 26 (vinte e seis) letras, tomadas três a três, e o
segundo grupo composto por 4 (quatro), resultante do arranjo, com repetição, de 10 (dez)
algarismos, tomados quatro a quatro.

Definição do Formato Mercosul / PIV (LLLNLNN), segundo RESOLUÇÃO Nº 780, DE 26 DE JUNHO DE 2019:

Composto de 7 (sete) caracteres alfanuméricos na sequência LLLNLNN, com combinação aleatória, distribuída e controlada pelo DENATRAN.

O caracter "L" refere-se à letra, e o caracter "N" refere-se ao numeral.

Regras de conversão, segundo a RESOLUÇÃO Nº 780, DE 26 DE JUNHO DE 2019, Anexo II:

Tabela de Conversão dos caracteres alfanuméricos da PIV

  1. No caso de substituição da PIV de que trata a Resolução CONTRAN nº 231, de 15 de março de 2007 (padrão LLLNNNN), pela PIV de que trata esta Resolução (padrão LLLNLNN), será adotada a seguinte tabela equiparativa, para substituição do antepenúltimo caracter, de número para letra, a fim de que haja uma relação direta entre a antiga e a nova placa:
Placa antiga Nova placa
0 A
1 B
2 C
3 D
4 E
5 F
6 G
7 H
8 I
9 J

Ex.: A placa anterior ABC1234 será substituída pela nova placa com o padrão alfanumérico ABC1C34."

  1. A faixa de letras de "A" a "J" será utilizada apenas para a conversão do modelo antigo para o novo de PIV, de forma a permitir a convivência entre ambos os modelos e possibilitar a consulta por ambos os critérios de placas.

Descreva a solução que você gostaria

  • Chamar um novo utilitário passando uma String correspondente a uma placa de carro válida no formato antigo (LLLNNNN), retornar uma String representando esta mesma placa no Formato Mercosul / PIV (LLLNLNN).
  • A String já deve estar sem formatação, sem símbolos.
  • Caso a placa passada como parâmetro não seja válida no formato antigo, retornar None
  • Não diferenciar entre maiúsculas e minúsculas
  • Retornar sempre maiúsculas

Descreva alternativas que você considerou

Criar um novo utilitário convert_license_plate_to_mercosul:

def convert_license_plate_to_mercosul(license_plate):
    ...

Exemplo de uso:

from brutils import convert_license_plate_to_mercosul

>>> convert_license_plate_to_mercosul("ABC123")
"ABC1C34"
>>> convert_license_plate_to_mercosul("abc123")
"ABC1C34"
>>> convert_license_plate_to_mercosul("ABC1D23")
None
>>> is_valid_license_plate_mercosul("abdcd123")
None

Contexto adicional

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions