RaportyKasowe.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487
  1. <?php
  2. Lib::loadClass('RouteBase');
  3. Lib::loadClass('ProcesHelper');
  4. class Route_UrlAction_RaportyKasowe extends RouteBase {
  5. private $REFERER, $LAST_REFERER;
  6. private $RK, $BO;
  7. public function handleAuth() {
  8. if (!User::logged()) {
  9. throw new HttpException('Unauthorized', 401);
  10. }
  11. $this->LAST_REFERER = $_SERVER['HTTP_REFERER'];
  12. if (($this->REFERER=V::get('REFERER','',$_POST))=='') $this->REFERER = $_SERVER['HTTP_REFERER'];
  13. try {
  14. if (!($ID_BILLS_RK = V::get('ID_BILLS_RK',0,$_GET,'int'))) throw new Exception("Błąd parametru");
  15. if ($result = DB::getPDO()->fetchall("select * from BILLS_RK where ID='{$ID_BILLS_RK}' and L_APPOITMENT_USER='".User::getLogin()."'")) $this->RK = $result[0];
  16. else throw new Exception("Dostęp zabroniony");
  17. if ($result = DB::getPDO()->fetchall("select * from BILLING_OWNER where ID='{$this->RK['ID_BILLING_OWNER']}'")) $this->BO = $result[0];
  18. else throw new Exception("Błąd spójności danych");
  19. } catch (Exception $e) {
  20. SE_Layout::gora();
  21. SE_Layout::menu();
  22. SE_Layout::alert('danger',$e->getMessage());
  23. ?>
  24. <div class="container" style="text-align:center">
  25. <a href="<?php echo $this->REFERER?>" class="btn btn-primary">Powrót</a>
  26. </div>
  27. <?php
  28. SE_Layout::dol();
  29. die();
  30. }
  31. $this->importRemote("L1");
  32. }
  33. private function importRemote($source) {
  34. if ($source == "L1") {
  35. $REMOTE_ID_BILLING_USERS = DB::getPDO()->fetchValue("select ID_BILLING_USERS from ADMIN_USERS where ID='".User::getID()."'");
  36. if (!$REMOTE_ID_BILLING_USERS) return false;
  37. // $query = "select '".User::getID()."' as ID_ADMIN_USERS, '{$BO}' as ID_BILLING_OWNER, bkp.ID as REMOTE_ID, bkp.ID_BILLIN
  38. }
  39. }
  40. private function initialize() {
  41. SE_Layout::gora();
  42. SE_Layout::menu();
  43. try {
  44. $lastDate = DB::getPDO()->fetchValue("select max(RK_DATE_TO) from BILLS_RK where A_STATUS='OFF_HARD' and ID_BILLING_OWNER='{$this->RK['ID_BILLING_OWNER']}' and L_APPOITMENT_USER='".User::getLogin()."'");
  45. if (!$lastRK=($lastDate)) $lastDate = '2004-06-30';
  46. $minTS = strtotime($lastDate . " + 1 day");
  47. $minDate = date("Y-m-d", $minTS);
  48. $firstTS = strtotime(date("Y-m", strtotime($minDate)));
  49. $nierozliczone = false;
  50. if ($ID_BILLING_USERS = DB::getPDO()->fetchValue("select ID_BILLING_USERS from ADMIN_USERS where ID='".User::getID()."'")) {
  51. //$ID_BILLING_USERS=
  52. $maxMonth = DB::getPDO(931)->fetchValue("select substring(min(DATE),1,7) from (select min(bkp.BILL_DATE) as DATE from BILLING_NUMBERS bn join BILLS_KP bkp on bn.ID=bkp.ID_BILLING_NUMBERS join BILLING_USERS bu on bn.ID_BILLING_USERS=bu.ID where bkp.ID_BILLS_RK_POS is null and bu.BILLING_OWNER='{$this->RK['ID_BILLING_OWNER']}' and bn.U_ID='{$ID_BILLING_USERS}' union select min(bkw.BILL_DATE) as DATE from BILLING_NUMBERS bn join BILLS_KW bkw on bn.ID=bkw.ID_BILLING_NUMBERS join BILLING_USERS bu on bn.ID_BILLING_USERS=bu.ID where bkw.ID_BILLS_RK_POS is null and bu.BILLING_OWNER='{$this->RK['ID_BILLING_OWNER']}' and bn.U_ID='{$ID_BILLING_USERS}') as r1");
  53. if (!$nierozliczone=$maxMonth) $maxMonth = date("Y-m");
  54. } else $maxMonth = date("Y-m");
  55. $maxTS = strtotime($maxMonth);
  56. if ($firstTS > $maxTS) throw new Exception("poprzedni raport kasowy zawiera już okres do końca bieżącego miesiąca.");
  57. $months = Array($maxMonth);
  58. while ($maxTS > $firstTS) {
  59. $maxTS = strtotime($maxMonth. " -1 month");
  60. $maxMonth = date("Y-m", $maxTS);
  61. $months[] = $maxMonth;
  62. }
  63. $saldo = DB::getPDO()->fetchValue("select coalesce(RK_FINAL_BALANCE,0) from BILLS_RK where A_STATUS='OFF_HARD' and ID_BILLING_OWNER='{$this->RK['ID_BILLING_OWNER']}' and L_APPOITMENT_USER='".User::getLogin()."' order by ID desc limit 1");
  64. $numer = DB::getPDO()->fetchValue("select coalesce(max(RK_NUMBER),0)+1 from BILLS_RK where A_STATUS='OFF_HARD' and ID_BILLING_OWNER='{$this->RK['ID_BILLING_OWNER']}' and L_APPOITMENT_USER='".User::getLogin()."'");
  65. if (($month = V::get('MONTH','',$_POST))!='') {
  66. if (!in_array($month, $months)) throw new Exception("niedopuszczalny miesiąc raportu (abuse - wysłano do administratora informację na temat próby nielegalnego dostępu do danych!)");
  67. if ($minTS > strtotime($month)) $startDate = $minDate;
  68. else $startDate = date("Y-m-d", strtotime($month));
  69. $sqlObj = new stdClass();
  70. $sqlObj->ID = $this->RK['ID'];
  71. $sqlObj->A_STATUS = 'NORMAL';
  72. $sqlObj->ID_ADMIN_USERS = User::getID();
  73. $sqlObj->RK_NUMBER = $numer;
  74. $sqlObj->RK_MONTH = $month;
  75. $sqlObj->RK_DATE_FROM = $startDate;
  76. $sqlObj->RK_STARTING_BALANCE = $saldo;
  77. $affected = DB::getDB()->UPDATE_OBJ('BILLS_RK', $sqlObj);
  78. if ($affected) {
  79. SE_Layout::alert('success','Pomyślnie zainicjalizowano raport kasowy.');
  80. ?>
  81. <div class="container" style="text-align:center">
  82. <form method="post">
  83. <input type="hidden" name="REFERER" value="<?php echo $this->REFERER?>"/>
  84. <button type="submit" class="btn btn-primary">Edytuj</button>
  85. <a href="<?php echo $this->REFERER?>" class="btn btn-default">Powrót</a>
  86. </form>
  87. </div>
  88. <?php
  89. }
  90. else {
  91. SE_Layout::alert('warning','Wystąpił nieznany błąd podczas inicjalizowania raportu kasowego.');
  92. ?>
  93. <div class="container" style="text-align:center">
  94. <a href="<?php echo $this->REFERER?>" class="btn btn-primary">Powrót</a>
  95. </div>
  96. <?php
  97. }
  98. } else {
  99. ?>
  100. <div class="container" style="margin-top:20px">
  101. <form class="form-horizontal" method="post">
  102. <legend>Inicjalizacja raportu kasowego</legend>
  103. <div class="form-group">
  104. <label class="col-sm-3 control-label">Operator</label>
  105. <div class="col-sm-9" style="margin-top:7px;"><?php echo $this->BO['name1']?></div>
  106. </div>
  107. <div class="form-group">
  108. <label class="col-sm-3 control-label">Nr kasy</label>
  109. <div class="col-sm-9" style="margin-top:7px;"><?php echo User::getID()?></div>
  110. </div>
  111. <div class="form-group">
  112. <label class="col-sm-3 control-label">Numer raportu</label>
  113. <div class="col-sm-9" style="margin-top:7px;"><?php echo $numer?></div>
  114. </div>
  115. <div class="form-group">
  116. <label class="col-sm-3 control-label">Końcowa data poprzedniego raportu</label>
  117. <div class="col-sm-9" style="margin-top:7px;"><?php echo ($lastRK?$lastDate:"brak")?></div>
  118. </div>
  119. <div class="form-group">
  120. <label class="col-sm-3 control-label">Miesiąc, którego dotyczy raport</label>
  121. <div class="col-sm-2">
  122. <select class="form-control" name="MONTH">
  123. <?php foreach ($months as $month) echo "<option value='{$month}'>{$month}</option>"?>
  124. </select>
  125. </div>
  126. <?php if ($nierozliczone) echo '<div class="col-sm-7" style="margin-top:7px;">(znaleziono w L1 nierozliczone dokumenty kasowe z miesiąca '.$months[0].')</div>'?>
  127. </div>
  128. <div class="form-group">
  129. <label class="col-sm-3 control-label">Saldo początkowe</label>
  130. <div class="col-sm-9" style="margin-top:7px;"><?php echo number_format($saldo, 2, ',', ' ') . " PLN"?></div>
  131. </div>
  132. <div class="form-group">
  133. <div class="col-sm-offset-3 col-sm-9">
  134. <button type="submit" class="btn btn-primary">Zapisz</button>
  135. <a href="<?php echo $this->REFERER?>" class="btn btn-default">Anuluj</a>
  136. </div>
  137. </div>
  138. <input type="hidden" name="REFERER" value="<?php echo $this->REFERER?>"/>
  139. </form>
  140. </div>
  141. <?php
  142. }
  143. } catch (Exception $e) {
  144. SE_Layout::alert('danger', "Inicjalizacja nowego raportu kasowe" . $e->getMessage());
  145. ?>
  146. <div class="container" style="text-align:center">
  147. <a href="<?php echo $this->REFERER?>" class="btn btn-primary">Powrót</a>
  148. </div>
  149. <?php
  150. }
  151. SE_Layout::dol();
  152. }
  153. private function edit() {
  154. SE_Layout::gora();
  155. SE_Layout::menu();
  156. $docs = DB::getPDO()->fetchall("select * from BILLS_RK_POS where ID_BILLS_RK='{$this->RK['ID']}'");
  157. ?>
  158. <div class="container" style="margin-top:20px">
  159. <form class="form-horizontal" method="post">
  160. <legend>
  161. Edycja raportu kasowego nr <?=$this->RK['RK_NUMBER']?> :: <?=$this->RK['RK_MONTH']?>
  162. <span class="pull-right">
  163. <?php echo "Nr kasy: " . User::getID() . " :: " . $this->BO['name1']?>
  164. </span>
  165. </legend>
  166. <div class="form-group">
  167. <div class="col-sm-12">
  168. <input type="submit" class="btn btn-default btn-sm" name="action" value="Dodaj KP"/>
  169. <input type="submit" class="btn btn-default btn-sm" name="action" value="Dodaj KW"/>
  170. <input type="hidden" name="_task" value="edit">
  171. <input type="hidden" name="REFERER" value="<?php echo $this->REFERER?>"/>
  172. </div>
  173. </div>
  174. <div class="form-group">
  175. <div class="col-sm-12">
  176. <table class="table table-bordered table-hover table-striped">
  177. <thead>
  178. <tr style="text-align:center; background-color:lightgray"><td width="1">Lp.</td><td>Data</td><td>Numer</td><td>Tytułem</td><td>Kontrahent</td><td>Przychód</td><td>Rozchód</td></tr>
  179. </thead>
  180. <tbody>
  181. <?php
  182. if ($docs) {
  183. } else echo '<tr style="text-align:center"><td colspan="7">Brak dokumentów</td></tr>';
  184. ?>
  185. </tbody>
  186. <table>
  187. </div>
  188. </div>
  189. <div class="form-group" style="text-align:center">
  190. <div class="col-sm-12">
  191. <button type="submit" class="btn btn-default" name="action" value="<?=($docs?"close":"reinitialize")?>"><?=($docs?"Zamknij":"Reinicjalizuj")?> raport</button>
  192. <a href="<?php echo $this->REFERER?>" class="btn btn-primary">Powrót</a>
  193. </div>
  194. </div>
  195. </form>
  196. </div>
  197. <?php
  198. SE_Layout::dol();
  199. }
  200. public function editAction() {
  201. switch (V::get('action','',$_POST)) {
  202. case "Dodaj KP":
  203. case "Dodaj KW":
  204. $this->addDoc();
  205. break;
  206. case "reinitialize":
  207. $this->reinitialize();
  208. break;
  209. default:
  210. SE_Layout::gora();
  211. SE_Layout::menu();
  212. SE_Layout::alert('danger', "Wykryto abuse! Wysłano informację do administratora.");
  213. ?>
  214. <div class="container" style="text-align:center">
  215. <form method="post" action="<?php echo $this->LAST_REFERER?>">
  216. <input type="hidden" name="REFERER" value="<?php echo $this->REFERER?>"/>
  217. <button type="submit" class="btn btn-primary">Powrót</button>
  218. </form>
  219. </div>
  220. <?php
  221. SE_Layout::dol();
  222. }
  223. }
  224. private function addDoc() {
  225. echo V::kwotaSlownie("1267650600000000000000000000000");
  226. echo "<br>".V::kwotaSlownie("0000000.23");
  227. }
  228. private function importL1() {
  229. }
  230. private function add() {
  231. SE_Layout::gora();
  232. SE_Layout::menu();
  233. ?>
  234. <div class="container" style="margin-top:20px">
  235. <form class="form-horizontal" method="post">
  236. <legend>
  237. Edycja raportu kasowego nr <?php echo $this->RK['RK_NUMBER']?>
  238. <span class="pull-right">
  239. <?php echo "Nr kasy: " . User::getID()?>
  240. </span>
  241. </legend>
  242. <div class="form-group">
  243. <label class="col-sm-12 control-label" style="text-align:left"><h4>Nowy dokument</h4></label>
  244. </div>
  245. <div class="form-group">
  246. <label class="col-xs-12 col-sm-3 col-md-2 control-label">Data dokumentu</label>
  247. <div class="col-xs-12 col-sm-9 col-md-10">
  248. <div class="input-group">
  249. <input type="text" id="DOC_DATE" class="form-control se_type-date" name="DOC_DATE" value="<?php echo date("Y-m-d")?>" maxlength="10"/>
  250. <span class="input-group-addon">
  251. <span class="glyphicon glyphicon-calendar">
  252. </span>
  253. </span>
  254. </div>
  255. </div>
  256. </div>
  257. </form>
  258. </div>
  259. <script>
  260. console.log(document.getElementById('DOC_DATE'));
  261. jQuery(document.getElementById('DOC_DATE')).parent().datetimepicker({
  262. format: 'YYYY-MM-DD'
  263. , locale: 'pl'
  264. , showTodayButton: true
  265. , minDate: '2017-01-01'
  266. , maxDate: '2017-01-03'
  267. });
  268. </script>
  269. <?php
  270. SE_Layout::dol();
  271. }
  272. private function reinitialize() {
  273. $sqlObj = new stdClass();
  274. $sqlObj->ID = $this->RK['ID'];
  275. $sqlObj->A_STATUS = 'WAITING';
  276. $sqlObj->ID_ADMIN_USERS = "NULL";
  277. $sqlObj->RK_NUMBER = "NULL";
  278. $sqlObj->RK_MONTH = "NULL";
  279. $sqlObj->RK_DATE_FROM = "NULL";
  280. $sqlObj->RK_STARTING_BALANCE = "NULL";
  281. DB::getDB()->UPDATE_OBJ('BILLS_RK', $sqlObj);
  282. $this->initialize();
  283. }
  284. public function defaultAction() {
  285. switch ($this->RK['A_STATUS']) {
  286. case "WAITING":
  287. $this->initialize();
  288. break;
  289. case "NORMAL":
  290. $this->edit();
  291. break;
  292. default:
  293. SE_Layout::alert('danger', "Błędny status rekordu.");
  294. }
  295. }
  296. public function reinstallAction() {
  297. $this->reinstall();
  298. die('OK');
  299. }
  300. public function reinstall() {
  301. $sqlList = array();
  302. /* $sqlList['InstallLayerTable'] = <<<SQL
  303. CREATE TABLE IF NOT EXISTS `WMS_LAYERS` (
  304. `ID` int(11) NOT NULL AUTO_INCREMENT,
  305. `the_geom` polygon NOT NULL,
  306. `ID_PROJECT` int(11) NOT NULL,
  307. `LAYER_NAME` varchar(100) NOT NULL,
  308. `LAYER_TYPE` enum('GeoTIFF','QGIS') NOT NULL DEFAULT 'GeoTIFF',
  309. `OLD_LAYER_TYPE` enum('GeoTIFF','QGIS') NOT NULL,
  310. `LAYER_DESC` text NOT NULL,
  311. `ID_WMS_MAPS` int(11) NOT NULL,
  312. `OLD_ID_WMS_MAPS` int(11) NOT NULL,
  313. `FILE_NAME` varchar(255) NOT NULL,
  314. `FILE_STATUS` enum('NONE','TO_GENERATE','IN_PROGRESS','GENERATED','ERROR') NOT NULL DEFAULT 'NONE',
  315. `FILE_STATUS_INFO` varchar(255) NOT NULL,
  316. `EPSG` int(11) NOT NULL,
  317. `EXTENT` varchar(100) NOT NULL,
  318. `MAP_STATUS` enum('ACTIVE','INACTIVE') NOT NULL DEFAULT 'INACTIVE',
  319. `FILE_MD5` varchar(32) NOT NULL,
  320. `A_RECORD_CREATE_DATE` datetime NOT NULL,
  321. `A_RECORD_CREATE_AUTHOR` varchar(40) NOT NULL,
  322. `A_RECORD_UPDATE_DATE` varchar(18) NOT NULL,
  323. `A_RECORD_UPDATE_AUTHOR` varchar(40) NOT NULL,
  324. `L_APPOITMENT_DATE` datetime NOT NULL,
  325. `L_APPOITMENT_USER` varchar(40) NOT NULL,
  326. `L_APPOITMENT_PERIOD` varchar(30) NOT NULL,
  327. `L_APPOITMENT_INFO` varchar(200) NOT NULL,
  328. `L_APPOITMENT_TYPE` enum('','ARRANGED','TO_ARRANGE','CANCELLED','TO_CANCEL','RELATE','WAIT') NOT NULL,
  329. `A_PROBLEM` enum('','WARNING','PROBLEM','SERIOUS','UNVERIFIED') NOT NULL,
  330. `A_PROBLEM_DESC` varchar(200) NOT NULL,
  331. `A_PROBLEM_DATE` datetime NOT NULL,
  332. `A_STATUS` enum('DELETED','MONITOR','NORMAL','OFF_HARD','OFF_SOFT','WAITING','WARNING') NOT NULL DEFAULT 'WAITING',
  333. `A_STATUS_INFO` varchar(100) NOT NULL,
  334. `A_STATUS_LASTCHANGE_DATE` datetime NOT NULL,
  335. `A_ADM_COMPANY` varchar(100) NOT NULL,
  336. `A_CLASSIFIED` varchar(100) NOT NULL,
  337. `SYNC_SQIX_STATUS` varchar(100) NOT NULL,
  338. PRIMARY KEY (`ID`)
  339. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
  340. SQL;
  341. $sqlList['InstallLayerHistTable'] = <<<SQL
  342. CREATE TABLE IF NOT EXISTS `WMS_LAYERS_HIST` (
  343. `ID` int(11) NOT NULL AUTO_INCREMENT,
  344. `ID_USERS2` int(11) NOT NULL,
  345. `the_geom` text,
  346. `ID_PROJECT` varchar(20) DEFAULT 'N/S;',
  347. `LAYER_NAME` varchar(100) DEFAULT 'N/S;',
  348. `LAYER_TYPE` varchar(10) DEFAULT 'N/S;',
  349. `OLD_LAYER_TYPE` varchar(10) DEFAULT 'N/S;',
  350. `LAYER_DESC` varchar(10000) DEFAULT 'N/S;',
  351. `ID_WMS_MAPS` varchar(20) DEFAULT 'N/S;',
  352. `OLD_ID_WMS_MAPS` varchar(20) DEFAULT 'N/S;',
  353. `FILE_NAME` varchar(255) DEFAULT 'N/S;',
  354. `FILE_STATUS` varchar(20) DEFAULT 'N/S;',
  355. `FILE_STATUS_INFO` varchar(255) DEFAULT 'N/S;',
  356. `EPSG` varchar(10) DEFAULT 'N/S;',
  357. `EXTENT` varchar(100) DEFAULT 'N/S;',
  358. `MAP_STATUS` varchar(20) DEFAULT 'N/S;',
  359. `FILE_MD5` varchar(32) DEFAULT 'N/S;',
  360. `A_RECORD_CREATE_DATE` varchar(30) DEFAULT 'N/S;',
  361. `A_RECORD_CREATE_AUTHOR` varchar(40) DEFAULT 'N/S;',
  362. `A_RECORD_UPDATE_DATE` varchar(18) DEFAULT 'N/S;',
  363. `A_RECORD_UPDATE_AUTHOR` varchar(40) DEFAULT 'N/S;',
  364. `L_APPOITMENT_DATE` varchar(30) DEFAULT 'N/S;',
  365. `L_APPOITMENT_USER` varchar(40) DEFAULT 'N/S;',
  366. `L_APPOITMENT_PERIOD` varchar(30) DEFAULT 'N/S;',
  367. `L_APPOITMENT_INFO` varchar(200) DEFAULT 'N/S;',
  368. `L_APPOITMENT_TYPE` varchar(255) DEFAULT 'N/S;',
  369. `A_PROBLEM` varchar(255) DEFAULT 'N/S;',
  370. `A_PROBLEM_DESC` varchar(200) DEFAULT 'N/S;',
  371. `A_PROBLEM_DATE` varchar(255) DEFAULT 'N/S;',
  372. `A_STATUS` varchar(255) DEFAULT 'N/S;',
  373. `A_STATUS_INFO` varchar(100) DEFAULT 'N/S;',
  374. `A_STATUS_LASTCHANGE_DATE` varchar(255) DEFAULT 'N/S;',
  375. `A_ADM_COMPANY` varchar(100) DEFAULT 'N/S;',
  376. `A_CLASSIFIED` varchar(100) DEFAULT 'N/S;',
  377. `SYNC_SQIX_STATUS` varchar(100) DEFAULT 'N/S;',
  378. PRIMARY KEY (`ID`)
  379. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
  380. SQL;
  381. $sqlList['InstallMapTable'] = <<<SQL
  382. CREATE TABLE IF NOT EXISTS `WMS_MAPS` (
  383. `ID` int(11) NOT NULL AUTO_INCREMENT,
  384. `MAP_NAME` varchar(100) NOT NULL,
  385. `MAP_DESC` text NOT NULL,
  386. `MAP_STATUS` enum('NONE','TO_GENERATE','IN_PROGRESS','GENERATED','ERROR') NOT NULL DEFAULT 'NONE',
  387. `MAP_STATUS_INFO` varchar(255) NOT NULL,
  388. `MAP_URL` varchar(100) NOT NULL,
  389. `MAP_FILE` varchar(100) NOT NULL,
  390. `A_RECORD_CREATE_DATE` datetime NOT NULL,
  391. `A_RECORD_CREATE_AUTHOR` varchar(40) NOT NULL,
  392. `A_RECORD_UPDATE_DATE` varchar(18) NOT NULL,
  393. `A_RECORD_UPDATE_AUTHOR` varchar(40) NOT NULL,
  394. `L_APPOITMENT_DATE` datetime NOT NULL,
  395. `L_APPOITMENT_USER` varchar(40) NOT NULL,
  396. `L_APPOITMENT_PERIOD` varchar(30) NOT NULL,
  397. `L_APPOITMENT_INFO` varchar(200) NOT NULL,
  398. `L_APPOITMENT_TYPE` enum('','ARRANGED','TO_ARRANGE','CANCELLED','TO_CANCEL','RELATE','WAIT') NOT NULL,
  399. `A_PROBLEM` enum('','WARNING','PROBLEM','SERIOUS','UNVERIFIED') NOT NULL,
  400. `A_PROBLEM_DESC` varchar(200) NOT NULL,
  401. `A_PROBLEM_DATE` datetime NOT NULL,
  402. `A_STATUS` enum('DELETED','MONITOR','NORMAL','OFF_HARD','OFF_SOFT','WAITING','WARNING') NOT NULL DEFAULT 'WAITING',
  403. `A_STATUS_INFO` varchar(100) NOT NULL,
  404. `A_STATUS_LASTCHANGE_DATE` datetime NOT NULL,
  405. `A_ADM_COMPANY` varchar(100) NOT NULL,
  406. `A_CLASSIFIED` varchar(100) NOT NULL,
  407. `SYNC_SQIX_STATUS` varchar(100) NOT NULL,
  408. PRIMARY KEY (`ID`)
  409. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
  410. SQL;
  411. $sqlList['InstallMapHistTable'] = <<<SQL
  412. CREATE TABLE IF NOT EXISTS `WMS_MAPS_HIST` (
  413. `ID` int(11) NOT NULL AUTO_INCREMENT,
  414. `ID_USERS2` int(11) NOT NULL,
  415. `MAP_NAME` varchar(100) DEFAULT 'N/S;',
  416. `MAP_DESC` varchar(10000) NOT NULL DEFAULT 'N/S;',
  417. `MAP_STATUS` varchar(20) NOT NULL DEFAULT 'N/S;',
  418. `MAP_STATUS_INFO` varchar(255) NOT NULL DEFAULT 'N/S;',
  419. `MAP_URL` varchar(100) NOT NULL DEFAULT 'N/S;',
  420. `MAP_FILE` varchar(100) NOT NULL DEFAULT 'N/S;',
  421. `A_RECORD_CREATE_DATE` varchar(30) DEFAULT 'N/S;',
  422. `A_RECORD_CREATE_AUTHOR` varchar(40) DEFAULT 'N/S;',
  423. `A_RECORD_UPDATE_DATE` varchar(18) DEFAULT 'N/S;',
  424. `A_RECORD_UPDATE_AUTHOR` varchar(40) DEFAULT 'N/S;',
  425. `L_APPOITMENT_DATE` varchar(30) DEFAULT 'N/S;',
  426. `L_APPOITMENT_USER` varchar(40) DEFAULT 'N/S;',
  427. `L_APPOITMENT_PERIOD` varchar(30) DEFAULT 'N/S;',
  428. `L_APPOITMENT_INFO` varchar(200) DEFAULT 'N/S;',
  429. `L_APPOITMENT_TYPE` varchar(255) DEFAULT 'N/S;',
  430. `A_PROBLEM` varchar(255) DEFAULT 'N/S;',
  431. `A_PROBLEM_DESC` varchar(200) DEFAULT 'N/S;',
  432. `A_PROBLEM_DATE` varchar(255) DEFAULT 'N/S;',
  433. `A_STATUS` varchar(255) DEFAULT 'N/S;',
  434. `A_STATUS_INFO` varchar(100) DEFAULT 'N/S;',
  435. `A_STATUS_LASTCHANGE_DATE` varchar(255) DEFAULT 'N/S;',
  436. `A_ADM_COMPANY` varchar(100) DEFAULT 'N/S;',
  437. `A_CLASSIFIED` varchar(100) DEFAULT 'N/S;',
  438. `SYNC_SQIX_STATUS` varchar(100) DEFAULT 'N/S;',
  439. PRIMARY KEY (`ID`)
  440. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
  441. SQL;
  442. */
  443. $db = DB::getDB();
  444. if ($db->has_errors()) {
  445. throw new Exception("DB Errors: " . implode("\n<br>", $db->get_errors()));
  446. }
  447. foreach ($sqlList as $sqlName => $sql) {
  448. $res = $db->query($sql);
  449. if ($db->has_errors()) {
  450. throw new Exception("DB Errors at sql '{$sqlName}': " . implode("\n<br>", $db->get_errors()));
  451. }
  452. }
  453. }
  454. }