<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>https://wiki.freenetis.org/index.php?action=history&amp;feed=atom&amp;title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF</id>
		<title>Tvorba parseru bankovních výpisů - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.freenetis.org/index.php?action=history&amp;feed=atom&amp;title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF"/>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;action=history"/>
		<updated>2026-04-20T15:50:42Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2261&amp;oldid=prev</id>
		<title>Quimi: Quimi přesunul stránku Tvorba parseru bankovnÃ­ch vÃ½pisÅ¯ na Tvorba parseru bankovních výpisů bez založení přesměrování</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2261&amp;oldid=prev"/>
				<updated>2018-01-31T14:25:15Z</updated>
		
		<summary type="html">&lt;p&gt;Quimi přesunul stránku &lt;a href=&quot;/index.php?title=Tvorba_parseru_bankovn%C3%83%C2%ADch_v%C3%83%C2%BDpis%C3%85%C2%AF&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Tvorba parseru bankovnÃ­ch vÃ½pisÅ¯ (stránka neexistuje)&quot;&gt;Tvorba parseru bankovnÃ­ch vÃ½pisÅ¯&lt;/a&gt; na &lt;a href=&quot;/index.php/Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&quot; title=&quot;Tvorba parseru bankovních výpisů&quot;&gt;Tvorba parseru bankovních výpisů&lt;/a&gt; bez založení přesměrování&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 31. 1. 2018, 14:25&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;cs&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Žádný rozdíl)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Quimi</name></author>	</entry>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2200&amp;oldid=prev</id>
		<title>Admin: /* Postup parseru pro import ze souboru */</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2200&amp;oldid=prev"/>
				<updated>2015-08-13T13:29:26Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Postup parseru pro import ze souboru&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 13. 8. 2015, 13:29&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l222&quot; &gt;Řádek 222:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 222:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	catch (Duplicity_Exception $e)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	catch (Duplicity_Exception $e)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	{&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; 		$statement-&amp;gt;transaction_rollback();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 		throw $e;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 		throw $e;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2194&amp;oldid=prev</id>
		<title>Dzolo: /* Postup parseru pro import ze souboru */</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2194&amp;oldid=prev"/>
				<updated>2014-07-10T18:49:23Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Postup parseru pro import ze souboru&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 10. 7. 2014, 18:49&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l68&quot; &gt;Řádek 68:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 68:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''parse_file_data''' realizuje samotné parsování výpisu a dočasné uložení jeho obsahu v libovolném formátu uvnitř vytvořené třídy. K uloženému obsahu poté přistupujeme (ukládáme) v poslední metodě '''store'''. Obvykle si pro potřeby uložení vytvoříme &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;v &lt;/del&gt;třídě členskou proměnnou. Funkce vrací '''TRUE''' pokud parsování proběhlo v pořádku jinak '''FALSE'''. Chyby lze jako u ostatních metod hlásit zděděnými metodami '''add_error(message)''' nebo '''add_exception_error(exception)'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''parse_file_data''' realizuje samotné parsování výpisu a dočasné uložení jeho obsahu v libovolném formátu uvnitř vytvořené třídy. K uloženému obsahu poté přistupujeme (ukládáme) v poslední metodě '''store'''. Obvykle si pro potřeby uložení vytvoříme &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ve &lt;/ins&gt;třídě členskou proměnnou. Funkce vrací '''TRUE''' pokud parsování proběhlo v pořádku jinak '''FALSE'''. Chyby lze jako u ostatních metod hlásit zděděnými metodami '''add_error(message)''' nebo '''add_exception_error(exception)'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''store''' ukládá připravená rozparsovaná data do databáze FreenetISu. Při její implementaci je nutné znát vnitřní mechanismy účtování FreenetISu. Nejjednodušší implementace, která umožňuje pouze přijímat členské příspěvky je následující:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''store''' ukládá připravená rozparsovaná data do databáze FreenetISu. Při její implementaci je nutné znát vnitřní mechanismy účtování FreenetISu. Nejjednodušší implementace, která umožňuje pouze přijímat členské příspěvky je následující:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dzolo</name></author>	</entry>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2193&amp;oldid=prev</id>
		<title>Dzolo: /* Použití zhotoveného parseru (třídy) */</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2193&amp;oldid=prev"/>
				<updated>2014-07-10T18:47:48Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Použití zhotoveného parseru (třídy)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 10. 7. 2014, 18:47&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l255&quot; &gt;Řádek 255:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 255:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; );&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pokud není typ banky ABC v systému zaveden, je nutné v souboru '''/application/models/Bank_account_Model.php''' typ dodefinovat, což obnáší definici nové konstanty pro typ a název typu v proměnné '''$type_name'''. Typem &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;se váže bank. účet &lt;/del&gt;se zajišťuje, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že nebude pouzit &lt;/del&gt;pro import nevhodný parser.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pokud není typ banky ABC v systému zaveden, je nutné v souboru '''/application/models/Bank_account_Model.php''' typ dodefinovat, což obnáší definici nové konstanty pro typ a název typu v proměnné '''$type_name'''. Typem se zajišťuje, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;aby nebyl použit &lt;/ins&gt;pro import &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;výpisu &lt;/ins&gt;nevhodný parser &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vzhledem k bankovnímu účtu&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Posledním krokem je modifikace kontroleru '''import''' ('''/application/controllers/import.php'''), ve kterém se lze plně inspirovat jeho částí pro FIO parser.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Posledním krokem je modifikace kontroleru '''import''' ('''/application/controllers/import.php'''), ve kterém se lze plně inspirovat jeho částí pro FIO parser.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dzolo</name></author>	</entry>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2192&amp;oldid=prev</id>
		<title>Dzolo: /* Použití zhotoveného parseru (třídy) */</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2192&amp;oldid=prev"/>
				<updated>2014-07-10T18:46:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Použití zhotoveného parseru (třídy)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 10. 7. 2014, 18:46&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l245&quot; &gt;Řádek 245:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 245:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	// .....&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	// .....&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	/* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;FIO &lt;/del&gt;- CSV - Obtained from &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;FIO &lt;/del&gt;e-banking&amp;#160; */&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	/* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ABC &lt;/ins&gt;- CSV - Obtained from &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ABC &lt;/ins&gt;e-banking&amp;#160; */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	array&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	array&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	(&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	(&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dzolo</name></author>	</entry>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2191&amp;oldid=prev</id>
		<title>Dzolo: /* Použití zhotoveného parseru (třídy) */</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2191&amp;oldid=prev"/>
				<updated>2014-07-10T18:45:29Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Použití zhotoveného parseru (třídy)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 10. 7. 2014, 18:45&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l237&quot; &gt;Řádek 237:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 237:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Použití zhotoveného parseru (třídy) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Použití zhotoveného parseru (třídy) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Parser je strukturován do výše uvedených pevně předepsaných metod, aby bylo možné jeho životní cyklus řídit automaticky dalšími částmi systému. Nemusíme díky tomu řešit načítání souboru, hlášení chyb, aj.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Parser je strukturován do výše uvedených pevně předepsaných metod, aby bylo možné jeho životní cyklus řídit automaticky dalšími částmi systému. Nemusíme díky tomu řešit načítání souboru, hlášení chyb&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, oznámení o přijaté platbě&lt;/ins&gt;, aj.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Implementovaný parser je nutné zaregistrovat v souboru '''/application/libraries/Bank_Statement_File_Importer.php''' v proměnné '''$drivers'''. Příklad:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Implementovaný parser je nutné zaregistrovat v souboru '''/application/libraries/Bank_Statement_File_Importer.php''' v proměnné '''$drivers'''. Příklad:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dzolo</name></author>	</entry>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2190&amp;oldid=prev</id>
		<title>Dzolo: /* Postup parseru pro import ze souboru */</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2190&amp;oldid=prev"/>
				<updated>2014-07-10T18:43:45Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Postup parseru pro import ze souboru&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 10. 7. 2014, 18:43&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l48&quot; &gt;Řádek 48:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 48:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''check_file_data_format''' kontroluje formát vstupního souboru, jehož obsah ve formě řetězce lze získat pomocí volání '''$this-&amp;gt;get_file_data()'''. Metoda vrací '''TRUE''' pokud je soubor v pořádku &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nebo &lt;/del&gt;'''FALSE'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''check_file_data_format''' kontroluje formát vstupního souboru, jehož obsah ve formě řetězce lze získat pomocí volání '''$this-&amp;gt;get_file_data()'''. Metoda vrací '''TRUE''' pokud je soubor v pořádku &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jinak &lt;/ins&gt;'''FALSE'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''get_header_data''' slouží pro získání hlavičky výpisu (číslo bank. účtu, zůstatky, apod.). Hlavičkou je míněna instance třídy '''Header_Data'''. Příklad implementace metody:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''get_header_data''' slouží pro získání hlavičky výpisu (číslo bank. účtu, zůstatky, apod.). Hlavičkou je míněna instance třídy '''Header_Data'''. Příklad implementace metody:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l68&quot; &gt;Řádek 68:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 68:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''parse_file_data''' realizuje samotné parsování výpisu a dočasné uložení jeho obsahu v libovolném formátu uvnitř vytvořené třídy. K uloženému obsahu poté přistupujeme (ukládáme) v poslední metodě '''store'''. Obvykle si pro potřeby uložení vytvoříme v třídě členskou proměnnou. Funkce vrací '''TRUE''' pokud parsování proběhlo v pořádku &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nebo &lt;/del&gt;'''FALSE'''. Chyby lze jako u ostatních metod hlásit zděděnými metodami '''add_error(message)''' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;a &lt;/del&gt;'''add_exception_error(exception)'''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''parse_file_data''' realizuje samotné parsování výpisu a dočasné uložení jeho obsahu v libovolném formátu uvnitř vytvořené třídy. K uloženému obsahu poté přistupujeme (ukládáme) v poslední metodě '''store'''. Obvykle si pro potřeby uložení vytvoříme v třídě členskou proměnnou. Funkce vrací '''TRUE''' pokud parsování proběhlo v pořádku &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jinak &lt;/ins&gt;'''FALSE'''. Chyby lze jako u ostatních metod hlásit zděděnými metodami '''add_error(message)''' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nebo &lt;/ins&gt;'''add_exception_error(exception)'''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''store''' ukládá připravená rozparsovaná data do databáze FreenetISu. Při její implementaci je nutné znát vnitřní mechanismy účtování FreenetISu. Nejjednodušší implementace, která umožňuje pouze přijímat členské příspěvky je následující:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Metoda '''store''' ukládá připravená rozparsovaná data do databáze FreenetISu. Při její implementaci je nutné znát vnitřní mechanismy účtování FreenetISu. Nejjednodušší implementace, která umožňuje pouze přijímat členské příspěvky je následující:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l120&quot; &gt;Řádek 120:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 120:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 		// saving each bank listing item&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 		// saving each bank listing item&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 		foreach ($this-&amp;gt;preparedData as $item)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 		foreach ($this-&amp;gt;preparedData as $item) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;//// ZDE PŘISTUPUJEME K PŘEDPARSOVANÝM DATŮM&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 		{&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 		{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 			// try to find counter bank account in database&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 			// try to find counter bank account in database&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dzolo</name></author>	</entry>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2189&amp;oldid=prev</id>
		<title>Dzolo: /* Postup parseru pro import ze souboru */</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2189&amp;oldid=prev"/>
				<updated>2014-07-10T18:41:41Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Postup parseru pro import ze souboru&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 10. 7. 2014, 18:41&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l61&quot; &gt;Řádek 61:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 61:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	$hd-&amp;gt;openingBalance = &amp;lt;poč stav&amp;gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	$hd-&amp;gt;openingBalance = &amp;lt;poč stav&amp;gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	$hd-&amp;gt;closingBalance = &amp;lt;konečný stav&amp;gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	$hd-&amp;gt;closingBalance = &amp;lt;konečný stav&amp;gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	$hd-&amp;gt;dateStart = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$fio_ph['from']&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	$hd-&amp;gt;dateStart = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;datum od&amp;gt;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	$hd-&amp;gt;dateEnd = &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$fio_ph['to']&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	$hd-&amp;gt;dateEnd = &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;datum do&amp;gt;&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	// ...&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	// ...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l257&quot; &gt;Řádek 257:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 257:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pokud není typ banky ABC v systému zaveden, je nutné v souboru '''/application/models/Bank_account_Model.php''' typ dodefinovat, což obnáší definici nové konstanty pro typ a název typu v proměnné '''$type_name'''. Typem se váže bank. účet se zajišťuje, že nebude pouzit pro import nevhodný parser.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pokud není typ banky ABC v systému zaveden, je nutné v souboru '''/application/models/Bank_account_Model.php''' typ dodefinovat, což obnáší definici nové konstanty pro typ a název typu v proměnné '''$type_name'''. Typem se váže bank. účet se zajišťuje, že nebude pouzit pro import nevhodný parser.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Posledním krokem je modifikace kontroleru '''import''' ('''/application/controllers/import.php'''), ve kterém se lze plně inspirovat jeho částí pro FIO parser. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Posledním krokem je modifikace kontroleru '''import''' ('''/application/controllers/import.php'''), ve kterém se lze plně inspirovat jeho částí pro FIO parser.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Postup parseru pro import z API ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Postup parseru pro import z API ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Značně se liší dle příslušného API. Oproti souboru je navíc nutné implementovat nastavení přístupu k API u bank. účtu a někdy také v parseru implementovat metodu '''before_download''', která připravuje půdu pro stáhnutí souboru z API. Příklad hledejte u FIO parseru.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Značně se liší dle příslušného API. Oproti souboru je navíc nutné implementovat nastavení přístupu k API u bank. účtu a někdy také v parseru implementovat metodu '''before_download''', která připravuje půdu pro stáhnutí souboru z API. Příklad hledejte u FIO parseru.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dzolo</name></author>	</entry>

	<entry>
		<id>https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2188&amp;oldid=prev</id>
		<title>Dzolo: Založena nová stránka: Tento návod popisuje jak vytvořit parser bankovních výpisů integrovaný do systému FreenetIS.  == Postup parseru pro import ze souboru ==  Budeme vytvářet parser pr...</title>
		<link rel="alternate" type="text/html" href="https://wiki.freenetis.org/index.php?title=Tvorba_parseru_bankovn%C3%ADch_v%C3%BDpis%C5%AF&amp;diff=2188&amp;oldid=prev"/>
				<updated>2014-07-10T18:40:31Z</updated>
		
		<summary type="html">&lt;p&gt;Založena nová stránka: Tento návod popisuje jak vytvořit parser bankovních výpisů integrovaný do systému FreenetIS.  == Postup parseru pro import ze souboru ==  Budeme vytvářet parser pr...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Tento návod popisuje jak vytvořit parser bankovních výpisů integrovaný do systému FreenetIS.&lt;br /&gt;
&lt;br /&gt;
== Postup parseru pro import ze souboru ==&lt;br /&gt;
&lt;br /&gt;
Budeme vytvářet parser pro banku ABC, který je schopný parsovat výpisy ve formátu CSV.&lt;br /&gt;
&lt;br /&gt;
* Ve složce '''/application/libraries/importers''' vytvoříme soubor '''Abc_Csv_Bank_Statement_File_Importer.php''', do kterého vložíme kostru PHP třídy reprezentující parser a jejíž metody implementujeme:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?php defined('SYSPATH') or die('No direct script access.');&lt;br /&gt;
 /*&lt;br /&gt;
  * This file is part of open source system FreenetIS&lt;br /&gt;
  * and it is released under GPLv3 licence.&lt;br /&gt;
  * &lt;br /&gt;
  * More info about licence can be found:&lt;br /&gt;
  * &amp;lt;nowiki&amp;gt;http://www.gnu.org/licenses/gpl-3.0.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  * &lt;br /&gt;
  * More info about project can be found:&lt;br /&gt;
  * &amp;lt;nowiki&amp;gt;http://www.freenetis.org/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  * &lt;br /&gt;
  */&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * Parser for ABC bank that parses CSV files.&lt;br /&gt;
  * &lt;br /&gt;
  * @author &amp;lt;vaše jméno&amp;gt;&lt;br /&gt;
  */&lt;br /&gt;
 class Abc_Csv_Bank_Statement_File_Importer extends Bank_Statement_File_Importer&lt;br /&gt;
 {&lt;br /&gt;
 	protected function check_file_data_format()&lt;br /&gt;
 	{&lt;br /&gt;
 		&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	protected function get_header_data()&lt;br /&gt;
 	{&lt;br /&gt;
 		&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	protected function parse_file_data()&lt;br /&gt;
 	{&lt;br /&gt;
 		&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	protected function store(&amp;amp;$stats = array())&lt;br /&gt;
 	{&lt;br /&gt;
 		&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
* Metoda '''check_file_data_format''' kontroluje formát vstupního souboru, jehož obsah ve formě řetězce lze získat pomocí volání '''$this-&amp;gt;get_file_data()'''. Metoda vrací '''TRUE''' pokud je soubor v pořádku nebo '''FALSE'''.&lt;br /&gt;
&lt;br /&gt;
* Metoda '''get_header_data''' slouží pro získání hlavičky výpisu (číslo bank. účtu, zůstatky, apod.). Hlavičkou je míněna instance třídy '''Header_Data'''. Příklad implementace metody:&lt;br /&gt;
&lt;br /&gt;
 protected function get_header_data()&lt;br /&gt;
 {&lt;br /&gt;
 	// parsování hlavičky z get_file_data ....&lt;br /&gt;
 &lt;br /&gt;
 	$hd = new Header_Data(&amp;lt;číslo bank. účtu&amp;gt;, &amp;lt;číslo banky&amp;gt;);&lt;br /&gt;
 	// nepovinné vlastnosti, které se mohou používat v dalších metodách&lt;br /&gt;
 	$hd-&amp;gt;currency = 'CZK';&lt;br /&gt;
 	$hd-&amp;gt;openingBalance = &amp;lt;poč stav&amp;gt;;&lt;br /&gt;
 	$hd-&amp;gt;closingBalance = &amp;lt;konečný stav&amp;gt;;&lt;br /&gt;
 	$hd-&amp;gt;dateStart = $fio_ph['from'];&lt;br /&gt;
 	$hd-&amp;gt;dateEnd = $fio_ph['to'];&lt;br /&gt;
 	// ...&lt;br /&gt;
 &lt;br /&gt;
 	return $hd;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* Metoda '''parse_file_data''' realizuje samotné parsování výpisu a dočasné uložení jeho obsahu v libovolném formátu uvnitř vytvořené třídy. K uloženému obsahu poté přistupujeme (ukládáme) v poslední metodě '''store'''. Obvykle si pro potřeby uložení vytvoříme v třídě členskou proměnnou. Funkce vrací '''TRUE''' pokud parsování proběhlo v pořádku nebo '''FALSE'''. Chyby lze jako u ostatních metod hlásit zděděnými metodami '''add_error(message)''' a '''add_exception_error(exception)'''.&lt;br /&gt;
&lt;br /&gt;
* Metoda '''store''' ukládá připravená rozparsovaná data do databáze FreenetISu. Při její implementaci je nutné znát vnitřní mechanismy účtování FreenetISu. Nejjednodušší implementace, která umožňuje pouze přijímat členské příspěvky je následující:&lt;br /&gt;
&lt;br /&gt;
 protected function store(&amp;amp;$stats = array())&lt;br /&gt;
 {&lt;br /&gt;
 	$statement = new Bank_statement_Model();&lt;br /&gt;
 	$ba = $this-&amp;gt;get_bank_account();&lt;br /&gt;
 	$user_id = $this-&amp;gt;get_user_id();&lt;br /&gt;
 &lt;br /&gt;
 	try&lt;br /&gt;
 	{&lt;br /&gt;
 		/* header */&lt;br /&gt;
 &lt;br /&gt;
 		$statement-&amp;gt;transaction_start();&lt;br /&gt;
 		$header = $this-&amp;gt;get_header_data();&lt;br /&gt;
 &lt;br /&gt;
 		// bank statement&lt;br /&gt;
 		$statement-&amp;gt;bank_account_id = $ba-&amp;gt;id;&lt;br /&gt;
 		$statement-&amp;gt;user_id = $this-&amp;gt;get_user_id();&lt;br /&gt;
 		$statement-&amp;gt;type = $this-&amp;gt;get_importer_name();&lt;br /&gt;
 		$statement-&amp;gt;from = $header-&amp;gt;dateStart;&lt;br /&gt;
 		$statement-&amp;gt;to = $header-&amp;gt;dateEnd;&lt;br /&gt;
 		$statement-&amp;gt;save_throwable();&lt;br /&gt;
 &lt;br /&gt;
 		/* transactions */&lt;br /&gt;
 &lt;br /&gt;
 		// preparation of system double-entry accounts&lt;br /&gt;
 		$member_fees = ORM::factory('account')-&amp;gt;get_account_by_attribute(Account_attribute_Model::MEMBER_FEES);&lt;br /&gt;
 		$operating = ORM::factory('account')-&amp;gt;get_account_by_attribute(Account_attribute_Model::OPERATING);&lt;br /&gt;
 		$account = $ba-&amp;gt;get_related_account_by_attribute_id(Account_attribute_Model::BANK);&lt;br /&gt;
 &lt;br /&gt;
 		// model preparation&lt;br /&gt;
 		$bt = new Bank_transfer_Model();&lt;br /&gt;
 		$fee_model = new Fee_Model();&lt;br /&gt;
 &lt;br /&gt;
 		// statistics preparation&lt;br /&gt;
 		$stats['unidentified_nr'] = 0;&lt;br /&gt;
 		$stats['invoices'] = 0;&lt;br /&gt;
 		$stats['invoices_nr'] = 0;&lt;br /&gt;
 		$stats['member_fees'] = 0;&lt;br /&gt;
 		$stats['member_fees_nr'] = 0;&lt;br /&gt;
 		$stats['interests'] = 0;&lt;br /&gt;
 		$stats['interests_nr'] = 0;&lt;br /&gt;
 		$stats['deposits'] = 0;&lt;br /&gt;
 		$stats['deposits_nr'] = 0;&lt;br /&gt;
 &lt;br /&gt;
 		// miscellaneous preparation&lt;br /&gt;
 		$now = date('Y-m-d H:i:s');&lt;br /&gt;
 		$number = 0;&lt;br /&gt;
 &lt;br /&gt;
 		// saving each bank listing item&lt;br /&gt;
 		foreach ($this-&amp;gt;preparedData as $item)&lt;br /&gt;
 		{&lt;br /&gt;
 			// try to find counter bank account in database&lt;br /&gt;
 			$counter_ba = ORM::factory('bank_account')-&amp;gt;where(array&lt;br /&gt;
 			(&lt;br /&gt;
 				'account_nr' =&amp;gt; $item['protiucet'],&lt;br /&gt;
 				'bank_nr'    =&amp;gt; $item['kod_banky']&lt;br /&gt;
 			))-&amp;gt;find();&lt;br /&gt;
 &lt;br /&gt;
 			// counter bank account does not exist? let's create new one&lt;br /&gt;
 			if (!$counter_ba-&amp;gt;id)&lt;br /&gt;
 			{&lt;br /&gt;
 				$counter_ba-&amp;gt;clear();&lt;br /&gt;
 				$counter_ba-&amp;gt;set_logger(FALSE);&lt;br /&gt;
 				$counter_ba-&amp;gt;name = $item['nazev_protiuctu'];&lt;br /&gt;
 				$counter_ba-&amp;gt;account_nr = $item['protiucet'];&lt;br /&gt;
 				$counter_ba-&amp;gt;bank_nr = $item['kod_banky'];&lt;br /&gt;
 				$counter_ba-&amp;gt;member_id = NULL;&lt;br /&gt;
 				$counter_ba-&amp;gt;save_throwable();&lt;br /&gt;
 			}&lt;br /&gt;
 &lt;br /&gt;
 			// inbound transfer - member fee&lt;br /&gt;
 				&lt;br /&gt;
 			// let's identify member&lt;br /&gt;
 			$member_id = $this-&amp;gt;find_member_by_vs($item['vs']);&lt;br /&gt;
 &lt;br /&gt;
  			if (!$member_id)&lt;br /&gt;
 			{&lt;br /&gt;
 				$stats['unidentified_nr']++;&lt;br /&gt;
 			}&lt;br /&gt;
 &lt;br /&gt;
 			// double-entry incoming transfer&lt;br /&gt;
 			$transfer_id = Transfer_Model::insert_transfer(&lt;br /&gt;
 					$member_fees-&amp;gt;id, $account-&amp;gt;id, null, $member_id,&lt;br /&gt;
 					$user_id, null, $item['datum'], $now, $item['zprava'],&lt;br /&gt;
 					abs($item['castka'])&lt;br /&gt;
 			);&lt;br /&gt;
 			// incoming bank transfer&lt;br /&gt;
 			$bt-&amp;gt;clear();&lt;br /&gt;
 			$bt-&amp;gt;set_logger(false);&lt;br /&gt;
 			$bt-&amp;gt;origin_id = $counter_ba-&amp;gt;id;&lt;br /&gt;
 			$bt-&amp;gt;destination_id = $ba-&amp;gt;id;&lt;br /&gt;
 			$bt-&amp;gt;transfer_id = $transfer_id;&lt;br /&gt;
 			$bt-&amp;gt;bank_statement_id = $statement-&amp;gt;id;&lt;br /&gt;
 			$bt-&amp;gt;transaction_code = $item['id_pohybu'];&lt;br /&gt;
 			$bt-&amp;gt;number = $number;&lt;br /&gt;
 			$bt-&amp;gt;constant_symbol = $item['ks'];&lt;br /&gt;
 			$bt-&amp;gt;variable_symbol = $item['vs'];&lt;br /&gt;
 			$bt-&amp;gt;specific_symbol = $item['ss'];&lt;br /&gt;
 			$bt-&amp;gt;save();&lt;br /&gt;
 &lt;br /&gt;
 			// assign transfer? (0 - invalid id, 1 - assoc id, other are ordinary members)&lt;br /&gt;
 			if ($member_id &amp;amp;&amp;amp; $member_id != Member_Model::ASSOCIATION)&lt;br /&gt;
 			{&lt;br /&gt;
 				$ca = ORM::factory('account')-&amp;gt;where('member_id', $member_id)-&amp;gt;find();&lt;br /&gt;
 				// has credit account?&lt;br /&gt;
 				if ($ca-&amp;gt;id)&lt;br /&gt;
 				{&lt;br /&gt;
 					// add affected member for notification&lt;br /&gt;
 					$this-&amp;gt;add_affected_member($member_id);&lt;br /&gt;
 &lt;br /&gt;
 					// assigning transfer&lt;br /&gt;
 					$a_transfer_id = Transfer_Model::insert_transfer(&lt;br /&gt;
 							$account-&amp;gt;id, $ca-&amp;gt;id, $transfer_id, $member_id,&lt;br /&gt;
 							$user_id, null, $item['datum'], $now,&lt;br /&gt;
 							__('Assigning of transfer'), abs($item['castka'])&lt;br /&gt;
 					);&lt;br /&gt;
 &lt;br /&gt;
 					// transaction fee&lt;br /&gt;
 					$fee = $fee_model-&amp;gt;get_by_date_type($item['datum'], 'transfer fee');&lt;br /&gt;
 					if ($fee &amp;amp;&amp;amp; $fee-&amp;gt;fee &amp;gt; 0)&lt;br /&gt;
 					{&lt;br /&gt;
 						$tf_transfer_id = Transfer_Model::insert_transfer(&lt;br /&gt;
 								$ca-&amp;gt;id, $operating-&amp;gt;id, $transfer_id,&lt;br /&gt;
 								$member_id, $user_id, null, $item['datum'],&lt;br /&gt;
 								$now, __('Transfer fee'), $fee-&amp;gt;fee&lt;br /&gt;
 						);&lt;br /&gt;
 					}&lt;br /&gt;
 					&lt;br /&gt;
 					if (!$counter_ba-&amp;gt;member_id)&lt;br /&gt;
 					{&lt;br /&gt;
 						$counter_ba-&amp;gt;member_id = $member_id;&lt;br /&gt;
 						$counter_ba-&amp;gt;save_throwable();&lt;br /&gt;
 					}&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			// member fee stats&lt;br /&gt;
 			$stats['member_fees'] += abs($item['castka']);&lt;br /&gt;
 			$stats['member_fees_nr']++;&lt;br /&gt;
 &lt;br /&gt;
 			// line number increase&lt;br /&gt;
 			$number++;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		// done&lt;br /&gt;
 		$statement-&amp;gt;transaction_commit();&lt;br /&gt;
 &lt;br /&gt;
 		// return&lt;br /&gt;
 		return $statement;&lt;br /&gt;
 	}&lt;br /&gt;
 	catch (Duplicity_Exception $e)&lt;br /&gt;
 	{&lt;br /&gt;
 		throw $e;&lt;br /&gt;
 	}&lt;br /&gt;
 	catch (Exception $e)&lt;br /&gt;
 	{&lt;br /&gt;
 		$statement-&amp;gt;transaction_rollback();&lt;br /&gt;
 		Log::add_exception($e);&lt;br /&gt;
 		$this-&amp;gt;add_exception_error($e);&lt;br /&gt;
 		return NULL;&lt;br /&gt;
 	}		&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Implementace metody '''store''' je složitější, a proto je vhodné ji konzultovat s vývojáři zodpovědnými za účetnictví.&lt;br /&gt;
&lt;br /&gt;
=== Použití zhotoveného parseru (třídy) ===&lt;br /&gt;
&lt;br /&gt;
Parser je strukturován do výše uvedených pevně předepsaných metod, aby bylo možné jeho životní cyklus řídit automaticky dalšími částmi systému. Nemusíme díky tomu řešit načítání souboru, hlášení chyb, aj.&lt;br /&gt;
&lt;br /&gt;
Implementovaný parser je nutné zaregistrovat v souboru '''/application/libraries/Bank_Statement_File_Importer.php''' v proměnné '''$drivers'''. Příklad:&lt;br /&gt;
&lt;br /&gt;
 private static $drivers = array&lt;br /&gt;
 (&lt;br /&gt;
 	// .....&lt;br /&gt;
 &lt;br /&gt;
 	/* FIO - CSV - Obtained from FIO e-banking  */&lt;br /&gt;
 	array&lt;br /&gt;
 	(&lt;br /&gt;
 		'name'		=&amp;gt; 'ABC CSV importer', // název&lt;br /&gt;
 		'class'		=&amp;gt; 'Abc_Csv_Bank_Statement_File_Importer', // třída&lt;br /&gt;
 		'bank_type'	=&amp;gt; Bank_account_Model::TYPE_ABC,&lt;br /&gt;
 		'extensions'	=&amp;gt; array('csv')&lt;br /&gt;
 	)&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
Pokud není typ banky ABC v systému zaveden, je nutné v souboru '''/application/models/Bank_account_Model.php''' typ dodefinovat, což obnáší definici nové konstanty pro typ a název typu v proměnné '''$type_name'''. Typem se váže bank. účet se zajišťuje, že nebude pouzit pro import nevhodný parser.&lt;br /&gt;
&lt;br /&gt;
Posledním krokem je modifikace kontroleru '''import''' ('''/application/controllers/import.php'''), ve kterém se lze plně inspirovat jeho částí pro FIO parser. &lt;br /&gt;
&lt;br /&gt;
== Postup parseru pro import z API ==&lt;br /&gt;
&lt;br /&gt;
Značně se liší dle příslušného API. Oproti souboru je navíc nutné implementovat nastavení přístupu k API u bank. účtu a někdy také v parseru implementovat metodu '''before_download''', která připravuje půdu pro stáhnutí souboru z API. Příklad hledejte u FIO parseru.&lt;/div&gt;</summary>
		<author><name>Dzolo</name></author>	</entry>

	</feed>