Initial comit
[taxmanager.git] / library / Bank / Account / Report / Kb.php
blob8cfb982d1a470627d6c8818288ed98df14b17129
1 <?php
3 class Bank_Account_Report_Kb extends Bank_Account_Report_Abstract
5 public function importReport( $file )
7 $data = $this -> parseReport( $file );
8 var_dump($data);
11 public function parseReport( $file )
13 $out = Array();
14 $f = file_get_contents($file);
15 $lines = Explode("\n", $f);
17 $data = Array();
18 $in_block = false;
19 $line_cnt = 0;
20 foreach ($lines as $line)
22 $line = rtrim($line);
23 if ($line == '')
24 { continue; }
26 if ( preg_match(";^_+\$;", $line) )
28 if ($in_block)
30 $out[] = $data;
32 $in_block = false;
33 $data = Array();
34 $line_cnt = 0;
35 continue;
38 $line_cnt++;
40 if (($line_cnt == 1) && preg_match(';^((([0-9]+)-)?([0-9]+))?/([0-9]+);', $line, $M))
42 $in_block = true;
43 $data['predcisli'] = $M[3];
44 $data['cislo_uctu'] = $M[4];
45 $data['banka'] = $M[5];
47 $data['vs'] = SPrintF("%010d", (int) Trim(substr($line, 31, 10)) );
49 preg_match(';([+-])?([0-9]+),([0-9]+) ([A-Z]{3});i', SubStr($line, 41, 29), $C);
51 if ($C[1] == '')
53 $zn = -1;
54 } else {
55 $zn = ($C[1] == '-' ? -1 : 1);
57 $data['castka'] = ((float) (((int) $C[2]) + (((int) $C[3]) / 100))) * $zn;
59 $data['datum_prijeti'] = strtotime( substr($line, 70, 10) );
60 $data['datum_prijeti_x'] = Date('Y-m-d', $data['datum_prijeti']);
63 if ($line_cnt == 2)
65 $data['typ'] = Trim(substr($line, 0, 31));
67 $data['ks'] = SPrintF("%04d", (int) Trim(substr($line, 31, 4)) );
68 $data['datum_splatnosti'] = strtotime( substr($line, 70, 10) );
71 if ($line_cnt == 3)
73 $data['id'] = Trim(substr($line, 0, 31));
75 $data['ss'] = SPrintF("%010d", (int) Trim(substr($line, 31, 10)) );
76 $data['datum_zauctovani'] = strtotime( substr($line, 70, 10) );
79 if ($line_cnt == 4)
81 $data['popis_prikazce'] = Trim( substr( $line, 31, 49 ) );
84 if ($line_cnt == 5)
86 $data['popis_prijemce'] = Trim( substr( $line, 31, 49 ) );
89 if ($line_cnt > 5)
91 $data['popis_system'] = isset($data['popis_system']) ? $data['popis_system'] : '';
92 $data['popis_system'] .= ($data['popis_system'] != "" ? "\n" : "").Trim( substr( $line, 31, 49 ) );
96 return $out;