Class: BrInscricaoEstadual::Common
- Inherits:
-
Object
- Object
- BrInscricaoEstadual::Common
show all
- Defined in:
- lib/br_inscricao_estadual/common.rb
Direct Known Subclasses
AC, AL, AM, AP, BA, BA8, BA9, CE, ES, GO, MA, MG, MS, MT, PA, PB, PE, PI, PR, RJ, RN, RN10, RN9, RO, RR, RS, SC, SE, SP, SPP, TO
Constant Summary
collapse
- DIGITS_ZERO =
[0,1,10,11]
- STATE_INSC_SIZE =
9
- PESO =
[9, 8, 7, 6, 5, 4, 3, 2]
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(insc_est) ⇒ Common
Returns a new instance of Common.
9
10
11
|
# File 'lib/br_inscricao_estadual/common.rb', line 9
def initialize(insc_est)
self.insc_est = insc_est.gsub(/\D*/,'')
end
|
Instance Attribute Details
#insc_est ⇒ Object
Returns the value of attribute insc_est.
7
8
9
|
# File 'lib/br_inscricao_estadual/common.rb', line 7
def insc_est
@insc_est
end
|
Instance Method Details
#calculate(peso) ⇒ Object
22
23
24
25
26
|
# File 'lib/br_inscricao_estadual/common.rb', line 22
def calculate(peso)
@calc = []
self.insc_est.split('').collect(&:to_i).take(peso.size).each_with_index{|item, index| @calc << (item * peso[index]) }
@calc.inject(:+)
end
|
#calculate_verify(peso) ⇒ Object
17
18
19
20
|
# File 'lib/br_inscricao_estadual/common.rb', line 17
def calculate_verify(peso)
result = (11 - calculate(peso)%11)
digit_verify_inscription(result)
end
|
#digit_verify ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/br_inscricao_estadual/common.rb', line 37
def digit_verify
digito1 = calculate_verify(self.class::PESO)
self.class::const_set('DIGITO_LEVEL1', self.class::PESO.size) unless self.class.const_defined?('DIGITO_LEVEL1')
return false unless self.insc_est[(self.class::DIGITO_LEVEL1)].to_i == digito1
if self.class.const_defined?('PESO2')
digito2 = calculate_verify(self.class::PESO2)
self.class::const_set('DIGITO_LEVEL2', self.class::PESO2.size) unless self.class.const_defined?('DIGITO_LEVEL2')
return false unless self.insc_est[(self.class::DIGITO_LEVEL2)].to_i == digito2 end
true
end
|
#digit_verify_inscription(result) ⇒ Object
28
29
30
|
# File 'lib/br_inscricao_estadual/common.rb', line 28
def digit_verify_inscription(result)
self.class::DIGITS_ZERO.include?(result) ? 0 : result
end
|
#size_verify ⇒ Object
51
52
53
|
# File 'lib/br_inscricao_estadual/common.rb', line 51
def size_verify
self.insc_est.size == self.class::STATE_INSC_SIZE
end
|
#state_code ⇒ Object
32
33
34
35
|
# File 'lib/br_inscricao_estadual/common.rb', line 32
def state_code
return self.insc_est[0..1] == self.class::STATE_CODE if self.class::STATE_CODE.is_a?(String)
return self.class::STATE_CODE.include?(self.insc_est[0..1]) if self.class::STATE_CODE.is_a?(Array)
end
|
#valid? ⇒ Boolean
13
14
15
|
# File 'lib/br_inscricao_estadual/common.rb', line 13
def valid?
self.class.const_defined?('STATE_CODE') ? (size_verify && state_code && digit_verify) : (size_verify && digit_verify)
end
|