def on_btnEditar_clicked(self, *args): self.swMain.hide() dialog = gtk.FileChooserDialog("Abrir...", self.win, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) dialog.set_default_response(gtk.RESPONSE_OK) dialog.set_current_folder(os.path.join('XML_Declaraciones')) filter = gtk.FileFilter() filter.set_name("Archivos XML") filter.add_mime_type("application/xml") filter.add_pattern("*.xml") dialog.add_filter(filter) response = dialog.run() if response == gtk.RESPONSE_OK: filename = dialog.get_filename() # archivo parser = etree.XMLParser(remove_comments=True, encoding='utf8') xml = etree.parse(filename, parser) dialog.destroy() else: dialog.destroy() return lstContribuyentes = ListaContribuyentes() # TODO cargar una sola vez? lstContribuyentes.load() self.declaracion = Declaracion() try: self.declaracion = self.declaracion.cargar_declaracion_guardada(xml, lstContribuyentes, self.ref_data) self.declaracion.set_archivo(filename) except Exception as ex: ezGlade.DialogBox(str(ex), 'error', self.win) return # crear ventana del formulario de declaracion vDeclaracion = wndDeclaracion() vDeclaracion.set_declaracion(self.declaracion) vDeclaracion.load_widgets_from_xml() vDeclaracion.xml = xml # asignacion directa del xml cargado vDeclaracion.update_container_from_xml() vDeclaracion.push_statusbar_info(filename) vDeclaracion.show()
def on_btnAceptar_clicked(self, *args): # contribuyente if self.declaracion.get_contribuyente() is None: ezGlade.DialogBox("No se ha seleccionado el contribuyente", "error") return # alias del formulario version = get_active_text(self.cmbFormularios) alias = self.ref_data.get_nombre_formulario(version) alias = alias.replace("FORMULARIO ", "") self.declaracion.set_alias_formulario(alias) # archivo nulo self.declaracion.set_archivo(None) # obtener anio anio = get_active_text(self.cmbAnio) self.declaracion.set_anio(anio) # obtener mes o periodo periodo = get_active_text(self.cmbPeriodo) self.declaracion.set_mes(periodo) # original o sustitutiva if self.rbSustitutiva.get_active(): self.declaracion.set_original('S') self.declaracion.set_sustituye(self.txtSustituye.get_text()) else: self.declaracion.set_original('O') self.declaracion.set_sustituye('') # crear ventana del formulario de declaracion vDeclaracion = wndDeclaracion() vDeclaracion.set_declaracion(self.declaracion) vDeclaracion.load_widgets_from_xml() vDeclaracion.push_statusbar_info("Nueva declaraciĆ³n") vDeclaracion.show()