Interface para Rendimentos PJ
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Thu, 13 Mar 2014 21:42:00 +0000 (18:42 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Thu, 13 Mar 2014 21:44:28 +0000 (18:44 -0300)
Permite editar, adicionar e remover Rendimentos de PJ.

src/menu.py

index c66d17d..95d50a2 100644 (file)
@@ -18,6 +18,7 @@
 import baseui
 import contribuinte
 import ocupacoes
+import rendimentoPJ
 import sys
 
 class OcupacaoForm(baseui.OptionsForm):
@@ -43,6 +44,47 @@ class ContribuinteForm(baseui.StringForm):
         baseui.StringForm.set_value(self, value)
         self.contribuinte.set_campo_contribuinte(self.attr, value)
 
+class AttrForm(baseui.StringForm):
+    def __init__(self, name, attr, element):
+        self.element = element
+        self.attr = attr
+        baseui.StringForm.__init__(self, name, self.element.get_attr(self.attr))
+    def set_value(self, value):
+        baseui.StringForm.set_value(self, value)
+        self.element.set_attr(self.attr, value)
+
+def RendimentoPJ(UI, rend):
+    form = []
+    form.append(AttrForm("Nome", "nomeFontePagadora", rend))
+    form.append(AttrForm("CNPJ", "NIFontePagadora", rend))
+    form.append(AttrForm("Rendimentos", "rendRecebidoPJ", rend))
+    form.append(AttrForm(u"PrevidĂȘncia", "contribuicaoPrevOficial", rend))
+    form.append(AttrForm("Imposto Retido", "impostoRetidoFonte", rend))
+    form.append(AttrForm(u"DĂ©cimo Terceiro", "decimoTerceiro", rend))
+    UI.form(form)
+    return True
+
+def List(UI, L, Edit, display):
+    exit = False
+    while not exit:
+        ls = []
+        for i in L.items:
+            ls.append(i.get_attr(display))
+        r = UI.list(ls)
+        if r[1] == None:
+            exit = True
+        elif r[1] == 'add':
+            Edit(UI, L.new_item())
+        elif r[1] == 'edit':
+            Edit(UI, L.items[r[0] - 1])
+        elif r[1] == 'delete':
+            L.remove_item(r[0] - 1)
+    return True
+
+def RendimentosPJ(UI, contrib):
+    rend = rendimentoPJ.RendimentosPJ(contrib)
+    return List(UI, rend, RendimentoPJ, "nomeFontePagadora")
+
 def DadosPessoais(UI, contrib):
     form = []
     ocup = ocupacoes.Ocupacoes()
@@ -54,8 +96,8 @@ def DadosPessoais(UI, contrib):
     return True
 
 def menu(UI, contrib):
-    m = [ "Sair", "Dados Pessoais" ]
-    f = [ None, DadosPessoais ]
+    m = [ "Sair", "Dados Pessoais", "Rendimentos PJ" ]
+    f = [ None, DadosPessoais, RendimentosPJ ]
     exit = False
     while not exit:
         r = UI.menu(m)