====== PC Predpredaj ====== ==== Automatická aktualizácia dát zo servera ==== V prvom rade musí byť zapnutá v **PredpredajCfg.xml**, atribút **noveData** (viď http://192.168.241.14/wiki/doku.php?id=dev_doc:configs#predpredajcfg.xml). Spúšta sa hneď pri nábehu aplikácie. Prebieha v nasledovných krokoch: * Z databázy sa vyčíta, aké súbory sú vygenerované pre túto konkrétnu "kasu": SELECT emt_Subory.Nazov, emt_Kasa.CKasy FROM emt_Kasa INNER JOIN emt_Skupiny_Strojceky ON emt_Kasa.KasaID = emt_Skupiny_Strojceky.KasaID INNER JOIN emt_Subory ON emt_Skupiny_Strojceky.SkupinaID = emt_Subory.SkupinaID WHERE (emt_Kasa.CKasy = '",cisloKasy,"') AND (emt_Subory.PlatnostOd <= CONVERT(DATETIME,'",sqlActDate,"',102)) AND (emt_Subory.PlatnostDo > CONVERT(DATETIME, '",sqlActDate,"',102)) kde: //cisloKasy// je ID PC Predpredaja z **PredpredajCfg.xml**, atribút **computerID** //sqlActDate// je aktuálny dátum a čas Z toho vyplýva nutnosť mať priradené číslo kasy, mať ju v databáze, mať ju priradenú na správnu skupinu, mať vygenerované dáta pre ňu * Vyčítané súbory zo servera sa porovnajú s lokálnymi dátami. Porovnáva sa čas poslednej modifikácie súboru (struct stat::st_mtime). Ak je súbor na serveri novší, alebo lokálny súbor neexistuje, zaradí sa medzi súbory na aktualizáciu. * Prebehne kontrola, či je otvorený odpočet. Ak áno, tak sa zobrazí hláška o tom, že sú k dispozícii novšie dáta a pre ich aktualizáciu treba uzavrieť odpočet. * Ak nie je otvorený odpočet, novšie súbory zo servera sa po jednom prekopírujú na lokálne umiestnenie (t.j. nastavená cesta k dátam + podadresár //zipdata//) * Nakoniec sa súbory (ak majú príponu .zip (case insensitive)) po jednom rozbalia o úroveň vyššie t.j. na nastavenú cestu pre dáta