J ist aber noch immer da.
Außerdem bei den Rechnungen welche automatisch generiert werden sind fehlerhafte Produkte drin.
Beiträge von ZoXx
-
-
Okay, kann man das manuell iwo anpassen?
Erstelle ich eine neue, ist es aber wieder +1.Mich verdutzt halt auch die Tatsache, dass plötzlich ein Produkt dauerhaft in den neu angelegten Rechnungen ist.
-
Guten Morgen zusammen,
heute morgen wurde eine Rechnung rausgeschickt, in der plötzlich ein Produkt war, welches dort gar nicht hingehört.
Ich hatte dies kontrolliert und konnte mir keine passende Erklärung geben.Nun wollte ich eine neue Rechnung generieren und plötzlich kommt folgendes:
Code
Alles anzeigenOops! Something went wrong and we couldn't process your request. Please go back to the previous page and try again. If the problem persists, please contact us. « Back to Homepage For additional assistance, please reference the WHMCS TroubleShooting Guide » WHMCS\Exception\Model\UniqueConstraint: A "WHMCS\Billing\Invoice\Data" record with "invoiceid" value "384" already exists. in /var/www/vhosts/XXX/vendor/whmcs/whmcs-foundation/lib/Model/Observer.php:0 Stack trace: #0 /var/www/vhosts/XXX/vendor/whmcs/whmcs-foundation/lib/Model/Observer.php(0): WHMCS\Model\Observer->enforceUniqueConstraint(Object(WHMCS\Billing\Invoice\Data)) #1 [internal function]: WHMCS\Model\Observer->creating(Object(WHMCS\Billing\Invoice\Data)) #2 /var/www/vhosts/XXX/vendor/illuminate/events/Dispatcher.php(347): call_user_func_array(Array, Array) #3 [internal function]: Illuminate\Events\Dispatcher->Illuminate\Events\{closure}(Object(WHMCS\Billing\Invoice\Data)) #4 /var/www/vhosts/XXX/vendor/illuminate/events/Dispatcher.php(221): call_user_func_array(Object(Closure), Array) #5 /var/www/vhosts/XXX/vendor/illuminate/events/Dispatcher.php(164): Illuminate\Events\Dispatcher->fire('eloquent.creati...', Array, true) #6 /var/www/vhosts/XXX/vendor/illuminate/database/Eloquent/Model.php(1675): Illuminate\Events\Dispatcher->until('eloquent.creati...', Object(WHMCS\Billing\Invoice\Data)) #7 /var/www/vhosts/XXX/vendor/illuminate/database/Eloquent/Model.php(1569): Illuminate\Database\Eloquent\Model->fireModelEvent('eloquent.creati...') #8 /var/www/vhosts/XXX/vendor/illuminate/database/Eloquent/Model.php(1477): Illuminate\Database\Eloquent\Model->performInsert(Object(Illuminate\Database\Eloquent\Builder), Array) #9 /var/www/vhosts/XXX/vendor/illuminate/database/Eloquent/Builder.php(257): Illuminate\Database\Eloquent\Model->save() #10 [internal function]: Illuminate\Database\Eloquent\Builder->firstOrCreate(Array) #11 /var/www/vhosts/XXX/vendor/illuminate/database/Eloquent/Model.php(3494): call_user_func_array(Array, Array) #12 [internal function]: Illuminate\Database\Eloquent\Model->__call('firstOrCreate', Array) #13 /var/www/vhosts/XXX/vendor/illuminate/database/Eloquent/Model.php(3508): call_user_func_array(Array, Array) #14 /var/www/vhosts/XXX/vendor/whmcs/whmcs-foundation/lib/Invoice.php(0): Illuminate\Database\Eloquent\Model::__callStatic('firstOrCreate', Array) #15 /var/www/vhosts/XXX/admin/invoices.php(0): WHMCS\Invoice::saveClientSnapshotData(384) #16 {main}
Kann mir jemand erklären was hier plötzlich schief läuft?
Wenn ich dann auf zurück klicke, wird mir die Rechnung als Entwurf angezeigt mit einem Produkt drin.WHMCS hatte kein Update und funktionierte die Tage noch reibungslos!
-
wir nutzen das Google analytics tool für whmcs
-
Wäre schön, wenn du vielleicht deinen Weg beschreibst bzw. deine Lösung.
-
-
wir haben das mit Dirohost getestet, und mit etwas bugfixen funktioniert es auch für nextcloud.
da wäre ich verdammt vorsichtig.
-
Könnte ebenfalls damit zusammen hängen ja.
-
Okay da muss ich passen, da sind wir schon lange nicht mehr drauf.
-
Kann ich bis dato nicht bestätigen nein.
Interessant wäre noch zu wisse, welche Version du nutzt.
-
-
Dann hast du weiterhin das Problem das das Datum nicht geändert wird wenn du keine Rechnungsmail verschickst.
Wie ich oben geschrieben hatte sollte man wohl
add_hook("InvoiceCreated", 20, "change_due_date");statt
add_hook("InvoiceCreationPreEmail", 20, "change_due_date");
add_hook("InvoiceCreation", 20, "change_due_date");nutzen und dann die Frist in WHMCS auf 0 setzen. So klappte es gestern jedenfalls bei meinem Kurztest.
Sorry natürlich, ist auch drin, hatte den alten Code der Zwischenablage drin!
Ich teste mal! -
Guten Morgen Denis,
alles klar ich habe es mal angepasst.PHP
Alles anzeigen<?php if (!defined("WHMCS")) die("This file cannot be accessed directly"); use Illuminate\Database\Capsule\Manager as Capsule; function change_due_date($vars){ $cdd_get_invoice_data = Capsule::table('tblinvoices')->where('id',$vars['invoiceid'])->first(); $cdd_get_client_data = Capsule::table('tblclients')->where('id',$cdd_get_invoice_data->userid)->first(); ##### replace 0 with your clientgroupid if($cdd_get_client_data->groupid == '0'){ ##### replace 14 with your days $cdd_new_duedate = strtotime("+14 days", strtotime($cdd_get_invoice_data->date)); $cdd_new_duedate = date("Y-m-d", $cdd_new_duedate); logModuleCall('change_hook', 'date', $cdd_new_duedate); $cdd_updateduedate = Capsule::table('tblinvoices') ->where('id', $vars['invoiceid']) ->update(['duedate'=>$cdd_new_duedate]); } ##### replace 1 with your clientgroupid if($cdd_get_client_data->groupid == '1'){ ##### replace 30 with your days $cdd_new_duedate = strtotime("+30 days", strtotime($cdd_get_invoice_data->date)); $cdd_new_duedate = date("Y-m-d", $cdd_new_duedate); logModuleCall('change_hook', 'date', $cdd_new_duedate); $cdd_updateduedate = Capsule::table('tblinvoices') ->where('id', $vars['invoiceid']) ->update(['duedate'=>$cdd_new_duedate]); } } add_hook("InvoiceCreated", 20, "change_due_date"); ?>
So würde es reichen, dann noch die Zahlungsfrist in WHMCS selbst auf 0 stellen richtig?
-
Okay ich habs.
Es läuft einwandfrei wenn Häken gesetzt bei: Bestellbestätigung, Rechnung erstellen, E-Mail senden.
Sobald der Haken bei Bestellbestätigung und E-Mail fehlt, greift der Hook nicht mehr. -
kurze Frage, woher weis whmcs wann Feiertag ist?
Bei uns steht durch den Hook, dass heute unser Support besetzt ist, allerdings ist ja heute Feiertag -
Kurze andere Frage noch.
Unser System schickt bei den Kunden die Rechnung 14 Tage früher raus.
Also Laufzeit wäre z.B. vom 01.01 bis ....
Die Rechnung mit E-Mail geht dann am 18.12. raus.Schickt der Hook die Rechnung 30 Tage vorher oder auch 14 Tage vorher aber dann mit 30 Tage Zahlungsziel?
-
Frohes neues erstmal!
Kurze Frage, wenn 30 Tage Zahlungsziel eingestellt sind, stellt WHMCS dann trotzdem noch eine neue Rechnung in der Zwischenzeit aus? Laufzeit ist immer monatlich, der Februar hat aber 28 Tage, nicht das sich dadurch die gesamte Laufzeit etc. Verschiebt?Edit: gerade eine Rechnung per Bestellung aus dem WHMCS Admin Interface getätigt, da waren nur 14 Tage Zahlungsziel, obwohl der Kunde +30 hat.
-
Es läuft!
Vielen vielen dank und einen gute Rutsch später! -
Führe mit dem Test Kunden eine neue Bestellung aus.
Screen im Anhang.Werde mal aus dem Admin Bereich eine Bestellung raus generieren.
Edit: Genau das gleiche
Edit2: groupid1 ist hier die Kundengruppe +30.
-
Passiert nichts.
Bild ist das gleiche wie gerade.PHP
Alles anzeigen<?php if (!defined("WHMCS")) die("This file cannot be accessed directly"); use Illuminate\Database\Capsule\Manager as Capsule; function change_due_date($vars){ $cdd_get_invoice_data = Capsule::table('tblinvoices')->where('id',$vars['invoiceid'])->first(); $cdd_get_client_data = Capsule::table('tblclients')->where('id',$cdd_get_invoice_data->userid)->first(); ##### replace 1 with your clientgroupid if($cdd_get_client_data->groupid == '1'){ ##### replace 30 with your days $cdd_new_duedate = strtotime("+30 days", strtotime($cdd_get_invoice_data->duedate)); $cdd_new_duedate = date("Y-m-d", $cdd_new_duedate); logModuleCall('change_hook', 'date', $cdd_new_duedate); try{ $cdd_updateduedate = Capsule::table('tblinvoices') ->where('id', $vars['invoiceid']) ->update(['duedate'=>$cdd_new_duedate]); } catch (\Exception $e) { logModuleCall('change_hook', 'update', $e); } } } add_hook("InvoiceCreation", 0, "change_due_date"); ?>