Пример #1
0
 def validateMietverhaeltnisDaten(self, xmv: XMietverhaeltnis) -> str:
     if not xmv.von:
         return "Mietbeginn fehlt"
     if not datehelper.isValidIsoDatestring(xmv.von):
         return "Mietbeginn: kein gültiges Datumsformat. Muss 'yyyy-mm-dd' sein."
     if xmv.bis and not datehelper.isValidIsoDatestring(xmv.bis):
         return "Mietende: kein gültiges Datumsformat. Muss 'yyyy-mm-dd' sein."
     if not xmv.name:
         return "Name des Mieters fehlt"
     if not xmv.vorname:
         return "Vorame des Mieters fehlt"
     if not xmv.mobj_id:
         return "Objekt fehlt"
     return ""
Пример #2
0
 def _validate(self, xsm: XSollMiete) -> str:
     if not xsm.mv_id:
         return "mv_id fehlt."
     if not xsm.von:
         return "Beginn des Sollmietenzeitraums fehlt."
     if not datehelper.isValidIsoDatestring(xsm.von):
         return "Beginn des Sollmietenzeitraums hat kein gültiges Datumsformat. Muss 'yyyy-mm-dd' sein."
     if xsm.bis:
         if not datehelper.isValidIsoDatestring(xsm.bis):
             return "Ende des Sollmietenzeitraums nicht im Format 'yyyy-mm-dd' angegeben."
     if not xsm.netto:
         return "Nettomiete fehlt."
     if not xsm.nkv:
         return "Nebenkostenvorauszahlung fehlt."
Пример #3
0
    def kuendigeMietverhaeltnis(self, mv_id: str, kuenddatum: str):
        """
        Kündigung in Tabelle mietverhaeltnis eintragen -
        aber nur, wenn sich das Kündigungsdatum geändert hat.
        Der Update auf sollmiete muss hier erfolgen, da es fachlich falsch ist,
        ein MV ohne den zugehörigen Sollmietensatz zu kündigen.
        """
        if not datehelper.isValidIsoDatestring(kuenddatum):
            raise Exception("Mietende: kein gültiges Datumsformat")
        # aktives Mietverhältnis lesen
        try:
            d = self._db.getAktuellesMietverhaeltnisVonBis(mv_id)
            if kuenddatum and d["von"] > kuenddatum:
                raise Exception( "MietverhaeltnisLogic.kuendigeMietverhaeltnis( '%s', '%s' ): " \
                                 "Mietverhältnis-von ('%s') > Mietverhältnis-bis: Nicht erlaubt"\
                                % (mv_id, d["von"], kuenddatum) )
            if kuenddatum == d["bis"]:
                return
        except Exception as ex:
            raise Exception(
                "Kündigung des Mietverhältnisses von '%s' fehlgeschlagen:\n'%s'"
                % (mv_id, str(ex)))
        # aktive Sollmiete lesen
        smlogic = SollmieteLogic()
        sm: XSollMiete = smlogic.getCurrentSollmiete(mv_id)
        if kuenddatum and sm.von > kuenddatum:
            raise Exception(
                "BusinessLogic.kuendigeMietverhaeltnis( '%s', '%s' ): "
                "Sollmiete-von ('%s') > Sollmiete-bis nicht erlaubt" %
                (mv_id, sm.von, kuenddatum))

        # Mietverhältnis beenden
        self._db.updateMietverhaeltnis2(d["id"], "bis", kuenddatum)
        # Sollmietensatz beenden
        smlogic.beendeSollmiete(sm.sm_id, kuenddatum)
Пример #4
0
 def isDateValid(self) -> bool:
     """
     Prüft, ob der String im Edit-Feld ein gültiges Datum darstellt (True) oder nicht (False).
     Ein leeres Feld gilt als "gültig" (True)
     :return:
     """
     ds = self.text()
     if ds.endswith("\n"): ds = ds[:-1]
     if ds == "": return True
     return (isValidIsoDatestring(ds) or isValidEurDatestring(ds))
Пример #5
0
 def getDate(self) -> str:
     """
     liefert das eingestellte Datum in dem Format, wie es im Feld zu sehen ist.
     Ist der Wert im Feld ungültig, wird ein Leerstring ("") zurückgegeben.
     :param format:
     :return:
     """
     ds = self.text()
     if ds.endswith("\n"): ds = ds[:-1]
     if isValidIsoDatestring(ds) or isValidEurDatestring(ds):
         return ds
     else:
         return ""
Пример #6
0
    def showCalendar(self):
        cal = CalendarDialog(self)
        text = self.text()
        d: QDate = None
        if text == "":
            d = getRelativeQDate(0, 0)
        else:
            if isValidIsoDatestring(text):
                d = getQDateFromIsoString(text)

            else:
                d = getRelativeQDate(0, 0)
        cal.setSelectedDate(d)
        cal.setCallback(self.onDatumSelected)
        cal.show()
Пример #7
0
    def _writeWohnungMin(self, xdata: XWohnungDaten, isInsert: bool) -> int:
        q = 'insert_wohnung_min' if isInsert else 'update_wohnung_min'
        xdatatmp: XWohnungDaten = deepcopy(xdata)
        if xdata.angeschafft_am:
            if datehelper.isValidEurDatestring(xdata.angeschafft_am):
                xdatatmp.angeschafft_am = \
                    datehelper.convertEurToIso(xdata.angeschafft_am)
            else:
                if not datehelper.isValidIsoDatestring(xdata.angeschafft_am):
                    raise ValueError(''.join(
                        ('Wohnung angeschafft am: ', xdata.angeschafft_am,
                         ' ist kein gültiges Datumsformat')))

        resp = self._session. \
            post(Server.SERVER + 'business.php?q=' + q + '&user=' + self._user,
                 data=xdatatmp.getValuesAsDict())

        retval = self._getWriteRetValOrRaiseException(resp)

        return int(retval.object_id())