raise RuntimeError("Invalid CPF")
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")
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"))
- def get_nome(self):
- if "nome" in self.declaracao.attributes.keys():
- return self.declaracao.attributes["nome"].nodeValue
+ def _get_attr(self, el, attr):
+ 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_nome(self):
+ return self._get_attr(self.declaracao, "nome")
def set_nome(self, nome):
- self.declaracao.attributes["nome"].nodeValue = nome
+ self._set_attr(self.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)
+ self._set_attr(self.contribuinte, attr, val)
+
+attributes = [
+ "nome",
+ "dataNascimento",
+ "tituloEleitor",
+ "doencaDeficiencia",
+ "exterior",
+ "pais",
+ "cep",
+ "uf",
+ "cidade",
+ "municipio",
+ "tipoLogradouro",
+ "logradouro",
+ "numero",
+ "complemento",
+ "bairro",
+ "bairroExt",
+ "cepExt",
+ "logradouroExt",
+ "numeroExt",
+ "complementoExt",
+ "ocupacaoPrincipal",
+ "codigoExterior",
+ "ddd",
+ "telefone",
+ "naturezaOcupacao",
+]
if __name__ == '__main__':
import sys
contribuinte = Contribuinte(sys.argv[1])
- print contribuinte._normalize_cpf(sys.argv[1])
- print contribuinte._minimize_cpf(sys.argv[1])
- print contribuinte._validate_cpf(sys.argv[1])
- contribuinte.set_nome(sys.argv[2])
- print contribuinte.get_nome()
- contribuinte.save()
+ 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()
+ else:
+ for i in attributes:
+ print i + ": " + contribuinte.get_contribuinte(i)