Rechnungsmodul: Benachrichtigungen bei Kunden-Aktionen

ramsys

Member
Im Rechnungsmodul kann der Kunde seine Daten selber ändern. Hierüber wird die "Firma" per E-Mail informiert. In dieser Benachrichtigung fehlen aber die alten Daten und damit auch die From-Adresse.

Ich würde den Fehler gerne im Code beheben. Wo wird das Array "oldDataRecord" aus der Datei "interface/web/billing/dasboard_client_edit.php" gefüllt?

Der Return-Path wird übrigens auch falsch gesetzt: Return-Path: <MAILER-DAEMON>
 

ramsys

Member
Wo wird das Array "oldDataRecord" aus der Datei "interface/web/billing/dasboard_client_edit.php" gefüllt?

In der "interface/lib/classes/tform_action.inc.php":

PHP:
class tform_actions {

    public $oldDataRecord; // This array is only filled during updates and when db_history is enabled.

    function onUpdate() {

        if($app->tform->formDef['db_history'] == 'yes') {
            $this->oldDataRecord = $app->tform->getDataRecord($this->id);
        }
    }   
}

Un in der "interface/web/billing/form/dashboard_client.tform.php":

PHP:
$form["db_history"]		= "yes";

Das scheint also zu passen. Dennoch bleibt das Array leer :(
 

ramsys

Member
Sprache der Benachrichtigungen

Und noch etwas:

Wenn ein Kunde das Interface auf seine Muttersprache eingestellt hat macht es wenig Sinn, dass auch Benachrichtigungen an die Firma in dieser Sprache versandt werden. Weil die Abteilung Buchhaltung nicht alle Sprachen der Kunden beherrschen muss, aber z.B. die Änderung der Telefonnummer oder eine Kündigung entprechend bearbeiten können sollte. Die Kommunikation zur Firma sollte in der Sprache aus den Einstellungen dieser Firma erfolgen.

Wenn ich nun in der "interface/web/billing dashboard_client_edit.php" vor dem Versand der E-Mail folgendes ändere:

Von:

PHP:
$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashboard_client.lng';
if(is_file($lng_file)) include($lng_file);

auf z.B.:

PHP:
$lng_file = 'lib/lang/de_dashboard_client.lng';
if(is_file($lng_file)) include($lng_file);

hat das überhaupt keine Auswirkung. Irgendwie scheint mir das includen einer Sprachdatei an dieser Stelle generell ohne Effekt zu bleiben, da ich diese beiden Zeilen auch problemlos ohne Nebenwirkungen auskommentieren kann.

a) Welchen zweck hat an dieser Stelle der include?

b) Gibt es eine Möglichkeit, die Sprache innerhalb einer Funktion bzw. temporär für einen bestimmten Zweck bzw. hier konkret für die E-Mail Benachrichtigungen umzustellen?
 

ramsys

Member
Hallo Till,

hast Du einen Ansatz, wo der Fehler ($oldDataRecord) bei der Änderung der Stammdaten durch den Kunden zu suchen ist?

Aktuell ist es nicht möglich zu erkennen, welche Daten denn nun vom Kunden tatsächlich geändert wurden. Da der Kunde hierbei seine kompletten Vertragsdaten ändern und sogar löschen könnte, ist dies auch rechtlich nicht ganz unproblematisch.
 

Werbung

Top