Retornar campo
[cascardo/irpf-gui.git] / src / contribuinte.py
index 317237c..491830c 100644 (file)
@@ -24,6 +24,7 @@ class Contribuinte:
         self.declaracao = self._find_id()
         self.dados = xml.dom.minidom.parse("aplicacao/dados/%s/%s.xml" % (self.cpf, self.cpf))
         self.contribuinte = self.dados.getElementsByTagName("contribuinte")[0]
+
     def _find_id(self):
         cpf = self._normalize_cpf(self.cpf)
         self.declaracoes = xml.dom.minidom.parse("aplicacao/dados/iddeclaracoes.xml")
@@ -32,6 +33,7 @@ class Contribuinte:
                 if i.attributes["cpf"].nodeValue == cpf:
                     return i
         return None
+
     # CPF normalizado se parece com 000.000.000-00
     def _normalize_cpf(self, cpf):
         ncpf = ""
@@ -47,6 +49,7 @@ class Contribuinte:
         if len(ncpf) != 14:
             raise RuntimeError("Invalid CPF")
         return ncpf
+
     # CPF minimizado se parece com 01234567890
     def _minimize_cpf(self, cpf):
         ncpf = bytearray(self._normalize_cpf(cpf))
@@ -54,6 +57,7 @@ class Contribuinte:
         del ncpf[7]
         del ncpf[3]
         return str(ncpf)
+
     def _validate_cpf(self, cpf):
         ncpf = self._minimize_cpf(cpf)
         if len(ncpf) != 11:
@@ -69,6 +73,7 @@ class Contribuinte:
         if v != ord(ncpf[10]) - ord('0'):
             return False
         return True
+
     def save(self):
         self.dados.writexml(open("aplicacao/dados/%s/%s.xml" % (self.cpf, self.cpf), "w"))
         self.declaracoes.writexml(open("aplicacao/dados/iddeclaracoes.xml", "w"))
@@ -76,20 +81,27 @@ class Contribuinte:
         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_declaracao(self, attr):
         return self._get_attr(self.declaracao, attr)
+
     def set_declaracao(self, attr, val):
         self._set_attr(self.declaracao, attr, val)
+
     def get_nome(self):
         return self.get_declaracao("nome")
+
     def set_nome(self, nome):
         self.set_declaracao("nome", nome)
+
     def get_contribuinte(self, attr):
         if attr == "nome":
             return self.get_nome()
         return self._get_attr(self.contribuinte, attr)
+
     def set_contribuinte(self, attr, val):
         if attr == "nome":
             self.set_nome(val)
@@ -143,17 +155,20 @@ if __name__ == '__main__':
     import sys
     contribuinte = Contribuinte(sys.argv[1])
     print "Carregando CPF " + contribuinte._normalize_cpf(sys.argv[1])
-    if contribuinte._validate_cpf(sys.argv[1]):
-        print "CPF valido"
-    else:
-        print "CPF invalido"
-        sys.exit(1)
+
     if len(sys.argv) == 4:
         print "Valor anterior: " + contribuinte.get_contribuinte(sys.argv[2])
         contribuinte.set_contribuinte(sys.argv[2], sys.argv[3])
         print "Valor atual: " + contribuinte.get_contribuinte(sys.argv[2])
         print "Salvando..."
         contribuinte.save()
+    elif len(sys.argv) == 3:
+        campo = sys.argv[2]
+        valor = contribuinte.get_contribuinte(campo)
+        if valor:
+            print ("Valor de " + campo + ": " + valor)
+        else:
+            print ("Campo " + campo + " retornou vazio")
     else:
         print "\nCONTRIBUINTE:"
         for i in contribuinte_attributes: