self.items = []
for i in self.bens.getElementsByTagName("item"):
self.items.append(Bem(i))
+
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_bens(self, attr):
return self._get_attr(self.bens, attr)
+
def set_bens(self, attr, val):
self._set_attr(self.bens, attr, val)
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")
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 = ""
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))
del ncpf[7]
del ncpf[3]
return str(ncpf)
+
def _validate_cpf(self, cpf):
ncpf = self._minimize_cpf(cpf)
if len(ncpf) != 11:
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"))
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)
self.xml = xml.dom.minidom.parse("res/%s.xml" % (UF,))
self.l = []
self._list()
+
def _list(self):
for i in self.xml.childNodes[0].childNodes:
if "COL3" in i.attributes.keys():
i.attributes["COL3"].nodeValue))
def list(self):
return self.l
+
def get_municipio(self, code):
for i in self.l:
if i[0] == code:
return i
return None
+
def verify_cep(self, m, cep):
l = m[2][0:7]
h = m[2][9:16]