def handleRegulationAndLandUseClassificationInSourceToTargetCopy( self, sourceFeature, targetSchemaTableName, targetFeature, shouldCreateRelation): # Tee tarvittaessa linkki olemassa olevaan tai uuteen kaavamääräykseen. Huomioi asetukset "Luo tarvittaessa uudet kaavamääräykset" ja "Täytä kaavakohteiden käyttötarkoitus kaavamääräyksen mukaan tai päinvastoin" # Huomioi, että kaavamääräys voi tulla lähteen käyttötarkoituksen kautta (muokkaa myös asetus-dialogia, jotta ko. asia on mahdollista) # Muuttaa lähdekaavamääräyksen isoihin kirjaimiin, jos ei ole valmiiksi # Huomioi, että kaavamääräys ja/tai käyttötarkoitus ovat voineet tulla oletusarvojen kautta fieldMatches = self.getSourceTargetFieldMatches() fieldMatchTargetNames = [ fieldMatch["target"] for fieldMatch in fieldMatches ] sourceRegulationName = self.getSourceFeatureValueForSourceTargetFieldMatch( fieldMatches, sourceFeature, "kaavamaaraysotsikko") if not sourceRegulationName.isNull(): if self.shouldCapitalize: sourceRegulationName = QVariant( sourceRegulationName.value().upper()) sourceRegulationName = QVariant( sourceRegulationName.value().rstrip()) sourceLandUseClassificationName = self.getSourceFeatureValueForSourceTargetFieldMatch( fieldMatches, sourceFeature, "kayttotarkoitus_lyhenne") if not sourceLandUseClassificationName.isNull(): if self.shouldCapitalize: sourceLandUseClassificationName = QVariant( sourceLandUseClassificationName.value().upper()) sourceLandUseClassificationName = QVariant( sourceLandUseClassificationName.value().rstrip()) # QgsMessageLog.logMessage("sourceRegulationName: " + str(sourceRegulationName.value()), 'Yleiskaava-työkalu', Qgis.Info) # QgsMessageLog.logMessage("sourceLandUseClassificationName: " + str(sourceLandUseClassificationName.value()), 'Yleiskaava-työkalu', Qgis.Info) if "kaavamaaraysotsikko" in fieldMatchTargetNames and not sourceRegulationName.isNull( ): # QgsMessageLog.logMessage("handleRegulationAndLandUseClassificationInSourceToTargetCopy - not sourceRegulationName.isNull()", 'Yleiskaava-työkalu', Qgis.Info) self.handleRegulationInSourceToTargetCopy(sourceFeature, targetFeature, sourceRegulationName, targetSchemaTableName, shouldCreateRelation) elif "kayttotarkoitus_lyhenne" in fieldMatchTargetNames and not sourceLandUseClassificationName.isNull( ): # QgsMessageLog.logMessage("handleRegulationAndLandUseClassificationInSourceToTargetCopy - not sourceLandUseClassificationName.isNull()", 'Yleiskaava-työkalu', Qgis.Info) self.handleLandUseClassificationInSourceToTargetCopy( sourceFeature, targetFeature, sourceLandUseClassificationName, targetSchemaTableName, shouldCreateRelation) elif self.getDefaultValuesRegulationValue() is not None: self.handleRegulationInSourceToTargetCopy( sourceFeature, targetFeature, self.getDefaultValuesRegulationValue(), targetSchemaTableName, shouldCreateRelation) elif self.getDefaultValuesLandUseClassificationValue() is not None: self.handleLandUseClassificationInSourceToTargetCopy( sourceFeature, targetFeature, self.getDefaultValuesLandUseClassificationValue(), targetSchemaTableName, shouldCreateRelation)
def checkValue(value: QVariant): if value.isNull(): return CellValue.ValueNone if value.convert(QMetaType.QString): if str(value.value()) == "": return CellValue.ValueNone if value.convert(QMetaType.Float): if isnan(float(value.value())): return CellValue.ValueNotFloat else: return CellValue.ValueFloat else: return CellValue.ValueNotFloat
def isFloat(value): q_value = QVariant(value) if q_value.isNull(): return False if q_value.convert(QMetaType.QString): if str(q_value.value()) == '': return False if q_value.convert(QMetaType.Float): if isnan(float(q_value.value())): return False else: return True else: return False