[inhalt]
Projekt BISO 3 - Handbuch

Nachbefragungs-Emails versenden

In BISO besteht die Möglichkeit, nach Fallabschluss Nachbefragungs-Emails an Kunden zu senden. Dieser Vorgang kann in BISO konfiguriert werden, und wird auf der Server-Seite jeweils automatisch abgearbeitet.

Voraussetzungen

  1. Das Modul muss in Admin > Parameter eingeschaltet werden: Parameter Nachbefragung
  2. Der Parameter "Automatischer Versand nach" definiert die Periode zwischen Fallabschluss und Versand: Nach Fallabschluss wird die Anzahl Tage gewartet, bis das Mail ausgelöst wird (mind. 1).
  3. Auf dem BISO-Server muss ein Scheduled Task / cron-Job täglich angestossen werden, mit folgendem Kommando:
php webroot/biso-cli send-nachbefragung
  1. Es muss mind. 1 Nachbefragungs-Email-Briefvorlage erstellt werden (Wertelisten > Briefvorlagen): Briefvorlage

Bedingungen für den Versand

Damit für einen Beratungsfall tatsächlich eine Nachbefragung versandt wird, sind folgende Bedingungen zu erfüllen:

  1. Wahl der Nachbefragungs-Vorlage im Fall: Auf dem Beratungsfall muss vor dem Abschluss eine Nachbefragungs-Vorlage gewählt werden: Fall-Vorlage
  2. Der Fall muss abgeschlossen sein, und die definierte Periode in Tagen muss verstrichen sein.
  3. Es wurde noch keine Nachbefragung versandt. Auch Wiedereröffnen und erneutes Schliessen des Falles löst kein weiterer Versand aus.
  4. Es wurde kein Ausnahme-Grund gespeichert: Unter bestimmten Umständen können Fälle vom Versand ausgenommen werden (kunden-spezifisch). Dies wird im Nachbefragungs-Ausnahme-Grund erfasst. Fälle mit einem Ausnahme-Grund werden nicht ( erneut ) angeschrieben.

Kundenspezifische Ausnahmen

Um kundenspezifische Ausnahmen zu ermöglichen, kann die Methode getNachbefragungsAusnahme im webroot/backend/kunden_spec/[kunde]/SpecBeratungsfallManager.php implementiert werden. Hier ein Beispiel:

use Gaia\Services\EntityService;

/**
 * Kundenspezifischer Fall-Manager für Kanton Basel Landschaft:
 */
class SpecBeratungsfallManager extends DefaultSpecBeratungsfallManager {
    /**
     * Prüft, ob ein Fall ausgenommen ist für eine Nachbefragung (Nachbefragungs-Mail). Falls ja,
     * wird ein Grund (string) zurückgegeben, falls nicht, null (keine Ausnahme, Befragung kann
     * verschickt werden.)
     *
     * Ausnahmen-Katalog BL, siehe Ticket #25337
     *
     * @param Beratungsfall $fall
     * @return string|null
     */
    public function getNachbefragungsAusnahme(Beratungsfall $fall): ?string {
        $es = $this->getService(EntityService::class);
        $ausnahmen = [];

        /** @var BISOEntityBuilder */
        $leistungenEB = $es->createEntityBuilder(Leistung::class);
        /** @var Leistung[] */
        $leistungen = $leistungenEB->disableAccessCheck()
            ->andWhere('beratungsfall_id = :fallId', ['fallId' => $fall->getId()])
            ->andWhere('produkt_statistikrelevant IS TRUE')
            ->executeSelect()->fetchAll();

        // ------------------------------------------------------------------------------------
        // Ausnahme 1: Wenn pro Fall insgesamt nicht mindestens 30 Minuten Beratungsleistungen
        // vom Typ «statistikrelevant» erfasst sind:
        $sum = 0;
        foreach ($leistungen as $l) {
            $sum += $l->eff_aufwand;
        }
        if ($sum < 30) {
            $ausnahmen[] = 'Weniger als 30min statistikrelevante Beratungsleistungen';
        }



        if (!empty($ausnahmen)) {
            return join('\n', $ausnahmen);
        } else {
        // alles OK, keine Ausnahme.
            return null;
        }
    }
}