3 # Copyright 2013 Thadeu Lima de Souza Cascardo <cascardo@cascardo.info>
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.
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.
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
21 def __init__(self, el = None):
23 self.rendimento = xml.dom.minidom.Element("item")
27 def get_attr(self, attr):
28 if attr in self.rendimento.attributes.keys():
29 return self.rendimento.attributes[attr].nodeValue
32 def set_attr(self, attr, val):
33 self.rendimento.setAttribute(attr, val)
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]
42 for i in self.colecao.getElementsByTagName("item"):
43 self.items.append(RendimentoPJ(i))
45 def _get_attr(self, el, attr):
46 if attr in el.attributes.keys():
47 return el.attributes[attr].nodeValue
50 def _set_attr(self, el, attr, val):
51 el.attributes[attr].nodeValue = val
53 def get_colecao(self, attr):
54 return self._get_attr(self.colecao, attr)
56 def set_colecao(self, attr, val):
57 self._set_attr(self.colecao, attr, val)
59 def add_item(self, item):
60 self.items.append(item)
61 self.colecao.appendChild(item.rendimento)
64 item = RendimentoPJ(self.colecao.ownerDocument.createElement("item"))
68 def remove_item(self, i):
70 els = self.colecao.getElementsByTagName("item")
71 self.colecao.removeChild(els[i])
73 if __name__ == '__main__':
75 from contribuinte import Contribuinte
77 contribuinte = Contribuinte(sys.argv[1])
78 rendimentos = RendimentosPJ(contribuinte)
79 print "maior fonte pagadora: " + rendimentos.get_colecao("niMaiorFontePagadora")
80 print "total rendimentos: " + rendimentos.get_colecao("totaisRendRecebidoPJ")
82 for i in rendimentos.items:
83 print i.get_attr("nomeFontePagadora") + " " + i.get_attr("rendRecebidoPJ")
85 # vim:tabstop=4:expandtab:smartindent