Coding deve estar no inicio do arquivo para ser detectado
[cascardo/irpf-gui.git] / src / municipios.py
1 # coding=utf-8
2 #
3 #   Copyright 2013 Thadeu Lima de Souza Cascardo <cascardo@cascardo.info>
4 #
5 #   This program is free software: you can redistribute it and/or modify
6 #   it under the terms of the GNU General Public License as published by
7 #   the Free Software Foundation, either version 3 of the License, or
8 #   (at your option) any later version.
9 #
10 #   This program is distributed in the hope that it will be useful,
11 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #   GNU General Public License for more details.
14 #
15 #   You should have received a copy of the GNU General Public License
16 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 # -*- mode: python; encoding: utf-8; -*-
18 import xml.dom.minidom
19 import dirs
20
21 class Municipios:
22     def __init__(self):
23         self.l = []
24
25     def _list(self):
26         for i in self.xml.childNodes[0].childNodes:
27             if "COL3" in i.attributes.keys():
28                 self.l.append((i.attributes["COL1"].nodeValue, \
29                         i.attributes["COL2"].nodeValue, \
30                         i.attributes["COL3"].nodeValue))
31                 def list(self):
32                     return self.l
33
34     def get_municipio(self, code):
35         for i in self.l:
36             if i[0] == code:
37                 return i
38         return None
39
40     def carregar_estado(self, UF):
41         irpf_dir = dirs.get_default_irpf_dir()
42         self.l = []
43         self.xml = xml.dom.minidom.parse(irpf_dir.get_resource_file("%s.xml" % (UF,)))
44         self._list()
45
46     def verify_cep(self, m, cep):
47         l = m[2][0:7]
48         h = m[2][9:16]
49         if cep >= l and cep <= h:
50             return True
51         return False
52
53 if __name__ == '__main__':
54     municipios = Municipios()
55
56     municipios.carregar_estado('MG')
57     m = municipios.get_municipio('4877')
58     print m[1]
59     print municipios.verify_cep(m, '36880000')
60     print municipios.verify_cep(m, '05020000')
61
62     municipios.carregar_estado('SP')
63     m = municipios.get_municipio('7107')
64     print m[1]
65     print municipios.verify_cep(m, '05020000')
66     print municipios.verify_cep(m, '36880000')
67
68 # vim:tabstop=4:expandtab:smartindent