<?php

/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf 
 */

class EPayNotifySingletonFactory
{
  
  public static function ermittleNotifier() {
    $zentraleEinstellungen = AnmeldungOperations::getZentraleEinstellungenFuerBuchung();
    $target = $zentraleEinstellungen->target;
    switch ( $zentraleEinstellungen->uebermittlungsart ) {
      case ANMELDUNGPER_FILE:
        return new EPayNotifierDatei($zentraleEinstellungen);
      case ANMELDUNGPER_ONLINE:
          $conInfo = DBConnectionInfo::getInstance();
          if (!$conInfo->db_replikat || (REPLIKATMITONLINEBUCHUNG && $conInfo->db_hybrid) ) {
              return new EPayNotifierOffOnline($zentraleEinstellungen);
          }
      case ANMELDUNGPER_DMZ:
        if ( SessionOperations::isDmzBetrieb() ) {
          if( SessionOperations::isSofortEinbuchen() ) {
              return new EPayNotifierDMZSofortEinbuchen($zentraleEinstellungen);
          }
          else {
              return new EPayNotifierDMZ($zentraleEinstellungen);
          }
        }
      case ANMELDUNGPER_MAIL:
      default:
        return new EPayNotifierEmail($zentraleEinstellungen);
    }
  }
}