1 | <?php
|
---|
2 |
|
---|
3 | class Bill extends Module
|
---|
4 | {
|
---|
5 | var $SpecificSymbol = 1; // počítačová sít
|
---|
6 |
|
---|
7 | function GenerateHTML()
|
---|
8 | {
|
---|
9 | return('');
|
---|
10 | }
|
---|
11 |
|
---|
12 | function SaveToFile($FileName)
|
---|
13 | {
|
---|
14 | global $Database;
|
---|
15 |
|
---|
16 | $PdfData = $this->HtmlToPdf($this->GenerateHTML());
|
---|
17 | file_put_contents($FileName, $PdfData);
|
---|
18 | }
|
---|
19 |
|
---|
20 | function HtmlToPdf($HtmlCode)
|
---|
21 | {
|
---|
22 | $Output = shell_exec('echo "'.addslashes(FromUTF8($HtmlCode)).
|
---|
23 | '"|htmldoc --no-numbered --webpage --no-embedfonts --charset 8859-2 -t pdf -');
|
---|
24 | return($Output);
|
---|
25 | }
|
---|
26 | }
|
---|
27 |
|
---|
28 | class BillInvoice extends Bill
|
---|
29 | {
|
---|
30 | var $InvoiceId;
|
---|
31 |
|
---|
32 | function GenerateHTML()
|
---|
33 | {
|
---|
34 | global $SpecificSymbol, $Config;
|
---|
35 |
|
---|
36 | $DbResult = $this->Database->select('FinanceInvoice', '*', '`Id`='.$this->InvoiceId);
|
---|
37 | $Invoice = $DbResult->fetch_assoc();
|
---|
38 |
|
---|
39 | $DbResult = $this->Database->select('Subject', '*', '`Id`='.$Invoice['Subject']);
|
---|
40 | $Subject = $DbResult->fetch_assoc();
|
---|
41 |
|
---|
42 | $DbResult = $this->Database->select('Subject', '*', '`Id`='.$Config['Finance']['MainSubjectId']);
|
---|
43 | $MainSubject = $DbResult->fetch_assoc();
|
---|
44 |
|
---|
45 | $DbResult = $this->Database->select('FinanceBankAccount', '*', '(`Subject`='.
|
---|
46 | $Config['Finance']['MainSubjectId'].') AND (`Use`=1)');
|
---|
47 | $MainSubjectAccount = $DbResult->fetch_assoc();
|
---|
48 |
|
---|
49 | $Dodavka = array();
|
---|
50 | $DbResult = $this->Database->select('FinanceInvoiceItem', '*', 'FinanceInvoice='.$this->InvoiceId);
|
---|
51 | while($Item = $DbResult->fetch_assoc())
|
---|
52 | {
|
---|
53 | $InvoiceItems[$Item['Id']] = $Item;
|
---|
54 | }
|
---|
55 |
|
---|
56 | $PaymentType = array('převodem', 'hotově');
|
---|
57 | $BooleanText = array('Ne', 'Ano');
|
---|
58 |
|
---|
59 | $Output = '<table width="100%"><tr><td colspan="2">'.
|
---|
60 | '<font size="6"><div align="center">Faktura - daňový doklad</font></div>'.
|
---|
61 | '<hr></td></tr>'.
|
---|
62 | '<tr><td valign="top" width="50%"><strong>Dodavatel:</strong><br>'.
|
---|
63 | $MainSubject['Name'].'<br>'.
|
---|
64 | $MainSubject['AddressStreet'].'<br>'.
|
---|
65 | $MainSubject['AddressPSC'].' '.$MainSubject['AddressTown'].'<br>'.
|
---|
66 | 'IČ: '.$MainSubject['IC'].'<br>'.
|
---|
67 | 'DIČ: '.$MainSubject['DIC'].'<br>'.
|
---|
68 | 'Účet: '.$MainSubjectAccount['Number'].'<br>'.
|
---|
69 | 'Plátce DPH: '.$BooleanText[$MainSubject['PayVAT']].'<br>'.
|
---|
70 | '</td><td valign="top">'.
|
---|
71 | '<strong>Odběratel:</strong><br>'.
|
---|
72 | $Subject['Name'].'<br>'.
|
---|
73 | $Subject['AddressStreet'].'<br>'.
|
---|
74 | $Subject['AddressPSC'].' '.$Subject['AddressTown'].'<br>';
|
---|
75 | if($Subject['IC'] != 0) $Output .= 'IČ: '.$Subject['IC'].'<br>';
|
---|
76 | if($Subject['DIC'] != '') $Output .= 'DIČ: '.$Subject['DIC'].'<br>';
|
---|
77 | $Output .=
|
---|
78 | '</td></tr>'.
|
---|
79 | '<tr><td colspan="2"><hr></td></tr>'.
|
---|
80 | '<tr><td width="50%" valign="top">'.
|
---|
81 | '<strong>Platební podmínky:</strong><br>'.
|
---|
82 | 'Číslo dokladu: '.$Invoice['BillCode'].'<br>'.
|
---|
83 | 'Variabilní symbol: '.$Subject['Id'].'<br>'.
|
---|
84 | 'Specifický symbol: '.$this->SpecificSymbol.'<br>'.
|
---|
85 | 'Konstantní symbol:<br>'.
|
---|
86 | 'Způsob úhrady: '.$PaymentType[$Invoice['Cash']].
|
---|
87 | '</td><td valign="top">'.
|
---|
88 | '<br>'.
|
---|
89 | 'Datum vystavení: '.HumanDate($Invoice['TimeCreation']).'<br>'.
|
---|
90 | 'Datum zdanitel. plnění: '.HumanDate($Invoice['TimeCreation']).'<br>'.
|
---|
91 | 'Datum splatnosti: '.HumanDate($Invoice['TimeDue']).'<br>';
|
---|
92 | if(($Invoice['PeriodFrom'] != '') and ($Invoice['PeriodTo'] != ''))
|
---|
93 | $Output .= 'Fakturované období: '.HumanDate($Invoice['PeriodFrom']).' - '.
|
---|
94 | HumanDate($Invoice['PeriodTo']).'<br>';
|
---|
95 | $Output .= '</td></tr>'.
|
---|
96 | '<tr><td colspan="2">'.
|
---|
97 | '<hr>'.
|
---|
98 | '<br>'.
|
---|
99 | '<table border="0" width="100%">'.
|
---|
100 | '<tr><th align="left">Dodávka</th><th align="right">Množství</th><th align="right">Cena/MJ</th><th align="right">Celkem</th></tr>'.
|
---|
101 | '<tr><td colspan="4"><hr></td></tr>';
|
---|
102 |
|
---|
103 | $Total = 0;
|
---|
104 | foreach($InvoiceItems as $Item)
|
---|
105 | {
|
---|
106 | $Output .= '<tr><td>'.$Item['Description'].'</td><td align="right">'.
|
---|
107 | $Item['Quantity'].'</td><td align="right">'.$Item['Price'].
|
---|
108 | ' Kč</td><td align="right">'.($Item['Quantity'] * $Item['Price']).' Kč</td></tr>';
|
---|
109 | $Total += ($Item['Quantity'] * $Item['Price']);
|
---|
110 | }
|
---|
111 | $Output .= '<tr><th colspan="3" align="left">Celkem</th><th align="right">'.$Total.' Kč</th></tr>';
|
---|
112 | $Output .= '</table>'.
|
---|
113 | '</td></tr>'.
|
---|
114 | '<tr><td colspan="2"><hr></td></tr>'.
|
---|
115 | '</table>';
|
---|
116 |
|
---|
117 | return($Output);
|
---|
118 | }
|
---|
119 | }
|
---|
120 |
|
---|
121 | class BillOperation extends Bill
|
---|
122 | {
|
---|
123 | var $OperationId;
|
---|
124 |
|
---|
125 | function GenerateHTML()
|
---|
126 | {
|
---|
127 | $DbResult = $this->Database->select('FinanceOperation', '*', '`Id`='.$this->OperationId);
|
---|
128 | $Operation = $DbResult->fetch_assoc();
|
---|
129 |
|
---|
130 | $DbResult = $this->Database->select('Subject', '*', '`Id`='.$Operation['Subject']);
|
---|
131 | $Subject = $DbResult->fetch_assoc();
|
---|
132 |
|
---|
133 | $DbResult = $this->Database->select('Subject', '*', '`Id`='.$Config['Finance']['MainSubjectId']);
|
---|
134 | $MainSubject = $DbResult->fetch_assoc();
|
---|
135 |
|
---|
136 | $DbResult = $this->Database->select('FinanceBankAccount', '*', '(`Subject`='.
|
---|
137 | $Config['Finance']['MainSubjectId'].') AND (`Use`=1)');
|
---|
138 | $MainSubjectAccount = $DbResult->fetch_assoc();
|
---|
139 |
|
---|
140 | //$Dodavka = array();
|
---|
141 | //$DbResult = $this->Database->select('FinanceInvoiceItem', '*', 'FinanceInvoice='.$BillId);
|
---|
142 | //while($Item = $DbResult->fetch_assoc())
|
---|
143 | //{
|
---|
144 | // $InvoiceItems[$Item['Id']] = $Item;
|
---|
145 | //}
|
---|
146 |
|
---|
147 | $Output = '<table width="100%" border="1" cellspacing="0" cellpadding="3"><tr><td width="50%">'.
|
---|
148 | '<strong>Firma:</strong><br>'.
|
---|
149 | $MainSubject['Name'].'<br>'.
|
---|
150 | $MainSubject['AddressStreet'].'<br>'.
|
---|
151 | $MainSubject['AddressPSC'].' '.$MainSubject['AddressTown'].'<br>'.
|
---|
152 | 'IČ: '.$MainSubject['IC'].'<br>'.
|
---|
153 | 'DIČ: '.$MainSubject['DIC'].'<br>'.
|
---|
154 | 'Účet: '.$MainSubjectAccount['Number'].'<br>'.
|
---|
155 | 'Plátce DPH: '.$BooleanText[$MainSubject['PayVAT']].
|
---|
156 | '</td><td width="50%" valign="top">'.
|
---|
157 | '<font size="5"><strong>PŘÍJMOVÝ POKLADNÍ DOKLAD</strong></font><br><br>'.
|
---|
158 | 'Číslo dokladu: '.$Bill['BillCode'].'<br>'.
|
---|
159 | 'Datum vystavení: '.HumanDate($Bill['TimeCreate']).'<br>'.
|
---|
160 | '</td></tr>'.
|
---|
161 | '<tr><td colspan="2"><strong>Přijato od:</strong><br>'.
|
---|
162 | $Subject['Name'].'<br>'.
|
---|
163 | $Subject['AddressStreet'].'<br>'.
|
---|
164 | $Subject['AddressPSC'].' '.$Subject['AddressTown'].'<br>';
|
---|
165 | if($Subject['IC'] != 0) $Output .= 'IČ: '.$Subject['IC'].'<br>';
|
---|
166 | if($Subject['DIC'] != '') $Output .= 'DIČ: '.$Subject['DIC'].'<br>';
|
---|
167 | $Total = 0;
|
---|
168 | $Description = '';
|
---|
169 | //foreach($Dodavka as $Polozka)
|
---|
170 | //{
|
---|
171 | // $Description .= $Polozka['Description'].'<br>';
|
---|
172 | // $Total += ($Polozka['Quantity'] * $Polozka['Price']);
|
---|
173 | //}
|
---|
174 | $Output .= '</td></tr>'.
|
---|
175 | '<tr><td colspan="2"><strong>Částka:</strong> '.$Total.' Kč<br><br>'.
|
---|
176 | '</td></tr>'.
|
---|
177 | '<tr><td colspan="2"><strong>Účel platby:</strong><br>'.$Description.'</td></tr>'.
|
---|
178 | '<tr><td><br><br>Podpis příjemce:</td><td><br><br>Podpis pokladníka:</td></tr>';
|
---|
179 | $Output .= '</table>';
|
---|
180 | return($Output);
|
---|
181 | }
|
---|
182 | }
|
---|
183 |
|
---|
184 | ?>
|
---|