Ja das blöde ist ich wollte die Zusammenführen in eine, natürlich hat WHMCS dann eine Leere Rechnung erstellt/zusammengeführt und die anderen 24 Rechnungen sind natürlich nun weg. einzig und allein im Log des Kunden steht es drin.
Naja ich hab nun ein Backup von gestern eingespielt, damit ist das erstmal behoben mit den 25 Rechungen
Liegt das Problem vielleicht daran das WHMCS am 14.07 die Mahngebühr (hinzugefügt 14.07.2017) hat?
Aktuell nutzen wir den hook so:
PHP
<?php
use Illuminate\Database\Capsule\Manager as Capsule;
if (!defined("WHMCS"))
die("This file cannot be accessed directly");
function create_overduefee_invoice(){
$due_date = date('Y-m-d', strtotime('-21 days')); //Mahngebühr für Rechnungen die 14 Tage fällig sind
foreach (Capsule::table('tblinvoices')->where('duedate',$due_date)->where('status','Unpaid')->get() as $get_due_invoices){
$get_description = Capsule::table('tblinvoiceitems')->where('invoiceid', $get_due_invoices->id)->orderBy('id', 'asc')->first();
if( strpos( $get_description->description, 'Sperrgebühr für Rechnung' ) !== false ) { //An Rechnungtext anpassen
}else{
if($get_due_invoices->invoicenum == ''){
$invoiceid = $get_due_invoices->id;
}else{
$invoiceid = $get_due_invoices->invoicenum;
}
$get_paymentmethod = Capsule::table('tblclients')->where('id', $get_due_invoices->userid)->first();
if($get_paymentmethod->defaultgateway == ''){
$paymentmethod = 'banktransfer'; //verwende banktransfer wenn keine Standardzahlungsmethode hinterlegt
}else{
$paymentmethod = $get_paymentmethod->defaultgateway;
}
$date = date("Ymd");
$command = 'CreateInvoice';
$postData = array(
'userid' => $get_due_invoices->userid,
'status' => 'Unpaid',
'paymentmethod' => $paymentmethod,
'date' => $date,
'duedate' => $date,
'itemdescription1' => 'Sperrgebühr für Rechnung '.$invoiceid.' ', //Wenn hier was geändert wird muss es oben auch geändert werden
'itemamount1' => '05.00', //Betrag anpassen
'itemtaxed1' => '1', // 0 für keine Steuer berechnen, 1 für Steuer
'sendinvoice' => true //auf true setzen wenn die Rechnung per Mail an den Kunden gesendet werden soll
);
$adminUsername = 'admin'; // Ab WHMCS 7.2 optional, Ansonsten Usernamen eines Admins eintragen
$results = localAPI($command, $postData, $adminUsername);
}
}
}
add_hook("AfterCronJob",10,"create_overduefee_invoice");
Alles anzeigen