Changeset 902 for trunk/Modules/Contract/Contract.php
- Timestamp:
- Feb 18, 2021, 1:59:28 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Modules/Contract/Contract.php
r901 r902 91 91 if ($Row['File'] == null) 92 92 { 93 $this->Database->insert('File', array('Name' => '', 'Size' => 0, 'Directory' => $DirectoryId, 'Time' => 'NOW()')); 93 $this->Database->insert('File', array('Name' => '', 'Size' => 0, 'Directory' => $DirectoryId, 'Time' => 'NOW()', 94 'Hash' => 'SHA1(CONCAT(Id,Name,Size,Time))')); 94 95 $FileId = $this->Database->insert_id; 95 96 } else $FileId = $Row['File']; 96 97 $FileName = 'smlouva-'.$FileId.'.pdf'; 97 98 $Bill = new BillContract($this->System); 98 $Bill->Database = &$this->System->Database;99 $Bill->System = &$this->System;100 99 $Bill->ContractId = $Row['Id']; 101 100 $FullFileName = ModuleFile::Cast($this->System->GetModule('File'))->File->GetDir($DirectoryId).$FileName; … … 127 126 function GenerateHTML(): string 128 127 { 129 $Output = '<table width="100%"><tr><td colspan="2">'. 128 $this->BorderTop = '0cm'; 129 $this->BorderLeft = '1cm'; 130 $this->BorderRight = '1cm'; 131 $this->BorderBottom = '0cm'; 132 $this->FontSize = 10; 133 134 $DbResult = $this->Database->select('Subject', '*', '`Id`='.$this->System->Config['Finance']['MainSubjectId']); 135 if ($DbResult->num_rows > 0) 136 { 137 $Supplier = $DbResult->fetch_assoc(); 138 } else die('MainSubjectId not found in Subjects.'); 139 140 $DbResult = $this->Database->query('SELECT * FROM `Contract`'); 141 if ($DbResult->num_rows > 0) 142 { 143 $Contract = $DbResult->fetch_array(); 144 $DbResult = $this->Database->query('SELECT * FROM `Subject` WHERE `Id`='.$Contract['Subject']); 145 if ($DbResult->num_rows > 0) 146 { 147 $Subject = $DbResult->fetch_assoc(); 148 } else die('Customer Subject not found.'); 149 } else die('Contract not found.'); 150 151 $DbResult = $this->Database->select('DocumentLineCode', '*', '`Id`='.$Contract['BillCode']); 152 if ($DbResult->num_rows > 0) 153 { 154 $SupplierBillCode = $DbResult->fetch_assoc(); 155 } else die('BillCode not found.'); 156 $ContractCode = $SupplierBillCode['Name']; 157 158 $DbResult = $this->Database->select('Member', '*', '`Subject`='.$Contract['Subject']); 159 if ($DbResult->num_rows > 0) 160 { 161 $Customer = $DbResult->fetch_assoc(); 162 } else die('Customer not found.'); 163 164 $DbResult = $this->Database->query('SELECT * FROM ServiceCustomerRel '. 165 'LEFT JOIN Service ON Service.Id=ServiceCustomerRel.Service '. 166 'WHERE `ServiceCustomerRel`.`Customer`='.$Customer['Id'].' '); 167 if ($DbResult->num_rows > 0) 168 { 169 $Service = $DbResult->fetch_assoc(); 170 } else die('Service not found.'); 171 $ServiceType = $Service['Name']; 172 $Price = $Service['Price']; 173 174 $DbResult = $this->Database->query('SELECT NetworkInterface.LocalIP, NetworkInterface.MAC FROM NetworkDevice '. 175 'LEFT JOIN NetworkInterface ON NetworkInterface.Device=NetworkDevice.Id '. 176 'WHERE `NetworkDevice`.`Member`='.$Customer['Id'].' '); 177 if ($DbResult->num_rows > 0) 178 { 179 $NetworkInterface = $DbResult->fetch_assoc(); 180 } else die('NetworkDevice not found.'); 181 182 $PrefixMultiplier = new PrefixMultiplier(); 183 $MaxSpeed = $PrefixMultiplier->Add($Service['InternetSpeedMax'], 'bit/s'); 184 $MinSpeed = $PrefixMultiplier->Add($Service['InternetSpeedMin'], 'bit/s'); 185 $IpAddress = $NetworkInterface['LocalIP']; 186 $MacAddress = $NetworkInterface['MAC']; 187 $NetMask = ''; 188 $DefaultGateway = ''; 189 $Interface = 'Ethernet'; 190 $PrimaryDNS = '10.145.64.8'; 191 192 $VarSymbol = $Subject['Id']; 193 $DbResult = $this->Database->query('SELECT FinanceBankAccount.*, CONCAT(FinanceBankAccount.Number, "/", FinanceBank.Code) AS NumberFull FROM FinanceBankAccount '. 194 'JOIN FinanceBank ON FinanceBank.Id=FinanceBankAccount.Bank '. 195 'WHERE (FinanceBankAccount.`Subject`='.$this->System->Config['Finance']['MainSubjectId'].') AND (FinanceBankAccount.`Use`=1)'); 196 if ($DbResult->num_rows > 0) 197 { 198 $SupplierBankAccount = $DbResult->fetch_assoc(); 199 } else die('Bank account not found.'); 200 201 $DbResult = $this->Database->select('FinanceBillingPeriod', '*', 'Id='.$Customer['BillingPeriod']); 202 if ($DbResult->num_rows > 0) 203 { 204 $BillingPeriod = $DbResult->fetch_assoc(); 205 } else die('BillingPeriod not found.'); 206 $PaymentPeriod = $BillingPeriod['Name']; 207 208 $BankAccount = $SupplierBankAccount['NumberFull']; 209 210 $DbResult = $this->Database->select('Member', '*', '`Subject`='.$this->System->Config['Finance']['MainSubjectId']); 211 if ($DbResult->num_rows > 0) 212 { 213 $SupplierMember = $DbResult->fetch_assoc(); 214 } else die('Customer not found.'); 215 216 $DbResult = $this->Database->query('SELECT Contact.Value AS Phone FROM User '. 217 'LEFT JOIN Contact ON Contact.User=User.ID AND Contact.Category=1 '. 218 'WHERE User.Id='.$SupplierMember['ResponsibleUser']); 219 if ($DbResult->num_rows > 0) 220 { 221 $SupplierUser = $DbResult->fetch_assoc(); 222 $SupplierPhone = $SupplierUser['Phone']; 223 } else $SupplierPhone = ''; 224 225 $DbResult = $this->Database->query('SELECT Contact.Value AS Phone FROM User '. 226 'LEFT JOIN Contact ON Contact.User=User.ID AND Contact.Category=1 '. 227 'WHERE User.Id='.$Customer['ResponsibleUser']); 228 if ($DbResult->num_rows > 0) 229 { 230 $CustomerUser = $DbResult->fetch_assoc(); 231 $CustomerPhone = $CustomerUser['Phone']; 232 if ($CustomerPhone == null) $CustomerPhone = ''; 233 } else $CustomerPhone = ''; 234 235 $DbResult = $this->Database->query('SELECT Contact.Value AS Email FROM User '. 236 'LEFT JOIN Contact ON Contact.User=User.ID AND Contact.Category=4 '. 237 'WHERE User.Id='.$Customer['ResponsibleUser']); 238 if ($DbResult->num_rows > 0) 239 { 240 $CustomerUser = $DbResult->fetch_assoc(); 241 $CustomerEmail = $CustomerUser['Email']; 242 if ($CustomerEmail == null) $CustomerEmail = ''; 243 } else $CustomerEmail = ''; 244 245 $SupplierName = $Supplier['Name']; 246 $SupplierStreet = $Supplier['AddressStreet']; 247 $SupplierTown = $Supplier['AddressTown']; 248 $SupplierPsc = $Supplier['AddressPSC']; 249 $SupplierIC = $Supplier['IC']; 250 $SupplierDIC = 'neplátce DPH'; 251 252 $Web = '<a href="https://www.zdechov.net/">www.zdechov.net</a>'; 253 254 $CustomerName = $Subject['Name']; 255 $CustomerStreet = $Subject['AddressStreet']; 256 $CustomerTown = $Subject['AddressTown']; 257 $CustomerPsc = $Subject['AddressPSC']; 258 $CustomerIC = $Subject['IC']; 259 $CustomerDIC = $Subject['DIC']; 260 $CustomerPhone = $CustomerPhone; 261 $CustomerEmail = $CustomerEmail; 262 263 $SignDate = HumanDate($Contract['ValidFrom']); 264 265 266 $Output = '<html> 267 <head></head> 268 <body><table width="100%"><tr><td colspan="2">'. 130 269 '<font size="6"><div align="center">Smlova o připojení k internetu a poskytování datových služeb</font></div>'. 131 '<font size="3"><div align="center">Číslo: </font></div>'.132 '< hr></td></tr>'.133 '< hr>'.270 '<font size="3"><div align="center">Číslo: '.$ContractCode.'</font></div>'. 271 '</td></tr>'. 272 '</table>'. 134 273 '<br>'. 135 '<tr><td colspan="2">'. 274 '<table width="100%">'. 275 '<tr><th width="25%">Poskytovatel:</td><td width="25%"></td><th width="25%">Odběratel:</th><td width="25%"></td></tr>'. 276 '<tr><td>'.NotBlank($SupplierName).'</td><td></td><td>'.NotBlank($CustomerName).'</td><td></td></tr>'. 277 '<tr><td>'.NotBlank($SupplierStreet).'</td><td></td><td>'.NotBlank($CustomerStreet).'</td><td></td></tr>'. 278 '<tr><td>'.NotBlank($SupplierTown).'</td><td></td><td>'.NotBlank($CustomerTown).'</td><td></td></tr>'. 279 '<tr><td>'.NotBlank($SupplierPsc).'</td><td></td><td>'.NotBlank($CustomerPsc).'</td><td></td></tr>'. 280 '<tr><td colspan="4"> </td></tr>'. 281 '<tr><td>IČ:</td><td>'.NotBlank($SupplierIC).'</td><td>Telefon:</td><td>'.NotBlank($CustomerPhone).'</td></tr>'. 282 '<tr><td>DIČ:</td><td>'.NotBlank($SupplierDIC).'</td><td>E-mail:</td><td>'.NotBlank($CustomerEmail).'</td></tr>'. 283 '<tr><td>Telefon:</td><td>'.NotBlank($SupplierPhone).'</td><td>RČ/IČ:</td><td>'.NotBlank($CustomerIC).'</td></tr>'. 284 '<tr><td>Web:</td><td>'.NotBlank($Web).'</td><td>OP/DIČ:</td><td>'.NotBlank($CustomerDIC).'</td></tr>'. 285 '<tr><td>Bank. spojení:</td><td>'.NotBlank($BankAccount).'</td><td>Přípojné místo:</td><td></td></tr>'. 286 '</table>'. 287 '<br/>'. 136 288 '<strong>I. Předmět smlouvy:</strong><br/>'. 137 289 'Smlouva se uzavírá mezi Poskytovatelem a Odběratelem a předmětem smlouvy je poskytování datových služeb a připojení k síti internet, umožňující Odběrateli odebírat v koncovém bodě za úplatu internetovou konektivitu prostřednictvím telekomunikační sítě Poskytovatele. Odběratel se zavazuje za tyto služby Poskytovateli platit cenu ve výši a pravidelných intervalech uvedených v této smlouvě. Smlouva se sjednává na dobu neurčitou.<br/>'. 138 290 '<br/>'. 139 291 '<strong>II. Poskytované služby:</strong><br/>'. 140 ''. 292 '<table width="100%" border="1">'. 293 '<tr><td width="50%" aling="center">Zvolený typ (tarif) služby:</td><td width="50%">'.NotBlank($ServiceType).'</td></tr>'. 294 '</table>'. 295 '<br/>'. 296 '<table width="100%" border="1">'. 297 '<tr><th colspan="4" align="center">Technické specifikace služby</th></tr>'. 298 '<tr><td width="25%">Max. rychlost:</td><td width="25%">'.NotBlank($MaxSpeed).'</td><td width="25%">IP adresa:</td><td width="25%">'.NotBlank($IpAddress).'</td></tr>'. 299 '<tr><td>Min. rychlost:</td><td>'.NotBlank($MinSpeed).'</td><td>Maska podsítě:</td><td>'.NotBlank($NetMask).'</td></tr>'. 300 '<tr><td>MAC adresa:</td><td>'.NotBlank($MacAddress).'</td><td>Výchozí brána:</td><td>'.NotBlank($DefaultGateway).'</td></tr>'. 301 '<tr><td>Předávací rozhraní:</td><td>'.NotBlank($Interface).'</td><td>Primární DNS:</td><td>'.NotBlank($PrimaryDNS).'</td></tr>'. 302 '</table>'. 141 303 '<br/>'. 142 304 '<strong>III. Cena a platební podmínky:</strong><br/>'. 143 305 'Poplatky a pravidelné platby budou na základě této smlouvy hrazeny Odběratelem na bankovní účet Poskytovatele bankovním převodem, nebo složenkou, v uvedené výši a s uvedenou frekvencí. Jako VS bude uvedeno přidělené číslo. V případě prodlení s platbou mohou být uplatněny sankce, či služba pozastavena, nebo zrušena (dle Ceníku a Všeobecných smluvních podmínek).<br/>'. 306 '<table width="100%">'. 307 '<tr><td width="25%">Cena služby:</td><td width="25%">'.NotBlank($Price).' Kč</td><td width="25%">Číslo účtu:</td><td width="25%">'.NotBlank($BankAccount).'</td></tr>'. 308 '<tr><td>Pronájem zařízení:</td><td>0 Kč</td><td>Variabilní symbol:</td><td>'.NotBlank($VarSymbol).'</td></tr>'. 309 '<tr><td>Frekvence platby:</td><td>'.NotBlank($PaymentPeriod).'</td><td></td><td></td></tr>'. 310 '<tr><td>První platba:</td><td></td><td></td><td></td></tr>'. 311 '<tr><td>Splatnost:</td><td>do 21. dne uvedeného měsíce</td><td></td><td></td></tr>'. 312 '</table>'. 144 313 '<br/>'. 145 314 '<strong>IV. Závěrečná ustanovení:</strong><br/>'. 146 'Odběratel svým podpisem stvrzuje, že se seznámil a souhlasí se Všeobecnými smluvními podmínkami, aktuálním Ceníkem Poskytovatele a výše uvedenými skutečnostmi, které tvoří součást této Smlouvy. Dálestvrzuje, že souhlasí s provedením instalace a umístěním přijímacího zařízení a kabeláže a nemá proti nim námitky, příp., že vlastní veškerá příslušná povolení a souhlas s jejich umístěním. Smlouva je vyhotovena ve dvou provedeních, kdy Odběratel i Poskytovatel obdrží po jedné. Aktivace služby začíná dnem podpisu této Smlouvy. Výpovědní lhůta je 30 dnů. Případné změny této Smlouvy vyžadují formy vzájemně oběma stranami podepsaného dodatku.<br/>'. 147 '<br/>'. 315 'Odběratel svým podpisem stvrzuje, že se seznámil a souhlasí se Všeobecnými smluvními podmínkami, aktuálním Ceníkem Poskytovatele a výše uvedenými skutečnostmi, které tvoří součást této Smlouvy. Dále stvrzuje, že souhlasí s provedením instalace a umístěním přijímacího zařízení a kabeláže a nemá proti nim námitky, příp., že vlastní veškerá příslušná povolení a souhlas s jejich umístěním. Smlouva je vyhotovena ve dvou provedeních, kdy Odběratel i Poskytovatel obdrží po jedné. Aktivace služby začíná dnem podpisu této Smlouvy. Výpovědní lhůta je 30 dnů. Případné změny této Smlouvy vyžadují formy vzájemně oběma stranami podepsaného dodatku.<br/>'. 316 '<br/>'. 317 '<table width="100%">'. 318 '<tr><td width="20%" aling="left">Ve Zděchově</td><td width="20%">dne '.NotBlank($SignDate).'</td></tr>'. 319 '</table>'. 320 '<br/><br/><br/><br/>'. 321 '<table width="100%">'. 322 '<tr><td width="50%" aling="center">odběratel</td><td width="50%">dodavatel</td></tr>'. 323 '</table>'. 148 324 '</td></tr>'. 149 '</table>' ;150 325 '</table>'. 326 '</body></html>'; 151 327 return $Output; 152 328 }
Note:
See TracChangeset
for help on using the changeset viewer.