Coding deve estar no inicio do arquivo para ser detectado
[cascardo/irpf-gui.git] / src / ocupacoes.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 Ocupacoes:
22     def __init__(self):
23         irpf_dir = dirs.get_default_irpf_dir()
24         self.xml = xml.dom.minidom.parse(irpf_dir.get_resource_file("ocupacoesPrincipal.xml"))
25         self.l = []
26         self.g = {}
27         self._list()
28         self._group()
29
30     def _list(self):
31         for i in self.xml.childNodes[0].childNodes:
32             if "COL4" in i.attributes.keys():
33                 self.l.append((i.attributes["COL1"].nodeValue, \
34                         i.attributes["COL2"].nodeValue, \
35                         i.attributes["COL3"].nodeValue, \
36                         i.attributes["COL4"].nodeValue))
37                 def list(self):
38                     return self.l
39
40     def _group(self):
41         for i in self.l:
42             if i[1] not in self.g:
43                 self.g[i[1]] = []
44             self.g[i[1]].append(i)
45
46     def groups(self):
47         return self.g
48
49     def get_ocupacao(self, code):
50         for i in self.l:
51             if i[0] == code:
52                 return i
53         return None
54
55 if __name__ == '__main__':
56     ocupacoes = Ocupacoes()
57     l = ocupacoes.groups()
58     for i in sorted(l):
59         print l[i][0][1] , l[i][0][2]
60         for j in l[i]:
61             print "\t %s %s" % (j[0], j[3])
62     print
63     print ocupacoes.get_ocupacao('212')[3]
64
65 # vim:tabstop=4:expandtab:smartindent