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 ""
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."
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)
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))
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 ""
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()
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())