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


class SepaLastSchriftMandat extends DruckSheet
{
  
  private $_teilnehmer;

  
  public function getListID()
  {
    return 25;
  }

  

  public function getListTyp()
  {
    return '23';
  }

  

  public function setTitle1()
  {
    
    $this->settings->title1 = '';
  }

  

  
  public function getDruckbereichEnabled($optionName)
  {
    
    return true;
  }

  

  public function loadFactoryDefaults()
  {
    parent::loadFactoryDefaults();
    $this->setTitle1();
  }

  

  public function create($dummyParam1 = '', $dummyParam2 = '')
  {
    
    $filltn = GetOperations::getVarValue('fillTn', 0);
    if ($filltn == 1) {
      try {
        $this->_teilnehmer = SessionOperations::getCurrentWebToolsTeilnehmer();
      } catch (Exception $e) {
        
      }
    }
    
    if (PostOperations::isDefined('iban') && PostOperations::isDefined('bic') && PostOperations::isDefined('bankbez')) {
      $this->_teilnehmer->bankbez = PostOperations::getVarValue('bankbez');
      $this->_teilnehmer->iban = PostOperations::getVarValue('iban');
      $this->_teilnehmer->bic = PostOperations::getVarValue('bic');
    }
    
    elseif (preg_match('/\\*/', $this->_teilnehmer->iban)) {
      $this->_teilnehmer->bankbez = $this->_teilnehmer->iban = $this->_teilnehmer->bic = '';
    }

    $this->pdf = $this->__initPDF();
    $this->_prepare();
    $this->pdf->AddPage();
    $this->_createContent();
    $this->footer();
    $this->pdf->Output();
  }

  public function _createContent($pKurs = '')
  {
    
    $this->pdf->AddFont('Verdana');
    $this->pdf->AddFont('Verdana', 'B');
    $this->pdf->SetFont('Verdana');
    $allgsettings = AllgSettingsAPI::getAllgSettings();
    $vhsName = StringOperations::html_entity_decode($allgsettings->vhsname);
    $vhsStrasse = StringOperations::html_entity_decode($allgsettings->vhsstrasse);
    $vhsOrt = StringOperations::html_entity_decode($allgsettings->vhsort);
    $einzug = '10%';
    $height = 5;
    $width = '74%';

    $aussenstelle = GetOperations::getVarValue('aussenst');
    $dbwAbs = new DBWorkAbs(1, true);
    $glaeubigerId = $dbwAbs->getGlaeuberIdByAussenst($aussenstelle);

    
    $this->pdf->ln(3 * $height);
    $this->pdf->CellAtX($einzug, $vhsName . ' ' . \StringOperations::chr_windows1252(149) . ' ' . $vhsStrasse . ' ' . \StringOperations::chr_windows1252(149) . ' ' . $vhsOrt, '', '', 12, $width);
    $this->pdf->ln(2 * $height);
    $this->pdf->CellAtX($einzug, 'Erteilung eines SEPA-Lastschriftmandats', 'B', '', '', $width);
    $this->pdf->ln(2 * $height);
    $this->pdf->CellAtX($einzug, 'Unsere Gläubiger-Identifikationsnummer: ' . $glaeubigerId, '', '', '', $width);
    $this->pdf->ln(2 * $height);

    $this->_cellAtXMultiLine($einzug, 'Ihre Mandatsreferenznummer wird Ihnen mit der ersten Vorabankündigung zum '
                                       . 'tatsächlichen Lastschrifteinzug noch mitgeteilt.', '', '', '', $width, '', $height);
    $this->pdf->ln($height);
    $this->pdf->CellAtX($einzug, 'SEPA-Lastschriftmandat', 'B', '', '', $width);
    $this->pdf->ln(2 * $height);

    $this->_cellAtXMultiLine($einzug, 'Ich ermächtige die Schulungseinrichtung Zahlungen von meinem Konto mittels '
                                       . 'Lastschrift einzuziehen. Zugleich weise ich mein Kreditinstitut an, die von der '
                                       . 'Schulungseinrichtung auf mein Konto gezogenen Lastschriften einzulösen.', '', '', '', $width, '', $height);
    $this->pdf->ln($height);
    $this->_cellAtXMultiLine($einzug, 'Hinweis: Ich kann innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, '
                                       . 'die Erstattung des belasteten Betrages verlangen. Es gelten dabei die mit meinem '
                                       . 'Kreditinstitut vereinbarten Bedingungen.', '', '', '', $width, '', $height);
    $this->pdf->ln($height);
    $this->_printFormularPart();
  }

  
  private function _printFormularPart()
  {
    
    
    $vorname = $name = $strasse = $ort = $bankbez = $bic = $iban = '';
    if (!is_null($this->_teilnehmer)) {
      $vorname = $this->_teilnehmer->vorname;
      $name = $this->_teilnehmer->name;
      $strasse = $this->_teilnehmer->strasse;
      $ort = $this->_teilnehmer->ort;

      
      $bankbez = $this->_teilnehmer->bankbez;
      $bic = $this->_teilnehmer->bic;
      $iban = $this->_teilnehmer->iban;
    }

    $this->pdf->ln(5);
    $this->_printFormRow('Vorname und Name (Kontoinhaber)', trim($vorname . ' ' . $name));
    $this->pdf->ln(15);
    $this->_printFormRow('Straße und Hausnummer', $strasse);
    $this->pdf->ln(15);
    $this->_printFormRow('Postleitzahl und Ort', $ort);
    $this->pdf->ln(15);
    $this->_printFormRow('Kreditinstitut (Name und BIC)', $bankbez);
    $this->pdf->ln(-4);
    if (! empty($bic)) {
      $this->pdf->CellAtX('39%', '', '', '', 9, '15%', 'B', 4);
      $this->pdf->ln(-3);
      $this->pdf->CellAtX('39%', $bic);
      $this->pdf->ln(3);
    } else {
      $this->pdf->CellAtX('38%', '_ _ _ _ _ _ _ | _ _ _', '', '', 9, '32%');
    }
    $this->pdf->ln(15);
    if (! empty($iban)) {
      
      $this->pdf->ln(4);
      $this->_printFormRow('IBAN', $iban, 9, '45%');
    } else {
      $this->pdf->CellAtX('9%', '_ _ _ _ | _ _ _ _ | _ _ _ _ | _ _ _ _ | _ _ _ _ | _ _', '', '', 9);
      $this->pdf->ln(5);
      $this->pdf->CellAtX('15%', 'IBAN', '', '', 9);
    }

    $this->pdf->ln(20);
    $this->_printFormRow('Datum, Ort und Unterschrift', '', 8);
  }

  
  private function _printFormRow($pLabel, $pValue = '', $pLabelFontSite = 9, $pWidth = '28%')
  {
    $this->pdf->CellAtX('10%', '', '', '', '', $pWidth, 'T');
    $this->pdf->ln(-7);
    $this->pdf->CellAtX('15%', $pValue);
    $this->pdf->ln(7);
    $this->pdf->CellAtX('15%', $pLabel, '', '', $pLabelFontSite);
  }
}