source: trunk/Modules/Finance/Bill.php@ 548

Last change on this file since 548 was 548, checked in by chronos, 12 years ago
  • Odstraněno: Ukončovací PHP značka.
File size: 7.4 KB
Line 
1<?php
2
3class 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
28class 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->query('SELECT FinanceBankAccount.*, CONCAT(FinanceBankAccount.Number, "/", FinanceBank.Code) AS NumberFull FROM FinanceBankAccount '.
46 'JOIN FinanceBank ON FinanceBank.Id=FinanceBankAccount.Bank '.
47 'WHERE (FinanceBankAccount.`Subject`='.$Config['Finance']['MainSubjectId'].') AND (FinanceBankAccount.`Use`=1)');
48 $MainSubjectAccount = $DbResult->fetch_assoc();
49
50 $Dodavka = array();
51 $DbResult = $this->Database->select('FinanceInvoiceItem', '*', 'FinanceInvoice='.$this->InvoiceId);
52 while($Item = $DbResult->fetch_assoc())
53 {
54 $InvoiceItems[$Item['Id']] = $Item;
55 }
56
57 $PaymentType = array('převodem', 'hotově');
58 $BooleanText = array('Ne', 'Ano');
59
60 $Output = '<table width="100%"><tr><td colspan="2">'.
61 '<font size="6"><div align="center">Faktura - daňový doklad</font></div>'.
62 '<hr></td></tr>'.
63 '<tr><td valign="top" width="50%"><strong>Dodavatel:</strong><br>'.
64 $MainSubject['Name'].'<br>'.
65 $MainSubject['AddressStreet'].'<br>'.
66 $MainSubject['AddressPSC'].' '.$MainSubject['AddressTown'].'<br>'.
67 'IČ: '.$MainSubject['IC'].'<br>'.
68 'DIČ: '.$MainSubject['DIC'].'<br>'.
69 'Účet: '.$MainSubjectAccount['NumberFull'].'<br>'.
70 'Plátce DPH: '.$BooleanText[$MainSubject['PayVAT']].'<br>'.
71 '</td><td valign="top">'.
72 '<strong>Odběratel:</strong><br>'.
73 $Subject['Name'].'<br>'.
74 $Subject['AddressStreet'].'<br>'.
75 $Subject['AddressPSC'].' '.$Subject['AddressTown'].'<br>';
76 if($Subject['IC'] != 0) $Output .= 'IČ: '.$Subject['IC'].'<br>';
77 if($Subject['DIC'] != '') $Output .= 'DIČ: '.$Subject['DIC'].'<br>';
78 $Output .=
79 '</td></tr>'.
80 '<tr><td colspan="2"><hr></td></tr>'.
81 '<tr><td width="50%" valign="top">'.
82 '<strong>Platební podmínky:</strong><br>'.
83 'Číslo dokladu: '.$Invoice['BillCode'].'<br>'.
84 'Variabilní symbol: '.$Subject['Id'].'<br>'.
85 'Specifický symbol: '.$this->SpecificSymbol.'<br>'.
86 'Konstantní symbol:<br>'.
87 'Způsob úhrady: '.$PaymentType[$Invoice['Cash']].
88 '</td><td valign="top">'.
89 '<br>'.
90 'Datum vystavení: '.HumanDate($Invoice['TimeCreation']).'<br>'.
91 'Datum zdanitel. plnění: '.HumanDate($Invoice['TimeCreation']).'<br>'.
92 'Datum splatnosti: '.HumanDate($Invoice['TimeDue']).'<br>';
93 if(($Invoice['PeriodFrom'] != '') and ($Invoice['PeriodTo'] != ''))
94 $Output .= 'Fakturované období: '.HumanDate($Invoice['PeriodFrom']).' - '.
95 HumanDate($Invoice['PeriodTo']).'<br>';
96 $Output .= '</td></tr>'.
97 '<tr><td colspan="2">'.
98 '<hr>'.
99 '<br>'.
100 '<table border="0" width="100%">'.
101 '<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>'.
102 '<tr><td colspan="4"><hr></td></tr>';
103
104 $Total = 0;
105 foreach($InvoiceItems as $Item)
106 {
107 $Output .= '<tr><td>'.$Item['Description'].'</td><td align="right">'.
108 $Item['Quantity'].'</td><td align="right">'.$Item['Price'].
109 '&nbsp;Kč</td><td align="right">'.($Item['Quantity'] * $Item['Price']).'&nbsp;Kč</td></tr>';
110 $Total += ($Item['Quantity'] * $Item['Price']);
111 }
112 $Output .= '<tr><th colspan="3" align="left">Celkem</th><th align="right">'.$Total.'&nbsp;Kč</th></tr>';
113 $Output .= '</table>'.
114 '</td></tr>'.
115 '<tr><td colspan="2"><hr></td></tr>'.
116 '</table>';
117
118 return($Output);
119 }
120}
121
122class BillOperation extends Bill
123{
124 var $OperationId;
125
126 function GenerateHTML()
127 {
128 $DbResult = $this->Database->select('FinanceOperation', '*', '`Id`='.$this->OperationId);
129 $Operation = $DbResult->fetch_assoc();
130
131 $DbResult = $this->Database->select('Subject', '*', '`Id`='.$Operation['Subject']);
132 $Subject = $DbResult->fetch_assoc();
133
134 $DbResult = $this->Database->select('Subject', '*', '`Id`='.$Config['Finance']['MainSubjectId']);
135 $MainSubject = $DbResult->fetch_assoc();
136
137 $DbResult = $this->Database->query('SELECT FinanceBankAccount.*, CONCAT(FinanceBankAccount.Number, "/", FinanceBank.Code) AS NumberFull FROM FinanceBankAccount '.
138 'JOIN FinanceBank ON FinanceBank.Id=FinanceBankAccount.Bank '.
139 'WHERE (FinanceBankAccount.`Subject`='.$Config['Finance']['MainSubjectId'].') AND (FinanceBankAccount.`Use`=1)');
140 $MainSubjectAccount = $DbResult->fetch_assoc();
141
142 //$Dodavka = array();
143 //$DbResult = $this->Database->select('FinanceInvoiceItem', '*', 'FinanceInvoice='.$BillId);
144 //while($Item = $DbResult->fetch_assoc())
145 //{
146 // $InvoiceItems[$Item['Id']] = $Item;
147 //}
148
149 $Output = '<table width="100%" border="1" cellspacing="0" cellpadding="3"><tr><td width="50%">'.
150 '<strong>Firma:</strong><br>'.
151 $MainSubject['Name'].'<br>'.
152 $MainSubject['AddressStreet'].'<br>'.
153 $MainSubject['AddressPSC'].' '.$MainSubject['AddressTown'].'<br>'.
154 'IČ: '.$MainSubject['IC'].'<br>'.
155 'DIČ: '.$MainSubject['DIC'].'<br>'.
156 'Účet: '.$MainSubjectAccount['NumberFull'].'<br>'.
157 'Plátce DPH: '.$BooleanText[$MainSubject['PayVAT']].
158 '</td><td width="50%" valign="top">'.
159 '<font size="5"><strong>PŘÍJMOVÝ POKLADNÍ DOKLAD</strong></font><br><br>'.
160 'Číslo dokladu: '.$Bill['BillCode'].'<br>'.
161 'Datum vystavení: '.HumanDate($Bill['TimeCreate']).'<br>'.
162 '</td></tr>'.
163 '<tr><td colspan="2"><strong>Přijato od:</strong><br>'.
164 $Subject['Name'].'<br>'.
165 $Subject['AddressStreet'].'<br>'.
166 $Subject['AddressPSC'].' '.$Subject['AddressTown'].'<br>';
167 if($Subject['IC'] != 0) $Output .= 'IČ: '.$Subject['IC'].'<br>';
168 if($Subject['DIC'] != '') $Output .= 'DIČ: '.$Subject['DIC'].'<br>';
169 $Total = 0;
170 $Description = '';
171 //foreach($Dodavka as $Polozka)
172 //{
173 // $Description .= $Polozka['Description'].'<br>';
174 // $Total += ($Polozka['Quantity'] * $Polozka['Price']);
175 //}
176 $Output .= '</td></tr>'.
177 '<tr><td colspan="2"><strong>Částka:</strong> '.$Total.' Kč<br><br>'.
178 '</td></tr>'.
179 '<tr><td colspan="2"><strong>Účel platby:</strong><br>'.$Description.'</td></tr>'.
180 '<tr><td><br><br>Podpis příjemce:</td><td><br><br>Podpis pokladníka:</td></tr>';
181 $Output .= '</table>';
182 return($Output);
183 }
184}
Note: See TracBrowser for help on using the repository browser.