Rechnungsmodul: Benachrichtigungen bei Kunden-Aktionen

Dieses Thema im Forum "Entwicklerforum" wurde erstellt von ramsys, 26. Feb. 2014.

  1. ramsys

    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>
     
  2. ramsys

    ramsys Member

    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 :(
     
  3. ramsys

    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?
     
  4. Till

    Till Administrator

    #

    Meinst Du die Funktion im Dashboard des Kunden?
     
  5. ramsys

    ramsys Member

    Genau, die Änderung der Stammdaten im Dashboard unter "Meine Daten".

    Die anderen Benachrichtigungen im Dasboard bei der Bearbeitung der Produkte unter "Meine Produkte" und bei Bestellungen unter "Bestellen" haben auch noch kleinere Fehler. Nach Abschluss werde ich alle Änderungen mal hier hineinstellen.
     
  6. ramsys

    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.
     
  7. Till

    Till Administrator

Diese Seite empfehlen