0

Zinsrechner für Verzugszinsen

Liebe Ninox-Kollegen,

hat jemand von Euch schon einmal einen Zinsrechner für Verzugszinsen in Ninox gemacht und könnte mir den Code, gern gegen Entgelt, zur Verfügung stellen. 

Das ganze ist leider etwas komplexer Spaghetticode: 

- Man muss das Datum des Verzugsbeginns eingeben können

- Man muss das Datum des Verzugsendes eingeben können

- Man muss den geschuldeten Betrag eingeben können

 

Das ist einfach, aber dann kommt es:

- Dann muss taggenau der jeweilige Zinssatz für den jeweiligen ganzen oder anteiligen Zeitraum angewendet werden, siehe die nachfolgende Tabelle mit dem jeweiligen Zinssatz

- Diese Zinsen müssen dann für den jeweiligen Zeitraum einzeln ausgerechnet werden

- Und anschließend müssen die Zinsen summiert werden zum Gesamtzins.

 

Ja, Verzugszinsen im geschäftlichen Verkehr sind kein Spaß. Manchmal sind sie aber nicht zu vermeiden. 

Falls jemand Lust hat, das zu programmieren, bitte melden.

 

Viele Grüße

Oliver

 

01.01.2020 - 30.06.2020:  182  8.12 %  
01.07.2020 - 31.12.2020:  184  8.12 %  
01.01.2021 - 30.06.2021:  181  8.12 %  
01.07.2021 - 31.12.2021:  184  8.12 %  
01.01.2022 - 30.06.2022:  181  8.12 %  
01.07.2022 - 31.12.2022:  184  8.12 %  
01.01.2023 - 30.06.2023:  181  10.62 %  
01.07.2023 - 31.12.2023:  184  12.12 %  
01.01.2024 - 30.06.2024:  182  12.62 %  
01.07.2024 - 29.10.2024:  121  12.37 %  

5 Antworten

null
    • Verleger
    • OLIVER
    • vor 3 Wochen
    • Gemeldet - anzeigen

    Liebe Kollegen,

    ich habe mich jetzt selbst an dem Skript versucht, und es funktioniert ohne Fehlermeldung, nur das Ergebnis ist völlig falsch :) 

    Das hier ist der aktuelle Stand:

    - Das startDatum kommt aus dem Datumsfeld VERZUGSBEGINN
    - Das endDatum ist der 31.12.2024, bis dahin sollen die Zinsen berechnet werden.
    - Es sollen die Zinsen nur ab dem 1.1.2020 berechnet werden, das ist das früheste Startdatum.
    - Der zu verzinsende Betrag kommt aus dem Zahlenfeld BETRAG.

    Die gesamten Zinsen, die für den Zeitraum vom 01.01.2020 bis zum 31.12.2024 auf den Betrag von 100 Euro zu berechnen sind, betragen ca. 41,05 Euro, manuell gerechnet, mit den üblichen 9% über dem Basiszinssatz im geschäftlichen Verkehr.

    Das Ergebnis ist um nun leider ein Vieltausendfaches falsch. Das Skript kommt auf sportliche 205940739,99999997 Euro. :) 

    Aber wo habe ich mich vergaloppiert? Hat jemand eine Idee?

    Viele Grüße

    Oliver

     

    let startDatum := date(VERZUGSBEGINN);
    let endDatum := date(2024, 12, 31);
    let betrag := BETRAG;
    let zinsSaetze := [{
                datumVon: date(2020, 1, 1),
                datumBis: date(2020, 6, 30),
                basisZins: -0.88
            }, {
                datumVon: date(2020, 7, 1),
                datumBis: date(2021, 6, 30),
                basisZins: -0.88
            }, {
                datumVon: date(2021, 7, 1),
                datumBis: date(2022, 6, 30),
                basisZins: -0.88
            }, {
                datumVon: date(2022, 7, 1),
                datumBis: date(2023, 6, 30),
                basisZins: -0.88
            }, {
                datumVon: date(2023, 7, 1),
                datumBis: date(2024, 6, 30),
                basisZins: 3.12
            }, {
                datumVon: date(2024, 7, 1),
                datumBis: date(2024, 12, 31),
                basisZins: 4.12
            }];
    let zinsen := 0;
    for item in zinsSaetze do
        let von := max(date(item.datumVon), date(startDatum));
        let bis := min(date(item.datumBis), date(endDatum));
        let tage := bis - von;
        zinsen := zinsen + number(betrag) * tage * (number(item.basisZins) + 9) / 36000
    end;
    zinsen
    
      • pma_mgmt
      • vor 3 Wochen
      • Gemeldet - anzeigen

       Dein Problem ist, dass "let tage:=bis-von;" nicht die Anzahl der Tage als Zahl zurückgibt, sondern in millisekunden.

      let tage:=days(von,bis); 

      und du wirst Erfolg haben.

      • pma_mgmt
      • vor 3 Wochen
      • Gemeldet - anzeigen

      Ah und noch ne Ergänzung: ich vermute du möchtest ein "if tage>=0 then "... zinsen..."end" haben :-)

      • Verleger
      • OLIVER
      • vor 3 Wochen
      • Gemeldet - anzeigen

       Ganz herzlichen Dank, es klappt wunderbar! 

       

    • Verleger
    • OLIVER
    • vor 3 Wochen
    • Gemeldet - anzeigen

    Herzlichen Dank, das probiere ich nachher aus. Erstmal den Hund ausführen:)