Nette\Database\Table filtrovanie podla existencie viacerých hodnôt v previazaných tabuľkách

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
romiix.org
Člen | 343
+
0
-

Zdravím,

mám zoznam položiek (item) na sklade.

Položky sú previazané cez branch_id s tabuľkou pobočiek (branch).

Každá pobočka má nastavené otváracie hodiny pre dni v týždni v tabuľke opening_hour ktorá smeruje cez branch_id na pobočku ku ktorej sa vzťahuje.

Otváracie hodiny sa dajú nastaviť pre deň v týždni stĺpcom day (1–7) alebo zvlášť pre konkrétny dátum stĺpcom date.

Ako cez Nette\Database\Table\Selection získať zoznam položiek, ktoré sú na hociktorej pobočke, ktorá má otvorené deň a hodinu keď po položku chce zákazník prísť aj ju vrátiť?

Príklad

Zákazník si chce zobraziť zoznam náradia, ktoré vie prevziať 1.2.2016 o 9:00 a vrátiť 2.2.2016 20:00.

Ako napísať foreach?

Vďaka!

Testovacia databáza

CZechBoY
Člen | 3608
+
0
-

Takhle zjistis kde je treba otevreno v ten cas vypujcky.
Uplne jsem nepochopil co potrebujes jeste za podminky takze zatim takhle.
Samozrejme na to jeste stejnym zpusobem navazes dalsi where, kde budes pozadovat oteviraci dobu k vraceni zbozi (nebyl jsem si jist jestli to musi byt stejna pobocka atd.).

$date = '2016-02-01';
$time = '09:00';
$db->table('opening_hour')
->where('(day = ? OR date = ?) AND from >= ? AND to <= ?', getDay($date), $date, $time, $time);
romiix.org
Člen | 343
+
0
-

Podstatou problému je, že to musí byť tá istá pobočka.

Výpis má obsahovať položky na pobočkách, ktoré majú otvorené ajv dobe vypožičania aj v dobe vrátenia.

To čo si napísal neodfiltruje položky na pobočkách, ktoré majú zatvorené v dobe vypožičania alebo v dobe vrátenia.