In Bezug auf den Beitrag: Mahnung als neue Rechnung stelle ich euch hier einen Hook zur Verfügung welcher automatisch eine Rechnung mit Mahngebühren erstellt.
Es ist wie im Beitrag erwähnt eine sehr simple Lösung, mehr Komfort wäre nur über ein Modul sinvoll umzusetzen.
Kopiert folgenden Code in eine neue php Datei und speichert diese unter /includes/hooks/ . Der Code ist PHP7 ready und mit WHMCS 7.2.2 getestet worden (sollte aber ab WHMCS 6 laufen).
PHP: overduefee.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('-14 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, 'Mahngebü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' => 'Mahngebühr für Rechnung '.$invoiceid.' ', //Wenn hier was geändert wird muss es oben auch geändert werden
'itemamount1' => '5.00', //Betrag anpassen
'itemtaxed1' => '0', // 0 für keine Steuer berechnen, 1 für Steuer
'sendinvoice' => false //auf true setzen wenn die Rechnung per Mail an den Kunden gesendet werden soll
);
$adminUsername = '1'; // Ab WHMCS 7.2 optional, Ansonsten Usernamen eines Admins eintragen
$results = localAPI($command, $postData, $adminUsername);
}
}
}
add_hook("DailyCronJob",10,"create_overduefee_invoice");
Alles anzeigen
Der Hook darf frei und kostenlos verwendet werden. Eine kommerzielle Nutzung (Verkauf des Hook) ist nicht gestattet. Nutzung auf eigene Gefahr