Changeset 902
- Timestamp:
- Feb 18, 2021, 1:59:28 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Common/Form/Types/File.php
r887 r902 127 127 $File = &$Item['Value']; 128 128 $Properties = array('Name' => $File->Name, 129 'Size' => $File->GetSize(), 'Directory' => $File->Directory );129 'Size' => $File->GetSize(), 'Directory' => $File->Directory, 'Hash' => 'SHA1(CONCAT(Id,Name,Size,Time))'); 130 130 $DbResult = $this->Database->select('File', '*', 'Id='.$File->Id); 131 131 if ($DbResult->num_rows > 0) -
trunk/Common/Global.php
r887 r902 328 328 function NotBlank(string $Text): string 329 329 { 330 if ($Text == '') return '  ';330 if ($Text == '') return ' '; 331 331 else return $Text; 332 332 } -
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 } -
trunk/Modules/Finance/Manage.php
r901 r902 429 429 if ($Row['File'] == null) 430 430 { 431 $this->Database->insert('File', array('Name' => '', 'Size' => 0, 'Directory' => $DirectoryId, 'Time' => 'NOW()')); 431 $this->Database->insert('File', array('Name' => '', 'Size' => 0, 'Directory' => $DirectoryId, 'Time' => 'NOW()', 432 'Hash' => 'SHA1(CONCAT(Id,Name,Size,Time))')); 432 433 $FileId = $this->Database->insert_id; 433 434 } else $FileId = $Row['File']; 434 435 $FileName = 'doklad-'.$FileId.'.pdf'; 435 436 $Bill = new BillInvoice($this->System); 436 $Bill->Database = &$this->System->Database;437 $Bill->System = &$this->System;438 437 $Bill->InvoiceId = $Row['Id']; 439 438 $FullFileName = ModuleFile::Cast($this->System->GetModule('File'))->File->GetDir($DirectoryId).$FileName; … … 460 459 { 461 460 $DbResult2 = $this->Database->insert('File', array('Name' => '', 'Size' => 0, 462 'Directory' => $DirectoryId, 'Time' => 'NOW()' ));461 'Directory' => $DirectoryId, 'Time' => 'NOW()', 'Hash' => 'SHA1(CONCAT(Id,Name,Size,Time))')); 463 462 $FileId = $this->Database->insert_id; 464 463 } else $FileId = $Row['File']; 465 464 $FileName = 'doklad2-'.$FileId.'.pdf'; 466 465 $Bill = new BillOperation($this->System); 467 $Bill->Database = &$this->System->Database;468 $Bill->System = &$this->System;469 466 $Bill->OperationId = $Row['Id']; 470 467 $FullFileName = ModuleFile::Cast($this->System->GetModule('File'))->File->GetDir($DirectoryId).$FileName; -
trunk/Modules/Portal/Portal.php
r901 r902 274 274 'WHERE `User`='.ModuleUser::Cast($this->System->GetModule('User'))->User->User['Id']); 275 275 $CustomerUserRel = $DbResult->fetch_assoc(); 276 $CustomerId = $CustomerUserRel[' Member'];276 $CustomerId = $CustomerUserRel['Customer']; 277 277 278 278 $DbResult = $this->Database->update('Member', 'Id='.$CustomerId, -
trunk/Packages/Common/Pdf.php
r901 r902 4 4 { 5 5 public bool $Checked = false; 6 public string $BorderTop = ''; 7 public string $BorderLeft = ''; 8 public string $BorderRight = ''; 9 public string $BorderBottom = ''; 10 public int $FontSize = 0; 11 public string $OutputFormat = 'pdf'; 12 public string $Charset = '8859-2'; 6 13 7 14 function GenerateHTML(): string … … 24 31 } else throw new Exception('htmldoc is not installed.'); 25 32 } 33 $Parameters = '--no-numbered --footer . --webpage --no-embedfonts --charset '.$this->Charset.' -t '.$this->OutputFormat; 34 if ($this->FontSize > 0) $Parameters .= ' --fontsize '.$this->FontSize; 35 if ($this->BorderLeft != '') $Parameters .= ' --left '.$this->BorderLeft; 36 if ($this->BorderTop != '') $Parameters .= ' --top '.$this->BorderTop; 37 if ($this->BorderRight != '') $Parameters .= ' --right '.$this->BorderRight; 38 if ($this->BorderBottom != '') $Parameters .= ' --bottom '.$this->BorderBottom; 26 39 $Output = shell_exec('echo "'.addslashes($Encoding->FromUTF8($HtmlCode)). 27 '"|htmldoc --no-numbered --webpage --no-embedfonts --charset 8859-2 -t pdf-');40 '"|htmldoc '.$Parameters.' -'); 28 41 return $Output; 29 42 } -
trunk/Packages/Common/PrefixMultiplier.php
r874 r902 72 72 class PrefixMultiplier 73 73 { 74 function TruncateDigits($Value, $Digits = 4) 74 function TruncateDigits($Value, $Digits = 4): string 75 75 { 76 76 for ($II = 2; $II > -6; $II--) … … 87 87 } 88 88 89 function Add($Value, $Unit, $Digits = 4, $PrefixType = 'Decimal') 89 function Add($Value, $Unit, $Digits = 4, $PrefixType = 'Decimal'): string 90 90 { 91 91 global $PrefixMultipliers;
Note:
See TracChangeset
for help on using the changeset viewer.