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


class DBWorkEMailXMLKommunikation extends DBWorkStrict
{
  
  public function getNewObject()
  {
    return new EmailXMLKomm();
  }

  public function getTableName(): string
  {
    return 'emailxmlkomm';
  }

  
  public function getCurrentRow($pRefreshCache = false)
  {
    $tmp = $this->getNewObject();
    $tmp->id = $this->getDatamodulValue('id');
    $tmp->emailID = $this->getDatamodulValue('emailID');
    $tmp->kommart = $this->getDatamodulValue('kommart');
    $tmp->kommbez = $this->getDatamodulValue('kommbez');
    $tmp->kommwert = $this->getDatamodulValue('kommwert');

    return $tmp;
  }

  
  public function getXMLMailKommunikation($pId)
  {
    $id = $this->dboperation->getInt4Sql($pId);
    $this->dboperation->clear();
    $this->dboperation->query('SELECT xmlk.* FROM emailxmlkomm xmlk WHERE xmlk.id=' . $id);

    return $this->getFirstRow();
  }

  
  public function insertXMLMailkomm($xmlmailkommunikation)
  {
    $xmlmailkommunikation->id = $this->insertRecord('emailxmlkomm', 'id', '', true);
    $this->saveChanging('emailxmlkomm', '', '', $xmlmailkommunikation->id, 'id', 'I');
    $orgxmlmailkommunikation = $this->getXMLMailKommunikation($xmlmailkommunikation->id);
    $this->updateObject($xmlmailkommunikation, $orgxmlmailkommunikation, 'emailxmlkomm', 'id', 'A');
    $this->setActionIDs();
    if ($this->verifyXMLMailkomm($xmlmailkommunikation)) {
      return $xmlmailkommunikation->id;
    } else {
      return false;
    }
  }

  
  public function verifyXMLMailkomm($xmlmailkommunikation)
  {
    
    $verifyObject = $this->getXMLMailKommunikation($xmlmailkommunikation->id);

    
    for ($i = 0; $i < $xmlmailkommunikation->getVarCount(); $i++) {
      
      $varname = $xmlmailkommunikation->getVarName($i);

      
      
      if ($xmlmailkommunikation->getVarValue($varname) != $verifyObject->getVarValue($varname)) {
        Logger::logg(__CLASS__ . "Fehler bei Variable $varname :" . '(original)'
              . $xmlmailkommunikation->getVarValue($varname) . '!='
              . $verifyObject->getVarValue($varname) . '(ausgelesen)', 100);

        return false;
      }
    }

    return true;
  }
}