<?php

include_once(dirname(__FILE__).'/FileImport.php');
include_once(dirname(__FILE__).'/ImportPS.php');
include_once(dirname(__FILE__).'/ImportFio.php');

class ModuleFinanceBankAPI extends AppModule
{
  function __construct($System)
  {
    parent::__construct($System);
    $this->Name = 'FinanceBankAPI';
    $this->Version = '1.0';
    $this->Creator = 'Chronos';
    $this->License = 'GNU/GPLv3';
    $this->Description = 'Communication through API to various banks, manual file import';
    $this->Dependencies = array('Finance');
  }

  function DoInstall()
  {
  }

  function DoUninstall()
  {
  }

  function DoStart()
  {
    $this->System->FormManager->RegisterClass('ImportBankFile', array(
      'Title' => 'Import souborů s platbami',
      'Table' => 'FinanceBank',
      'SubmitText' => 'Načíst',
      'Items' => array(
        'BankAccount' => array('Type' => 'TBankAccount', 'Caption' => 'Bankovní účet', 'Default' => ''),
        'File' => array('Type' => 'File', 'Caption' => 'Soubor', 'Default' => ''),
      ),
    ));
    $this->System->FormManager->RegisterClass('FinanceBankImport', array(
      'Title' => 'Import plateb z účtu',
      'Table' => 'FinanceBankImport',
      'Items' => array(
        'BankAccount' => array('Type' => 'TBankAccount', 'Caption' => 'Účet', 'Default' => ''),
        'Time' => array('Type' => 'Date', 'Caption' => 'Čas', 'Default' => ''),
        'Identification' => array('Type' => 'String', 'Caption' => 'Kód operace', 'Default' => ''),
        'AccountNumber' => array('Type' => 'String', 'Caption' => 'Číslo účtu', 'Default' => ''),
        'BankCode' => array('Type' => 'String', 'Caption' => 'Kód banky', 'Default' => ''),
        'VariableSymbol' => array('Type' => 'String', 'Caption' => 'Variabilní symbol', 'Default' => ''),
        'ConstantSymbol' => array('Type' => 'String', 'Caption' => 'Konstantní symbol', 'Default' => ''),
        'SpecificSymbol' => array('Type' => 'String', 'Caption' => 'Specifický symbol', 'Default' => ''),
        'Value' => array('Type' => 'Float', 'Caption' => 'Částka', 'Default' => '', 'Suffix' => 'Kč'),
        'Currency' => array('Type' => 'TCurrency', 'Caption' => 'Měna', 'Default' => ''),
        'Description' => array('Type' => 'String', 'Caption' => 'Popis operace', 'Default' => ''),
        'OffsetAccountName' => array('Type' => 'String', 'Caption' => 'Jméno protiúčtu', 'Default' => ''),
        'FinanceOperation' => array('Type' => 'TFinanceOperation', 'Caption' => 'Přiřazená operace', 'Default' => '', 'Null' => true, 'OnPreset' => array($this, 'PresetItem')),
      ),
    ));

    $this->System->RegisterPage(array('finance', 'import-api'), 'PageImportAPI');
    $this->System->RegisterPage(array('finance', 'import-soubor'), 'PageImportFile');
  }

  function DoStop()
  {
  }

  function PresetItem($Item)
  {
    $Preset = array();
    if($Item['Value'] < 0) $DocumentLine = DOC_LINE_ACCOUNT_OUT;
       else $DocumentLine = DOC_LINE_ACCOUNT_IN;
    $Preset = array(
      'presetTime' => $Item['Time'],
      'presetValue' => $Item['Value'],
      'presetTaxable' => 1,
      'presetText' => $Item['Description'],
      'presetNetwork' => 1,
      'presetBankAccount' => $Item['BankAccount'],
      'presetDocumentLine' => $DocumentLine);
  	return($Preset);
  }
}
