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
Beispiel #3
0
    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