[50] | 1 | <?php
|
---|
| 2 |
|
---|
[152] | 3 | class Bill extends Module
|
---|
[50] | 4 | {
|
---|
| 5 | var $SpecificSymbol = 1; // počítačová sít
|
---|
| 6 |
|
---|
[498] | 7 | function GenerateHTML()
|
---|
[50] | 8 | {
|
---|
[498] | 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 | {
|
---|
[477] | 34 | global $SpecificSymbol, $Config;
|
---|
[498] | 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']);
|
---|
[156] | 40 | $Subject = $DbResult->fetch_assoc();
|
---|
[498] | 41 |
|
---|
[477] | 42 | $DbResult = $this->Database->select('Subject', '*', '`Id`='.$Config['Finance']['MainSubjectId']);
|
---|
| 43 | $MainSubject = $DbResult->fetch_assoc();
|
---|
[498] | 44 |
|
---|
[477] | 45 | $DbResult = $this->Database->select('FinanceBankAccount', '*', '(`Subject`='.
|
---|
[498] | 46 | $Config['Finance']['MainSubjectId'].') AND (`Use`=1)');
|
---|
[477] | 47 | $MainSubjectAccount = $DbResult->fetch_assoc();
|
---|
[498] | 48 |
|
---|
[50] | 49 | $Dodavka = array();
|
---|
[498] | 50 | $DbResult = $this->Database->select('FinanceInvoiceItem', '*', 'FinanceInvoice='.$this->InvoiceId);
|
---|
[156] | 51 | while($Item = $DbResult->fetch_assoc())
|
---|
[50] | 52 | {
|
---|
[498] | 53 | $InvoiceItems[$Item['Id']] = $Item;
|
---|
[50] | 54 | }
|
---|
[498] | 55 |
|
---|
[184] | 56 | $PaymentType = array('převodem', 'hotově');
|
---|
[477] | 57 | $BooleanText = array('Ne', 'Ano');
|
---|
[498] | 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>';
|
---|
[184] | 102 |
|
---|
[498] | 103 | $Total = 0;
|
---|
| 104 | foreach($InvoiceItems as $Item)
|
---|
[295] | 105 | {
|
---|
[498] | 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']);
|
---|
[50] | 110 | }
|
---|
[498] | 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);
|
---|
[50] | 118 | }
|
---|
[498] | 119 | }
|
---|
[396] | 120 |
|
---|
[498] | 121 | class BillOperation extends Bill
|
---|
| 122 | {
|
---|
| 123 | var $OperationId;
|
---|
| 124 |
|
---|
| 125 | function GenerateHTML()
|
---|
[50] | 126 | {
|
---|
[498] | 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();
|
---|
[50] | 132 |
|
---|
[498] | 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())
|
---|
[133] | 143 | //{
|
---|
[498] | 144 | // $InvoiceItems[$Item['Id']] = $Item;
|
---|
| 145 | //}
|
---|
[50] | 146 |
|
---|
[498] | 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>';
|
---|
[50] | 180 | return($Output);
|
---|
| 181 | }
|
---|
| 182 | }
|
---|
| 183 |
|
---|
| 184 | ?>
|
---|