RaportyKasowe.php 19 KB

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