@@ -108,6 +108,37 @@ class UtilBrasilFields {
108
108
return CNPJValidator .format (cnpj);
109
109
}
110
110
111
+ /// Retorna os dígitos da inscrição do [cnpj] informado.
112
+ ///
113
+ /// Formatado ou não formatado, baseado no parâmetro `useFormat` :
114
+ ///
115
+ /// `true` : inscrição terá o formato `XX.YYY.ZZZ`
116
+ ///
117
+ /// `false` : inscrição terá o formato `XXYYYZZZ`
118
+ static String obterCnpjInscricao (String cnpj, {bool useFormat = false }) {
119
+ assert (isCNPJValido (cnpj), 'CNPJ inválido!' );
120
+ return useFormat
121
+ ? CNPJValidator .format (cnpj).substring (0 , 10 )
122
+ : CNPJValidator .strip (cnpj).substring (0 , 8 );
123
+ }
124
+
125
+ /// Retorna os dígitos da ordem do [cnpj] informado.
126
+ ///
127
+ /// A ordem do CNPJ são os 4 dígitos após a barra. Essa parte representa se o
128
+ /// estabelecimento é matriz ou filial (0001 = matriz, 0002 = filial).
129
+ static String obterCnpjOrdem (String cnpj) {
130
+ assert (isCNPJValido (cnpj), 'CNPJ inválido!' );
131
+ return CNPJValidator .strip (cnpj).substring (8 , 12 );
132
+ }
133
+
134
+ /// Retorna os dígitos verificadores do [cnpj] informado.
135
+ ///
136
+ /// Os dígitos verificadores são os dois últimos números do CNPJ.
137
+ static String obterCnpjDiv (String cnpj) {
138
+ assert (isCNPJValido (cnpj), 'CNPJ inválido!' );
139
+ return CNPJValidator .strip (cnpj).substring (12 );
140
+ }
141
+
111
142
/// Retorna o número real informado, utilizando a máscara: `R$ 50.000,00` ou `50.000,00`
112
143
static String obterReal (double value, {bool moeda = true , int decimal = 2 }) {
113
144
bool isNegative = false ;
0 commit comments