daten berechnung....

mrfishly

Mitglied
Hey ya...

Bin schon stundenlang am suchen, bis jetzt aber ohne erfolg.... *grml*

Hab folgendes Problem:
Ich mach gerade eine Kunden Datenbank in PHP. Jetzt hab ich das Prob, das ich nicht weiß wie ich mit daten rechne.

Ich hab einmal ein Feld Zeitraum, in dem angegeben wird WANN der Kunde eine rechnung bekommen soll. (Jeden Monat, alle 3 Monate, jedes halbe jahr, oder jedes Jahr) Wenn ich also jetzt sage er soll alle 3 Monate eine rechnung bekommen, dann soll das Script automatisch sagen das die nächste rechnung im Juli kommt (weil ja jetzt April ist! :D). In der theorie gernicht so schwer, aber wie sieht es in der Praxis aus? Vorallem was ist, wenn es ein jahres wechsel gitb? z.B ab Dezember 3 monate...

Könnt ihr mir helfen?

Fish
 
Nimm den UNIX-Timestamp, damit beziehst du alle Daten auf den 1.1.1970 0:00 Uhr. Dann kannst einfach deine 3 Monate drauf rechnen und das Datum wieder umwandeln. Die Funktionen dazu findest du hier. Hab selbst noch nicht viel damit gerechnet, viel Spass beim probieren. ;-)
 
PHP:
<?php
class wannkundenrechnung
{
var $naechsterechnung;

function naechsterechnung($monate){
$a = mktime(0,0,0,date("m") + $monate, date("d"), date("y"));
$this->naechsterechnung = strftime("%d.%m.%Y",$a);
}
}

$wkd = new wannkundenrechnung;
$wkd->naechsterechnung(12); // hier die Monate eintragen;
echo "Nächste Rechnung des Kunden ".$wkd->naechsterechnung;
?>

Grüsse!
 
Okay, ich nochmal! :D

gibt da doch noch ein kleines Problem...

ich hab in der Datenbank das Feld "zeitraumvon". Darin steht seid wann der Kunde die Rechngung bekommt.
Und ich hab das Feld "mvhj" (monatlich, vierteljährlich, halbjährlich, jährlich) darin steht wie oft der Kunde eine Rechnung bekommt.

Also ich sag jetzt einfach mal im Feld "zeitraumvon" steht jetzt 07.2004 drin. Der Kunde bekommt vierteljährlich eine Rechnung. (also 07.2004, 10.2004, 01.2005, 04.2005, 07.2005....etc) Jetzt will ich das wenn ich beispielsweise im 04.2005 mein Script aufrufe er mir die Kosten ausspuckt, die in diesem Monat fällig sind. Wenn ich es aber im 05.2005 aufrufe soll er mir 0,00 Euro ausgeben.

Hab schon 2 Tage dran rumgefummelt, aber bisher ohne brauchbares Ergebnis....na ja, hoffe ich hab mich halbwegs verständlich ausgedrückt und Ihr könnt mir helfen.

Fish
 
Du musst ja ausrechnen, wie viele Monate er zu zahlen hat oder?

Also es steht 7.2004. Nun ist aber 4.2005. Das sind also 9 Monate richtig?
Nun aussrechnen wie viele Monate er zu zahlen hat. Das rechnet man 9/3 (9 Monate sind verstrichen, und er möchte alle 3 Monate die rechnung) und dann nimmt man den Rest (das kannst du ganz einfach mit dem Modulo Operator machen. Google weiss was das ist ;)).
Wenn der rest 0 ist hat gerade ein neues viertel Jahr begonnen.

Hast du das mal soweit begriffen?

Jetzt weiss ich nicht wie du genau abrechnen möchtst.
Wie viel muss er im Monat 04.2005 bezahlen? Einfach die rechnung vom letztn Quartal oder? Im 5.2005 und 6.2005 muss er nix Zahlen und im 7.205 wieder die Rechnung vmo letzten Quartal oder?

MFG
redX
 
Einfach die rechnung vom letztn Quartal oder? Im 5.2005 und 6.2005 muss er nix Zahlen und im 7.205 wieder die Rechnung vmo letzten Quartal oder?

Soweit richtig! :) Die Frage ist wie ich das ganze in PHP umsetzte... Ich will das halt so machen, dass das Script prüft welcher Monat im moment ist und da nach dann die Rechnung auswertet. Also wenn es jetzt KEIN rechnungsmonat ist, soll er einfach 0,00 ausgeben. Wenn aber diesen monat eine rechnung fällig ist, dann soll er die Rechnung ausspucken.
 
Zuletzt bearbeitet:
PHP:
<?PHP

$rechnungs_datum = "7.2004"; // <--- Wert von "zeitraumvon"
$rechnungs_interval = "3"; // Bedeutet, das alle 3 Monate eine Rechnung fällig wird. Also wert vom Feld "mvhj" (scheiss name ;) )







$rechnungs_datum = explode(".",$rechnungs_datum);

if($rechnungs_datum[1] < date("Y")) { // Testet, ob das Aktuelle Yahr grösser ist als don von "zeitraumvon"
	$monate = 12 - $rechnungs_datum[0] + date("n"); // Errechnet, wie viele Monate vergangen sind
}
else {
	$monate = $date("n") - $rechungs_dateum[0]; // Errechnet auch wie viele Monate vergangen sind ;)
}

if($monate%$rechnungs_interval) {
	$rechung_faellig_in = $rechnungs_interval - ($monate%$rechnungs_interval);
	Echo "Rechnung fällig in " . $rechung_faellig_in . " Monat.";
}
else
	Echo "Rechnung fällig";

?>

Bin nicht sicher ob es 100%ig funktioniert und ob es 100%ig das ist was du möchtest. Test mal und gib bescheid ;)

MFG
redX
 
Das sieht doch sehr gut aus! ;) Ich werd das mal anpassen und dir bescheid sagen ob es , aber ich denke das is genau das was ich brauch! :) Hast mir den gerettet^^

Fettes Merci
Fishly
 
"...und schon wieder hat ein User von tutorials.de einem anderen User erfolgreich weitergeholfen"

Mein letzter test läuft gerade... ich spiel gerade etwas mit dem Datum im Bios rum! Simuliere gerade ein paar Monats wechsel und so! :D Aber funktioniert gut! :)

Ich hätte es so nicht hinbekommen! :) Kann dir garnicht sagen wie dankbar ich bin! :D

Fishly
 
Zurück