Abrechnungs-Algorithmus

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abrechnungs-Algorithmus

    Hallo Leute,

    ich bin dabei, ein System zu schreiben, was einige Dinge abrechnet. Hierbei speicher ich Konditionen mit ValidFrom und ValidTill in Form von UNIX-Timestamps, bei den unlimitierten ins ValidTill = NULL.

    Wie kriege ich das jetzt hin, wenn ich alle drei Monate abrechne, dass er jede Änderung feststellt? Ich habe Preisspeicherungen immer nur zum 1. des Vertrags ermöglicht und die alten eine Sekunde vorher auslaufen lassen.

    Also, folgende Situation:

    Vertrag wird immer auf den 3. berechnet
    Vertragsbeginn: 3.3.2007
    Alter Preis gültig von 3.3.2007 bis 2.5.2007
    Neuer Preis gültig von 3.5.2007 bis unlimitiert
    Rechnung wird generiert am 3.6.2007

    Wie kann ich diese Abfrage am logischten gestalten?

    Herzlichen Dank
    Henning

  • #2
    Re: Abrechnungs-Algorithmus

    Original geschrieben von Someday
    Wie kann ich diese Abfrage am logischten gestalten?
    am logischten wäre erst mal eine problembeschreibung mit allem, was dazu gehört. womit arbeitest du? was ist wo gespeichert?

    Kommentar


    • #3
      Okay, Problemsituation:

      2 Tabellen, die entscheidend sind:

      contract - Hier sind die grundsätzlichen Vertragsdaten hinterlegt
      --> Letzte Rechnungsstellung
      --> Zyklus, in dem Rechnungen erstellt werden
      --> Zeitpunkt der nächsten Rechnung

      contractCondition - Für jede Kondition ein oder mehrere Zeilen hinterlegt
      --> von Timestamp
      --> bis Timestamp
      --> Konditionsdaten

      Ich möchte nun irgendwie die Tarif/Konditionsänderungen berücksichtigen ...

      Ich arbeite derzeit mit PHP4 und mySQL.

      Danke und Lieben Gruß
      Henning

      Kommentar


      • #4
        Hierbei speicher ich ... in Form von UNIX-Timestamps ...
        das ist suboptimal, denn so gehen dir z.b. die schalttage im jahr verloren und du kannst die datumsfunktionen von mysql nicht nutzen.
        Wie kriege ich das jetzt hin, wenn ich alle drei Monate abrechne, dass er jede Änderung feststellt?
        wer? welche änderung?
        Ich möchte nun irgendwie die Tarif/Konditionsänderungen berücksichtigen ...
        was hindert dich daran?

        in deinem kopf macht alles genau sinn, aber wir sind hier draußen...

        Kommentar


        • #5
          Wieso soll ich keine UNIX-Timestamps einsetzen? Mir wurde immer gesagt, dass das am besten ist. :-/

          Änderungen meine ich Konditionen

          Vertrag wird immer auf den 3. berechnet
          Vertragsbeginn: 3.3.2007
          Alter Preis gültig von 3.3.2007 bis 2.5.2007
          Neuer Preis gültig von 3.5.2007 bis unlimitiert
          Rechnung wird generiert am 3.6.2007

          Alter und Neuer Preis sind Änderungen


          Mich hindert daran meine Denkblockade, wie ich das mache, dass ich die Konditionen richtig abrufe. Ich habe ja nur den Timestamp der letzten und nächsten Rechnung. Das ist mein Zeitraum, den ich in Rechnung stelle, aber wie ermittel ich, welcher Preis wann galt? Und, wieviele Monate dazwischen liegen :-<

          VG
          Henning

          Kommentar


          • #6
            Original geschrieben von Someday
            Wieso soll ich keine UNIX-Timestamps einsetzen?
            habe ich das nicht gerade gesagt?
            Mir wurde immer gesagt, dass das am besten ist. :-/
            von wem?

            vielleicht machst du endlich ein einfaches beispiel mit ein paar daten und zeigst, was du mit der abfrage erreichen willst.

            Kommentar


            • #7
              Von vielen Tutorials ;o)

              In wie fern soll ich da ein Beispiel geben? Habe ich doch in dem Sinne schon im ersten Post ...

              VG
              Henning

              Kommentar


              • #8
                ein einfaches beispiel mit ein paar daten und zeigst, was du mit der abfrage erreichen willst.

                Kommentar


                • #9
                  So, Ausgangsdaten:

                  Vertrag wird immer auf den 3. berechnet
                  Vertragsbeginn: 3.3.2007
                  Alter Preis gültig von 3.3.2007 bis 2.5.2007
                  Neuer Preis gültig von 3.5.2007 bis unlimitiert
                  Rechnung wird generiert am 3.6.2007

                  Was ich erreichen will:

                  X Monate Produkt E.-Preis G.-Preis
                  Enthaltene Leistungen:

                  seit bis
                  03.03.2007 02.05.2007 X Stunden
                  03.05.2007 --- Y Stunden

                  Sowas möchte ich erreichen.
                  Verstehst du?

                  VG
                  Henning

                  Kommentar


                  • #10
                    nein, kein bißchen.

                    Kommentar


                    • #11
                      Also ich habe einen Vertrag, der immer am 3. fällig ist. Es wird eine Rechnung alle 3 Monate erstellt. Der Preis kann sich aber monatlich ändern. Der Preis ist mit validFrom und vallidTill gespeichert. Nun möchte ich die Preise entsprechend ermitteln und auf der Rechnung ausgeben.

                      Sorry, ich hab Schwierigkeiten, das genauer zu erklären :-/

                      Kommentar


                      • #12
                        PHP-Code:
                        # vielleicht wäre ein
                        echo "mein php-code, damit Ihr es versteht";
                        #sinnvoll 
                        zeig uns doch deine abfrage wie du es bisher realisiert hast, damit wir dir helfen können
                        wenn du uns nix gibts können wir dir nicht mehr geben, da helfen auch noch so viele erklärungen von dir nicht!
                        selfmade-webdesign
                        webdesign leipzig

                        Kommentar


                        • #13
                          Ich habe keine Abfragen bisher, weil ich einfach noch keine sinnvolle Idee habe, wie das funktionieren könnte. Ich habe mir lediglich einen Ablauf überlegt:

                          1.) Vertragsdaten abrufen
                          2.) Preise abrufen, wo validFrom kleiner als JETZT und validFrom größer JETZT oder NULL ist
                          3.) Dann schauen, wieviele Monate das ist.
                          4.) Multiplizieren um auf Gesamtsumme zu kommen

                          VG
                          Henning

                          Kommentar


                          • #14
                            also sollen wir dir ein code basteln? das macht sicher keiner, da wirst du schon selbst was probieren müssen un dann kannst du immer noch fragen

                            hast du denn überhaupt daten in deiner db? dann kannst du doch wenigstens eine select abfrage starten und deine vertragsdaten ausgeben
                            selfmade-webdesign
                            webdesign leipzig

                            Kommentar


                            • #15
                              Du beschreibst immer noch kein konkretes Problem.
                              Bekommst Du die Auswahl der Konditionen in einem bestimmten Zeitraum nicht hin?
                              Weisst Du nicht, wie Du das zusammenrechnest, wenn Du die einmal hast?
                              Oder wo hakts jetzt?

                              Kommentar

                              Lädt...
                              X