Ankündigung

Einklappen
Keine Ankündigung bisher.

wiederkehrende Ereignisse (z.B Rechnungen)

Einklappen

Neue Werbung 2019

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

  • wiederkehrende Ereignisse (z.B Rechnungen)

    Hallo Leute,

    vielleicht könnt ihr mir weiterhelfen. Ich bin am überlegen, wie ich unter PHP/Mysql wiederkehrende Ereignisse realisieren kann.

    Dachte da zB speziell an Rechnungen in Form eines Vertrages. Da schreiben ja zb Webhoster ihren Kunden monatliche Rechnungen.

    Wie könnte man sowas am besten realisieren. Ich persönlich habe an folgende Lösung gedacht. Man wählt zuerst das Zeitintervall. Ob der Kunde zb wöchentlich(7Tage), monatlich(30Tage), usw. seine Rechnung bekommen soll. Dann legt man fest, wann die erste Rechnung erstellt wird.

    In der Datenbank finden sich dann zwei Einträge pro Datensatz(Rechnungsposten). Das Datum der ersten Rechnung, und das Datum der nächsten Rechnung. Ist das Datum der ersten Rechnung erreicht(erfordert ja immer manuelles Eingreifen, da PHP ja nicht interagiert, bzw man könnte einen kleinen daemon in php schreiben), wird die Rechnung generiert, das Datum der ersten Rechnung gelöscht und durch das Datum der nächsten Rechnung ersetzt. Gleichzeitig wird dann zum datum der jetzt neuen nächsten Rechhung das Intervall addiert, so dass man dann das übernächste Rechnungsdatum hat usw., usw..

    Meine 2 Fragen:

    1.) Sollte man diese Idee mit Unix-Timestamps, oder der MySQL-Datumsfunktion realisieren, oder gar ein anderes Format?

    2.) Gibt es vielleicht noch elegantere Lösungen als die meine?

    Ich wäre um ein paar Denkanstösse, bzw. Arschtritte dankbar.


  • #2
    Ich würde Daten nicht überschreiben. Rechnungen sind wichtig, bringen Geld und vielleicht Ärger, wenn ein Kunde behauptet er habe keine Rechnung bekommen, das aber vor 2 Monaten war und du die Daten dazu vielleicht schon überschrieben hast.
    Also speicher dir in einer "Rechnungen" wann an wen eine Rechnung erfolgreich oder -los verschickt wurde.
    In "Rechnungseinstellungen" oder in der "User"-Tabelle könntest du dann eine Spalte haben, die festlegt, in welchem Zeitraum die Rechnungen versendet werden, also z.B. "monatlich" oder "wöchentlich".
    Dann solltest du 2 Cronjobs laufen lassen, der 1x die Woche und 1x im Monat läuft und die "Rechnungseinstellungen" durchgeht und die Rechnungen versendet und den Status in "Rechnungen" einträgt.

    Kommentar


    • #3
      Ich meinte damit eigentlich nicht die Rechnung überschreiben. Wann an wen Rechnugen rausgegangen sind, werde in einer anderen Datenbank extra abgelegt. Zusätzlich werden alle Rechnugnen natürlich gesichert.

      Mir geht es eigentlich nur um den Prozess des wiederkehrenden Ereignisses, s.o.

      Kommentar


      • #4
        Du könntest ja z.B. einen Cronjob laufen lassen, der um Mitternacht startet und dir jeden Tag ein php-Script ausführt, welches dann überprüft ob heute ein Tag ist, an welchem eine Rechnung erstellt werden soll.
        Diesen berechnest du ganz einfach aus dem ersten Rechnungstag
        PHP-Code:
        <?php
        //Hier das Auslesen des Timestamps und des intervalls aus der DB => steht in $erste und $intervall
        $heute time();
        $n 0;
        $check false;
        while(
        $test = ($erste $n*$intervall*60*60*24))
        {
            if(
        $test >= $heute && $test <= ($test 60*60*24)
            {
                
        $check true;
                break;
            }
            elseif(
        $test > ($test 60*60*24))
                break;

            
        $n++;
        }
        ?>
        Wenn danach jetzt $check auf true steht, dann musst du eine Rechnung erstellen.
        Ansonsten gehst du zum Nächsten Kunden über.
        Hoffe das hilft dir als Denkanstoß...

        Kommentar

        Lädt...
        X