Rendimentos PJ: permite adicionar fonte pagadora
[cascardo/irpf-gui.git] / src / rendimentoPJ.py
1 #
2 #   Copyright 2013 Thadeu Lima de Souza Cascardo <cascardo@cascardo.info>
3 #
4 #   This program is free software: you can redistribute it and/or modify
5 #   it under the terms of the GNU General Public License as published by
6 #   the Free Software Foundation, either version 3 of the License, or
7 #   (at your option) any later version.
8 #
9 #   This program is distributed in the hope that it will be useful,
10 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
11 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 #   GNU General Public License for more details.
13 #
14 #   You should have received a copy of the GNU General Public License
15 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 # -*- mode: python; encoding: utf-8; -*-
17 import xml.dom.minidom
18 from contribuinte import Contribuinte
19
20 class RendimentoPJ:
21     def __init__(self, el = None):
22         if el == None:
23             self.rendimento = xml.dom.minidom.Element("item")
24         else:
25             self.rendimento = el
26
27     def get_attr(self, attr):
28         if attr in self.rendimento.attributes.keys():
29             return self.rendimento.attributes[attr].nodeValue
30         return None
31
32     def set_attr(self, attr, val):
33         self.rendimento.setAttribute(attr, val)
34
35 class RendimentosPJ:
36     def __init__(self, contribuinte):
37         self.contribuinte = contribuinte
38         self.rend_PJ = self.contribuinte.dados.getElementsByTagName("rendPJ")[0]
39         self.colecao = self.rend_PJ.getElementsByTagName("colecaoRendPJTitular")[0]
40         self.items = []
41
42         for i in self.colecao.getElementsByTagName("item"):
43             self.items.append(RendimentoPJ(i))
44
45     def _get_attr(self, el, attr):
46         if attr in el.attributes.keys():
47             return el.attributes[attr].nodeValue
48         return None
49
50     def _set_attr(self, el, attr, val):
51         el.attributes[attr].nodeValue = val
52
53     def get_colecao(self, attr):
54         return self._get_attr(self.colecao, attr)
55
56     def set_colecao(self, attr, val):
57         self._set_attr(self.colecao, attr, val)
58
59     def add_item(self, item):
60         self.items.append(item)
61         self.colecao.appendChild(item.rendimento)
62
63 if __name__ == '__main__':
64     import sys
65
66     contribuinte = Contribuinte(sys.argv[1])
67     rendimentos = RendimentosPJ(contribuinte)
68     print "maior fonte pagadora: " + rendimentos.get_colecao("niMaiorFontePagadora")
69     print "total rendimentos: " + rendimentos.get_colecao("totaisRendRecebidoPJ")
70
71     for i in rendimentos.items:
72         print i.get_attr("nomeFontePagadora") + " " + i.get_attr("rendRecebidoPJ")
73
74 # vim:tabstop=4:expandtab:smartindent