X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=src%2Fmenu.py;h=4a4dc497bc215c49d18e13616f2cab63b4903016;hb=92f7e46fddf90ca9670a986c0ec4ceeacd5e76d7;hp=95d50a2e19645060f1d1b73f5263daff47371952;hpb=02dfc6fe762d8c049308473ce3fbe924e2e12796;p=cascardo%2Firpf-gui.git diff --git a/src/menu.py b/src/menu.py index 95d50a2..4a4dc49 100644 --- a/src/menu.py +++ b/src/menu.py @@ -1,4 +1,4 @@ -# -*- mode: python; encoding: utf-8; -*- +# coding=utf-8 # # Copyright 2013 Thadeu Lima de Souza Cascardo # @@ -14,90 +14,84 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# -*- mode: python; encoding: utf-8; -*- 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 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", "Dados Pessoais", "Rendimentos PJ" ] - f = [ None, DadosPessoais, RendimentosPJ ] + m = [ + "Sair", + "Salvar", + "Dados Pessoais", + "Rendimentos PJ", + "Bens", + "Rendimentos Isentos", + "Rendimentos Exclusivos na Fonte", + ] + f = [ + None, + Salvar, + DadosPessoais, + RendimentosPJ, + Bens, + Quadros(isentos.RendimentosIsentos(contrib)), + Quadros(exclusivos.RendimentosExclusivos(contrib)), + ] exit = False while not exit: r = UI.menu(m)