diff --git a/app/Model/Facade/ZakaznikFacade.php b/app/Model/Facade/ZakaznikFacade.php new file mode 100644 index 0000000..f4855ab --- /dev/null +++ b/app/Model/Facade/ZakaznikFacade.php @@ -0,0 +1,109 @@ +kufrikExplorer->query($sql, ...$params)->fetchAll(); + } + + /** + * Detail zákazníka podle ID + */ + public function getById(int $id) + { + return $this->kufrikExplorer->table('ZAKAZNIK')->where('ID', $id)->fetch(); + } + + /** + * Uložení / Aktualizace zákazníka + */ + public function save(array $data, ?int $id = null, int $firmaId): void + { + // Sanitizace prázdných řetězců na NULL pro volitelné položky + $values = [ + 'FIRMA_ID' => $firmaId, + 'JMENO' => $data['JMENO'] ?: null, + 'PRIJMENI' => $data['PRIJMENI'], + 'ULICE' => $data['ULICE'] ?: null, + 'MESTO' => $data['MESTO'] ?: null, + 'PSC' => $data['PSC'] ?: null, + 'IC' => $data['IC'] ?: null, + 'DIC' => $data['DIC'] ?: null, + 'TELEFON' => $data['TELEFON'] ?: null, + 'EMAIL' => $data['EMAIL'] ?: null, + 'AKTIVNI' => (int) ($data['AKTIVNI'] ?? 1), + ]; + + if ($id) { + unset($values['FIRMA_ID']); // FIRMA_ID se při úpravě nemění + $this->kufrikExplorer->table('ZAKAZNIK')->where('ID', $id)->update($values); + } else { + $this->kufrikExplorer->table('ZAKAZNIK')->insert($values); + } + } + + /** + * Přepnutí stavu Aktivní / Neaktivní + */ + public function toggleAktivni(int $id): bool + { + $zakaznik = $this->getById($id); + if (!$zakaznik) { + return false; + } + + $novyStav = !$zakaznik->AKTIVNI; + + // OPRAVA: Provedeme update přímo přes Selection podle sloupce 'ID' + $this->kufrikExplorer->table('ZAKAZNIK') + ->where('ID', $id) + ->update(['AKTIVNI' => (int) $novyStav]); + + return $novyStav; + } + + /** + * Smazání zákazníka + */ + public function delete(int $id): void + { + $this->kufrikExplorer->table('ZAKAZNIK')->where('ID', $id)->delete(); + } +} \ No newline at end of file diff --git a/app/Model/Login/ServerCredentials.php b/app/Model/Login/ServerCredentials.php deleted file mode 100644 index bf1ad49..0000000 --- a/app/Model/Login/ServerCredentials.php +++ /dev/null @@ -1,48 +0,0 @@ -parseServer($server_string); - } - - private function parseServer($server_string) - { - $this->server = $server_string; //default - $this->databaze = "psx"; //default - - if (str_contains($server_string, "@")) { //je tam zavináč - $str_arr = explode("@", $server_string); - if (count($str_arr) <> 2) - return; //tady něco nehraje - $this->server = trim($str_arr[0]); - $this->databaze = trim($str_arr[1]); - } - } -} \ No newline at end of file diff --git a/app/Model/Login/UserIdentity.php b/app/Model/Login/UserIdentity.php deleted file mode 100644 index 836f7ea..0000000 --- a/app/Model/Login/UserIdentity.php +++ /dev/null @@ -1,31 +0,0 @@ -
| Jméno / Firma | +Adresa | +IČ / DIČ | +Kontakt | +Stav | +Akce | +
|---|---|---|---|---|---|
| + {$z->PRIJMENI} {$z->JMENO} + | +
+ {if $z->ULICE || $z->MESTO}
+ {$z->ULICE}
+ {$z->PSC} {$z->MESTO}
+ {else}
+ —
+ {/if}
+ |
+
+ {if $z->IC}
+ IČ: {$z->IC}
+ DIČ: {$z->DIC}
+ {else}
+ —
+ {/if}
+ |
+
+ {if $z->TELEFON}
+ {$z->TELEFON}
+ {/if}
+ {if $z->EMAIL}
+
+ {/if}
+ {if !$z->TELEFON && !$z->EMAIL}
+ —
+ {/if}
+ |
+ + {if $z->AKTIVNI} + Aktivní + {else} + Neaktivní + {/if} + | ++ + | +
| + + Nebyli nalezeni žádní zákazníci odpovídající zadaným kritériím. + | +|||||