def getNCEU(self, obj): doc = obj.document idoc = IolDocument(doc) results = list() mapfields = self.mapping['nceu'] for r in idoc.getDatagridValue('elenco_nceu'): fType = obj.client.factory.create('particella') for k, v in mapfields.items(): if v: fType[k] = r[v] results.append(fType) return results
def getIndirizzi(self, obj): doc = obj.document idoc = IolDocument(doc) results = list() elencoVie = dict() vie = obj.client.service.elencoVie()[2] for via in vie: elencoVie[str(via.value)] = str(via.label) mapfields = self.mapping['indirizzo'] for r in idoc.getDatagridValue('elenco_civici'): fType = obj.client.factory.create('indirizzo') for k, v in mapfields.items(): if v: if k == 'via': fType[k] = elencoVie[r[v]] else: fType[k] = r[v] results.append(fType) return results
def getSoggetti(self, obj): doc = obj.document idoc = IolDocument(doc) soggetti = list() ruoli = [ 'richiedente', 'proprietario', 'progettista', 'direttore', 'esecutore' ] # Recupero informazioni sui richiedenti/proprietari soggetto = obj.client.factory.create('soggetto') for i in ruoli: soggetto[i] = 0 mapfields = self.mapping['richiedente'] for k, v in mapfields.items(): if v: soggetto[k] = json.dumps(doc.getItem(v, None), cls=dateEncoder, use_decimal=True) soggetto['richiedente'] = 1 soggetto['comunicazioni'] = 1 if soggetto['sesso'] == 'Maschile': soggetto['sesso'] = 'M' else: soggetto['sesso'] = 'F' # Il richiedente è anche proprietario if doc.getItem('fisica_titolo', '').lower() == 'proprietario': soggetto['proprietario'] = 1 soggetti.append(soggetto) for r in idoc.getDatagridValue('anagrafica_soggetti'): soggetto = obj.client.factory.create('soggetto') for i in ruoli: soggetto[i] = 0 for k, v in mapfields.items(): if v: if v in r.keys(): soggetto[k] = r[v] else: soggetto[k] = '' soggetto['richiedente'] = 1 soggetto['comunicazioni'] = 1 if soggetto['sesso'] == 'Maschile': soggetto['sesso'] = 'M' else: soggetto['sesso'] = 'F' # Il richiedente è anche proprietario if 'fisica_titolo' in r.keys(): titolo = r['fisica_titolo'] else: titolo = '' if titolo.lower() == 'proprietario': soggetto['proprietario'] = 1 soggetti.append(soggetto) # Recupero informazioni sul progettista soggetto = obj.client.factory.create('soggetto') for i in ruoli: soggetto[i] = 0 mapfields = self.mapping['progettista'] for k, v in mapfields.items(): if v: value = doc.getItem(v, None) if isinstance(value, DateTime): soggetto[k] = value.strftime("%d/%m/%Y") else: soggetto[k] = value soggetto['progettista'] = 1 soggetto['comunicazioni'] = 1 if soggetto['sesso'] == 'Maschile': soggetto['sesso'] = 'M' else: soggetto['sesso'] = 'F' direttore = doc.getItem('direttore_opt', 'nodirettore') if direttore == 'direttoreesecutore': soggetto['direttore'] = 1 soggetti.append(soggetto) # Il progettista è anche direttore lavori # Recupero informazioni sul direttore lavori if direttore == 'direttore': soggetto = obj.client.factory.create('soggetto') for i in ruoli: soggetto[i] = 0 mapfields = self.mapping['direttore'] for k, v in mapfields.items(): if v: soggetto[k] = json.dumps(doc.getItem(v, None), cls=dateEncoder, use_decimal=True) soggetto['direttore'] = 1 soggetto['comunicazioni'] = 1 if soggetto['sesso'] == 'Maschile': soggetto['sesso'] = 'M' else: soggetto['sesso'] = 'F' soggetti.append(soggetto) # Recupero informazioni sugli esecutori se necessario if doc.getItem('lavori_economia_opt', 'economia') == 'economia': pass else: soggetto = obj.client.factory.create('soggetto') for i in ruoli: soggetto[i] = 0 mapfields = self.mapping['esecutore'] for k, v in mapfields.items(): if v: soggetto[k] = json.dumps(doc.getItem(v, None), cls=dateEncoder, use_decimal=True) soggetto['esecutore'] = 1 soggetto['comunicazioni'] = 1 if soggetto['sesso'] == 'Maschile': soggetto['sesso'] = 'M' else: soggetto['sesso'] = 'F' soggetti.append(soggetto) for r in idoc.getDatagridValue('altri_esecutori'): soggetto = obj.client.factory.create('soggetto') for i in ruoli: soggetto[i] = 0 for k, v in mapfields.items(): if v: if v in r.keys(): soggetto[k] = r[v] else: soggetto[k] = '' soggetto['esecutore'] = 1 soggetto['comunicazioni'] = 1 if soggetto['sesso'] == 'Maschile': soggetto['sesso'] = 'M' else: soggetto['sesso'] = 'F' soggetti.append(soggetto) return soggetti