import baseui
import contribuinte
-import ocupacoes
import rendimentoPJ
+import bens
import sys
+import isentos
+import exclusivos
-class OcupacaoForm(baseui.OptionsForm):
- def __init__(self, ocupacoes, contribuinte):
- g = ocupacoes.groups()
- l = []
- for i in sorted(g):
- l.extend(g[i])
- o = map(lambda x: (x[0], x[3]), l)
- baseui.OptionsForm.__init__(self, u"Ocupações", o, contribuinte.get_campo_contribuinte("ocupacaoPrincipal"))
- self.ocupacoes = ocupacoes
- self.contribuinte = contribuinte
- def set_value(self, value):
- baseui.OptionsForm.set_value(self, value)
- self.contribuinte.set_campo_contribuinte("ocupacaoPrincipal", value)
-
-class ContribuinteForm(baseui.StringForm):
- def __init__(self, name, attr, contribuinte):
- self.contribuinte = contribuinte
- self.attr = attr
- baseui.StringForm.__init__(self, name, self.contribuinte.get_campo_contribuinte(self.attr))
- def set_value(self, value):
- 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):
+def List(UI, L, display):
exit = False
while not exit:
ls = []
for i in L.items:
- ls.append(i.get_attr(display))
+ d = i.get_attr(display)
+ if d == None:
+ d = ""
+ ls.append(d)
r = UI.list(ls)
if r[1] == None:
exit = True
elif r[1] == 'add':
- Edit(UI, L.new_item())
+ UI.form(L.form(L.new_item()))
elif r[1] == 'edit':
- Edit(UI, L.items[r[0] - 1])
+ UI.form(L.form(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")
+ return List(UI, rend, "nomeFontePagadora")
+
+def Declaracao(UI, contrib):
+ UI.form(contrib.declaracoes.form(contrib.declaracao))
+ return True
def DadosPessoais(UI, contrib):
- form = []
- ocup = ocupacoes.Ocupacoes()
- form.append(ContribuinteForm("Nome", "nome", contrib))
- form.append(OcupacaoForm(ocup, contrib))
- for i in contribuinte.contribuinte_attributes:
- form.append(ContribuinteForm(i, i, contrib))
- UI.form(form)
+ UI.form(contrib.form())
return True
+def Bens(UI, contrib):
+ b = bens.Bens(contrib)
+ return List(UI, b, "discriminacao")
+
+def Quadro(UI, quadro):
+ return List(UI, quadro, "especificacao")
+
+def Quadros(quadros):
+ def fQuadros(UI, contrib):
+ exit = False
+ while not exit:
+ r = UI.menu(map(lambda x: x.name, quadros.quadros))
+ if r < 0:
+ exit = True
+ else:
+ Quadro(UI, quadros.quadros[r])
+ return fQuadros
+
def Salvar(UI, contrib):
contrib.save()
def menu(UI, contrib):
- m = [ "Sair", "Salvar", "Dados Pessoais", "Rendimentos PJ" ]
- f = [ None, Salvar, DadosPessoais, RendimentosPJ ]
+ m = [
+ "Sair",
+ "Salvar",
+ u"Declaração",
+ "Dados Pessoais",
+ "Rendimentos PJ",
+ "Bens",
+ "Rendimentos Isentos",
+ "Rendimentos Exclusivos na Fonte",
+ ]
+ f = [
+ None,
+ Salvar,
+ Declaracao,
+ DadosPessoais,
+ RendimentosPJ,
+ Bens,
+ Quadros(isentos.RendimentosIsentos(contrib)),
+ Quadros(exclusivos.RendimentosExclusivos(contrib)),
+ ]
exit = False
while not exit:
r = UI.menu(m)