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


class KommunikationOperations
{
  
  public static function getGueltigeHandyNummer_110412($pNr, $pLand, $pAusland)
  {
    $t_chars = '0123456789';

    if (is_null($pAusland) || ($pAusland == 'W')) {
      $pAusland = 'W';
      $t_chars .= '+';
    }

    $t_return = StringOperations::filterValidChars($pNr, $t_chars);
    if (is_null($t_return)) {
      $t_return = '';
    }

    if ($t_return != '') {
      $t_valid = 1;
      if (is_null($pLand)) {
        $pLand = 'D';
      }

      $laengeReturn = StringOperations::strlen($t_return);
      if (($pLand != 'D') || ($laengeReturn > 10)) {
        #setzt t_valid auf 0, wenn die vorwahl existiert und 1 wenn nicht.
        $dbvorwahlen = new DBWorkVorwahlen();
        $t_valid = $dbvorwahlen->getVorwahl4LandExists($t_return, $pLand);
      }
      if (($pAusland == 'W') && ($t_valid == 1) && ((StringOperations::substr($t_return, 0, 1) == '+') || (StringOperations::substr($t_return, 0, 2) == '00'))) {
        $t_valid = 0;
      }
      if ($t_valid == 1) {
        $t_return = '';
      }
    }

    return $t_return;
  }

  
  public static function getKommArt($telefonnummer, $art = 'T')
  {
    $dbws = new DBWorkBASysSettings();
    $dm = $dbws->getSettings();
    $land = $dm->bundesland;
    $land = str_replace('-', '', $land);
    if (($land != 'A') && ($land != 'CH') && ($land != 'FL') && ($land != 'I')) {
      $land = 'D';
    }

    if (KommunikationOperations::getGueltigeHandyNummer_110412($telefonnummer, $land, 'W') != '') {
      $art = 'M'; 
    }

    return $art;
  }

  public static function getKommunikationsliste(\Datamodul $pDatamodul, string $pTyp, string $pParam = ''): string
  {
    $dbw = \DBWorkKommunikation::getDefaultInstance();
    $komm = $dbw->getKommunikationByNrTypArt($pDatamodul->getVarValue('id'), $pTyp, $pParam);
    static $expKommunikation = null;
    if (is_null($expKommunikation)) {
      $expKommunikation = new \ExpKommunikation();
    }

    return CreateSightFassade::createListe($pDatamodul, 522, $komm, $expKommunikation);
  }
}