Business::BR::IE(3pm) | User Contributed Perl Documentation | Business::BR::IE(3pm) |

use Business::BR::IE qw(test_ie canon_ie format_ie random_ie); test_ie('sp', '110.042.490.114') # 1 test_ie('pr', '123.45678-50') # 1 test_ie('ac', '01.004.823/001-12') # 1 test_ie('al', '24.000.004-8') # 1 test_ie('am', '04.117.161-6') # 1 test_ie('ba', '123456-63') # 1 test_ie('ma', '12.000.038-5') # 1 test_ie('mg', '062.307.904/0081') #1 test_ie('rr', '24.006.628-1') # 1 test_ie('ap', '03.012.345-9') # 1

- •
- 13-digits number

- •
- the last two are check digits

- •
- the usual formatting is like '01.004.823/001-12'

- •
- if the IE-AC number is decomposed into digits like this
a_1 a_2 a_3 a_4 a_5 a_6 a_7 a_8 a_9 a_10 a_11 d_1 d_2

a_1 a_2 = 0 1

4 a_1 + 3 a_2 + 2 a_3 + 9 a_4 + 8 a_5 + 7 a_6 + 6 a_7 + 5 a_8 + 4 a_9 + 3 a_10 + 2 a_11 + d_1 = 0 (mod 11) or = 1 (mod 11) (if d_1 = 0) 5 a_1 + 4 a_2 + 3 a_3 + 2 a_4 + 9 a_5 + 8 a_6 + 7 a_7 + 6 a_8 + 5 a_9 + 4 a_10 + 3 a_11 + 2 d_1 + d_2 = 0 (mod 11) or = 1 (mod 11) (if d_2 = 0)

- •
- 9-digits number

- •
- the last one is a check digit

- •
- the usual formatting is like '24.000.004-8'

- •
- if the IE-AL number is decomposed into digits like this
a_1 a_2 a_3 a_4 a_5 a_6 a_7 a_8 d_1

a_1 a_2 = 2 4

0 - "normal" 1 - "normal" 3 - "produtor rural" 5 - "substituta" 6 - "empresa pequeno porte" 7 - "micro empresa ambulante" 8 - "micro empresa" 9 - "especial"

( 9 a_1 + 2 a_2 + 3 a_3 + 4 a_4 + 5 a_5 6 a_6 + 7 a_7 + 8 a_8 ) * 10 - d_1 = 0 (mod 11) or = 10 (mod 11) (if d_1 = 0)

- •
- 9-digits number

- •
- the last one is a check digit

- •
- the usual formatting is like '11.111.111-0'

- •
- if the IE-AM number is decomposed into digits like this
a_1 a_2 a_3 a_4 a_5 a_6 a_7 a_8 d_1

9 a_1 + 8 a_2 + 7 a_3 + 6 a_4 + 5 a_5 4 a_6 + 3 a_7 + 2 a_8 + d_1 = 0 (mod 11) or = 1 (mod 11) (if d_1 = 0)

- •
- 8-digits number

- •
- the last two are check digits

- •
- the usual formatting is like '123456-63'

- •
- 9-digits number

- •
- the 9th is a check digit

- •
- the usual formatting is like '12.000.038-5'

- •
- if the IE-MA number is decomposed into digits like this
a_1 a_2 a_3 a_4 a_5 a_6 a_7 a_8 d_1

a_1 a_2 = 1 2

( 9 a_1 + 8 a_2 + 7 a_3 + 6 a_4 + 5 a_5 4 a_6 + 3 a_7 + 2 a_8 ) - d_1 = 0 (mod 11) or = 10 (mod 11) (if d_1 = 0)

- •
- 13-digits number

- •
- the 11th and 12th are check digits

- •
- the usual formatting is like '062.307.904/0081'

- •
- to determine if IE/MG number is correct, the computation
rules in
http://www.sintegra.gov.br/Cad_Estados/cad_MG.html

- •
- 10-digits number

- •
- the 9th and 10th are check digits

- •
- the usual formatting is like '123.45678-50'

- •
- 14-digits number

- •
- the 14th is a check digit

- •
- the usual formatting is like '0000000062521-3'

- •
- if the IE-RO number is decomposed into digits like this
a_1 a_2 a_3 a_4 a_5 a_6 a_7 a_8 a_9 a_10 a_11 a_12 a_13 d_1

( 6 a_1 + 5 a_2 + 4 a_3 + 3 a_4 + 2 a_5 + 9 a_6 + 8 a_7 + 7 a_8 + 6 a_9 + 5 a_10 + 4 a_11 + 3 a_12 + 2 a_13 + d_1 = 0 (mod 11) or = 1 (mod 11) if d_1 = 0

- •
- 9-digits number

- •
- the 9th is a check digit

- •
- the usual formatting is like '24.006.628-1'

- •
- if the IE-RR number is decomposed into digits like this
a_1 a_2 a_3 a_4 a_5 a_6 a_7 a_8 d_1

a_1 a_2 = 2 4

( 1 a_1 + 2 a_2 + 3 a_3 + 4 a_4 + 5 a_5 6 a_6 + 7 a_7 + 8 a_8 ) - d_1 = 0 (mod 9)

- •
- 12-digits number

- •
- the 9th and 12nd are check digits

- •
- the usual formatting is like '110.042.490.114'

- •
- This documentation is faulty

- •
- If you want handling more than AC, AL, AM, MA, MG, PR, RO, RO and SP, you'll have to wait for the next releases

- •
- The handling of IE-SP does not include yet the special rule for testing correctness of registrations of rural producers.

- •
- the case of unfair digits must be handled satisfactorily (in this and other Business::BR::Ids modules)

2008-07-01 | perl v5.14.2 |