Simplifica Bens e RendimentoPJ usando Items.
[cascardo/irpf-gui.git] / src / rendimentoPJ.py
index 54a5492..fa9d2b0 100644 (file)
 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 # -*- mode: python; encoding: utf-8; -*-
 import xml.dom.minidom
+import items
 
-class RendimentoPJ:
-    def __init__(self, el = None):
-        if el == None:
-            self.rendimento = xml.dom.minidom.Element("item")
-        else:
-            self.rendimento = el
-
-    def get_attr(self, attr):
-        if attr in self.rendimento.attributes.keys():
-            return self.rendimento.attributes[attr].nodeValue
-        return None
-
-    def set_attr(self, attr, val):
-        self.rendimento.setAttribute(attr, val)
-
-class RendimentosPJ:
+class RendimentosPJ(items.Items):
     def __init__(self, contribuinte):
-        self.contribuinte = contribuinte
-        self.rend_PJ = self.contribuinte.dados.getElementsByTagName("rendPJ")[0]
-        self.colecao = self.rend_PJ.getElementsByTagName("colecaoRendPJTitular")[0]
-        self.items = []
-
-        for i in self.colecao.getElementsByTagName("item"):
-            self.items.append(RendimentoPJ(i))
-
-    def _get_attr(self, el, attr):
-        if attr in el.attributes.keys():
-            return el.attributes[attr].nodeValue
-        return None
-
-    def _set_attr(self, el, attr, val):
-        el.attributes[attr].nodeValue = val
-
-    def get_colecao(self, attr):
-        return self._get_attr(self.colecao, attr)
-
-    def set_colecao(self, attr, val):
-        self._set_attr(self.colecao, attr, val)
-
-    def add_item(self, item):
-        self.items.append(item)
-        self.colecao.appendChild(item.rendimento)
-
-    def new_item(self):
-        item = RendimentoPJ(self.colecao.ownerDocument.createElement("item"))
-        self.add_item(item)
-        return item
-
-    def remove_item(self, i):
-        self.items.pop(i)
-        els = self.colecao.getElementsByTagName("item")
-        self.colecao.removeChild(els[i])
+        rend_PJ = contribuinte.dados.getElementsByTagName("rendPJ")[0]
+        colecao = rend_PJ.getElementsByTagName("colecaoRendPJTitular")[0]
+        items.Items.__init__(self, colecao)
 
 if __name__ == '__main__':
     import sys
@@ -76,8 +30,8 @@ if __name__ == '__main__':
 
     contribuinte = Contribuinte(sys.argv[1])
     rendimentos = RendimentosPJ(contribuinte)
-    print "maior fonte pagadora: " + rendimentos.get_colecao("niMaiorFontePagadora")
-    print "total rendimentos: " + rendimentos.get_colecao("totaisRendRecebidoPJ")
+    print "maior fonte pagadora: " + rendimentos.get_attr("niMaiorFontePagadora")
+    print "total rendimentos: " + rendimentos.get_attr("totaisRendRecebidoPJ")
 
     for i in rendimentos.items:
         print i.get_attr("nomeFontePagadora") + " " + i.get_attr("rendRecebidoPJ")