X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcontribuinte.py;h=587762c8838099d5ea1a445f1b65d7f14e4b621e;hb=5765b0ac2e31ba7281ddfd5aa33c600d2f0ff944;hp=317237cfd0f5996eda1a86cd9d64277d90cbbd56;hpb=eafda21662f1e44fee1ddd55bb9d75f8853660c9;p=cascardo%2Firpf-gui.git diff --git a/src/contribuinte.py b/src/contribuinte.py index 317237c..587762c 100644 --- a/src/contribuinte.py +++ b/src/contribuinte.py @@ -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)