Dei um nome para a regra de validação e na formula para validação, inseri o seguinte código:
IF( LEN( CNPJ_CPF__c )= 14 , NOT( OR( LEN(CNPJ_CPF__c)=0, AND( NOT(CNPJ_CPF__c = "00000000000000"), MOD(MOD(11-MOD(VALUE(MID(CNPJ_CPF__c,1,1))*5+VALUE(MID(CNPJ_CPF__c,2,1))*4+VALUE(MID(CNPJ_CPF__c,3,1))*3+VALUE(MID(CNPJ_CPF__c,4,1))*2+VALUE(MID(CNPJ_CPF__c,5,1))*9+VALUE(MID(CNPJ_CPF__c,6,1))*8+VALUE(MID(CNPJ_CPF__c,7,1))*7+VALUE(MID(CNPJ_CPF__c,8,1))*6+VALUE(MID(CNPJ_CPF__c,9,1))*5+VALUE(MID(CNPJ_CPF__c,10,1))*4+VALUE(MID(CNPJ_CPF__c,11,1))*3+VALUE(MID(CNPJ_CPF__c,12,1))*2,11),11),10) = VALUE(MID(CNPJ_CPF__c,13,1)), MOD(MOD(11-MOD(VALUE(MID(CNPJ_CPF__c,1,1))*6+VALUE(MID(CNPJ_CPF__c,2,1))*5+VALUE(MID(CNPJ_CPF__c,3,1))*4+VALUE(MID(CNPJ_CPF__c,4,1))*3+VALUE(MID(CNPJ_CPF__c,5,1))*2+VALUE(MID(CNPJ_CPF__c,6,1))*9+VALUE(MID(CNPJ_CPF__c,7,1))*8+VALUE(MID(CNPJ_CPF__c,8,1))*7+VALUE(MID(CNPJ_CPF__c,9,1))*6+VALUE(MID(CNPJ_CPF__c,10,1))*5+VALUE(MID(CNPJ_CPF__c,11,1))*4+VALUE(MID(CNPJ_CPF__c,12,1))*3+VALUE(MID(CNPJ_CPF__c,13,1))*2,11),11),10) = VALUE(MID(CNPJ_CPF__c,14,1)) ))) , IF(LEN(CNPJ_CPF__c) < 11, TRUE, NOT AND (CNPJ_CPF__c <> '00000000000',CNPJ_CPF__c <> '11111111111', CNPJ_CPF__c <> '22222222222',CNPJ_CPF__c <> '33333333333',CNPJ_CPF__c <> '44444444444',CNPJ_CPF__c <> '55555555555',CNPJ_CPF__c <> '66666666666',CNPJ_CPF__c <> '77777777777',CNPJ_CPF__c <> '88888888888',CNPJ_CPF__c <> '99999999999', IF ((MID(CNPJ_CPF__c , 10, 1) = IF (MOD(((VALUE(MID(CNPJ_CPF__c , 1, 1))*10)+ (VALUE(MID(CNPJ_CPF__c , 2, 1))*9)+ (VALUE(MID(CNPJ_CPF__c , 3, 1))*8)+ (VALUE(MID(CNPJ_CPF__c , 4, 1))*7)+ (VALUE(MID(CNPJ_CPF__c , 5, 1))*6)+ (VALUE(MID(CNPJ_CPF__c , 6, 1))*5)+ (VALUE(MID(CNPJ_CPF__c , 7, 1))*4)+ (VALUE(MID(CNPJ_CPF__c , 8, 1))*3)+ (VALUE(MID(CNPJ_CPF__c , 9, 1))*2)),11) < 2,'0', TEXT(11 - MOD(((VALUE(MID(CNPJ_CPF__c , 1, 1))*10)+ (VALUE(MID(CNPJ_CPF__c , 2, 1))*9)+ (VALUE(MID(CNPJ_CPF__c , 3, 1))*8)+ (VALUE(MID(CNPJ_CPF__c , 4, 1))*7)+ (VALUE(MID(CNPJ_CPF__c , 5, 1))*6)+ (VALUE(MID(CNPJ_CPF__c , 6, 1))*5)+ (VALUE(MID(CNPJ_CPF__c , 7, 1))*4)+ (VALUE(MID(CNPJ_CPF__c , 8, 1))*3)+ (VALUE(MID(CNPJ_CPF__c , 9, 1))*2)),11)) )),TRUE,FALSE), IF ((MID(CNPJ_CPF__c , 11, 1) = IF (MOD(((VALUE(MID(CNPJ_CPF__c , 1, 1))*11)+ (VALUE(MID(CNPJ_CPF__c , 2, 1))*10)+ (VALUE(MID(CNPJ_CPF__c , 3, 1))*9)+ (VALUE(MID(CNPJ_CPF__c , 4, 1))*8)+ (VALUE(MID(CNPJ_CPF__c , 5, 1))*7)+ (VALUE(MID(CNPJ_CPF__c , 6, 1))*6)+ (VALUE(MID(CNPJ_CPF__c , 7, 1))*5)+ (VALUE(MID(CNPJ_CPF__c , 8, 1))*4)+ (VALUE(MID(CNPJ_CPF__c , 9, 1))*3)+ (VALUE(MID(CNPJ_CPF__c , 10, 1))*2)),11) < 2,'0', TEXT(11 - MOD(((VALUE(MID(CNPJ_CPF__c , 1, 1))*11)+ (VALUE(MID(CNPJ_CPF__c , 2, 1))*10)+ (VALUE(MID(CNPJ_CPF__c , 3, 1))*9)+ (VALUE(MID(CNPJ_CPF__c , 4, 1))*8)+ (VALUE(MID(CNPJ_CPF__c , 5, 1))*7)+ (VALUE(MID(CNPJ_CPF__c , 6, 1))*6)+ (VALUE(MID(CNPJ_CPF__c , 7, 1))*5)+ (VALUE(MID(CNPJ_CPF__c , 8, 1))*4)+ (VALUE(MID(CNPJ_CPF__c , 9, 1))*3)+ (VALUE(MID(CNPJ_CPF__c , 10, 1))*2)),11)) )),TRUE,FALSE) ) ) )
Coloquei a mensagem de "CPF ou CNPJ inválido!", preenchi onde eu gostaria que exibisse o erro e salvei.
Observação importante: Essa validação não permite a utilização pontos, hífens e barras na composição do CPF/CNPJ. Apenas números. Apesar disso, o campo criado é Texto. Agora nada de CPFs ou CNPJs inválidos na sua Org.
Agradeço ao Allan Pecli por me alertar e corrigir alguns itens nessa validação. Se alguém perceber algum problema e quiser colaborar, fique a vontade para me notificar. Valeu Allan!
* Está precisando de um suporte ou consultoria para customização de regras de validação da sua plataforma Salesforce? Entre em contato conosco - CbCloud: http://www.cbcloud.com.br/
Nenhum comentário:
Postar um comentário