Announcement

Collapse
No announcement yet.

Zeitraum in Zeitraum

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zeitraum in Zeitraum

    Hallo,
    ich bin gerade dabei eine Vertragsabrechnung zu realisieren. Die Abrechnung erfolgt quartalsweise, aber auf den Monat bezogen, heisst: es gibt am ende des Quartals 3 Abrechnungen.

    Bsp:
    Abrechnungsperiode von 20.01.2011 bis 19.04.2011

    Ergibt 3 Abrechnungen: 20.01.2011 - 19.02.2011, 20.02.2011 - 19.03.2011, 20.03.2011 - 19.04.2011

    Nun kann es innerhalb der Abrechnungsperiode ein oder mehrere Upgrades geben. Wenn dem so ist werden andere Preise gezogen.

    Bsp:
    Upgrade am 22.02.2011 und am 24.03.2011

    Abrechnung 1: 20.01.2011 - 19.02.2011 - kein Upgrade
    Abrechnung 2: 20.02.2011 - 19.03.2011 - Upgrade 1 berücksichtigen
    Abrechnung 3: 20.03.2011 - 19.04.2011 - Upgrade 2 berücksichtigen

    Die Vertragspositonen enthalten als Info das Upgradedatum, d.h. da es 2 Upgrades gab, gibt es 3 Vertragspositionen (die aktuelle hat kein Upgrade). Das Upgradedatum welches in der Position steht, ist das Datum bis wann diese Position gilt:

    Pos1 Upgrade leer -> diese Position gilt bis heute
    Pos2 Upgrade 22.02.2011 -> diese Position galt bis zum 22.02.2011
    Pos3 Upgrade 24.03.2011 -> diese Position galt bis zum 24.03.2011

    Ich möchte nun feststellen in welcher Abrechnung ich welche Position ziehen muss. Hat jemand eine Idee?

    Danke für die Hilfe
    Ralf

  • #2
    Die Abrechnung erfolgt quartalsweise,
    Abrechnungsperiode von 20.01.2011 bis 19.04.2011 -> Ist üblicherweise kein Quartal


    Warum nicht einfach die Datumsfunktionen nutzen?
    Anfangsdatum mit dem Enddatum und dem Upgradedatum testen, ob letztres darin liegt.

    Also
    Wenn Upgradedatum kleiner als Enddatum UND größer als Anfangsdatum, dann ist Upgradedatum darin.

    Diese Prüfungen mit allen Upgradedaten und je Zeitraum.

    Danach hast du eine Liste, von wann bis wann was galt.

    Trifft obige Prüfung zu, dann hast du von Anfangsdatum bis Upgradedatum den alten Preis, usw.
    Zuletzt editiert von Christian Marquardt; 30.11.2011, 09:31.
    Christian

    Comment


    • #3
      Und vor allem Tests dafür schreiben!

      Comment


      • #4
        Hallo,

        wegen Zeitraum in Zeitraum geschlossen.


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment

        Working...
        X