Lançado Adianti Framework 7.6!
Clique aqui para saber mais
menu

Adianti Solutions

API

Adianti, Framework, PHP, MVC, Active record, Front controller, IDE, RAD, Web, multiplataforma, geração de código, desenvolvimento rápido, relatórios, formulários, listagens, datagrids, gráficos, banco de dados, padrões de projeto, design patterns API do Adianti Framework.
API Docs
code
Selecione a classe

Source for file TCNPJValidator.php

Documentation is available at TCNPJValidator.php

  1. <?php
  2. namespace Adianti\Validator;
  3.  
  4. use Adianti\Core\AdiantiCoreTranslator;
  5. use Exception;
  6.  
  7. /**
  8.  * CNPJ validation (Valid only in Brazil)
  9.  *
  10.  * @version    7.4
  11.  * @package    validator
  12.  * @author     Pablo Dall'Oglio
  13.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  14.  * @license    http://www.adianti.com.br/framework-license
  15.  */
  16. {
  17.     /**
  18.      * Validate a given value
  19.      * @param $label Identifies the value to be validated in case of exception
  20.      * @param $value Value to be validated
  21.      * @param $parameters aditional parameters for validation
  22.      */
  23.     public function validate($label$value$parameters NULL)
  24.     {
  25.         $cnpj preg_replace"@[./-]@"""$value );
  26.         ifstrlen$cnpj <> 14 or !is_numeric$cnpj ) )
  27.         {
  28.             throw new Exception(AdiantiCoreTranslator::translate('The field ^1 has not a valid CNPJ'$label));
  29.         }
  30.         $k 6;
  31.         $soma1 0;
  32.         $soma2 0;
  33.         for$i 0$i 13$i++ )
  34.         {
  35.             $k $k == $k;
  36.             $soma2 += substr($cnpj$i1$k );
  37.             $k--;
  38.             if($i 12)
  39.             {
  40.                 if($k == 1)
  41.                 {
  42.                     $k 9;
  43.                     $soma1 += substr($cnpj$i1$k );
  44.                     $k 1;
  45.                 }
  46.                 else
  47.                 {
  48.                     $soma1 += substr($cnpj$i1$k );
  49.                 }
  50.             }
  51.         }
  52.         
  53.         $digito1 $soma1 11 11 $soma1 11;
  54.         $digito2 $soma2 11 11 $soma2 11;
  55.         
  56.         $valid substr($cnpj121== $digito1 and substr($cnpj131== $digito2 );
  57.         
  58.         if (!$valid)
  59.         {
  60.             throw new Exception(AdiantiCoreTranslator::translate('The field ^1 has not a valid CNPJ'$label));
  61.         }
  62.     }
  63. }