#!/usr/bin/env python3 # -*- coding: UTF-8 -*- #Nom : : config_insert_table.py #Description : Insertion des données cadastrales à la base après de sa création. #Copyright : 2021, CEN38 #Auteur : Colas Geier #Version : 1.0 DICT_TAB = [{ 'table_in' : 'proprietaire', # Table source qui provient de la sortie du plugin cadastre de qgis 'index_tab': 'proprietaire', # Pkey de la table source 'columns_in': ['ccodep', 'dnuper', 'ccoqua', 'ddenom', 'jdatnss', 'dldnss', 'dsglpm', 'dlign3', 'dlign4', 'dlign5', 'dlign6', 'dnatpr', 'gtoper', 'ccogrm', 'ccocom', 'dnupro', 'dnomlp', 'dprnlp', 'epxnee', 'dnomcp', 'dprncp', 'ccodro', 'ccodem'], 'table_out': [{ 'name': 'cptprop{}'.format(dpt_nom_tab), 'geom': None, 'drop_escape': False, # Supprime les champs vides à l'intérieure des chaines de carractères 'columns_in': ['ccodep', 'ccocom', 'dnupro'], # Liste des columns à récupérer en entrée. 'columns_add': {'dnupro': ['ccodep', 'ccocom', 'dnupro']}, # Définition des champs composés devant être ajoutés 'unique': {'cols': ['dnupro'], 'keep': 'first'}, # Champs devant être uniques à l'intérieur de la table en sortie 'dict': None, # Dictionnaire pour renommer les champs {'ancien_nom1': 'nouveau_nom1', 'ancien_nom2': 'nouveau_nom2', ...} 'join': False },{ 'name': 'proprios{}'.format(dpt_nom_tab), 'geom': None, 'drop_escape': True, 'columns_in': ['ccodep', 'dnuper', 'ccoqua', 'ddenom', 'jdatnss', 'dldnss', 'dsglpm', 'dlign3', 'dlign4', 'dlign5', 'dlign6', 'dnatpr', 'gtoper', 'ccogrm'], 'columns_add': {'dnuper': ['ccodep', 'dnuper']}, 'unique': {'cols': ['dnuper'], 'keep': 'first'}, 'dict': None, 'join': False },{ 'name': 'r_prop_cptprop{}'.format(dpt_nom_tab), 'geom': None, 'drop_escape': False, 'columns_in': ['ccodep', 'dnuper', 'ccocom', 'dnupro', 'dnomlp', 'dprnlp', 'epxnee', 'dnomcp', 'dprncp', 'ccodro', 'ccodem'], 'columns_add': { 'dnuper': ['ccodep', 'dnuper'], 'dnupro': ['ccodep', 'ccocom', 'dnupro']}, 'unique': {'cols': ['dnupro', 'dnuper'], 'keep': 'first'}, 'dict': None, 'join': False },] },{ 'table_in' : 'parcelle', 'index_tab': 'parcelle', 'columns_in' : ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'ccovoi', 'dparpi', 'dcntpa', 'ccocomm', 'ccoprem', 'ccosecm', 'dnuplam', 'dvoilib', 'type_filiation'], 'table_out': [{ 'name': 'vl{}'.format(dpt_nom_tab), 'geom': None, 'drop_escape': True, 'columns_in' : ['ccodep', 'ccocom', 'ccovoi', 'dvoilib'], 'columns_add': { 'vl_id': ['ccodep', 'ccocom', 'ccovoi'], 'geom': None}, 'unique': {'cols': ['vl_id'], 'keep': 'first'}, 'dict': None, 'join': False },{ 'name': 'parcelles{}'.format(dpt_nom_tab), 'geom': { 'table_geom_in': 'geo_parcelle', 'index_geom': 'geo_parcelle' }, 'drop_escape': True, 'columns_in' : ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'ccovoi', 'dparpi', 'dcntpa', 'ccocomm', 'ccoprem', 'ccosecm', 'dnuplam', 'type_filiation'], 'columns_add': { 'par_id': ['ccodep', 'ccocom', 'ccopre','ccosec', 'dnupla'], 'codcom': ['ccodep', 'ccocom'], 'vl_id': ['ccodep', 'ccocom', 'ccovoi'], 'typprop_id': None }, 'unique': False, 'dict': {'type_filiation': 'type'}, 'join': False },{ 'name': 'lots{}'.format(dpt_nom_tab), # !!!!!! Ne trouve pas de parcelles sans lots (ex: 38357000AE0526) 'geom': None, 'drop_escape': True, 'columns_in' : ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'dcntpa'], 'columns_add': { 'lot_id': ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla'], 'par_id': ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla'], 'dnulot': None, }, 'unique': False, 'dict': {'dcntpa': 'dcntlo'}, 'join': [{'bdd': 'out', 'table': 'parcelles{}'.format(dpt_nom_tab), 'on': ['par_id'], 'type': 'distinct'}] },] },{ 'table_in' : 'lots', 'index_tab': 'lots', 'columns_in' : ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'dnulot', 'dnupdl', 'dcntlo'], 'table_out': [{ 'name': 'lots{}'.format(dpt_nom_tab), # !!!!!! parcelles avec lots: existe par_id NOT IN parcelles_73 'geom': None, 'drop_escape': True, 'columns_in' : ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'dnulot', 'dnupdl', 'dcntlo'], 'columns_add': { 'lot_id': ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'dnulot'], 'par_id': ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla'],}, 'unique': {'cols': ['lot_id'], 'keep': 'first'}, 'dict': None, 'join': False },{ 'name': 'lots_natcult{}'.format(dpt_nom_tab), 'geom': None, 'drop_escape': True, 'columns_in' : ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'dnulot'], 'columns_add': { 'lot_id': ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'dnulot'],}, 'unique': {'cols': ['lot_id'], 'keep': 'first'}, 'dict': None, 'join': [{ # ERROR ! 2 dclssf pour 1 lot_id 'bdd': 'in', 'table': 'suf', 'on': ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'dnulot'], 'type': 'merge', 'select_cols' : ['ccodep', 'ccocom', 'ccopre', 'ccosec', 'dnupla', 'dnulot','dsgrpf','cnatsp','dclssf','ccosub','dcntsf'], }] },] }]