<?php

class DatabaseList extends Module
{
  var $Dependencies = array('Log', 'User');

  function AddItem($TableId, $Values)
  {
    $DbResult = $this->Database->query('SELECT TableName FROM SystemList WHERE ItemId='.$TableId.' ORDER BY Id DESC LIMIT 1');
    $DbRow = $DbResult->fetch_assoc();
    $TableName = $DbRow['TableName'];

    $Values['Author'] = $this->System->Modules['User']->User['ItemId'];
    $Values['CreationTime'] = 'NOW()';
    $Values['ValidTimeFrom'] = 'NOW()';
    $DbResult = $this->Database->select($TableName, 'MAX(ItemId)');
    $DbRow = $DbResult->fetch_row();
    $AutoincrementId = $DbRow[0];
    $Values['ItemId'] = $AutoincrementId + 1; 
    $this->Database->insert($TableName, $Values);
    return($Values['ItemId']);
  }

  function DeleteItem($TableId, $ItemId)
  {
    $DbResult = $this->Database->query('SELECT TableName FROM SystemList WHERE ItemId='.$TableId.' ORDER BY Id DESC LIMIT 1');
    $DbRow = $DbResult->fetch_assoc();
    $TableName = $DbRow['TableName'];

    $DbResult = $this->Database->select($TableName, 'Id', 'ItemId='.$ItemId.' ORDER BY Id DESC LIMIT 1');
    $DbRow = $DbResult->fetch_assoc();
    $this->Database->update($TableName, 'Id='.$DbRow['Id'], array('DeletionTime' => 'NOW()'));
  }

  function EditItem($TableId, $Values, $ItemId)
  {
    $DbResult = $this->Database->query('SELECT TableName FROM SystemList WHERE ItemId='.$TableId.' ORDER BY Id DESC LIMIT 1');
    $DbRow = $DbResult->fetch_assoc();
    $TableName = $DbRow['TableName'];
    $this->DeleteItem($TableId, $ItemId);
    $Values['ItemId'] = $ItemId;
    $Values['Author'] = $this->System->Modules['User']->User['ItemId'];
    $Values['CreationTime'] = 'NOW()';
    $Values['ValidTimeFrom'] = 'NOW()';
    $this->Database->insert($TableName, $Values);
  }
}

?>