Advertisement
Guest User

Untitled

a guest
May 26th, 2023
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 263.53 KB | None | 0 0
  1. <?php
  2. error_reporting(0);
  3. session_start();
  4.  
  5. $conf = parse_ini_file("conf.ini", true);
  6. $settings = $conf['Settings'];
  7.  
  8. ?>
  9. <!DOCTYPE html>
  10.  
  11. <html>
  12. <head>
  13. <meta charset="UTF-8">
  14. <title><?php echo $settings['title']; ?></title>
  15.  
  16. <!-- CSS Files -->
  17. <link type="text/css" href="css/base.css" rel="stylesheet" />
  18.  
  19. <link href="css/smoothness/jquery-ui-1.10.4.custom.css" rel="stylesheet">
  20.  
  21.  
  22. <link rel="stylesheet" type="text/css" href="css/jquery.timepicker.css" />
  23.  
  24. <!-- JavaScript Files -->
  25. <script src="js/jquery-1.10.2.js"></script>
  26. <script src="js/jquery-ui-1.10.4.custom.js"></script>
  27. <script type="text/javascript" src="js/jquery.timepicker.js"></script>
  28. <script src="js/main.js"></script>
  29. <!-- Custom Styles -->
  30. <style>
  31. #feedback-selected { font-size: 1.0em; }
  32. /*#selectable .ui-selecting { background: #FECA40; }*/
  33. .selectable .ui-selecting { background: #40CAFE; }
  34. /*#selectable .ui-selected { background: #F39814; color: white; }*/
  35. .selectable .ui-selected { background: #1498F3; color: white; }
  36. .selectable { list-style-type: none; margin: 0; padding: 0; width: 100%; }
  37. .selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; border-radius: 5px 5px 5px 5px; }
  38.  
  39. /* dialog buttons */
  40. .ui-button-text {
  41. font-size: inherit !important;
  42. }
  43.  
  44. .dialog-button {
  45. font-size: 0.71em !important;
  46. }
  47.  
  48. </style>
  49.  
  50. </head>
  51. <body>
  52. <div id="header">
  53. <div id="logo">
  54.  
  55. </div>
  56. <div id="search">
  57.  
  58. </div>
  59. </div>
  60. <div id="toolbar">
  61.  
  62. <?php
  63. //echo $_SESSION['name'];
  64.  
  65. if (empty ($_SESSION['name'])){} else {?> <a href="logout.php">Logout</a> <?php } ?>
  66.  
  67. <?php
  68. //echo $_SESSION['name'];
  69.  
  70. if (empty ($_SESSION['name'])){?> <a href="index1.html">Login</a><?php } else { ?>
  71.  
  72. <?php if ($_SESSION['name'] =="Piet" or $_SESSION['name'] =="admin") { ?> <button id="listpatients-opener">Patienten auflisten</button><?php } ?>
  73.  
  74.  
  75. <?php if ($_SESSION['name'] =="Piet" or $_SESSION['name'] =="admin") { ?> <button id="liststaff-opener">Mitarbeiter auflisten</button> <?php } ?>
  76. <!--<button id="addstaff-opener">Mitarbeiter hinzufügen</button>-->
  77. <?php if ($_SESSION['name'] =="Piet" or $_SESSION['name'] =="admin") { ?> <button id="addpatient-opener">Patient hinzufügen</button> <?php } ?>
  78.  
  79. <a class="dialog-button" href="check.php">Wer war heute nicht gekommen</a>
  80.  
  81.  
  82. <button id="next-week-button" style="float:right;">Woche vor</button>
  83. <input id="date-today-input" style="float:right; width: 100px; text-align: center;" />
  84. <button id="prev-week-button" style="float:right;">Woche zurück</button>
  85. <input type="checkbox" id="day-view-check" style="float:right;" checked="checked"><label for="day-view-check" style="float:right;">Tagesansicht</label><?php } ?>
  86. </div>
  87. <div id="main">
  88.  
  89. <center>
  90. <div id="plan">
  91.  
  92. </div>
  93. </center>
  94.  
  95. </div>
  96.  
  97. <div id="footer">
  98.  
  99. </div>
  100.  
  101.  
  102. <!-- Dialogs -->
  103.  
  104. <div id="addpatient-dialog" title="Patient hinzufügen">
  105. <form style="text-align: left;">
  106. <h3>Vor- und Nachname</h3>
  107.  
  108. <input id="input-surname" type="text" placeholder="Nachname" >
  109. <input id="input-prename" type="text" placeholder="Vorname" >
  110. <input id="input-birthday" type="text" placeholder="Geburtstag (dd.mm.yyyy)">
  111.  
  112. <h3>Adresse</h3>
  113. <input id="input-town" type="text" placeholder="Stadt">
  114. <input id="input-zipcode" type="text" placeholder="Postleitzahl">
  115. <input id="input-street" type="text" placeholder="Straße Hausnummer">
  116.  
  117. <h3>Telefon</h3>
  118. <input id="input-telephone" type="text" placeholder="Telefon">
  119.  
  120. <!-- <h3>Behandlung</h3>
  121. <select name="treatment" size="1">
  122. <option value="GR">GR</option>
  123. <option value="HS">HS</option>
  124. <option value="CP">CP</option>
  125. <option value="ST">ST</option>
  126. <option value="SM">SM</option>
  127. </select>-->
  128.  
  129. <h3>Bemerkungen</h3>
  130. <textarea id="input-remark" name="remark" cols="30" rows="4"></textarea>
  131.  
  132. <br /><br /><br />
  133. <a id="addPatient-submit" class="dialog-button" href="#">Speichern</a>
  134. </form>
  135. </div>
  136. <?php
  137. if (empty ($_SESSION['name'])){} else {if ($_SESSION['name'] =="admin") {}?>
  138.  
  139. <?php if ($_SESSION['name'] =="Piet" or $_SESSION['name'] =="admin") { ?>
  140.  
  141. <div id="listpatients-dialog" title="Patientenliste" style="display: inline-block; width: 638px;" >
  142. <div style="width: 900px;">
  143.  
  144. <form id="listpatients-form" style="text-align: left;">
  145. <a id="add-patient" class="add-patient-button dialog-button" href="#">Patienten hinzufügen</a>
  146. <a id="delete-patient" class="delete-patients-button dialog-button" href="#">Patienten entfernen</a>
  147. <button id="get-patient-pdf-button" style="margin-left: 90px; font-size: 0.72em;" >PDF</button>
  148. <br /><br />
  149. <div style="width: 300px; height:550px; float: left; overflow-y: scroll;">
  150. <!--<input type="text" placeholder="Hans Meier">
  151. <input type="button" name="Text 1" value="Suchen"
  152. onclick="this.form.textfeld.value = 'Text 1 und rückwärts seltsam geschrieben ich bin.'">-->
  153.  
  154. <p id="feedback-selected" hidden="hidden">
  155. <span>Ausgewählte Patienten:</span> <span id="patient-select-result">keine</span>.
  156. </p>
  157.  
  158. <ol id="patient-selectable" class="selectable">
  159. <li class="ui-widget-content">Hans Meier</li>
  160. <li class="ui-widget-content">Max Mustermann</li>
  161. <li class="ui-widget-content">Heike Haupt</li>
  162. <li class="ui-widget-content">Christina Schwarzer</li>
  163. <li class="ui-widget-content">Ulrich Schmidt</li>
  164. <li class="ui-widget-content">Fritz Baum</li>
  165. </ol>
  166. </div>
  167. </form>
  168.  
  169.  
  170.  
  171. <div style="float:left; width:240px; margin-left: 40px;">
  172.  
  173. <form id="editpatient-form" style="text-align: left;">
  174.  
  175. <h2>Patienten-Daten</h2>
  176.  
  177. <h3>Vor- und Nachname</h3>
  178. <input id="edit-patient-prename" type="text" placeholder="Vorname" >
  179. <input id="edit-patient-surname" type="text" placeholder="Nachname" >
  180. <input id="edit-patient-birthday" type="text" placeholder="Geburtstag (dd.mm.yyyy)">
  181.  
  182. <h3>Adresse</h3>
  183. <input id="edit-patient-town" type="text" placeholder="Stadt">
  184. <input id="edit-patient-zipcode" type="text" placeholder="Postleitzahl">
  185. <input id="edit-patient-street" type="text" placeholder="Straße Hausnummer">
  186.  
  187. <h3>Telefon</h3>
  188. <input id="edit-patient-telephone" type="text" placeholder="Telefon">
  189.  
  190. <!-- <h3>Behandlung</h3>
  191. <select name="treatment" size="1">
  192. <option value="GR">GR</option>
  193. <option value="HS">HS</option>
  194. <option value="CP">CP</option>
  195. <option value="ST">ST</option>
  196. <option value="SM">SM</option>
  197. </select>-->
  198.  
  199. <h3>Bemerkungen</h3>
  200. <textarea id="edit-patient-remark" name="remark" cols="30" rows="4"></textarea>
  201.  
  202. <br /><br /><br />
  203. <a id="editPatient-submit" class="dialog-button" href="#">Speichern</a>
  204. </form>
  205. </div>
  206. <?php } else {}?>
  207. <div style="width: 260px; margin-top: 20px; float: left;">
  208. <form id="listpatient-treatmentdates-form" style="text-align: left;">
  209. <a id="add-patient-treatmentdate-opener" class="add-patient-button dialog-button" href="#">Termin hinzufügen</a>
  210. <a id="delete-patienttreatmentdate" class="delete-patients-button dialog-button" href="#">Termin entfernen</a>
  211. <br /><br />
  212. <p id="patient-treatmentdates-feedback-selected" hidden="hidden">
  213. <span>Ausgewählte Termine:</span> <span id="patient-treatmentdates-select-result">keine</span>.
  214. </p>
  215. <div style="width: 260px; height:350px; float: left; overflow-y: scroll;">
  216. <ol id="patient-treatmentdates-selectable" class="selectable">
  217. </ol>
  218. </div>
  219. </form>
  220. </div>
  221. </div>
  222. </div>
  223.  
  224.  
  225. <div id="liststaff-dialog" title="Betreuerliste" style="display: inline-block; width: 638px;" >
  226. <div style="width: 900px;">
  227.  
  228. <form id="liststaff-form" style="text-align: left;">
  229. <a id="add-staff" class="add-patient-button dialog-button" href="#">Mitarbeiter hinzufügen</a>
  230. <a id="delete-staff" class="delete-patients-button dialog-button" href="#">Mitarbeiter entfernen</a>
  231. <button id="get-staff-pdf-button" style="margin-left: 90px; font-size: 0.72em;" >PDF</button>
  232. <br /><br />
  233. <div style="width: 300px; height:550px; float: left; overflow-y: scroll;">
  234. <!--<input type="text" placeholder="Hans Meier">
  235. <input type="button" name="Text 1" value="Suchen"
  236. onclick="this.form.textfeld.value = 'Text 1 und rückwärts seltsam geschrieben ich bin.'">-->
  237.  
  238. <p id="feedback-staff-selected" hidden="hidden">
  239. <span>Ausgewählte Mitarbeiter:</span> <span id="staff-select-result">keine</span>.
  240. </p>
  241.  
  242. <ol id="staff-selectable" class="selectable">
  243. <li class="ui-widget-content">Hans Meier</li>
  244. <li class="ui-widget-content">Max Mustermann</li>
  245. <li class="ui-widget-content">Heike Haupt</li>
  246. <li class="ui-widget-content">Christina Schwarzer</li>
  247. <li class="ui-widget-content">Ulrich Schmidt</li>
  248. <li class="ui-widget-content">Fritz Baum</li>
  249. </ol>
  250. </div>
  251. </form>
  252.  
  253.  
  254. <div style="float:left; width:240px; margin-left: 40px;">
  255. <form id="editstaff-form" style="text-align: left;">
  256. <h2>Mitarbeiter-Daten</h2>
  257. <label for="edit-staff-active">Aktiv</label>
  258. <input id="edit-staff-active" type="checkbox" >
  259.  
  260. <h3>Vor- und Nachname</h3>
  261. <input id="edit-staff-prename" type="text" placeholder="Vorname" >
  262. <input id="edit-staff-surname" type="text" placeholder="Nachname" >
  263. <input id="edit-staff-birthday" type="text" placeholder="Geburtstag (dd.mm.yyyy)">
  264.  
  265. <h3>Telefon</h3>
  266. <input id="edit-staff-telephone" type="text" placeholder="Telefon">
  267.  
  268. <!-- <h3>Behandlung</h3>
  269. <select name="treatment" size="1">
  270. <option value="GR">GR</option>
  271. <option value="HS">HS</option>
  272. <option value="CP">CP</option>
  273. <option value="ST">ST</option>
  274. <option value="SM">SM</option>
  275. </select>-->
  276.  
  277. <h3>Bemerkungen</h3>
  278. <textarea id="edit-staff-remark" name="remark" cols="25" rows="4"></textarea>
  279.  
  280. <br /><br /><br />
  281. <a id="editStaff-submit" class="dialog-button" href="#">Speichern</a>
  282. </form>
  283. </div>
  284.  
  285.  
  286. <div style="width: 260px; margin-top: 20px; float: left;">
  287. <form id="liststaff-treatmentdates-form" style="text-align: left;">
  288. <a id="add-workingtime-opener" class="add-patient-button dialog-button" href="#">Zeiten hinzufügen</a>
  289. <a id="delete-stafftreatmentdate" class="delete-patients-button dialog-button" href="#">Zeiten entfernen</a>
  290. <br /><br />
  291. <p id="staff-treatmentdates-feedback-selected" hidden="hidden">
  292. <span>Ausgewählte Arbeits-/Urlaubszeiten:</span> <span id="staff-treatmentdates-select-result">keine</span>.
  293. </p>
  294. <div style="width: 260px; height:350px; float: left; overflow-y: scroll;">
  295. <ol id="staff-treatmentdates-selectable" class="selectable">
  296. </ol>
  297. </div>
  298. </form>
  299. </div>
  300.  
  301. <!-- <div style="width: 230px; margin-top: 20px; float: left;">
  302. <form id="liststaff-treatmentdates-form" style="text-align: left;">
  303. <a id="add-staff-treatmentdate-opener" class="add-patient-button dialog-button" href="#">Termin hinzufügen</a>
  304. <a id="delete-stafftreatmentdate" class="delete-patients-button dialog-button" href="#">Termin entfernen</a>
  305. <br /><br />
  306. <p id="staff-treatmentdates-feedback-selected" hidden="hidden">
  307. <span>Ausgewählte Termine:</span> <span id="staff-treatmentdates-select-result">keine</span>.
  308. </p>
  309. <div style="width: 230px; height:350px; float: left; overflow-y: scroll;">
  310. <ol id="staff-treatmentdates-selectable" class="selectable">
  311. </ol>
  312. </div>
  313. </form>
  314. </div>-->
  315. </div>
  316. </div>
  317.  
  318. <div id="add-treatmentdate-dialog" title="Termin hinzufügen" >
  319. <form style="text-align: left;">
  320. <h3>Patient</h3>
  321. <div>
  322. <button id="add-treatmentdate-addpatient-button" style="font-size: 0.7em; float:right;">Patient hinzufügen</button>
  323. <select id="add-treatmentdate-select-patient" name="Select Patient" size="1">
  324. <option value="GR">GR</option>
  325. </select>
  326. </div>
  327. <h3>Betreuer</h3>
  328. <select id="add-treatmentdate-select-staff" name="Select Staff" size="1">
  329. <option value="GR">GR</option>
  330. </select>
  331.  
  332. <h3>Termin</h3>
  333. <p>
  334. <label for="add-treatmentdate-input-start">Einzeltermin / Beginn Dauertermin</label>
  335. <input type="text" id="add-treatmentdate-input-start" placeholder="Tag (Anfang Dauertermin)">
  336. </p>
  337. <p>
  338. <label for="add-treatmentdate-input-time-begin">Beginn</label>
  339. <input type="text" id="add-treatmentdate-input-time-begin" placeholder="hh:mm" style="width:4em;">
  340. <label for="add-treatmentdate-input-time-end">bis</label>
  341. <input type="text" id="add-treatmentdate-input-time-end" placeholder="hh:mm" style="width:4em;">
  342. </p>
  343. <p>
  344. <label for="add-treatmentdate-input-end">Ende des Dauertermins (Optional)</label>
  345. <input type="text" id="add-treatmentdate-input-end" placeholder="Ende des Dauertermin">
  346. </p>
  347. <h3>Behandlung</h3>
  348. <select id="add-treatmentdate-select-treatment" name="Select Treatment" size="1">
  349. <option value="GR">GR</option>
  350. </select>
  351. <h3>Bemerkung</h3>
  352. <p>
  353. <textarea id="add-treatmentdate-input-description" placeholder="Bemerkungstext hier ..." cols="30" rows="10"></textarea>
  354. </p>
  355.  
  356.  
  357. <br /><br /><br />
  358. <a id="add-treatmentdate-submit" class="dialog-button" href="#">Speichern</a>
  359. </form>
  360. </div>
  361. <?php } ?>
  362.  
  363. <div id="add-workingtime-dialog" title="Arbeits-/Urlaubszeiten hinzufügen">
  364. <form style="text-align: left;">
  365. <h3>Betreuer</h3>
  366. <select id="add-workingtime-select-staff" name="Select Staff" size="1">
  367. <option value="Muster">Max Muster</option>
  368. </select>
  369.  
  370. <h3>Termin</h3>
  371. <p>
  372. <label for="add-workingtime-input-start">Beginn (Datum)</label>
  373. <input type="text" id="add-workingtime-input-start" placeholder="Tag">
  374. </p>
  375. <p>
  376. <label for="add-workingtime-input-time-begin">Beginn</label>
  377. <input type="text" id="add-workingtime-input-time-begin" placeholder="hh:mm" style="width:4em;">
  378. <label for="add-workingtime-input-time-end">bis</label>
  379. <input type="text" id="add-workingtime-input-time-end" placeholder="hh:mm" style="width:4em;">
  380. </p>
  381. <p>
  382. <input type="checkbox" id="add-workingtime-weekinterval-check" style="float:right;"><label for="add-workingtime-weekinterval-check" style="float:right;">1x Woche</label>
  383. <label for="add-workingtime-input-end">Ende (Datum)</label>
  384. <input type="text" id="add-workingtime-input-end" placeholder="Ende">
  385.  
  386. </p>
  387. <h3>Typ</h3>
  388. <select id="add-workingtime-select-matter" name="Select Type" size="1">
  389. <option value="HOLIDAY" selected="selected">Urlaub</option>
  390. <option value="WORK">Arbeit</option>
  391.  
  392. </select>
  393.  
  394.  
  395.  
  396. <br /><br /><br />
  397. <a id="add-workingtime-submit" class="dialog-button" href="#">Speichern</a>
  398. </form>
  399. </div>
  400.  
  401.  
  402. <div id="addstaff-dialog" title="Mitarbeiter hinzufügen">
  403. <form style="text-align: left;">
  404. <h3>Vor- und Nachname</h3>
  405. <input id="input-staff-prename" type="text" placeholder="Vorname" >
  406. <input id="input-staff-surname" type="text" placeholder="Nachname" >
  407. <input id="input-staff-birthday" type="text" placeholder="Geburtstag (dd.mm.yyyy)">
  408.  
  409. <h3>Telefon</h3>
  410. <input id="input-staff-telephone" type="text" placeholder="Telefon">
  411.  
  412. <!-- <h3>Behandlung</h3>
  413. <select name="treatment" size="1">
  414. <option value="GR">GR</option>
  415. <option value="HS">HS</option>
  416. <option value="CP">CP</option>
  417. <option value="ST">ST</option>
  418. <option value="SM">SM</option>
  419. </select>-->
  420.  
  421. <h3>Bemerkungen</h3>
  422. <textarea id="input-staff-remark" name="remark" cols="30" rows="4"></textarea>
  423.  
  424. <br /><br /><br />
  425. <a id="addStaff-submit" class="dialog-button" href="#">Speichern</a>
  426. </form>
  427. </div>
  428.  
  429. <div id="removepatient-dialog" title="Patient entfernen.">
  430. <p>Aktuell ausgewählten Patienten wirklich entfernen?
  431. </p>
  432.  
  433. <a id="removepatient-button" class="dialog-button" href="#">Ja, entfernen</a>
  434. </div>
  435.  
  436. <div id="removestaff-dialog" title="Mitarbeiter entfernen.">
  437. <p>Aktuell ausgewählten Mitarbeiter wirklich entfernen?
  438. </p>
  439.  
  440. <a id="removestaff-button" class="dialog-button" href="#">Ja, entfernen</a>
  441. </div>
  442.  
  443. <div id="removepatienttreatmentdate-dialog" title="Termin entfernen.">
  444. <p>
  445. Aktuell ausgewählten Behandlungstermin wirklich entfernen?
  446. </p>
  447.  
  448. <a id="removepatienttreatmentdate-button" class="dialog-button" href="#">Ja, entfernen</a>
  449. </div>
  450.  
  451. <div id="removestaffworkingtime-dialog" title="Zeiten entfernen.">
  452. <p>
  453. Aktuell ausgewählte Zeiten wirklich entfernen?
  454. </p>
  455.  
  456. <a id="removestaffworkingtime-button" class="dialog-button" href="#">Ja, entfernen</a>
  457. </div>
  458.  
  459.  
  460.  
  461. <div id="-dialog" title="Termin entfernen">
  462. <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Termin wirklich entfernen?</p>
  463. </div>
  464.  
  465. <?php if ($_SESSION['name'] =="Piet" or $_SESSION['name'] =="admin") { ?>
  466. <script>
  467. var today = null;
  468. var hashTreatmentDates = new Array();
  469. var hashWorkingTimes = new Array();
  470. var hashPatients = new Array();
  471. var hashStaffList = new Array();
  472. var selectedPatient = "";
  473. var selectedStaff = "";
  474. var selectedTreatmentDate = "";
  475. var selectedWorkingTime = "";
  476. var selectedPatientTreatmentDateCalendar = "";
  477. var currentWeekDate = "";
  478. var currentDayView = "";
  479.  
  480. window._yc_cache = new Array();
  481. window._yc_ajaxCall_counts = 0;
  482. function yc_clearCache(){
  483. window._yc_cache = [];
  484. }
  485. function yc_getCache(key){
  486.  
  487. if(!window._yc_cache[key]){
  488. ycShowLoader();
  489. return false;
  490. }
  491. else
  492. return window._yc_cache[key];
  493. }
  494. function yc_updateCache(key,data){
  495.  
  496. window._yc_cache[key] = data;
  497.  
  498. }
  499. function ycSleep(milliseconds) {
  500. return new Promise(resolve => setTimeout(resolve, milliseconds));
  501. }
  502. function ycShowLoader() {
  503.  
  504. $( ".ycloaderCtl").show();
  505. $( ".ycloaderCtl").css('display','flex');
  506.  
  507. }
  508.  
  509. async function ycDisplayLoader() {
  510. let myPromise = new Promise(function(resolve) {
  511. setTimeout(function() {
  512. $( ".ycloaderCtl").show();
  513. $( ".ycloaderCtl").css('display','flex');
  514. resolve(true);
  515. }, 1);
  516. });
  517. return await myPromise;
  518. }
  519.  
  520. function ycPromiseCall(params){
  521.  
  522.  
  523. return $.ajax(params);
  524.  
  525.  
  526. }
  527. function ycAjaxCall(params){
  528.  
  529. ycShowLoader();
  530. console.log('calling');
  531.  
  532.  
  533. window._yc_ajaxCall_counts = window._yc_ajaxCall_counts +1;
  534.  
  535.  
  536. const text = params.data.action;
  537. const searchStrings = ["remove", "save", "update"];
  538.  
  539. // Check if the text contains any of the search strings
  540. let foundMatch = false;
  541. for (let i = 0; i < searchStrings.length; i++) {
  542. if (text.includes(searchStrings[i])) {
  543. foundMatch = true;
  544. break;
  545. }
  546. }
  547.  
  548. if(foundMatch)
  549. yc_clearCache();
  550.  
  551. let r = ycPromiseCall(params); //$.ajax(params);
  552.  
  553. setTimeout(function(){
  554. window._yc_ajaxCall_counts = window._yc_ajaxCall_counts -1;
  555. console.log('ajaxCallsCount',window._yc_ajaxCall_counts);
  556. if(!window._yc_ajaxCall_counts)
  557. $( ".ycloaderCtl").css('display','none'); //$( "#ycloader").hide();
  558. else
  559. $( ".ycloaderCtl").css('display','flex');
  560.  
  561. },500);
  562.  
  563. return r;
  564.  
  565. }
  566.  
  567. function getDayByDate(date){
  568. var day_names = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch",
  569. "Donnerstag", "Freitag", "Samstag");
  570. return day_names[date.getDay()];
  571. }
  572.  
  573. function convertDate(date){
  574. //var currentTime = new Date();
  575. var month = date.getMonth() + 1;
  576. var day = date.getDate();
  577. var year = date.getFullYear();
  578. //document.write(month + "/" + day + "/" + year)
  579. return day + "." + month + "." + year;
  580. }
  581.  
  582. function convertTo2LN(number){
  583. return (number<10? '0':'')+number;
  584. }
  585.  
  586. function getNameFromMatter(matter){
  587. if(matter === 'WORK'){
  588. return 'Arbeit';
  589. }
  590. if(matter === 'HOLIDAY'){
  591. return 'Urlaub';
  592. }
  593. return 'n/a';
  594. }
  595.  
  596. function setStaffActiveCheck(id_staff, checked){
  597. if(id_staff != null){
  598. var localCheck = false;
  599. if(checked === true){
  600. localCheck = true;
  601. }
  602. //alert("shit");
  603. result = ycAjaxCall({
  604. type: 'POST',
  605. async: false, // Wait for result from server.
  606. url: 'actions.php',
  607. data: ({
  608. "action": "set_staff_active_check",
  609. "id_staff": id_staff,
  610. "checked": localCheck
  611. }),
  612. success: function(data) {
  613. alert(data);
  614. //listPatients();
  615. //updateEditPatientForm(null);
  616. //getTreatmentDates(selectedPatient);
  617.  
  618. // getWorkingTimes(selectedStaff);
  619. // updateWeekDiv(today);
  620.  
  621. }
  622. }).responseText;
  623. return;
  624. }
  625. }
  626.  
  627. function setPatientTreatmentCheck(id_patient_treatment, checked){
  628. if(id_patient_treatment != null){
  629. var localCheck = false;
  630. if(checked === true){
  631. localCheck = true;
  632. }
  633. //alert("shit");
  634. result = ycAjaxCall({
  635. type: 'POST',
  636. async: false, // Wait for result from server.
  637. url: 'actions.php',
  638. data: ({
  639. "action": "set_patient_treatment_check",
  640. "id_patient_treatment": id_patient_treatment,
  641. "checked": localCheck
  642. }),
  643. success: function(data) {
  644. alert(data);
  645. //listPatients();
  646. //updateEditPatientForm(null);
  647. //getTreatmentDates(selectedPatient);
  648.  
  649. // getWorkingTimes(selectedStaff);
  650. // updateWeekDiv(today);
  651.  
  652. }
  653. }).responseText;
  654. return;
  655. }
  656. }
  657.  
  658.  
  659. // function removePatientTreatmentDateFrom(id_patient_treatment){
  660. // //alert("test");
  661. // result = ycAjaxCall({
  662. // type: 'POST',
  663. // async: false, // Wait for result from server.
  664. // url: 'actions.php',
  665. // data: ({
  666. // action: "remove_patient_treatment",
  667. // id_patient_treatment: id_patient_treatment
  668. // }),
  669. // success: function(data) {
  670. // alert(data);
  671. // //listPatients();
  672. // //updateEditPatientForm(null);
  673. // //getTreatmentDates(selectedPatient);
  674. // updateWeekDiv(today);
  675. //
  676. // }
  677. // }).responseText;
  678. // }
  679.  
  680. function shiftPatientTreatmentDate(id_patient_treatment){
  681.  
  682. if(id_patient_treatment != null){
  683. //test = "testi";
  684. result = ycAjaxCall({
  685. type: 'POST',
  686. async: false, // Wait for result from server.
  687. url: 'actions.php',
  688. data: ({
  689. action: "get_patient_treatment",
  690. id_patient_treatment: id_patient_treatment
  691. }),
  692. success: function(data) {
  693. //alert(data);
  694. //alert(test);
  695. //listPatients();
  696. //updateEditPatientForm(null);
  697. //getTreatmentDates(selectedPatient);
  698. //updateWeekDiv(today);
  699.  
  700. }
  701. }).responseText;
  702. var data = $.parseJSON(result);
  703. //alert(data);
  704.  
  705. //if(data['id_patient_treatment']) window._yc_treatment_to_remove = data['id_patient_treatment'];
  706. // remove data
  707. result = ycAjaxCall({
  708. type: 'POST',
  709. async: false, // Wait for result from server.
  710. url: 'actions.php',
  711. data: ({
  712. action: "remove_patient_treatment",
  713. id_patient_treatment: data['id_patient_treatment']
  714. }),
  715. success: function(data) {
  716. //alert(data);
  717. //listPatients();
  718. //updateEditPatientForm(null);
  719. //getTreatmentDates(selectedPatient);
  720. //updateWeekDiv(today);
  721.  
  722. }
  723. }).responseText;
  724.  
  725.  
  726.  
  727. openTreatmentDate(data['treatment_date'].split(' ')[0], data['treatment_date'].split(' ')[1], data['id_staff'], data['id_patient'], data['id_treatment'], data['treatment_time_end'], data['description']);
  728. }
  729. }
  730. function yc_removePatientTreatmentById(treatmentId){
  731.  
  732. result = ycAjaxCall({
  733. type: 'POST',
  734. async: false, // Wait for result from server.
  735. url: 'actions.php',
  736. data: ({
  737. action: "remove_patient_treatment",
  738. id_patient_treatment: treatmentId
  739. }),
  740. success: function(data) {
  741.  
  742. }
  743. }).responseText;
  744.  
  745. }
  746. function removePatientTreatmentDate(id_patient_treatment){
  747. if(id_patient_treatment != null){
  748. //alert("shit");
  749. result = ycAjaxCall({
  750. type: 'POST',
  751. async: false, // Wait for result from server.
  752. url: 'actions.php',
  753. data: ({
  754. action: "remove_patient_treatment",
  755. id_patient_treatment: id_patient_treatment
  756. }),
  757. success: function(data) {
  758. //alert(data);
  759. //listPatients();
  760. //updateEditPatientForm(null);
  761. //getTreatmentDates(selectedPatient);
  762. updateWeekDiv(today);
  763.  
  764. }
  765. }).responseText;
  766. return;
  767. }
  768. var elements = $("#patient-treatmentdates-select-result").html().split('#');
  769.  
  770. for(var i in elements){
  771. var ele = elements[i].trim();
  772.  
  773. if (ele.length > 0 && !isNaN(ele)) {
  774. //alert("ele" + ele);
  775. /*if (delCount > 0) {
  776. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  777. return;
  778. }*/
  779. //alert("hashTreatmentDates: "+ hashTreatmentDates[ele - 1]);
  780. result = ycAjaxCall({
  781. type: 'POST',
  782. async: false, // Wait for result from server.
  783. url: 'actions.php',
  784. data: ({
  785. action: "remove_patient_treatment",
  786. id_patient_treatment: hashTreatmentDates[ele - 1]
  787. }),
  788. success: function(data) {
  789. //alert(data);
  790. //listPatients();
  791. //updateEditPatientForm(null);
  792. getTreatmentDates(selectedPatient);
  793.  
  794. }
  795. }).responseText;
  796. //delCount++;
  797. }
  798.  
  799. }
  800. //alert("test hey");
  801. }
  802.  
  803. // TODO
  804. function removeStaffWorkingTime(id_staff_workingtime){
  805. //alert("test");
  806. if(id_staff_workingtime != null){
  807. //alert("shit");
  808. result = ycAjaxCall({
  809. type: 'POST',
  810. async: false, // Wait for result from server.
  811. url: 'actions.php',
  812. data: ({
  813. "action": "remove_staff_workingtime",
  814. "id_staff_workingtime": id_staff_workingtime
  815. }),
  816. success: function(data) {
  817. //alert(data);
  818. //listPatients();
  819. //updateEditPatientForm(null);
  820. //getTreatmentDates(selectedPatient);
  821. getWorkingTimes(selectedStaff);
  822. updateWeekDiv(today);
  823.  
  824. }
  825. }).responseText;
  826. return;
  827. }
  828. //alert($("#staff-treatmentdates-select-result").html());
  829. var elements = $("#staff-treatmentdates-select-result").html().split('#');
  830.  
  831. for(var i in elements){
  832. var ele = elements[i].trim();
  833.  
  834. if (ele.length > 0 && !isNaN(ele)) {
  835. //alert("ele" + ele);
  836. /*if (delCount > 0) {
  837. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  838. return;
  839. }*/
  840. //alert("hashTreatmentDates: "+ hashTreatmentDates[ele - 1]);
  841. result = ycAjaxCall({
  842. type: 'POST',
  843. async: false, // Wait for result from server.
  844. url: 'actions.php',
  845. data: ({
  846. "action": "remove_staff_workingtime",
  847. "id_staff_workingtime": hashWorkingTimes[ele - 1]
  848. }),
  849. success: function(data) {
  850. //alert(data);
  851. //listPatients();
  852. //updateEditPatientForm(null);
  853. getWorkingTimes(selectedStaff);
  854. updateWeekDiv(today);
  855.  
  856. }
  857. }).responseText;
  858. //delCount++;
  859. }
  860.  
  861. }
  862. //alert("test hey");
  863. }
  864.  
  865. function removePatient() {
  866. // for(var i in hashPatients){
  867. // alert("Hash" + i +":"+ hashPatients[i]);
  868. // }
  869. //alert(index);
  870. //alert($("#patient-select-result").html());
  871. //alert(hashPatients[index]);
  872.  
  873. //alert('"'+$("#patient-select-result").html() + '"');
  874. var elements = $("#patient-select-result").html().split('#');
  875. /*if(elements.length > 1){
  876. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  877. return;
  878. }*/
  879. var delCount = 0;
  880.  
  881. for (var i in elements) {
  882. //alert(i);
  883.  
  884. var ele = elements[i].trim();
  885.  
  886. if (ele.length > 0 && !isNaN(ele)) {
  887. //alert("ele" + ele);
  888. /*if (delCount > 0) {
  889. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  890. return;
  891. }*/
  892.  
  893. result = ycAjaxCall({
  894. type: 'POST',
  895. async: false, // Wait for result from server.
  896. url: 'actions.php',
  897. data: ({
  898. action: "remove_patient",
  899. id_patient: hashPatients[ele - 1]
  900. }),
  901. success: function(data) {
  902. //alert(data);
  903. listPatients();
  904. updateEditPatientForm(null);
  905.  
  906.  
  907. }
  908. }).responseText;
  909. delCount++;
  910. }
  911. }
  912. }
  913.  
  914. function removeStaff(){
  915. var elements = $("#staff-select-result").html().split('#');
  916.  
  917. var delCount = 0;
  918.  
  919. for (var i in elements) {
  920. //alert("#" + i + " : " + elements[i]);
  921.  
  922. var ele = elements[i].trim();
  923.  
  924. //alert('ele:'+ele);
  925. if (ele.length > 0 && !isNaN(ele)) {
  926. //alert("ele" + ele);
  927.  
  928. //alert("hash " + hashStaffList[ele-1]);
  929. /*if (delCount > 0) {
  930. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  931. return;
  932. }*/
  933.  
  934. result = ycAjaxCall({
  935. type: 'POST',
  936. async: false, // Wait for result from server.
  937. url: 'actions.php',
  938. data: ({
  939. action: "remove_staff",
  940. id_staff: hashStaffList[ele - 1]
  941. }),
  942. success: function(data) {
  943. // alert(data);
  944. listStaff();
  945. updateEditStaffForm(null);
  946. updateWeekDiv(today);
  947.  
  948. }
  949. }).responseText;
  950. delCount++;
  951. }
  952. }
  953. }
  954.  
  955. function listPatients() {
  956. hashPatients = new Array();
  957. //alert("listPatients");
  958. let cached = yc_getCache('listPatients');
  959.  
  960. if(cached && typeof cached !== "undefined") result = cached;
  961. else{
  962. result = ycAjaxCall({
  963. type: 'POST',
  964. async: false, // Wait for result from server.
  965. url: 'actions.php',
  966. data: ({
  967. action: "get_patients"
  968. }),
  969. success: function(data) {
  970. }
  971. }).responseText;
  972. yc_updateCache('listPatients',result);
  973. }
  974.  
  975. var list = $("#patient-selectable").empty();
  976. var data = $.parseJSON(result);
  977. // <li class="ui-widget-content">Hans Meier</li>
  978. //alert(data.length);
  979. var count = 0;
  980.  
  981. for (var i in data) {
  982. list.append('<li class="ui-widget-content">' + data[i]['surname'] + " " + data[i]['prename'] + '</li>');
  983. hashPatients[count++] = data[i]['id_patient'];
  984. //alert("test: "+test[i]['surname']);
  985. }
  986. }
  987.  
  988. function listStaff() {
  989. hashStaffList = new Array();
  990. //alert("listStaff");
  991. let cached = yc_getCache('listStaff');
  992.  
  993. if(cached && typeof cached !== "undefined") result = cached;
  994. else{
  995. result = ycAjaxCall({
  996. type: 'POST',
  997. async: false, // Wait for result from server.
  998. url: 'actions.php',
  999. data: ({
  1000. action: "get_stafflist"
  1001. }),
  1002. success: function(data) {
  1003. //alert(data);
  1004. }
  1005. }).responseText;
  1006. yc_updateCache('listStaff',result);
  1007. }
  1008. var list = $("#staff-selectable").empty();
  1009. var data = $.parseJSON(result);
  1010. // <li class="ui-widget-content">Hans Meier</li>
  1011. //alert(data.length);
  1012. var count = 0;
  1013.  
  1014. for (var i in data) {
  1015. var d = JSON.stringify(data[i]);
  1016. yc_updateCache('getStaffById_'+data[i].id_staff,d);
  1017. list.append('<li class="ui-widget-content">' + data[i]['surname'] + " " + data[i]['prename'] + '</li>');
  1018. hashStaffList[count++] = data[i]['id_staff'];
  1019. //alert("test: "+test[i]['surname']);
  1020. }
  1021. }
  1022. //function updateListTreatmentDates(){
  1023. //
  1024. //}
  1025. function fillSelectPatientsForNewTreatmentdate(id_staff, id_patient, id_treatment){
  1026. result = ycAjaxCall({
  1027. type: 'POST',
  1028. async: false, // Wait for result from server.
  1029. url: 'actions.php',
  1030. data: ({
  1031. action: "get_patients"
  1032. }),
  1033. success: function(data) {
  1034. }
  1035. }).responseText;
  1036. var list = $("#add-treatmentdate-select-patient").empty();
  1037. var data = $.parseJSON(result);
  1038. // <li class="ui-widget-content">Hans Meier</li>
  1039. //alert(data.length);
  1040. var count = 0;
  1041.  
  1042. for (var i in data) {
  1043. //list.append('<li class="ui-widget-content">' + data[i]['prename'] + " " + data[i]['surname'] + '</li>');
  1044. var patientString = data[i]['surname'] + " " + data[i]['prename'];
  1045. if(data[i]['birthday'] !== null && data[i]['birthday'].trim().length > 0){
  1046. patientString += ' (' + data[i]['birthday'] + ')';
  1047. }
  1048. var selected = '';
  1049.  
  1050. if(data[i]['id_patient'] === id_patient){
  1051. selected='selected="selected" ';
  1052. }
  1053. if(i == (selectedPatient-1)){
  1054. selected='selected="selected" ';
  1055. }
  1056.  
  1057.  
  1058. list.append('<option '+selected + 'value="'+data[i]['id_patient']+'">' + patientString + '</option>');
  1059. }
  1060.  
  1061. // add-treatmentdate-select-treatment
  1062. var treatments = new Array();
  1063. treatments = getTreatments();
  1064. //treatments.push(getTreatments()));
  1065. //treatments = $.parseJSON(getTreatments());
  1066. list = $("#add-treatmentdate-select-treatment").empty();
  1067. for (var i in treatments){
  1068. var treatmentString = treatments[i]['shortcut'];
  1069. if( treatments[i]['treatment_name'] !== null && treatments[i]['treatment_name'].trim().length > 0 ){
  1070. treatmentString += ' (' + treatments[i]['treatment_name']+')';
  1071. }
  1072. if( treatments[i]['is_multiple_patients'] !== null && treatments[i]['is_multiple_patients'] === 'true'){
  1073. treatmentString += ' [+]';
  1074. }
  1075. var selected = '';
  1076. if(treatments[i]['id_treatment'] === id_treatment){
  1077. selected='selected="selected" ';
  1078. }
  1079. list.append('<option '+selected+ 'value="' + treatments[i]['id_treatment']+'">'+treatmentString+'</option>');
  1080. }
  1081.  
  1082. var staffList = new Array();
  1083. staffList = getStaffList();
  1084. //var countStaff = 0;
  1085. list = $("#add-treatmentdate-select-staff").empty();
  1086. for (var i in staffList){
  1087. var staffString = staffList[i]['prename'] + ' ' + staffList[i]['surname'];
  1088. // if( treatments[i]['treatment_name'] !== null && treatments[i]['treatment_name'].trim().length > 0 ){
  1089. // treatmentString += ' (' + treatments[i]['treatment_name']+')';
  1090. // }
  1091. //hashStaffList['id'] = 0;
  1092. if(staffList[i]['id_staff'] === id_staff){
  1093. list.append('<option value="' + staffList[i]['id_staff']+'" selected="selected">'+staffString+'</option>');
  1094. }
  1095. else{
  1096. list.append('<option value="' + staffList[i]['id_staff']+'">'+staffString+'</option>');
  1097. }
  1098.  
  1099. }
  1100.  
  1101.  
  1102. }
  1103.  
  1104. function fillSelectStaffForNewWorkingtime(id_staff){
  1105. staffList = getStaffList();
  1106. //var countStaff = 0;
  1107.  
  1108. list = $("#add-workingtime-select-staff").empty();
  1109. for (var i in staffList){
  1110. var staffString = staffList[i]['prename'] + ' ' + staffList[i]['surname'];
  1111. if(staffList[i]['id_staff'] == id_staff || i==selectedStaff-1){
  1112.  
  1113. list.append('<option value="' + staffList[i]['id_staff']+'" selected="selected">'+staffString+'</option>');
  1114. }
  1115. else{
  1116. list.append('<option value="' + staffList[i]['id_staff']+'">'+staffString+'</option>');
  1117. }
  1118.  
  1119. }
  1120. }
  1121.  
  1122. function getPatient(index, isId) {
  1123.  
  1124. if(index == null || index==''){
  1125. return null;
  1126. }
  1127. var idP = null;
  1128. if(isId == true){
  1129. idP = index;
  1130. }
  1131. else{
  1132. idP = hashPatients[index - 1];
  1133. }
  1134. result = ycAjaxCall({
  1135. type: 'POST',
  1136. async: false, // Wait for result from server.
  1137. url: 'actions.php',
  1138. data: ({
  1139. action: "get_patient",
  1140. id_patient: idP//hashPatients[index - 1]
  1141. }),
  1142. success: function(data) {
  1143. //alert(data);
  1144. }
  1145. }).responseText;
  1146.  
  1147. return result;
  1148. }
  1149.  
  1150. function getStaffById(id) {
  1151. if(id == null || id == ''){ return null;}
  1152.  
  1153. let cached = yc_getCache('getStaffById_'+id);
  1154.  
  1155. if(cached && typeof cached !== "undefined") result = cached;
  1156. else{
  1157. result = ycAjaxCall({
  1158. type: 'POST',
  1159. async: false, // Wait for result from server.
  1160. url: 'actions.php',
  1161. data: ({
  1162. action: "get_staff",
  1163. id_staff: id
  1164. }),
  1165. success: function(data) {
  1166. //alert(data);
  1167. }
  1168. }).responseText;
  1169.  
  1170. yc_updateCache('getStaffById_'+id,result);
  1171. }
  1172.  
  1173. return result;
  1174. }
  1175.  
  1176.  
  1177. function getTreatmentDates(index, isId){
  1178. var idP = null;
  1179. if(isId == true){
  1180. idP = index;
  1181. }
  1182. else{
  1183. idP = hashPatients[index - 1];
  1184. }
  1185. selectedTreatmentDate = "";
  1186.  
  1187. let cached = yc_getCache('get_treatment_dates_'+idP);
  1188.  
  1189. if(cached) result = cached;
  1190. else{
  1191. result = ycAjaxCall({
  1192. type: 'POST',
  1193. async: false, // Wait for result from server.
  1194. url: 'actions.php',
  1195. data: ({
  1196. action: "get_treatment_dates",
  1197. id_patient: idP //hashPatients[index - 1]
  1198. }),
  1199. success: function(data) {
  1200. //alert(data);
  1201. }
  1202. }).responseText;
  1203. yc_updateCache('get_treatment_dates_'+idP,result);
  1204. }
  1205. var data = $.parseJSON(result);
  1206. $("#patient-treatmentdates-select-result").empty()
  1207. var list = $("#patient-treatmentdates-selectable").empty();
  1208. var count = 0;
  1209.  
  1210. let forLoopCounter = 0;
  1211. let yc_staff_stack = [];
  1212. let yc_treatment_stack = [];
  1213. getStaffList();
  1214. getTreatments();
  1215. for (const i in data) {
  1216. //if (forLoopCounter === 100) break;
  1217.  
  1218. //alert(data[i]['id_staff']+'::'+data[i]['id_treatment']);
  1219. // Rest des Codes
  1220. if(!yc_staff_stack[data[i]['id_staff']]) yc_staff_stack[data[i]['id_staff']] = getStaffById(data[i]['id_staff']);
  1221.  
  1222. if(!yc_treatment_stack[data[i]['id_treatment']]) yc_treatment_stack[data[i]['id_treatment']] = getTreatmentById(data[i]['id_treatment']);
  1223.  
  1224. const staff = $.parseJSON(yc_staff_stack[data[i]['id_staff']]);
  1225. const treatment = $.parseJSON(yc_treatment_stack[data[i]['id_treatment']]);
  1226. list.append(
  1227. '<li class="ui-widget-content" style="height: 64px;">' +
  1228. data[i]['treatment_date'] +
  1229. '<br /><font style="font-size: 0.87em;">bis ' +
  1230. data[i]['treatment_time_end'] +
  1231. ' (' +
  1232. treatment['shortcut'] +
  1233. ') <br />' +
  1234. staff['prename'] +
  1235. ' ' +
  1236. staff['surname'] +
  1237. '</font></li>'
  1238. );
  1239. //console.log(data);
  1240. hashTreatmentDates[count++] = data[i]['id_patient_treatment'];
  1241. forLoopCounter++;
  1242. }
  1243.  
  1244.  
  1245. return result;
  1246. }
  1247.  
  1248.  
  1249. function getWorkingTimes(index){
  1250. selectedWorkingTime = "";
  1251. result = ycAjaxCall({
  1252. type: 'POST',
  1253. async: false, // Wait for result from server.
  1254. url: 'actions.php',
  1255. data: ({
  1256. action: "get_working_times",
  1257. id_staff: hashStaffList[index - 1]
  1258. }),
  1259. success: function(data) {
  1260. //alert(data);
  1261. }
  1262. }).responseText;
  1263.  
  1264. var data = $.parseJSON(result);
  1265. $("#staff-treatmentdates-select-result").empty()
  1266. var list = $("#staff-treatmentdates-selectable").empty();
  1267. var count = 0;
  1268.  
  1269. for (var i in data) {
  1270. //alert(getStaffById(data[i]['id_staff']));
  1271. var staff = $.parseJSON(getStaffById(data[i]['id_staff']));
  1272. var matter = getNameFromMatter(data[i]['matter']);
  1273. //alert(getTreatmentById(data[i]['id_treatment']));
  1274. //alert(treatment['shortcut']);
  1275. list.append('<li class="ui-widget-content" style="height: 64px;">' +
  1276. data[i]['beginning_time'] + '<br /><font style="font-size: 0.87em;">bis ' +
  1277. data[i]['end_time']+ " (" + matter +
  1278. ')</font></li>');
  1279. hashWorkingTimes[count++] = data[i]['id_staff_workingtime'];
  1280. //alert("hashTreatmentDate " + data[i]['id_patient_treatment']);
  1281. //hashPatients[count++] = data[i]['id_patient'];
  1282. //alert("test: "+test[i]['surname']);
  1283. }
  1284.  
  1285.  
  1286. return result;
  1287. }
  1288.  
  1289.  
  1290. function getStaffList(){
  1291. let cached = yc_getCache('getStaffList');
  1292.  
  1293. if(cached && typeof cached !== "undefined") result = cached;
  1294. else{
  1295. result = ycAjaxCall({
  1296. type: 'POST',
  1297. async: false, // Wait for result from server.
  1298. url: 'actions.php',
  1299. data: ({
  1300. action: "get_stafflist"
  1301. }),
  1302. success: function(data) {
  1303. }
  1304. }).responseText;
  1305.  
  1306. yc_updateCache('getStaffList',result);
  1307. }
  1308.  
  1309. var _ycstafflist = $.parseJSON(result);
  1310.  
  1311. for (var i in _ycstafflist){
  1312. //alert(_ycstafflist[i].id_staff);
  1313. //yc_getCache('getStaffList');
  1314. var d = JSON.stringify(_ycstafflist[i])
  1315. yc_updateCache('getStaffById_'+_ycstafflist[i].id_staff,d);
  1316. }
  1317.  
  1318. //return result;
  1319. //alert(result);
  1320. return $.parseJSON(result);
  1321. }
  1322.  
  1323. function getTreatments(){
  1324. let cached = yc_getCache('getTreatments');
  1325.  
  1326. if(cached && typeof cached !== "undefined") result = cached;
  1327. else{
  1328. result = ycAjaxCall({
  1329. type: 'POST',
  1330. async: false, // Wait for result from server.
  1331. url: 'actions.php',
  1332. data: ({
  1333. action: "get_treatments"
  1334. }),
  1335. success: function(data) {
  1336. }
  1337. }).responseText;
  1338. }
  1339.  
  1340. var _treatmentlist = $.parseJSON(result);
  1341.  
  1342.  
  1343. for (var i in _treatmentlist){
  1344.  
  1345. var d = JSON.stringify(_treatmentlist[i])
  1346. yc_updateCache('getTreatmentById_'+_treatmentlist[i].id_treatment,d);
  1347. }
  1348. //return result;
  1349. //alert(result);
  1350. return $.parseJSON(result);
  1351. }
  1352.  
  1353. function getTreatmentById(id) {
  1354. let cached = yc_getCache('getTreatmentById_'+id);
  1355.  
  1356. if(cached && typeof cached !== "undefined") result = cached;
  1357. else{
  1358. result = ycAjaxCall({
  1359. type: 'POST',
  1360. async: false, // Wait for result from server.
  1361. url: 'actions.php',
  1362. data: ({
  1363. action: "get_treatment",
  1364. id_treatment: id
  1365. }),
  1366. success: function(data) {
  1367. //alert(data);
  1368. }
  1369. }).responseText;
  1370. yc_updateCache('getTreatmentById_'+id,result);
  1371. }
  1372.  
  1373. return result;
  1374. }
  1375.  
  1376. function insertWorkingTimeQuery(insertData, feedback){
  1377.  
  1378. result = ycAjaxCall({
  1379. type: 'POST',
  1380. async: false, // WICHTIG!
  1381. url: 'actions.php',
  1382. data: ({
  1383. "action": "insert_working_time",
  1384. "id_staff": insertData['staffId'],
  1385. "beginning_date": insertData['resultDateBegin'],
  1386. "end_date": insertData['resultDateEnd'],
  1387. "matter": insertData['matter']
  1388. }),
  1389. success: function(data) {
  1390. if(feedback === true){
  1391. alert(data);
  1392. getWorkingTimes(selectedStaff)
  1393.  
  1394. $("#add-workingtime-dialog").dialog("close");
  1395. updateWeekDiv(today);
  1396. }
  1397.  
  1398. }
  1399. });//.responseText;
  1400. }
  1401.  
  1402. function updateEditPatientForm(patient) {
  1403. //alert("Patient-length: " + patient.length);
  1404. if (patient === null) {
  1405. $('#edit-patient-prename').val("");
  1406. $('#edit-patient-surname').val("");
  1407. $('#edit-patient-birthday').val("");
  1408. $('#edit-patient-telephone').val("");
  1409. $('#edit-patient-remark').val("");
  1410. $('#edit-patient-town').val("");
  1411. $('#edit-patient-zipcode').val("");
  1412. $('#edit-patient-street').val("");
  1413. }
  1414. else {
  1415. $('#edit-patient-prename').val(patient['prename']);
  1416. $('#edit-patient-surname').val(patient['surname']);
  1417. $('#edit-patient-birthday').val(patient['birthday']);
  1418. $('#edit-patient-telephone').val(patient['telephone']);
  1419. $('#edit-patient-remark').val(patient['description_text']);
  1420. $('#edit-patient-town').val(patient['town']);
  1421. $('#edit-patient-zipcode').val(patient['zipcode']);
  1422. $('#edit-patient-street').val(patient['street']);
  1423.  
  1424. }
  1425. }
  1426.  
  1427.  
  1428. function updateEditStaffForm(staff) {
  1429. //alert("Patient-length: " + patient.length);
  1430. //$('#edit-staff-active').attr("checked", "checked");
  1431. if (staff === null || staff=='') {
  1432. $('#edit-staff-prename').val("");
  1433. $('#edit-staff-surname').val("");
  1434. $('#edit-staff-birthday').val("");
  1435. $('#edit-staff-telephone').val("");
  1436. $('#edit-staff-remark').val("");
  1437. //$('#edit-staff-active').attr("checked", false);
  1438. //$('#edit-staff-active').removeAttr("checked");
  1439. var editStaffActive = document.getElementById('edit-staff-active');
  1440. editStaffActive.checked = null;
  1441. }
  1442. else {
  1443. var editStaffActive = document.getElementById('edit-staff-active');
  1444. if(staff['is_present'] === "true"){
  1445. editStaffActive.checked = "checked";
  1446. }
  1447. else{
  1448. editStaffActive.checked = null;
  1449. }
  1450. //$('#edit-staff-active').attr("checked", "checked");
  1451. $('#edit-staff-prename').val(staff['prename']);
  1452. $('#edit-staff-surname').val(staff['surname']);
  1453. $('#edit-staff-birthday').val(staff['birthday']);
  1454. $('#edit-staff-telephone').val(staff['telephone']);
  1455. $('#edit-staff-remark').val(staff['description_text']);
  1456. // if(staff['is_present'] === "true"){
  1457. // alert("yeah");
  1458. // }
  1459.  
  1460. }
  1461. }
  1462.  
  1463. function openTreatmentDate(start, begin_time, id_staff, id_patient, id_treatment, time_end, description){
  1464. //alert("testii");
  1465. fillSelectPatientsForNewTreatmentdate(id_staff, id_patient, id_treatment);
  1466.  
  1467. $("#add-treatmentdate-input-start").val((start !== null) ? start : "");
  1468. $("#add-treatmentdate-input-end").val("");
  1469. $("#add-treatmentdate-input-time-begin").val((begin_time !== null) ? begin_time : "");
  1470. $("#add-treatmentdate-input-time-end").val((time_end !== null) ? time_end : "");
  1471. $("#add-treatmentdate-input-description").val((description !== null) ? description : "");
  1472.  
  1473. $("#add-treatmentdate-dialog").dialog("open");
  1474. }
  1475.  
  1476. function toolbarFilter(){
  1477. var staffList = new Array();
  1478. staffList = getStaffList();
  1479. var staffChooserDiv = document.createElement('div');
  1480. staffChooserDiv.id = "staffchooser";
  1481. staffChooserDiv.style="left: 0px; text-align: left; margin-top: 20px; width: 100%; float:left; position: relative;";
  1482. for (var i in staffList){
  1483. if(staffList[i]['is_present'] !== "true"){
  1484. continue;
  1485. }
  1486. //hashFilterStaff[staffList[i]['id_staff']] = true;
  1487. var staffCheckBox = document.createElement('input');
  1488. staffCheckBox.type='checkbox';
  1489. $(staffCheckBox).attr('id_staff',staffList[i]['id_staff'] );
  1490. //staffCheckBox.id_staff = staffList[i]['id_staff'];
  1491. staffCheckBox.onclick = (function(){
  1492. //alert(hashFilterStaff[this.id_staff]);
  1493. //hashFilterStaff[this.id_staff] = this.checked;
  1494. if($("#staffFilterButton:checked").val()){
  1495. updateWeekDiv(currentWeekDate, currentDayView);
  1496. }
  1497. });;
  1498. staffChooserDiv.appendChild(staffCheckBox);
  1499. var staffSpanName = document.createElement('span');
  1500. staffSpanName.innerHTML = staffList[i]['surname'];
  1501. staffSpanName.style="margin-right:10px;";
  1502. staffChooserDiv.appendChild(staffSpanName);
  1503. }
  1504. //var staffFilterButton = document.createElement('button');
  1505. var staffFilterButton = document.createElement('input');
  1506. staffFilterButton.id='staffFilterButton';
  1507. staffFilterButton.style="margin-left:20px;";
  1508. staffFilterButton.type='checkbox';
  1509. //staffFilterButton.innerHTML = "Test";
  1510. //staffFilterButton.innerHTML = "Filter";
  1511. var staffFilterLabel = document.createElement('label');
  1512. staffFilterLabel.for="staffFilterButton";
  1513.  
  1514. staffFilterLabel.innerHTML = "<b><u>Filter1</u></b>"
  1515.  
  1516. staffChooserDiv.appendChild(staffFilterButton);
  1517. staffChooserDiv.appendChild(staffFilterLabel);
  1518.  
  1519. // $(staffFilterButton).button( {
  1520. // icons: {
  1521. // primary: "ui-icon-calendar"
  1522. // },
  1523. // text: true
  1524. // });
  1525. $(staffFilterButton).change(function(){
  1526. updateWeekDiv(currentWeekDate, currentDayView);
  1527. //alert("test");
  1528. });
  1529. $('#toolbar').append(staffChooserDiv);
  1530. }
  1531.  
  1532. function updateWeekDiv(date, dayview){
  1533.  
  1534. var plan = $("#plan").empty();
  1535.  
  1536. currentWeekDate = date;
  1537. currentDayView = dayview;
  1538. //plan.append(staffChooserDiv);
  1539.  
  1540. var dayCount = null;
  1541. if(dayview === true || $("#day-view-check:checked").val()){
  1542. //var myDate = new Date(date);
  1543. updateWeekDayDiv(date);
  1544. }
  1545. else{
  1546. //alert(date);
  1547. var inputDate = new Date(date);
  1548. //alert(inputDate);
  1549. var startDate = new Date(date);
  1550. //startDate.setDate(date.getDate() - date.getDay() + 1);
  1551. //alert(date.getDate() +" " + date.getDay() );
  1552. startDate.setDate(date.getDate() - date.getDay() + 1);
  1553. //alert(startDate);
  1554. for(var i=0; i<5; i++){
  1555. var myDate = new Date(startDate);
  1556. myDate.setDate(startDate.getDate()+i);
  1557. //alert("mydate: " + myDate);
  1558. //alert("date: " + date);
  1559. var isFocus = false;
  1560. if(inputDate.getTime() === myDate.getTime()){
  1561. isFocus=true;
  1562. dayCount = i;
  1563. //alert("found"+i);
  1564. }
  1565. updateWeekDayDiv(myDate, isFocus);
  1566. }
  1567. }
  1568. var totalWidth = 0;
  1569. var i = 0;
  1570. var scrollLeftValue = 0;
  1571. // alert("i=" + i + "\n dayCount" + dayCount);
  1572. plan.children('div').each(
  1573. function() {
  1574. var child = $(this);
  1575. // alert("i=" + i + "\n dayCount" + dayCount);
  1576. if(child.attr('id') !== 'staffchooser'){
  1577. //alert(child.attr('id'));
  1578. //alert(child.attr());
  1579. // alert("i=" + i + "\n dayCount" + dayCount);
  1580. if(i==dayCount){
  1581. // alert("yes we can");
  1582. scrollLeftValue = totalWidth;
  1583. }
  1584. i++;
  1585. totalWidth += child.width() + 50;
  1586. }
  1587. });
  1588. //alert("scrollLeftValue" + scrollLeftValue);
  1589. plan.width(totalWidth);
  1590. $('html,body').scrollLeft(scrollLeftValue);
  1591. }
  1592.  
  1593. function updateWeekDayDiv(date){
  1594. //function updateWeekDiv(date){
  1595. //alert("hello");
  1596.  
  1597. plan = $("#plan");
  1598. //var plan = $("#plan").empty();
  1599. //alert(convertDate(date));
  1600. //jetzt javascript ajax nach PHP
  1601. result = ycAjaxCall({
  1602. type: 'POST',
  1603. async: false, // Wait for result from server.
  1604. url: 'actions.php',
  1605. data: ({
  1606. action: "get_patient_treatment_day",
  1607. date: convertDate(date)//"28.03.2014"//convertDate(date)
  1608. }),
  1609. success: function(data) {
  1610. //alert("get_patient_treatment_day\n" + data);
  1611. }
  1612. }).responseText;
  1613.  
  1614. resultWorkingTimes = ycAjaxCall({
  1615. type: 'POST',
  1616. async: false, // Wait for result from server.
  1617. url: 'actions.php',
  1618. data: ({
  1619. action: "get_working_times",
  1620. date: convertDate(date)
  1621. }),
  1622. success: function(data) {
  1623. //alert("get_working_times\n" + data);
  1624. }
  1625. }).responseText;
  1626.  
  1627.  
  1628. //return result;
  1629. //alert(result);
  1630. var pt_day = $.parseJSON(result);
  1631. var working_times = $.parseJSON(resultWorkingTimes);
  1632. //alert(JSON.stringify(pt_day[0]['treatment_date']));
  1633. var div_weekday = document.createElement('div');
  1634. var h2_head = document.createElement('h2');
  1635.  
  1636. h2_head.style="margin-bottom: 0px; padding-bottom: 0px;";
  1637. h2_head.innerHTML=getDayByDate(date);
  1638. div_weekday.appendChild(h2_head);
  1639.  
  1640. var p_element = document.createElement('p');
  1641. p_element.style="margin-top: 0px; padding-top: 3px;";
  1642. p_element.innerHTML = "<font size=0.4em>" + convertDate(date) + "</font></p>";
  1643. div_weekday.appendChild(p_element);
  1644.  
  1645. var table_element = document.createElement('table');
  1646. table_element.border="1";
  1647. table_element.rules="groups";
  1648.  
  1649. var thead_element = document.createElement('thead');
  1650. var tr_element = document.createElement('tr');
  1651. var th_element = document.createElement('th');
  1652. th_element.class="time";
  1653. th_element.innerHTML = "Uhrzeit";
  1654. tr_element.appendChild(th_element);
  1655.  
  1656. var staffFilterList = new Array();
  1657.  
  1658. if($("#staffFilterButton:checked").val()){
  1659. $("#staffchooser").children('input').each(
  1660. function(){
  1661. if($(this).attr('id_staff')){
  1662. //alert($(this).attr('id_staff') + " : " + $(this).get(0).checked);
  1663. staffFilterList[$(this).attr('id_staff')] = $(this).get(0).checked;
  1664. }
  1665.  
  1666. });
  1667. }
  1668. // for (var x in staffFilterList){
  1669. // alert(staffFilterList[x] + ": " + x);
  1670. // }
  1671. // List all staff
  1672. var staffList = new Array();
  1673. staffList = getStaffList();
  1674.  
  1675. for (var i in staffList){
  1676. if(staffList[i]['is_present'] !== "true" ||
  1677. ( $("#staffFilterButton:checked").val() && staffFilterList[staffList[i]['id_staff']] !== true) ){
  1678.  
  1679. continue;
  1680. }
  1681. var th_element = document.createElement('th');
  1682. th_element.class="day";
  1683. th_element.style="min-width: 70px;"
  1684. th_element.innerHTML=staffList[i]['surname'];
  1685. th_element.value=Date.parse(date) + '_' + staffList[i]['id_staff'];
  1686.  
  1687.  
  1688. var th_element_button_pdf = document.createElement('button');
  1689. th_element_button_pdf.innerHTML = "pdf";
  1690. th_element_button_pdf.date_time = date;
  1691. th_element_button_pdf.id_staff= staffList[i]['id_staff'];
  1692. $(th_element_button_pdf).button({
  1693. icons: {
  1694. primary: " ui-icon-document "
  1695. },
  1696. text: false
  1697. });
  1698. th_element_button_pdf.style='height: 19px; width:26px; margin-left: 10px;';
  1699. $(th_element_button_pdf).click(function() {
  1700. //alert("hey " + convertDate(date));
  1701. window.open('stafftopdf.php?id_staff=' + this.id_staff + "&date="+convertDate(this.date_time), '_blank');
  1702. });
  1703.  
  1704. th_element.appendChild(th_element_button_pdf);
  1705. // th_element.onclick=(function(){
  1706. // resultWorkingTimes = ycAjaxCall({
  1707. // type: 'POST',
  1708. // async: false, // Wait for result from server.
  1709. // url: 'actions.php',
  1710. // data: ({
  1711. // action: "insert_working_time",
  1712. // id_staff: this.value.split('_')[1],
  1713. // beginning_date: this.value.split('_')[0],
  1714. // end_date: "test",
  1715. // matter: 'hello'
  1716. // }),
  1717. // success: function(data) {
  1718. // alert(data);
  1719. // //alert("get_patient_treatment_day\n" + data);
  1720. // }
  1721. // }).responseText;
  1722. // });
  1723.  
  1724. tr_element.appendChild(th_element);
  1725. }
  1726. thead_element.appendChild(tr_element);
  1727. table_element.appendChild(thead_element);
  1728.  
  1729. var tbody_element = document.createElement('tbody');
  1730.  
  1731. var day_begin_hour= <?php echo $settings['day_begin_hour'];?> //8; //default is 8 o'clock
  1732. var day_end_hour= <?php echo $settings['day_end_hour'];?> //19; //default is 19 o'clock
  1733. var time_granularity=<?php echo $settings['time_granularity'];?> // 10; // default is 10min
  1734.  
  1735. var hash_pt_day = new Array();
  1736.  
  1737. for(var i=day_begin_hour; i<=day_end_hour; i++){
  1738. for(var j=0; j<60; j = j + time_granularity){
  1739. var loopDate = new Date();
  1740. loopDate.setHours(i, j);
  1741. var tr_element = document.createElement('tr');
  1742.  
  1743. // display time
  1744. var td_time_element = document.createElement('td');
  1745. td_time_element.class="time";
  1746. td_time_element.style="font-size: 0.8em;";
  1747. td_time_element.innerHTML = (loopDate.getHours()<10? '0' : '') + loopDate.getHours() + ":" + (loopDate.getMinutes()<10?'0':'') + loopDate.getMinutes();//i + ":" + j;
  1748. // td_time_element.onclick = (function(){
  1749. // //alert(this.innerHTML);
  1750. // });
  1751. tr_element.appendChild(td_time_element);
  1752. var treatmentDateObj = new Array();
  1753. treatmentDateObj['begin_time'] = "";
  1754. treatmentDateObj['surname'] = "";
  1755. // display treatment date for every staff
  1756. for(var s in staffList){
  1757. //alert(JSON.stringify(staffList[s]));
  1758. if(staffList[s]['is_present'] !== "true" ||
  1759. ( $("#staffFilterButton:checked").val() && staffFilterList[staffList[s]['id_staff']] !== true)){
  1760. continue;
  1761. }
  1762. var td_date_element = document.createElement('td');
  1763. td_date_element.class="day";
  1764.  
  1765. var begin_date=""
  1766. var begin_time="";
  1767. var end_time="";
  1768. var treatment_time = new Date(date.getFullYear(), date.getMonth(), date.getDate(), loopDate.getHours(), loopDate.getMinutes());
  1769. var current_treatment = null;
  1770. var hasTermin = false;
  1771.  
  1772. for(var wt in working_times){
  1773. begin_date = working_times[wt]['beginning_time'].split(' ');
  1774. var end_date = working_times[wt]['end_time'].split(' ');
  1775. var wt_day_beginning_time = new Date(begin_date[0].split('.')[2], begin_date[0].split('.')[1]-1, begin_date[0].split('.')[0], begin_date[1].split(':')[0], begin_date[1].split(':')[1] );
  1776. var wt_day_end_time = new Date(end_date[0].split('.')[2], end_date[0].split('.')[1]-1, end_date[0].split('.')[0], end_date[1].split(':')[0], end_date[1].split(':')[1] );
  1777.  
  1778. var time_begin = new Date(treatment_time);
  1779. var time_end = new Date(treatment_time);
  1780.  
  1781. time_begin.setHours(wt_day_beginning_time.getHours());
  1782. time_begin.setMinutes(wt_day_beginning_time.getMinutes());
  1783. time_end.setHours(wt_day_end_time.getHours());
  1784. time_end.setMinutes(wt_day_end_time.getMinutes());
  1785.  
  1786.  
  1787. if(staffList[s]['id_staff'] === working_times[wt]['id_staff']){
  1788. if(Date.parse(wt_day_beginning_time) <= Date.parse(treatment_time) && Date.parse(treatment_time) <= Date.parse(wt_day_end_time) ){
  1789.  
  1790. if(working_times[wt]['matter'] === 'HOLIDAY'){
  1791. td_date_element.style="background-color: #ff6d6d;";
  1792. hasTermin = true;
  1793. }
  1794. else if (working_times[wt]['matter'] === 'WORK'){
  1795. if(Date.parse(time_begin) <= Date.parse(treatment_time) && Date.parse(treatment_time) <= Date.parse(time_end) ){
  1796. //td_date_element.style="background-color: #bbddff;";
  1797. td_date_element.style="background-color: #bbffbb;";
  1798. }
  1799. }
  1800.  
  1801.  
  1802. }
  1803.  
  1804. //td_date_element.innerHTML = "time";
  1805. //td_date_element.innerHTML = Date.parse(wt_day_end_time) + "<br />" + Date.parse(treatment_time);
  1806. }
  1807.  
  1808. //
  1809. }
  1810.  
  1811. // TODO HERE
  1812. //var pt_day_groups
  1813. // for (var pt in pt_day){
  1814. //
  1815. // }
  1816. var begin_date="";
  1817. var end_time="";
  1818. for(var pt in pt_day){
  1819.  
  1820. begin_date = pt_day[pt]['treatment_date'].split(' ');
  1821. //if(Math.abs(begin_date)
  1822. begin_time = begin_date[1];
  1823.  
  1824. var tt_end = pt_day[pt]['treatment_time_end'];
  1825. //end_time = tt_end[0] + ":" + tt_end[1];
  1826.  
  1827. var pt_time = new Date(date.getFullYear(), date.getMonth(), date.getDate(), begin_time.split(':')[0], begin_time.split(':')[1]);
  1828. //var pt_time2 = new Date(date.getFullYear(), date.getMonth(), date.getDate(), begin_time.split(':')[0], parseInt(begin_time.split(':')[1]) + 15);
  1829. var pt_time_end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), tt_end.split(':')[0], tt_end.split(':')[1]);
  1830. // 900000ms = 15min
  1831. // 600000ms = 10min
  1832. if(staffList[s]['id_staff'] === pt_day[pt]['id_staff']){
  1833. if((Math.abs(Date.parse(treatment_time) - Date.parse(pt_time)) < (time_granularity * 60 * 1000)) && (typeof(hash_pt_day[pt_day[pt]['id_patient_treatment']]) === 'undefined' || hash_pt_day[pt_day[pt]['id_patient_treatment']] === null) ){
  1834. hash_pt_day[pt_day[pt]['id_patient_treatment']] = true;
  1835. treatmentDateObj['begin_time'] = begin_time;
  1836. treatmentDateObj['surname'] = pt_day[pt]['surname'] + " " + pt_day[pt]['prename']+" <br>("+pt_day[pt]['shortcut']+") "+begin_time +"-"+tt_end.split(':')[0]+":"+tt_end.split(':')[1] + " <br>";//+"|";
  1837. treatmentDateObj['checked'] = pt_day[pt]['is_present'];
  1838.  
  1839. var td_date_element_check_button = document.createElement('input');
  1840. td_date_element_check_button.id_patient_treatment = pt_day[pt]['id_patient_treatment'];
  1841. td_date_element_check_button.type="checkbox";
  1842. if(treatmentDateObj['checked'] === 'true'){
  1843. td_date_element_check_button.checked="checked";
  1844. }
  1845. td_date_element_check_button.onclick=(function(){
  1846. //alert(this.checked);
  1847. //alert(this.id_patient_treatment);
  1848.  
  1849. //TODO
  1850. setPatientTreatmentCheck(this.id_patient_treatment, this.checked);
  1851.  
  1852. //$( "#-dialog" ).dialog('open');
  1853.  
  1854. });
  1855. td_date_element.appendChild(td_date_element_check_button);
  1856.  
  1857. var a_link_patient = document.createElement('span');
  1858. a_link_patient.id_patient = pt_day[pt]['id_patient'];
  1859. a_link_patient.innerHTML = treatmentDateObj['surname'];
  1860. //a_link_patient.href="";
  1861. a_link_patient.style="text-decoration: underline; cursor: pointer;";
  1862. a_link_patient.onclick = (function(){
  1863. // TODO
  1864. //alert(a_link_patient.id_patient);
  1865. ycShowLoader();
  1866.  
  1867. var ycThis = this;
  1868. ycDisplayLoader().then(function(v){
  1869.  
  1870.  
  1871.  
  1872.  
  1873. listPatients();
  1874. for(var sp in hashPatients){
  1875. //alert(sp);
  1876. if(hashPatients[sp] == ycThis.id_patient){
  1877. selectedPatient=Math.abs(sp)+1;
  1878. break;
  1879. }
  1880.  
  1881. }
  1882. var p = $.parseJSON(getPatient(ycThis.id_patient, true));
  1883. updateEditPatientForm(p);
  1884. getTreatmentDates(p['id_patient'], true);
  1885.  
  1886. $("#listpatients-dialog").dialog("open");
  1887.  
  1888. });
  1889. //$("#plan").scrollTo({ left:$('#listpatients-dialog').offset().left});
  1890. //alert($('#listpatients-dialog').offset().left);
  1891.  
  1892. //$("#listpatients-dialog").focus();
  1893.  
  1894. });
  1895. td_date_element.appendChild(a_link_patient);
  1896. // Add description/remark if there is a description for that patient_treatment
  1897. if(pt_day[pt]['description'] !== null && pt_day[pt]['description'] !== ""){
  1898.  
  1899. var td_date_element_description_button = document.createElement('button');
  1900. td_date_element_description_button.id_patient_treatment = pt_day[pt]['id_patient_treatment'];
  1901. td_date_element_description_button.innerHTML=pt_day[pt]['description'];
  1902. td_date_element_description_button.text=pt_day[pt]['description'];
  1903. //td_date_element_description_button.alt=pt_day[pt]['description'];
  1904. td_date_element_description_button.onclick=(function(){
  1905. alert(this.text);
  1906. //selectedPatientTreatmentDateCalendar = this.id_patient_treatment;
  1907. //$( "#-dialog" ).dialog('open');
  1908. });
  1909. //$( "button:first" ).button({
  1910. $(td_date_element_description_button).button({
  1911. icons: {
  1912. primary: "ui-icon-notice"
  1913. },
  1914. text: false
  1915. });
  1916. td_date_element_description_button.style='height: 19px; width:26px;';
  1917. td_date_element.appendChild(td_date_element_description_button);
  1918. }
  1919. //td_date_element.innerHTML = treatmentDateObj['surname'];
  1920. // Add delete button for every patient_treatment
  1921.  
  1922. var td_date_element_delete_button = document.createElement('button');
  1923. td_date_element_delete_button.id_patient_treatment = pt_day[pt]['id_patient_treatment'];
  1924. td_date_element_delete_button.innerHTML="löschen";
  1925. td_date_element_delete_button.onclick=(function(){
  1926. //alert(this.id_patient_treatment);
  1927. selectedPatientTreatmentDateCalendar = this.id_patient_treatment;
  1928. $( "#-dialog" ).dialog('open');
  1929.  
  1930. });
  1931. //$( "button:first" ).button({
  1932. $(td_date_element_delete_button).button({
  1933. icons: {
  1934. primary: "ui-icon-trash"
  1935. },
  1936. text: false
  1937. });
  1938. td_date_element_delete_button.style='height: 19px; width:26px;';
  1939. //td_date_element.innerHTML += ' <button id_treatment="'+pt_day[pt]['id_patient_treatment']+'">löschen</button>';
  1940.  
  1941. if(pt_day[pt]['color'] === null){
  1942. td_date_element.style="background-color: #fdff6d;";
  1943. }
  1944. else{
  1945. td_date_element.style="background-color: #"+pt_day[pt]['color']+";";
  1946. }
  1947. td_date_element.appendChild(td_date_element_delete_button);
  1948.  
  1949.  
  1950. var td_date_element_add_patient_button = document.createElement('button');
  1951. // TODO ADD BUTTON
  1952. td_date_element_add_patient_button.innerHTML = "add";
  1953. td_date_element_add_patient_button.id_patient_treatment = pt_day[pt]['id_patient_treatment'];
  1954. $(td_date_element_add_patient_button).button({
  1955. icons: {
  1956. primary: " ui-icon-plus "
  1957. },
  1958. text: false
  1959. });
  1960.  
  1961. //ADD GROUP
  1962. $(td_date_element_add_patient_button).click(function() {
  1963. //alert(this.id_patient_treatment);
  1964. if(this.id_patient_treatment != null){
  1965.  
  1966. result = ycAjaxCall({
  1967. type: 'POST',
  1968. async: false, // Wait for result from server.
  1969. url: 'actions.php',
  1970. data: ({
  1971. action: "get_patient_treatment",
  1972. id_patient_treatment: this.id_patient_treatment
  1973. }),
  1974. success: function(data) {
  1975. //alert(data);
  1976. //alert(test);
  1977. //listPatients();
  1978. //updateEditPatientForm(null);
  1979. //getTreatmentDates(selectedPatient);
  1980. //updateWeekDiv(today);
  1981.  
  1982. }
  1983. }).responseText;
  1984. //alert (result);
  1985. var data = $.parseJSON(result);
  1986. //openTreatmentDate(data['treatment_date'].split(' ')[0], data['treatment_date'].split(' ')[1], data['id_staff'], data['id_patient'], data['id_treatment'], data['treatment_time_end']);
  1987. openTreatmentDate(data['treatment_date'].split(' ')[0], data['treatment_date'].split(' ')[1], data['id_staff'], null, data['id_treatment'], data['treatment_time_end']);
  1988. }
  1989.  
  1990. });
  1991.  
  1992. td_date_element_add_patient_button.style='height: 19px; width:26px;'
  1993. if(pt_day[pt]['is_multiple_patients'] === 'true'){
  1994. td_date_element.appendChild(td_date_element_add_patient_button);
  1995. }
  1996. td_date_element.appendChild(document.createElement('br'));
  1997.  
  1998. hasTermin = true;
  1999. $( "#rewind" ).button({
  2000. text: false,
  2001. icons: {
  2002. primary: "ui-icon-seek-prev"
  2003. }
  2004. });
  2005. //td_date_element.innerHTML = Date.parse(treatment_time) + ", " + Date.parse(pt_time_end);
  2006. }
  2007.  
  2008. if(Date.parse(pt_time) <= Date.parse(treatment_time) && Date.parse(treatment_time) < Date.parse(pt_time_end) ){
  2009. if(pt_day[pt]['color'] === null){
  2010. td_date_element.style="background-color: #fdff6d;";
  2011. }
  2012. else{
  2013. td_date_element.style="background-color: #"+pt_day[pt]['color']+";";
  2014. }
  2015. hasTermin = true;
  2016. }
  2017. }
  2018.  
  2019.  
  2020. //Date.parse(pt_time2) - Date.parse(pt_time);//begin_time.split(':')[0];//begin_time;
  2021. //begin_time = pt_day[pt].split(' ')[1];
  2022. }
  2023. td_date_element.value=Date.parse(treatment_time) + "_" + staffList[s]['id_staff'];
  2024. //if(staffList[s].id_staff===)
  2025. // if(typeof(treatmentDateObj['surname']) !== 'undefined' && treatmentDateObj['surname'] !== null && treatmentDateObj['surname'] !== ""){
  2026. // td_date_element.innerHTML = treatmentDateObj['surname'];// + treatmentDateObj['begin_time'] + "";//treatment_time.getHours();
  2027. // td_date_element.style="background-color: #fdff6d;";
  2028. // }
  2029. // else{
  2030. // td_date_element.innerHTML = "";
  2031. // }
  2032. //td_date_element.innerHTML = "";
  2033. if(!hasTermin){
  2034. td_date_element.onclick= (function(){
  2035. //alert(this.value);
  2036. var milli = this.value.split('_')[0];
  2037. var id_staff = this.value.split('_')[1]
  2038. var curDate = new Date(parseInt(milli));
  2039. //alert(curDate);
  2040. curDateString = convertTo2LN(curDate.getDate()) + "." + convertTo2LN(Math.abs(curDate.getMonth()+1)) + "." + curDate.getFullYear();
  2041. curDateBeginTimeString = (curDate.getHours()<10? '0' : '') + curDate.getHours() + ":" + (curDate.getMinutes()<10?'0':'') + curDate.getMinutes();
  2042.  
  2043. openTreatmentDate(curDateString, curDateBeginTimeString, id_staff);
  2044. });
  2045. }
  2046. tr_element.appendChild(td_date_element);
  2047. }
  2048. /*tr_element.onclick = (function(){
  2049. alert(this.children[0].innerHTML);
  2050. });*/
  2051.  
  2052.  
  2053.  
  2054. tbody_element.appendChild(tr_element);
  2055. }
  2056. //tbody_element.innerHTML="<tr><td>nöööö</td></tr>";
  2057. }
  2058. table_element.appendChild(tbody_element);
  2059.  
  2060. div_weekday.appendChild(table_element);
  2061.  
  2062. /* this loop is nerver used so comment this out */
  2063. //for (var i in pt_day) {
  2064. //list.append('<li class="ui-widget-content">' + data[i]['prename'] + " " + data[i]['surname'] + '</li>');
  2065. //var patientTreatmentDate = data[i];
  2066.  
  2067. //div_weekday.append('<option '+selected + 'value="'+data[i]['id_patient']+'">' + patientString + '</option>');
  2068. //}
  2069. plan.append(div_weekday);
  2070. //dann die Daten für ein Tag versuchen als DIV anzeigen zu lassen
  2071.  
  2072. }
  2073.  
  2074.  
  2075. $("#addpatient-dialog").dialog({autoOpen: false, draggable: false});
  2076.  
  2077. $("#addpatient-opener").click(function() {
  2078. $('#input-prename').val("");
  2079. $('#input-surname').val("");
  2080. $('#input-birthday').val("");
  2081. $('#input-telephone').val("");
  2082. $('#input-remark').val("");
  2083. $('#input-town').val("");
  2084. $('#input-zipcode').val("");
  2085. $('#input-street').val("");
  2086. $("#addpatient-dialog").dialog("open");
  2087. return false;
  2088. });
  2089.  
  2090. $("#add-patient").click(function() {
  2091. $('#input-prename').val("");
  2092. $('#input-surname').val("");
  2093. $('#input-birthday').val("");
  2094. $('#input-telephone').val("");
  2095. $('#input-remark').val("");
  2096. $('#input-town').val("");
  2097. $('#input-zipcode').val("");
  2098. $('#input-street').val("");
  2099. $("#addpatient-dialog").dialog("open");
  2100. });
  2101.  
  2102. $("#add-treatmentdate-addpatient-button").click(function() {
  2103. $('#input-prename').val("");
  2104. $('#input-surname').val("");
  2105. $('#input-birthday').val("");
  2106. $('#input-telephone').val("");
  2107. $('#input-remark').val("");
  2108. $('#input-town').val("");
  2109. $('#input-zipcode').val("");
  2110. $('#input-street').val("");
  2111. $("#addpatient-dialog").dialog("open");
  2112. return false;
  2113. });
  2114.  
  2115. $("#removepatient-dialog").dialog({autoOpen: false, draggable: false});
  2116. $("#removestaff-dialog").dialog({autoOpen: false, draggable: false});
  2117. /*$("#removepatient-opener").click(function() {
  2118. $("#removepatient-dialog").dialog("open");
  2119. });*/
  2120.  
  2121. $("#removepatienttreatmentdate-dialog").dialog({autoOpen: false, draggable: false});
  2122. $("#removestaffworkingtime-dialog").dialog({autoOpen: false, draggable: false});
  2123. $("#delete-patient").click(function() {
  2124. //alert(selectedPatient != "");
  2125. if (selectedPatient != "" && !isNaN(selectedPatient)) {
  2126. //alert("selected: " + selectedPatient);
  2127. $("#removepatient-dialog").dialog("open");
  2128. }
  2129. else {
  2130. alert("Es wurde kein Patient selektiert.");
  2131. //alert(selectedPatient);
  2132. }
  2133. return false;
  2134. });
  2135.  
  2136. $("#delete-staff").click(function(){
  2137. if (selectedStaff != "" && !isNaN(selectedStaff)) {
  2138. //alert("selected: " + selectedStaff);
  2139. $("#removestaff-dialog").dialog("open");
  2140. }
  2141. else {
  2142. alert("Es wurde kein Mitarbeiter selektiert.");
  2143. //alert(selectedPatient);
  2144. }
  2145. return false;
  2146. });
  2147.  
  2148. $("#delete-patienttreatmentdate").click(function() {
  2149. //alert(selectedPatient != "");
  2150. if (selectedPatient != "" && !isNaN(selectedPatient) &&
  2151. selectedTreatmentDate != "" && !isNaN(selectedTreatmentDate)) {
  2152. //alert("selected: " + selectedPatient);
  2153. $("#removepatienttreatmentdate-dialog").dialog('option', 'position', 'center');
  2154. $("#removepatienttreatmentdate-dialog").dialog("open");
  2155. return false;
  2156. }
  2157. else {
  2158. alert("Es wurde kein Termin selektiert.");
  2159. //alert(selectedPatient);
  2160. }
  2161. });
  2162.  
  2163. $("#delete-stafftreatmentdate").click(function() {
  2164. //alert(selectedPatient != "");
  2165. if (selectedStaff != "" && !isNaN(selectedStaff) &&
  2166. selectedWorkingTime != "" && !isNaN(selectedWorkingTime)) {
  2167. //alert("selected: " + selectedPatient);
  2168. $("#removestaffworkingtime-dialog").dialog('option', 'position', 'center');
  2169. $("#removestaffworkingtime-dialog").dialog("open");
  2170. return false;
  2171. }
  2172. else {
  2173. alert("Es wurde kein Termin selektiert.");
  2174. //alert(selectedPatient);
  2175. }
  2176. });
  2177.  
  2178. $("#removepatient-button").click(function() {
  2179. removePatient();
  2180. $("#removepatient-dialog").dialog("close");
  2181. return false;
  2182.  
  2183. });
  2184.  
  2185. $("#removestaff-button").click(function() {
  2186. //alert("removeStaff");
  2187. removeStaff();
  2188. $("#removestaff-dialog").dialog("close");
  2189. return false;
  2190.  
  2191. });
  2192.  
  2193.  
  2194. $("#removepatienttreatmentdate-button").click(function() {
  2195.  
  2196. removePatientTreatmentDate();
  2197. // alert("oh nein");
  2198. $("#removepatienttreatmentdate-dialog").dialog("close");
  2199. return false;
  2200. });
  2201.  
  2202. $("#removestaffworkingtime-button").click(function() {
  2203. $("#removestaffworkingtime-dialog").dialog("close");
  2204. removeStaffWorkingTime();
  2205. //removePatientTreatmentDate();
  2206. //alert("Test -> wird noch nicht gelöscht");
  2207.  
  2208. return false;
  2209. });
  2210.  
  2211. $("#add-treatmentdate-dialog").dialog({autoOpen: false, draggable: false});
  2212. $("#add-patient-treatmentdate-opener").click(function() {
  2213. fillSelectPatientsForNewTreatmentdate();
  2214. $("#add-treatmentdate-input-start").val("");
  2215. $("#add-treatmentdate-input-end").val("");
  2216. $("#add-treatmentdate-input-time-begin").val("");
  2217. $("#add-treatmentdate-input-time-end").val("");
  2218. $("#add-treatmentdate-input-description").val("");
  2219.  
  2220. $("#add-treatmentdate-dialog").dialog("open");
  2221. return false;
  2222. });
  2223.  
  2224. $("#add-workingtime-dialog").dialog({autoOpen: false, draggable: false});
  2225. $("#add-workingtime-opener").click(function() {
  2226. fillSelectStaffForNewWorkingtime(selectedStaff);
  2227. $("#add-workingtime-input-start").val("");
  2228. $("#add-workingtime-input-end").val("");
  2229. $("#add-workingtime-input-time-begin").val("");
  2230. $("#add-workingtime-input-time-end").val("");
  2231. $("#add-workingtime-weekinterval-check").attr('checked', false);
  2232. $("#add-workingtime-dialog").dialog("open");
  2233. return false;
  2234. });
  2235.  
  2236.  
  2237. $("#addstaff-dialog").dialog({autoOpen: false, draggable: false});
  2238. $("#addstaff-opener").click(function() {
  2239. $("#addstaff-dialog").dialog("open");
  2240. return false;
  2241. });
  2242.  
  2243. $("#add-staff").click(function() {
  2244. $('#input-staff-prename').val("");
  2245. $('#input-staff-surname').val("");
  2246. $('#input-staff-birthday').val("");
  2247. $('#input-staff-telephone').val("");
  2248. $('#input-staff-remark').val("");
  2249. $("#addstaff-dialog").dialog("open");
  2250. return false;
  2251. });
  2252.  
  2253. $( "#-dialog" ).dialog({autoOpen: false, draggable: false});
  2254. $("#listpatients-dialog").dialog({autoOpen: false, resizable: false, draggable: false, width: 868, height: 680});
  2255. $("#liststaff-dialog").dialog({autoOpen: false, resizable: false, draggable: false, width: 868, height: 680});
  2256.  
  2257. $("#listpatients-opener").click(function() {
  2258. listPatients();
  2259. //updateEditPatientForm(null);
  2260. // TODO
  2261. //alert(getPatient(selectedPatient));
  2262. updateEditPatientForm($.parseJSON(getPatient(selectedPatient)))
  2263. $("#listpatients-dialog").dialog("open");
  2264. return false;
  2265. });
  2266.  
  2267. $("#liststaff-opener").click(function(){
  2268. listStaff();
  2269. updateEditStaffForm($.parseJSON(getStaffById(selectedStaff)));
  2270. $("#liststaff-dialog").dialog("open");
  2271. return false;
  2272. });
  2273. $("#get-patient-pdf-button").click(function(){
  2274. //alert(selectedPatient);
  2275. //window.location.href = 'customertopdf.php?id_patient=' + selectedPatient;
  2276. if(selectedPatient !== ''){
  2277. window.open('customertopdf.php?id_patient=' + hashPatients[selectedPatient-1], '_blank');
  2278. }
  2279. else{
  2280. alert("Es wurde kein Patient selektiert.");
  2281. }
  2282. return false;
  2283. });
  2284.  
  2285. $("#get-staff-pdf-button").click(function(){
  2286. //alert(selectedPatient);
  2287. //window.location.href = 'customertopdf.php?id_patient=' + selectedPatient;
  2288. if (selectedStaff != "" && !isNaN(selectedStaff)){
  2289. window.open('stafftopdf.php?id_staff=' + hashStaffList[selectedStaff-1], '_blank');
  2290. }
  2291. else{
  2292. alert("Es wurde kein Mitarbeiter selektiert.");
  2293. }
  2294. return false;
  2295. });
  2296.  
  2297. $(function() {
  2298.  
  2299. $('#addpatient-opener').button({
  2300. icons: {
  2301. primary: "ui-icon-plusthick"
  2302. },
  2303. text: true
  2304. });
  2305. $('#liststaff-opener').button({
  2306. icons: {
  2307. primary: "ui-icon-person"
  2308. },
  2309. text: true
  2310. });
  2311. $('#listpatients-opener').button({
  2312. icons: {
  2313. primary: "ui-icon-folder-open"
  2314. },
  2315. text: true
  2316. });
  2317. $('#get-patient-pdf-button').button({
  2318. icons: {
  2319. primary: "ui-icon-document"
  2320. },
  2321. text: true
  2322. });
  2323. $('#get-staff-pdf-button').button({
  2324. icons: {
  2325. primary: "ui-icon-document"
  2326. },
  2327. text: true
  2328. });
  2329. $('#add-treatmentdate-addpatient-button').button({
  2330. icons: {
  2331. primary: "ui-icon-plusthick"
  2332. },
  2333. text: false
  2334. });
  2335. $("input[type=submit], a, button")
  2336. .button()
  2337. /*.click(function(event) {
  2338. event.preventDefault();
  2339. })*/;
  2340. $.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
  2341. closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
  2342. prevText: '<zurück', prevStatus: 'letzten Monat zeigen',
  2343. nextText: 'Vor>', nextStatus: 'nächsten Monat zeigen',
  2344. currentText: 'heute', currentStatus: '',
  2345. monthNames: ['Januar','Februar','März','April','Mai','Juni',
  2346. 'Juli','August','September','Oktober','November','Dezember'],
  2347. monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
  2348. 'Jul','Aug','Sep','Okt','Nov','Dez'],
  2349. monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
  2350. weekHeader: 'Wo', weekStatus: 'Woche des Monats',
  2351. dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
  2352. dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
  2353. dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
  2354. dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
  2355. dateFormat: 'dd.mm.yy', firstDay: 1,
  2356. initStatus: 'Wähle ein Datum', isRTL: false};
  2357. $.datepicker.setDefaults( $.datepicker.regional[ "de" ] );
  2358. $( "#add-treatmentdate-input-start" ).datepicker($.datepicker.regional['de']);
  2359. $( "#add-treatmentdate-input-end" ).datepicker();
  2360. $( "#add-workingtime-input-start" ).datepicker($.datepicker.regional['de']);
  2361. $( "#add-workingtime-input-end" ).datepicker();
  2362. $('#add-treatmentdate-input-time-begin').timepicker({ 'timeFormat': 'H:i', 'minTime': '08:00',
  2363. 'maxTime': '22:00', 'step': 15 });
  2364. $('#add-treatmentdate-input-time-end').timepicker({ 'timeFormat': 'H:i', 'minTime': '08:00',
  2365. 'maxTime': '22:00', 'step': 15 });
  2366. $('#add-workingtime-input-time-begin').timepicker({ 'timeFormat': 'H:i', 'minTime': '08:00',
  2367. 'maxTime': '22:00', 'step': 15 });
  2368. $('#add-workingtime-input-time-end').timepicker({ 'timeFormat': 'H:i', 'minTime': '08:00',
  2369. 'maxTime': '22:00', 'step': 15 });
  2370. $("#input-birthday").datepicker();
  2371. $("#patient-birthday").datepicker();
  2372. $("#input-staff-birthday").datepicker();
  2373. $("#edit-patient-birthday").datepicker();
  2374.  
  2375. $("#date-today-input").datepicker(
  2376.  
  2377. );
  2378. $( "#date-today-input" ).change(function() {
  2379. currentDate = $( "#date-today-input" ).datepicker( "getDate" );
  2380. if($("#day-view-check:checked").val()){
  2381. //alert(currentDate + " " + $("#day-view-check:checked").val());
  2382. updateWeekDiv(currentDate, true);
  2383. }
  2384. else{
  2385. updateWeekDiv(currentDate, false);
  2386. }
  2387. });
  2388. });
  2389.  
  2390.  
  2391. $(function() {
  2392. today = new Date();//convertDate(new Date());
  2393. toolbarFilter();
  2394. //alert(today);
  2395. $( "#date-today-input" ).datepicker( "setDate", today );
  2396. updateWeekDiv(today);
  2397.  
  2398. $("#day-view-check" ).button( {
  2399. icons: {
  2400. primary: "ui-icon-calendar"
  2401. },
  2402. text: true
  2403. });
  2404.  
  2405. $( "#day-view-check" ).change(function() {
  2406. currentDate = $( "#date-today-input" ).datepicker( "getDate" );
  2407. if($("#day-view-check:checked").val()){
  2408. //alert(currentDate + " " + $("#day-view-check:checked").val());
  2409. updateWeekDiv(currentDate, true);
  2410. }
  2411. else{
  2412. updateWeekDiv(currentDate, false);
  2413. }
  2414. });
  2415.  
  2416. $("#patient-selectable").selectable({
  2417. stop: function() {
  2418. var result = $("#patient-select-result").empty();
  2419. $(".ui-selected", this).each(function() {
  2420. var index = $("#patient-selectable li").index(this);
  2421. result.append(" #" + (index + 1));
  2422. selectedPatient = index + 1;
  2423. updateEditPatientForm($.parseJSON(getPatient(index + 1)));
  2424. getTreatmentDates(index + 1);
  2425. //updateTreatmentDatesSelect($.parseJSON(getTreatmentDates(index + 1)))
  2426. //mapPatient(index);
  2427. });
  2428. }
  2429. });
  2430.  
  2431. $("#staff-selectable").selectable({
  2432. stop: function() {
  2433. var result = $("#staff-select-result").empty();
  2434. $(".ui-selected", this).each(function() {
  2435. var index = $("#staff-selectable li").index(this);
  2436. result.append(" #" + (index + 1));
  2437. selectedStaff = index + 1;
  2438. updateEditStaffForm($.parseJSON(getStaffById(hashStaffList[index])));
  2439. getWorkingTimes(index + 1);
  2440. //updateTreatmentDatesSelect($.parseJSON(getTreatmentDates(index + 1)))
  2441. //mapPatient(index);
  2442. });
  2443. }
  2444. });
  2445.  
  2446.  
  2447. $( "#-dialog" ).dialog({
  2448. resizable: false,
  2449. height:220,
  2450. modal: true,
  2451. buttons: {
  2452. "Ja, entfernen": function() {
  2453. //alert(selectedPatientTreatmentDateCalendar);
  2454. $( this ).dialog( "close" );
  2455. removePatientTreatmentDate(selectedPatientTreatmentDateCalendar);
  2456. //updateWeekDiv(today);
  2457.  
  2458.  
  2459. },
  2460. "Ja, verschieben": function() {
  2461. //alert(selectedPatientTreatmentDateCalendar);
  2462. $( this ).dialog( "close" );
  2463. shiftPatientTreatmentDate(selectedPatientTreatmentDateCalendar);
  2464. //removePatientTreatmentDate(selectedPatientTreatmentDateCalendar);
  2465. //updateWeekDiv(today);
  2466.  
  2467.  
  2468. },
  2469. Abbrechen: function() {
  2470. $( this ).dialog( "close" );
  2471. }
  2472. }
  2473. });
  2474.  
  2475.  
  2476.  
  2477. $("#patient-treatmentdates-selectable").selectable({
  2478. stop: function() {
  2479. var result = $("#patient-treatmentdates-select-result").empty();
  2480. $(".ui-selected", this).each(function() {
  2481. var index = $("#patient-treatmentdates-selectable li").index(this);
  2482. result.append(" #" + (index + 1));
  2483. selectedTreatmentDate = index + 1;
  2484. //selectedPatient = index + 1;
  2485. //updateEditPatientForm($.parseJSON(getPatient(index + 1)));
  2486. //getTreatmentDates(index + 1);
  2487. //updateTreatmentDatesSelect($.parseJSON(getTreatmentDates(index + 1)))
  2488. //mapPatient(index);
  2489. });
  2490. }
  2491. });
  2492.  
  2493. $("#staff-treatmentdates-selectable").selectable({
  2494. stop: function() {
  2495. var result = $("#staff-treatmentdates-select-result").empty();
  2496. $(".ui-selected", this).each(function() {
  2497. var index = $("#staff-treatmentdates-selectable li").index(this);
  2498. result.append(" #" + (index + 1));
  2499. selectedWorkingTime = index + 1;
  2500. //selectedPatient = index + 1;
  2501. //updateEditPatientForm($.parseJSON(getPatient(index + 1)));
  2502. //getTreatmentDates(index + 1);
  2503. //updateTreatmentDatesSelect($.parseJSON(getTreatmentDates(index + 1)))
  2504. //mapPatient(index);
  2505. });
  2506. }
  2507. });
  2508.  
  2509. });
  2510. $("#next-week-button").click(function(){
  2511. var startDate = new Date(today);
  2512. startDate.setDate(today.getDate() - today.getDay() + 8);
  2513. today = new Date(startDate);
  2514. $( "#date-today-input" ).datepicker( "setDate", startDate);
  2515. updateWeekDiv(startDate);
  2516.  
  2517.  
  2518. });
  2519.  
  2520. $("#prev-week-button").click(function(){
  2521. var startDate = new Date(today);
  2522. startDate.setDate(today.getDate() - today.getDay() - 7);
  2523. today = new Date(startDate);
  2524. $( "#date-today-input" ).datepicker( "setDate", startDate );
  2525. updateWeekDiv(startDate);
  2526.  
  2527.  
  2528. });
  2529.  
  2530. $("#editPatient-submit").click(function() {
  2531.  
  2532. var prename = encodeURI($('#edit-patient-prename').val());
  2533. var surname = encodeURI($('#edit-patient-surname').val());
  2534. var birthday = encodeURI($('#edit-patient-birthday').val());
  2535. var telephone = encodeURI($('#edit-patient-telephone').val());
  2536. var description = encodeURI($('#edit-patient-remark').val());
  2537. var town = encodeURI($('#edit-patient-town').val());
  2538. var zipcode = encodeURI($('#edit-patient-zipcode').val());
  2539. var street = encodeURI($('#edit-patient-street').val());
  2540. if (prename.length < 2) {
  2541. alert("Bitte Vornamen des Patienten angeben.");
  2542. return;
  2543. }
  2544. if (surname.length < 2) {
  2545. alert("Bitte Nachnamen des Patienten angeben.");
  2546. return;
  2547. }
  2548.  
  2549. //alert("test");
  2550. result = ycAjaxCall({
  2551. type: 'POST',
  2552. async: false, // WICHTIG!
  2553. url: 'actions.php',
  2554. data: ({
  2555. action: "update_patient",
  2556. patient: {
  2557. 'id_patient': hashPatients[selectedPatient - 1],
  2558. 'surname': surname,
  2559. 'prename': prename,
  2560. 'birthday': birthday,
  2561. 'telephone': telephone,
  2562. 'description': description,
  2563. 'town': town,
  2564. 'zipcode': zipcode,
  2565. 'street': street
  2566. }
  2567. }),
  2568. success: function(data) {
  2569. alert(data);
  2570. listPatients();
  2571. //alert("close");
  2572. //$("#addpatient-dialog").dialog("close");
  2573. }
  2574. });//.responseText;
  2575. });
  2576.  
  2577. $("#editStaff-submit").click(function() {
  2578.  
  2579. var prename = encodeURI($('#edit-staff-prename').val());
  2580. var surname = encodeURI($('#edit-staff-surname').val());
  2581. var birthday = encodeURI($('#edit-staff-birthday').val());
  2582. var telephone = encodeURI($('#edit-staff-telephone').val());
  2583. var description = encodeURI($('#edit-staff-remark').val());
  2584. var editStaffActive = document.getElementById('edit-staff-active');
  2585.  
  2586. //var active =$('#edit-staff-active').attr("checked");
  2587. var active = editStaffActive.checked;
  2588.  
  2589. if (prename.length < 2) {
  2590. alert("Bitte Vornamen des Mitarbeiters angeben.");
  2591. return;
  2592. }
  2593. if (surname.length < 2) {
  2594. alert("Bitte Nachnamen des Mitarbeiters angeben.");
  2595. return;
  2596. }
  2597. //alert(hashStaffList[selectedStaff - 1]);
  2598. //alert("test");
  2599. result = ycAjaxCall({
  2600. type: 'POST',
  2601. async: false, // WICHTIG!
  2602. url: 'actions.php',
  2603. data: ({
  2604. action: "update_staff",
  2605. staff: {
  2606. 'id_staff': hashStaffList[selectedStaff - 1],
  2607. 'surname': surname,
  2608. 'prename': prename,
  2609. 'birthday': birthday,
  2610. 'telephone': telephone,
  2611. 'description': description,
  2612. 'active': active
  2613. }
  2614. }),
  2615. success: function(data) {
  2616. alert(data);
  2617. listStaff();
  2618. updateWeekDiv(today);
  2619. //alert("close");
  2620. //$("#addpatient-dialog").dialog("close");
  2621. }
  2622. });//.responseText;
  2623. });
  2624.  
  2625.  
  2626.  
  2627.  
  2628. $("#addPatient-submit").click(function() {
  2629. var prename = encodeURI($('#input-prename').val());
  2630. var surname = encodeURI($('#input-surname').val());
  2631. var birthday = encodeURI($('#input-birthday').val());
  2632. var telephone = encodeURI($('#input-telephone').val());
  2633. var description = encodeURI($('#input-remark').val());
  2634. var town = encodeURI($('#input-town').val());
  2635. var zipcode = encodeURI($('#input-zipcode').val());
  2636. var street = encodeURI($('#input-street').val());
  2637. if (prename.length < 2) {
  2638. alert("Bitte Vornamen des Patienten angeben.");
  2639. return;
  2640. }
  2641. if (surname.length < 2) {
  2642. alert("Bitte Nachnamen des Patienten angeben.");
  2643. return;
  2644. }
  2645.  
  2646. //alert("test");
  2647. result = ycAjaxCall({
  2648. type: 'POST',
  2649. async: false, // WICHTIG!
  2650. url: 'actions.php',
  2651. data: ({
  2652. action: "insert_patient",
  2653. patient: {
  2654. 'surname': surname,
  2655. 'prename': prename,
  2656. 'birthday': birthday,
  2657. 'telephone': telephone,
  2658. 'description': description,
  2659. 'town': town,
  2660. 'zipcode': zipcode,
  2661. 'street': street
  2662. }
  2663. }),
  2664. success: function(data) {
  2665. alert(data);
  2666. listPatients();
  2667. //alert("close");
  2668. fillSelectPatientsForNewTreatmentdate();
  2669. $("#addpatient-dialog").dialog("close");
  2670. }
  2671. });//.responseText;
  2672.  
  2673. //alert(result);
  2674. });
  2675.  
  2676. $("#addStaff-submit").click(function() {
  2677. var prename = encodeURI($('#input-staff-prename').val());
  2678. var surname = encodeURI($('#input-staff-surname').val());
  2679. var birthday = encodeURI($('#input-staff-birthday').val());
  2680. var telephone = encodeURI($('#input-staff-telephone').val());
  2681. var description = encodeURI($('#input-staff-remark').val());
  2682. //alert("test");
  2683. result = ycAjaxCall({
  2684. type: 'POST',
  2685. async: false, // WICHTIG!
  2686. url: 'actions.php',
  2687. data: ({
  2688. action: "insert_staff",
  2689. staff: {
  2690. 'surname': surname,
  2691. 'prename': prename,
  2692. 'birthday': birthday,
  2693. 'telephone': telephone,
  2694. 'description': description
  2695. }
  2696. }),
  2697. success: function(data) {
  2698. alert(data);
  2699. $("#addstaff-dialog").dialog("close");
  2700. listStaff();
  2701. updateWeekDiv(today);
  2702.  
  2703. }
  2704. });//.responseText;
  2705.  
  2706. //alert(result);
  2707. });
  2708.  
  2709. $("#add-treatmentdate-submit").click(function() {
  2710. var patientId = encodeURI($('#add-treatmentdate-select-patient').val());
  2711. var staffId = encodeURI($('#add-treatmentdate-select-staff').val());
  2712. var treatmentId = encodeURI($('#add-treatmentdate-select-treatment').val());
  2713. var dateBegin = encodeURI($('#add-treatmentdate-input-start').val());
  2714. var timeBegin = encodeURI($('#add-treatmentdate-input-time-begin').val());
  2715. var timeEnd = encodeURI($('#add-treatmentdate-input-time-end').val());
  2716. var dateEnd = encodeURI($('#add-treatmentdate-input-end').val()); // Optional
  2717. var descriptionText = encodeURI($('#add-treatmentdate-input-description').val()); // Optional
  2718.  
  2719. if(patientId === null || patientId === ''){
  2720. alert("Es wurde kein Patient angegeben.");
  2721. return;
  2722. }
  2723. if(staffId === null || staffId === ''){
  2724. alert("Es wurde kein Betreuer angegeben.");
  2725. return;
  2726. }
  2727. if(treatmentId === null || treatmentId === ''){
  2728. alert("Es wurde keine Behandlung angegeben.");
  2729. return;
  2730. }
  2731. if(dateBegin === null || dateBegin === ''){
  2732. alert("Es wurde kein Einzeltermin (oder Anfangstermin für Dauerbehandlung) angegeben.");
  2733. return;
  2734. }
  2735. if(timeBegin === null || timeBegin === ''){
  2736. alert("Es wurde keine Uhrzeit für den Beginn festgelegt.");
  2737. return;
  2738. }
  2739. if(timeEnd === null || timeEnd === ''){
  2740. alert("Bis wann geht die Behandlung?");
  2741. return;
  2742. }
  2743. //alert(Date.parse('2011-01-26T13:51:50.417') );
  2744. if(dateEnd !== null && dateEnd !==''){
  2745. dateBeginArr = dateBegin.split('.');
  2746. dateEndArr = dateEnd.split('.');
  2747.  
  2748. var dbegin = new Date(dateBeginArr[2],dateBeginArr[1]-1,dateBeginArr[0]);
  2749. var dend = new Date(dateEndArr[2],dateEndArr[1]-1,dateEndArr[0]);
  2750. //alert(dend.getTime() - dbegin.getTime());
  2751. if(dbegin.getTime() > dend.getTime() ){
  2752. alert('Anfangsdatum bitte vor dem Enddatum setzen.');
  2753. return;
  2754. }
  2755. else if( (dend.getTime() - dbegin.getTime()) < 604800000 ){
  2756. alert('Zur Erstellung von Dauerterminen, bitte Enddatum um mind. 7 Tage hinter dem Anfangsdatum setzen.');
  2757. return;
  2758. }
  2759.  
  2760. }
  2761.  
  2762. timeBeginArr = timeBegin.split(':');
  2763. timeEndArr = timeEnd.split(':');
  2764. if(timeBeginArr[0] > timeEndArr[0] ||
  2765. (timeBeginArr[0] == timeEndArr[0] && timeBeginArr[1] >= timeEndArr[1]) ){
  2766. alert("Die Uhrzeit für den Beginn ist >= als die Uhrzeit für das Ende. Bitte korrigieren.");
  2767. return;
  2768. }
  2769.  
  2770. result = ycAjaxCall({
  2771. type: 'POST',
  2772. async: false, // WICHTIG!
  2773. url: 'actions.php',
  2774. data: ({
  2775. action: "insert_patient_treatment",
  2776. id_patient: patientId,
  2777. id_staff: staffId,
  2778. id_treatment: treatmentId,
  2779. treatment_date: dateBegin + " " + timeBegin,
  2780. treatment_time_end: timeEnd,
  2781. treatment_date_end: dateEnd,
  2782. description: descriptionText
  2783. }),
  2784. success: function(data) {
  2785.  
  2786. alert(data);
  2787. //alert("selected:" + selectedPatient);
  2788. //alert("hash:" + hashPatients[selectedPatient-1]);
  2789. //alert(selectedPatient);
  2790. if(selectedPatient !== null && selectedPatient !== ""){
  2791. //alert("getTreat");
  2792. getTreatmentDates(selectedPatient);
  2793. }
  2794. //alert("test");
  2795. //var d = new Date(dateBegin.split('.')[2],dateBegin.split('.')[1]-1, dateBegin.split('.')[0]);
  2796.  
  2797. //alert(d);
  2798. //alert(dateBegin.split('.')[2]+ "," + dateBegin.split('.')[1] + "," + dateBegin.split('.')[0]);
  2799.  
  2800. $("#add-treatmentdate-dialog").dialog("close");
  2801.  
  2802. if(data.includes('gespeichert')){
  2803. //if(window._yc_treatment_to_remove){ yc_removePatientTreatmentById(window._yc_treatment_to_remove); window._yc_treatment_to_remove = false; }
  2804. var d = new Date(dateBegin.split('.')[2],dateBegin.split('.')[1]-1, dateBegin.split('.')[0]);
  2805. updateWeekDiv(d);
  2806. }
  2807. //alert(d);
  2808. //updateWeekDiv(d);
  2809.  
  2810. }
  2811. });//.responseText;
  2812. return false;
  2813. //alert(result);
  2814. });
  2815.  
  2816. $("#add-workingtime-submit").click(function() {
  2817. var staffId = encodeURI($('#add-workingtime-select-staff').val());
  2818. var dateBegin = encodeURI($('#add-workingtime-input-start').val());
  2819. var timeBegin = encodeURI($('#add-workingtime-input-time-begin').val());
  2820. var timeEnd = encodeURI($('#add-workingtime-input-time-end').val());
  2821. var dateEnd = encodeURI($('#add-workingtime-input-end').val()); // Optional
  2822. var matter = encodeURI($('#add-workingtime-select-matter').val());
  2823. var isWeekInterval = encodeURI($("#add-workingtime-weekinterval-check:checked").val());
  2824.  
  2825. if(staffId === null || staffId === ''){
  2826. alert("Es wurde kein Betreuer angegeben.");
  2827. return;
  2828. }
  2829.  
  2830. if(dateBegin === null || dateBegin === ''){
  2831. alert("Es wurde kein Datum für den Beginn angegeben.");
  2832. return;
  2833. }
  2834.  
  2835. if(dateEnd === null || dateEnd === ''){
  2836. alert("Es wurde kein Datum für das Ende angegeben.");
  2837. return;
  2838. }
  2839.  
  2840. if(timeBegin === '' && timeEnd !== ''){
  2841. alert("Es wurde keine Uhrzeit für den Beginn festgelegt.");
  2842. return;
  2843. }
  2844. if(timeEnd === '' && timeBegin !== ''){
  2845. alert("Uhrzeit für das Ende fehlt.");
  2846. return;
  2847. }
  2848. //alert(Date.parse('2011-01-26T13:51:50.417') );
  2849. if(dateEnd !== null && dateEnd !==''){
  2850. dateBeginArr = dateBegin.split('.');
  2851. dateEndArr = dateEnd.split('.');
  2852.  
  2853. var dbegin = new Date(dateBeginArr[2],dateBeginArr[1]-1,dateBeginArr[0]);
  2854. var dend = new Date(dateEndArr[2],dateEndArr[1]-1,dateEndArr[0]);
  2855. //alert(dend.getTime() - dbegin.getTime());
  2856. if(dbegin.getTime() > dend.getTime() ){
  2857. alert('Anfangsdatum bitte vor dem Enddatum setzen.');
  2858. return;
  2859. }
  2860. }
  2861.  
  2862. var resultDateBegin = dateBegin;
  2863. var resultDateEnd = dateEnd;
  2864.  
  2865. if(timeBegin !== null && timeBegin !== '' && timeEnd !== null && timeEnd !== ''){
  2866. timeBeginArr = timeBegin.split(':');
  2867. timeEndArr = timeEnd.split(':');
  2868. if(timeBeginArr[0] > timeEndArr[0] ||
  2869. (timeBeginArr[0] == timeEndArr[0] && timeBeginArr[1] >= timeEndArr[1]) ){
  2870. alert("Die Uhrzeit für den Beginn ist >= als die Uhrzeit für das Ende. Bitte korrigieren.");
  2871. return;
  2872. }
  2873. resultDateBegin += " " + timeBegin;
  2874. resultDateEnd += " " + timeEnd;
  2875. }
  2876.  
  2877.  
  2878. if(isWeekInterval !== 'undefined' && isWeekInterval !== null && (dateEnd === null || dateEnd==='')){
  2879. alert("Um das Intverall zu setzen, muss auch das Enddatum angegeben werden.");
  2880. return;
  2881. }
  2882.  
  2883. if(isWeekInterval !== 'undefined' && isWeekInterval !== null && (timeBegin === null || timeBegin==='' || timeEnd === null || timeEnd==='')){
  2884. alert("Um das Intverall zu setzen, müssen auch Uhrzeiten angegeben werden.");
  2885. return;
  2886. }
  2887.  
  2888. if(isWeekInterval !== 'undefined' && isWeekInterval !== null){
  2889. //alert("yeah");
  2890. //TODO
  2891.  
  2892. var dbegin = new Date(dateBeginArr[2],dateBeginArr[1]-1,dateBeginArr[0]);
  2893. var dend = new Date(dateEndArr[2],dateEndArr[1]-1,dateEndArr[0]);
  2894. while(dbegin.getTime() <= dend.getTime()){
  2895. //alert(dbegin);
  2896. var resultDateBegin = convertTo2LN(dbegin.getDate()) + "." + convertTo2LN(Math.abs(dbegin.getMonth()+1)) + "." + convertTo2LN(dbegin.getFullYear());
  2897. var resultDateEnd = convertTo2LN(dbegin.getDate()) + "." + convertTo2LN(Math.abs(dbegin.getMonth()+1)) + "." + convertTo2LN(dbegin.getFullYear());
  2898. // resultDateBegin = encodeURI(resultDateBegin);
  2899. // resultDateEnd = encodeURI(resultDateEnd);
  2900. if(timeBegin !== null && timeBegin !== '' && timeEnd !== null && timeEnd !== ''){
  2901. //alert(timeBegin + " - " + timeEnd);
  2902. resultDateBegin += " " + timeBegin;
  2903. resultDateEnd += " " + timeEnd;
  2904. //alert(resultDateBegin + " - " + resultDateEnd);
  2905. }
  2906. //alert("'" + resultDateBegin + "' - '" + resultDateEnd + "'");
  2907.  
  2908. var insertData = new Array();
  2909. insertData['staffId'] = staffId;
  2910. insertData['resultDateBegin'] = resultDateBegin;
  2911. insertData['resultDateEnd'] = resultDateEnd;
  2912. insertData['matter'] = matter;
  2913. //insertWorkingTimeQuery(insertData, null);
  2914. result = ycAjaxCall({
  2915. type: 'POST',
  2916. async: false, // WICHTIG!
  2917. url: 'actions.php',
  2918. data: ({
  2919. "action": "insert_working_time",
  2920. "id_staff": insertData['staffId'],
  2921. "beginning_date": insertData['resultDateBegin'],
  2922. "end_date": insertData['resultDateEnd'],
  2923. "matter": insertData['matter']
  2924. }),
  2925. success: function(data) {
  2926. //alert(data);
  2927.  
  2928. }
  2929. });//.responseText;
  2930. dbegin.setDate(dbegin.getDate() + 7);
  2931.  
  2932. }
  2933. getWorkingTimes(selectedStaff)
  2934.  
  2935. $("#add-workingtime-dialog").dialog("close");
  2936. updateWeekDiv(today);
  2937.  
  2938. return;
  2939. //var startDate = new Date(today);
  2940.  
  2941. //startDate.setDate(today.getDate() - today.getDay() + 8);
  2942. }
  2943. else{
  2944. // alert("oh no");
  2945. // return;
  2946. var insertData = new Array();
  2947. insertData['staffId'] = staffId;
  2948. insertData['resultDateBegin'] = resultDateBegin;
  2949. insertData['resultDateEnd'] = resultDateEnd;
  2950. insertData['matter'] = matter;
  2951. insertWorkingTimeQuery(insertData, true);
  2952. }
  2953. return ;
  2954.  
  2955. //alert("Beginn: " + resultDateBegin);
  2956. //alert("Ende: " + resultDateEnd);
  2957. //alert("test");
  2958. result = ycAjaxCall({
  2959. type: 'POST',
  2960. async: false, // WICHTIG!
  2961. url: 'actions.php',
  2962. data: ({
  2963. "action": "insert_working_time",
  2964. "id_staff": staffId,
  2965. "beginning_date": resultDateBegin,
  2966. "end_date": resultDateEnd,
  2967. "matter": matter
  2968. }),
  2969. success: function(data) {
  2970. alert(data);
  2971. //alert("selected:" + selectedPatient);
  2972. //alert("hash:" + hashPatients[selectedPatient-1]);
  2973. //getTreatmentDates(selectedPatient);
  2974.  
  2975. getWorkingTimes(selectedStaff)
  2976.  
  2977. //var d = new Date(dateBegin.split('.')[2],dateBegin.split('.')[1]-1, dateBegin.split('.')[0]);
  2978.  
  2979. //alert(d);
  2980. //alert(dateBegin.split('.')[2]+ "," + dateBegin.split('.')[1] + "," + dateBegin.split('.')[0]);
  2981. $("#add-workingtime-dialog").dialog("close");
  2982. updateWeekDiv(today);
  2983.  
  2984. }
  2985. });//.responseText;
  2986.  
  2987. //alert(result);
  2988. });
  2989.  
  2990. // var currentTime = new Date()
  2991. //var month = currentTime.getMonth() + 1
  2992. //var day = currentTime.getDate()
  2993. //var year = currentTime.getFullYear()
  2994. //document.write(month + "/" + day + "/" + year)
  2995. </script>
  2996. <div class="ycloaderCtl yc_loader_container">
  2997.  
  2998. <div class="ycloader"></div>
  2999. </div>
  3000. <style>
  3001. .yc_loader_container{ position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 999999; background-color: rgba(255,255,255,0.9); display: flex;
  3002. flex-direction: column;
  3003. justify-content: center;
  3004. align-items: center; }
  3005. .ycloader {
  3006. border: 10px solid #ccc;
  3007. border-radius: 50%;
  3008. border-top: 10px solid #333;
  3009. width: 32px;
  3010. height: 32px;
  3011. -webkit-animation: spin 1s linear infinite; /* Safari */
  3012. animation: spin 1s linear infinite;
  3013. }
  3014.  
  3015. /* Safari */
  3016. @-webkit-keyframes spin {
  3017. 0% { -webkit-transform: rotate(0deg); }
  3018. 100% { -webkit-transform: rotate(360deg); }
  3019. }
  3020.  
  3021. @keyframes spin {
  3022. 0% { transform: rotate(0deg); }
  3023. 100% { transform: rotate(360deg); }
  3024. }
  3025. </style>
  3026. </body>
  3027. </html>
  3028. <?php } else { ?>
  3029. <script>
  3030. var today = null;
  3031. var hashTreatmentDates = new Array();
  3032. var hashWorkingTimes = new Array();
  3033. var hashPatients = new Array();
  3034. var hashStaffList = new Array();
  3035. var selectedPatient = "";
  3036. var selectedStaff = "";
  3037. var selectedTreatmentDate = "";
  3038. var selectedWorkingTime = "";
  3039. var selectedPatientTreatmentDateCalendar = "";
  3040. var currentWeekDate = "";
  3041. var currentDayView = "";
  3042.  
  3043. window._yc_cache = new Array();
  3044. window._yc_ajaxCall_counts = 0;
  3045. function yc_clearCache(){
  3046. window._yc_cache = [];
  3047. }
  3048. function yc_getCache(key){
  3049.  
  3050. if(!window._yc_cache[key]){
  3051. ycShowLoader();
  3052. return false;
  3053. }
  3054. else
  3055. return window._yc_cache[key];
  3056. }
  3057. function yc_updateCache(key,data){
  3058.  
  3059. window._yc_cache[key] = data;
  3060.  
  3061. }
  3062. function ycSleep(milliseconds) {
  3063. return new Promise(resolve => setTimeout(resolve, milliseconds));
  3064. }
  3065. function ycShowLoader() {
  3066.  
  3067. $( ".ycloaderCtl").show();
  3068. $( ".ycloaderCtl").css('display','flex');
  3069.  
  3070. }
  3071.  
  3072. async function ycDisplayLoader() {
  3073. let myPromise = new Promise(function(resolve) {
  3074. setTimeout(function() {
  3075. $( ".ycloaderCtl").show();
  3076. $( ".ycloaderCtl").css('display','flex');
  3077. resolve(true);
  3078. }, 1);
  3079. });
  3080. return await myPromise;
  3081. }
  3082.  
  3083. function ycPromiseCall(params){
  3084.  
  3085.  
  3086. return $.ajax(params);
  3087.  
  3088.  
  3089. }
  3090. function ycAjaxCall(params){
  3091.  
  3092. ycShowLoader();
  3093. console.log('calling');
  3094.  
  3095.  
  3096. window._yc_ajaxCall_counts = window._yc_ajaxCall_counts +1;
  3097.  
  3098.  
  3099. const text = params.data.action;
  3100. const searchStrings = ["remove", "save", "update"];
  3101.  
  3102. // Check if the text contains any of the search strings
  3103. let foundMatch = false;
  3104. for (let i = 0; i < searchStrings.length; i++) {
  3105. if (text.includes(searchStrings[i])) {
  3106. foundMatch = true;
  3107. break;
  3108. }
  3109. }
  3110.  
  3111. if(foundMatch)
  3112. yc_clearCache();
  3113.  
  3114. let r = ycPromiseCall(params); //$.ajax(params);
  3115.  
  3116. setTimeout(function(){
  3117. window._yc_ajaxCall_counts = window._yc_ajaxCall_counts -1;
  3118. console.log('ajaxCallsCount',window._yc_ajaxCall_counts);
  3119. if(!window._yc_ajaxCall_counts)
  3120. $( ".ycloaderCtl").css('display','none'); //$( "#ycloader").hide();
  3121. else
  3122. $( ".ycloaderCtl").css('display','flex');
  3123.  
  3124. },500);
  3125.  
  3126. return r;
  3127.  
  3128. }
  3129.  
  3130. function getDayByDate(date){
  3131. var day_names = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch",
  3132. "Donnerstag", "Freitag", "Samstag");
  3133. return day_names[date.getDay()];
  3134. }
  3135.  
  3136. function convertDate(date){
  3137. //var currentTime = new Date();
  3138. var month = date.getMonth() + 1;
  3139. var day = date.getDate();
  3140. var year = date.getFullYear();
  3141. //document.write(month + "/" + day + "/" + year)
  3142. return day + "." + month + "." + year;
  3143. }
  3144.  
  3145. function convertTo2LN(number){
  3146. return (number<10? '0':'')+number;
  3147. }
  3148.  
  3149. function getNameFromMatter(matter){
  3150. if(matter === 'WORK'){
  3151. return 'Arbeit';
  3152. }
  3153. if(matter === 'HOLIDAY'){
  3154. return 'Urlaub';
  3155. }
  3156. return 'n/a';
  3157. }
  3158.  
  3159. function setStaffActiveCheck(id_staff, checked){
  3160. if(id_staff != null){
  3161. var localCheck = false;
  3162. if(checked === true){
  3163. localCheck = true;
  3164. }
  3165. //alert("shit");
  3166. result = ycAjaxCall({
  3167. type: 'POST',
  3168. async: false, // Wait for result from server.
  3169. url: 'actions.php',
  3170. data: ({
  3171. "action": "set_staff_active_check",
  3172. "id_staff": id_staff,
  3173. "checked": localCheck
  3174. }),
  3175. success: function(data) {
  3176. alert(data);
  3177. //listPatients();
  3178. //updateEditPatientForm(null);
  3179. //getTreatmentDates(selectedPatient);
  3180.  
  3181. // getWorkingTimes(selectedStaff);
  3182. // updateWeekDiv(today);
  3183.  
  3184. }
  3185. }).responseText;
  3186. return;
  3187. }
  3188. }
  3189.  
  3190. function setPatientTreatmentCheck(id_patient_treatment, checked){
  3191. if(id_patient_treatment != null){
  3192. var localCheck = false;
  3193. if(checked === true){
  3194. localCheck = true;
  3195. }
  3196. //alert("shit");
  3197. result = ycAjaxCall({
  3198. type: 'POST',
  3199. async: false, // Wait for result from server.
  3200. url: 'actions.php',
  3201. data: ({
  3202. "action": "set_patient_treatment_check",
  3203. "id_patient_treatment": id_patient_treatment,
  3204. "checked": localCheck
  3205. }),
  3206. success: function(data) {
  3207. alert(data);
  3208. //listPatients();
  3209. //updateEditPatientForm(null);
  3210. //getTreatmentDates(selectedPatient);
  3211.  
  3212. // getWorkingTimes(selectedStaff);
  3213. // updateWeekDiv(today);
  3214.  
  3215. }
  3216. }).responseText;
  3217. return;
  3218. }
  3219. }
  3220.  
  3221.  
  3222. // function removePatientTreatmentDateFrom(id_patient_treatment){
  3223. // //alert("test");
  3224. // result = ycAjaxCall({
  3225. // type: 'POST',
  3226. // async: false, // Wait for result from server.
  3227. // url: 'actions.php',
  3228. // data: ({
  3229. // action: "remove_patient_treatment",
  3230. // id_patient_treatment: id_patient_treatment
  3231. // }),
  3232. // success: function(data) {
  3233. // alert(data);
  3234. // //listPatients();
  3235. // //updateEditPatientForm(null);
  3236. // //getTreatmentDates(selectedPatient);
  3237. // updateWeekDiv(today);
  3238. //
  3239. // }
  3240. // }).responseText;
  3241. // }
  3242.  
  3243. function shiftPatientTreatmentDate(id_patient_treatment){
  3244.  
  3245. if(id_patient_treatment != null){
  3246. //test = "testi";
  3247. result = ycAjaxCall({
  3248. type: 'POST',
  3249. async: false, // Wait for result from server.
  3250. url: 'actions.php',
  3251. data: ({
  3252. action: "get_patient_treatment",
  3253. id_patient_treatment: id_patient_treatment
  3254. }),
  3255. success: function(data) {
  3256. //alert(data);
  3257. //alert(test);
  3258. //listPatients();
  3259. //updateEditPatientForm(null);
  3260. //getTreatmentDates(selectedPatient);
  3261. //updateWeekDiv(today);
  3262.  
  3263. }
  3264. }).responseText;
  3265. var data = $.parseJSON(result);
  3266. //alert(data);
  3267.  
  3268. //if(data['id_patient_treatment']) window._yc_treatment_to_remove = data['id_patient_treatment'];
  3269. // remove data
  3270. result = ycAjaxCall({
  3271. type: 'POST',
  3272. async: false, // Wait for result from server.
  3273. url: 'actions.php',
  3274. data: ({
  3275. action: "remove_patient_treatment",
  3276. id_patient_treatment: data['id_patient_treatment']
  3277. }),
  3278. success: function(data) {
  3279. //alert(data);
  3280. //listPatients();
  3281. //updateEditPatientForm(null);
  3282. //getTreatmentDates(selectedPatient);
  3283. //updateWeekDiv(today);
  3284.  
  3285. }
  3286. }).responseText;
  3287.  
  3288.  
  3289.  
  3290. openTreatmentDate(data['treatment_date'].split(' ')[0], data['treatment_date'].split(' ')[1], data['id_staff'], data['id_patient'], data['id_treatment'], data['treatment_time_end'], data['description']);
  3291. }
  3292. }
  3293. function yc_removePatientTreatmentById(treatmentId){
  3294.  
  3295. result = ycAjaxCall({
  3296. type: 'POST',
  3297. async: false, // Wait for result from server.
  3298. url: 'actions.php',
  3299. data: ({
  3300. action: "remove_patient_treatment",
  3301. id_patient_treatment: treatmentId
  3302. }),
  3303. success: function(data) {
  3304.  
  3305. }
  3306. }).responseText;
  3307.  
  3308. }
  3309. function removePatientTreatmentDate(id_patient_treatment){
  3310. if(id_patient_treatment != null){
  3311. //alert("shit");
  3312. result = ycAjaxCall({
  3313. type: 'POST',
  3314. async: false, // Wait for result from server.
  3315. url: 'actions.php',
  3316. data: ({
  3317. action: "remove_patient_treatment",
  3318. id_patient_treatment: id_patient_treatment
  3319. }),
  3320. success: function(data) {
  3321. //alert(data);
  3322. //listPatients();
  3323. //updateEditPatientForm(null);
  3324. //getTreatmentDates(selectedPatient);
  3325. updateWeekDiv(today);
  3326.  
  3327. }
  3328. }).responseText;
  3329. return;
  3330. }
  3331. var elements = $("#patient-treatmentdates-select-result").html().split('#');
  3332.  
  3333. for(var i in elements){
  3334. var ele = elements[i].trim();
  3335.  
  3336. if (ele.length > 0 && !isNaN(ele)) {
  3337. //alert("ele" + ele);
  3338. /*if (delCount > 0) {
  3339. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  3340. return;
  3341. }*/
  3342. //alert("hashTreatmentDates: "+ hashTreatmentDates[ele - 1]);
  3343. result = ycAjaxCall({
  3344. type: 'POST',
  3345. async: false, // Wait for result from server.
  3346. url: 'actions.php',
  3347. data: ({
  3348. action: "remove_patient_treatment",
  3349. id_patient_treatment: hashTreatmentDates[ele - 1]
  3350. }),
  3351. success: function(data) {
  3352. //alert(data);
  3353. //listPatients();
  3354. //updateEditPatientForm(null);
  3355. getTreatmentDates(selectedPatient);
  3356.  
  3357. }
  3358. }).responseText;
  3359. //delCount++;
  3360. }
  3361.  
  3362. }
  3363. //alert("test hey");
  3364. }
  3365.  
  3366. // TODO
  3367. function removeStaffWorkingTime(id_staff_workingtime){
  3368. //alert("test");
  3369. if(id_staff_workingtime != null){
  3370. //alert("shit");
  3371. result = ycAjaxCall({
  3372. type: 'POST',
  3373. async: false, // Wait for result from server.
  3374. url: 'actions.php',
  3375. data: ({
  3376. "action": "remove_staff_workingtime",
  3377. "id_staff_workingtime": id_staff_workingtime
  3378. }),
  3379. success: function(data) {
  3380. //alert(data);
  3381. //listPatients();
  3382. //updateEditPatientForm(null);
  3383. //getTreatmentDates(selectedPatient);
  3384. getWorkingTimes(selectedStaff);
  3385. updateWeekDiv(today);
  3386.  
  3387. }
  3388. }).responseText;
  3389. return;
  3390. }
  3391. //alert($("#staff-treatmentdates-select-result").html());
  3392. var elements = $("#staff-treatmentdates-select-result").html().split('#');
  3393.  
  3394. for(var i in elements){
  3395. var ele = elements[i].trim();
  3396.  
  3397. if (ele.length > 0 && !isNaN(ele)) {
  3398. //alert("ele" + ele);
  3399. /*if (delCount > 0) {
  3400. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  3401. return;
  3402. }*/
  3403. //alert("hashTreatmentDates: "+ hashTreatmentDates[ele - 1]);
  3404. result = ycAjaxCall({
  3405. type: 'POST',
  3406. async: false, // Wait for result from server.
  3407. url: 'actions.php',
  3408. data: ({
  3409. "action": "remove_staff_workingtime",
  3410. "id_staff_workingtime": hashWorkingTimes[ele - 1]
  3411. }),
  3412. success: function(data) {
  3413. //alert(data);
  3414. //listPatients();
  3415. //updateEditPatientForm(null);
  3416. getWorkingTimes(selectedStaff);
  3417. updateWeekDiv(today);
  3418.  
  3419. }
  3420. }).responseText;
  3421. //delCount++;
  3422. }
  3423.  
  3424. }
  3425. //alert("test hey");
  3426. }
  3427.  
  3428. function removePatient() {
  3429. // for(var i in hashPatients){
  3430. // alert("Hash" + i +":"+ hashPatients[i]);
  3431. // }
  3432. //alert(index);
  3433. //alert($("#patient-select-result").html());
  3434. //alert(hashPatients[index]);
  3435.  
  3436. //alert('"'+$("#patient-select-result").html() + '"');
  3437. var elements = $("#patient-select-result").html().split('#');
  3438. /*if(elements.length > 1){
  3439. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  3440. return;
  3441. }*/
  3442. var delCount = 0;
  3443.  
  3444. for (var i in elements) {
  3445. //alert(i);
  3446.  
  3447. var ele = elements[i].trim();
  3448.  
  3449. if (ele.length > 0 && !isNaN(ele)) {
  3450. //alert("ele" + ele);
  3451. /*if (delCount > 0) {
  3452. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  3453. return;
  3454. }*/
  3455.  
  3456. result = ycAjaxCall({
  3457. type: 'POST',
  3458. async: false, // Wait for result from server.
  3459. url: 'actions.php',
  3460. data: ({
  3461. action: "remove_patient",
  3462. id_patient: hashPatients[ele - 1]
  3463. }),
  3464. success: function(data) {
  3465. //alert(data);
  3466. listPatients();
  3467. updateEditPatientForm(null);
  3468.  
  3469.  
  3470. }
  3471. }).responseText;
  3472. delCount++;
  3473. }
  3474. }
  3475. }
  3476.  
  3477. function removeStaff(){
  3478. var elements = $("#staff-select-result").html().split('#');
  3479.  
  3480. var delCount = 0;
  3481.  
  3482. for (var i in elements) {
  3483. //alert("#" + i + " : " + elements[i]);
  3484.  
  3485. var ele = elements[i].trim();
  3486.  
  3487. //alert('ele:'+ele);
  3488. if (ele.length > 0 && !isNaN(ele)) {
  3489. //alert("ele" + ele);
  3490.  
  3491. //alert("hash " + hashStaffList[ele-1]);
  3492. /*if (delCount > 0) {
  3493. alert("Es wurde mehr als 1 Patient zum Entfernen angegeben. Bitte nur genau einen Patienten zum Entfernen angeben.");
  3494. return;
  3495. }*/
  3496.  
  3497. result = ycAjaxCall({
  3498. type: 'POST',
  3499. async: false, // Wait for result from server.
  3500. url: 'actions.php',
  3501. data: ({
  3502. action: "remove_staff",
  3503. id_staff: hashStaffList[ele - 1]
  3504. }),
  3505. success: function(data) {
  3506. // alert(data);
  3507. listStaff();
  3508. updateEditStaffForm(null);
  3509. updateWeekDiv(today);
  3510.  
  3511. }
  3512. }).responseText;
  3513. delCount++;
  3514. }
  3515. }
  3516. }
  3517.  
  3518. function listPatients() {
  3519. hashPatients = new Array();
  3520. //alert("listPatients");
  3521. let cached = yc_getCache('listPatients');
  3522.  
  3523. if(cached && typeof cached !== "undefined") result = cached;
  3524. else{
  3525. result = ycAjaxCall({
  3526. type: 'POST',
  3527. async: false, // Wait for result from server.
  3528. url: 'actions.php',
  3529. data: ({
  3530. action: "get_patients"
  3531. }),
  3532. success: function(data) {
  3533. }
  3534. }).responseText;
  3535. yc_updateCache('listPatients',result);
  3536. }
  3537.  
  3538. var list = $("#patient-selectable").empty();
  3539. var data = $.parseJSON(result);
  3540. // <li class="ui-widget-content">Hans Meier</li>
  3541. //alert(data.length);
  3542. var count = 0;
  3543.  
  3544. for (var i in data) {
  3545. list.append('<li class="ui-widget-content">' + data[i]['surname'] + " " + data[i]['prename'] + '</li>');
  3546. hashPatients[count++] = data[i]['id_patient'];
  3547. //alert("test: "+test[i]['surname']);
  3548. }
  3549. }
  3550.  
  3551. function listStaff() {
  3552. hashStaffList = new Array();
  3553. //alert("listStaff");
  3554. let cached = yc_getCache('listStaff');
  3555.  
  3556. if(cached && typeof cached !== "undefined") result = cached;
  3557. else{
  3558. result = ycAjaxCall({
  3559. type: 'POST',
  3560. async: false, // Wait for result from server.
  3561. url: 'actions.php',
  3562. data: ({
  3563. action: "get_stafflist"
  3564. }),
  3565. success: function(data) {
  3566. //alert(data);
  3567. }
  3568. }).responseText;
  3569. yc_updateCache('listStaff',result);
  3570. }
  3571. var list = $("#staff-selectable").empty();
  3572. var data = $.parseJSON(result);
  3573. // <li class="ui-widget-content">Hans Meier</li>
  3574. //alert(data.length);
  3575. var count = 0;
  3576.  
  3577. for (var i in data) {
  3578. var d = JSON.stringify(data[i]);
  3579. yc_updateCache('getStaffById_'+data[i].id_staff,d);
  3580. list.append('<li class="ui-widget-content">' + data[i]['surname'] + " " + data[i]['prename'] + '</li>');
  3581. hashStaffList[count++] = data[i]['id_staff'];
  3582. //alert("test: "+test[i]['surname']);
  3583. }
  3584. }
  3585. //function updateListTreatmentDates(){
  3586. //
  3587. //}
  3588. function fillSelectPatientsForNewTreatmentdate(id_staff, id_patient, id_treatment){
  3589. result = ycAjaxCall({
  3590. type: 'POST',
  3591. async: false, // Wait for result from server.
  3592. url: 'actions.php',
  3593. data: ({
  3594. action: "get_patients"
  3595. }),
  3596. success: function(data) {
  3597. }
  3598. }).responseText;
  3599. var list = $("#add-treatmentdate-select-patient").empty();
  3600. var data = $.parseJSON(result);
  3601. // <li class="ui-widget-content">Hans Meier</li>
  3602. //alert(data.length);
  3603. var count = 0;
  3604.  
  3605. for (var i in data) {
  3606. //list.append('<li class="ui-widget-content">' + data[i]['prename'] + " " + data[i]['surname'] + '</li>');
  3607. var patientString = data[i]['surname'] + " " + data[i]['prename'];
  3608. if(data[i]['birthday'] !== null && data[i]['birthday'].trim().length > 0){
  3609. patientString += ' (' + data[i]['birthday'] + ')';
  3610. }
  3611. var selected = '';
  3612.  
  3613. if(data[i]['id_patient'] === id_patient){
  3614. selected='selected="selected" ';
  3615. }
  3616. if(i == (selectedPatient-1)){
  3617. selected='selected="selected" ';
  3618. }
  3619.  
  3620.  
  3621. list.append('<option '+selected + 'value="'+data[i]['id_patient']+'">' + patientString + '</option>');
  3622. }
  3623.  
  3624. // add-treatmentdate-select-treatment
  3625. var treatments = new Array();
  3626. treatments = getTreatments();
  3627. //treatments.push(getTreatments()));
  3628. //treatments = $.parseJSON(getTreatments());
  3629. list = $("#add-treatmentdate-select-treatment").empty();
  3630. for (var i in treatments){
  3631. var treatmentString = treatments[i]['shortcut'];
  3632. if( treatments[i]['treatment_name'] !== null && treatments[i]['treatment_name'].trim().length > 0 ){
  3633. treatmentString += ' (' + treatments[i]['treatment_name']+')';
  3634. }
  3635. if( treatments[i]['is_multiple_patients'] !== null && treatments[i]['is_multiple_patients'] === 'true'){
  3636. treatmentString += ' [+]';
  3637. }
  3638. var selected = '';
  3639. if(treatments[i]['id_treatment'] === id_treatment){
  3640. selected='selected="selected" ';
  3641. }
  3642. list.append('<option '+selected+ 'value="' + treatments[i]['id_treatment']+'">'+treatmentString+'</option>');
  3643. }
  3644.  
  3645. var staffList = new Array();
  3646. staffList = getStaffList();
  3647. //var countStaff = 0;
  3648. list = $("#add-treatmentdate-select-staff").empty();
  3649. for (var i in staffList){
  3650. var staffString = staffList[i]['prename'] + ' ' + staffList[i]['surname'];
  3651. // if( treatments[i]['treatment_name'] !== null && treatments[i]['treatment_name'].trim().length > 0 ){
  3652. // treatmentString += ' (' + treatments[i]['treatment_name']+')';
  3653. // }
  3654. //hashStaffList['id'] = 0;
  3655. if(staffList[i]['id_staff'] === id_staff){
  3656. list.append('<option value="' + staffList[i]['id_staff']+'" selected="selected">'+staffString+'</option>');
  3657. }
  3658. else{
  3659. list.append('<option value="' + staffList[i]['id_staff']+'">'+staffString+'</option>');
  3660. }
  3661.  
  3662. }
  3663.  
  3664.  
  3665. }
  3666.  
  3667. function fillSelectStaffForNewWorkingtime(id_staff){
  3668. staffList = getStaffList();
  3669. //var countStaff = 0;
  3670.  
  3671. list = $("#add-workingtime-select-staff").empty();
  3672. for (var i in staffList){
  3673. var staffString = staffList[i]['prename'] + ' ' + staffList[i]['surname'];
  3674. if(staffList[i]['id_staff'] == id_staff || i==selectedStaff-1){
  3675.  
  3676. list.append('<option value="' + staffList[i]['id_staff']+'" selected="selected">'+staffString+'</option>');
  3677. }
  3678. else{
  3679. list.append('<option value="' + staffList[i]['id_staff']+'">'+staffString+'</option>');
  3680. }
  3681.  
  3682. }
  3683. }
  3684.  
  3685. function getPatient(index, isId) {
  3686.  
  3687. if(index == null || index==''){
  3688. return null;
  3689. }
  3690. var idP = null;
  3691. if(isId == true){
  3692. idP = index;
  3693. }
  3694. else{
  3695. idP = hashPatients[index - 1];
  3696. }
  3697. result = ycAjaxCall({
  3698. type: 'POST',
  3699. async: false, // Wait for result from server.
  3700. url: 'actions.php',
  3701. data: ({
  3702. action: "get_patient",
  3703. id_patient: idP//hashPatients[index - 1]
  3704. }),
  3705. success: function(data) {
  3706. //alert(data);
  3707. }
  3708. }).responseText;
  3709.  
  3710. return result;
  3711. }
  3712.  
  3713. function getStaffById(id) {
  3714. if(id == null || id == ''){ return null;}
  3715.  
  3716. let cached = yc_getCache('getStaffById_'+id);
  3717.  
  3718. if(cached && typeof cached !== "undefined") result = cached;
  3719. else{
  3720. result = ycAjaxCall({
  3721. type: 'POST',
  3722. async: false, // Wait for result from server.
  3723. url: 'actions.php',
  3724. data: ({
  3725. action: "get_staff",
  3726. id_staff: id
  3727. }),
  3728. success: function(data) {
  3729. //alert(data);
  3730. }
  3731. }).responseText;
  3732.  
  3733. yc_updateCache('getStaffById_'+id,result);
  3734. }
  3735.  
  3736. return result;
  3737. }
  3738.  
  3739.  
  3740. function getTreatmentDates(index, isId){
  3741. var idP = null;
  3742. if(isId == true){
  3743. idP = index;
  3744. }
  3745. else{
  3746. idP = hashPatients[index - 1];
  3747. }
  3748. selectedTreatmentDate = "";
  3749.  
  3750. let cached = yc_getCache('get_treatment_dates_'+idP);
  3751.  
  3752. if(cached) result = cached;
  3753. else{
  3754. result = ycAjaxCall({
  3755. type: 'POST',
  3756. async: false, // Wait for result from server.
  3757. url: 'actions.php',
  3758. data: ({
  3759. action: "get_treatment_dates",
  3760. id_patient: idP //hashPatients[index - 1]
  3761. }),
  3762. success: function(data) {
  3763. //alert(data);
  3764. }
  3765. }).responseText;
  3766. yc_updateCache('get_treatment_dates_'+idP,result);
  3767. }
  3768. var data = $.parseJSON(result);
  3769. $("#patient-treatmentdates-select-result").empty()
  3770. var list = $("#patient-treatmentdates-selectable").empty();
  3771. var count = 0;
  3772.  
  3773. let forLoopCounter = 0;
  3774. let yc_staff_stack = [];
  3775. let yc_treatment_stack = [];
  3776. getStaffList();
  3777. getTreatments();
  3778. for (const i in data) {
  3779. //if (forLoopCounter === 100) break;
  3780.  
  3781. //alert(data[i]['id_staff']+'::'+data[i]['id_treatment']);
  3782. // Rest des Codes
  3783. if(!yc_staff_stack[data[i]['id_staff']]) yc_staff_stack[data[i]['id_staff']] = getStaffById(data[i]['id_staff']);
  3784.  
  3785. if(!yc_treatment_stack[data[i]['id_treatment']]) yc_treatment_stack[data[i]['id_treatment']] = getTreatmentById(data[i]['id_treatment']);
  3786.  
  3787. const staff = $.parseJSON(yc_staff_stack[data[i]['id_staff']]);
  3788. const treatment = $.parseJSON(yc_treatment_stack[data[i]['id_treatment']]);
  3789. list.append(
  3790. '<li class="ui-widget-content" style="height: 64px;">' +
  3791. data[i]['treatment_date'] +
  3792. '<br /><font style="font-size: 0.87em;">bis ' +
  3793. data[i]['treatment_time_end'] +
  3794. ' (' +
  3795. treatment['shortcut'] +
  3796. ') <br />' +
  3797. staff['prename'] +
  3798. ' ' +
  3799. staff['surname'] +
  3800. '</font></li>'
  3801. );
  3802. //console.log(data);
  3803. hashTreatmentDates[count++] = data[i]['id_patient_treatment'];
  3804. forLoopCounter++;
  3805. }
  3806.  
  3807.  
  3808. return result;
  3809. }
  3810.  
  3811.  
  3812. function getWorkingTimes(index){
  3813. selectedWorkingTime = "";
  3814. result = ycAjaxCall({
  3815. type: 'POST',
  3816. async: false, // Wait for result from server.
  3817. url: 'actions.php',
  3818. data: ({
  3819. action: "get_working_times",
  3820. id_staff: hashStaffList[index - 1]
  3821. }),
  3822. success: function(data) {
  3823. //alert(data);
  3824. }
  3825. }).responseText;
  3826.  
  3827. var data = $.parseJSON(result);
  3828. $("#staff-treatmentdates-select-result").empty()
  3829. var list = $("#staff-treatmentdates-selectable").empty();
  3830. var count = 0;
  3831.  
  3832. for (var i in data) {
  3833. //alert(getStaffById(data[i]['id_staff']));
  3834. var staff = $.parseJSON(getStaffById(data[i]['id_staff']));
  3835. var matter = getNameFromMatter(data[i]['matter']);
  3836. //alert(getTreatmentById(data[i]['id_treatment']));
  3837. //alert(treatment['shortcut']);
  3838. list.append('<li class="ui-widget-content" style="height: 64px;">' +
  3839. data[i]['beginning_time'] + '<br /><font style="font-size: 0.87em;">bis ' +
  3840. data[i]['end_time']+ " (" + matter +
  3841. ')</font></li>');
  3842. hashWorkingTimes[count++] = data[i]['id_staff_workingtime'];
  3843. //alert("hashTreatmentDate " + data[i]['id_patient_treatment']);
  3844. //hashPatients[count++] = data[i]['id_patient'];
  3845. //alert("test: "+test[i]['surname']);
  3846. }
  3847.  
  3848.  
  3849. return result;
  3850. }
  3851.  
  3852.  
  3853. function getStaffList(){
  3854. let cached = yc_getCache('getStaffList');
  3855.  
  3856. if(cached && typeof cached !== "undefined") result = cached;
  3857. else{
  3858. result = ycAjaxCall({
  3859. type: 'POST',
  3860. async: false, // Wait for result from server.
  3861. url: 'actions.php',
  3862. data: ({
  3863. action: "get_stafflist"
  3864. }),
  3865. success: function(data) {
  3866. }
  3867. }).responseText;
  3868.  
  3869. yc_updateCache('getStaffList',result);
  3870. }
  3871.  
  3872. var _ycstafflist = $.parseJSON(result);
  3873.  
  3874. for (var i in _ycstafflist){
  3875. //alert(_ycstafflist[i].id_staff);
  3876. //yc_getCache('getStaffList');
  3877. var d = JSON.stringify(_ycstafflist[i])
  3878. yc_updateCache('getStaffById_'+_ycstafflist[i].id_staff,d);
  3879. }
  3880.  
  3881. //return result;
  3882. //alert(result);
  3883. return $.parseJSON(result);
  3884. }
  3885.  
  3886. function getTreatments(){
  3887. let cached = yc_getCache('getTreatments');
  3888.  
  3889. if(cached && typeof cached !== "undefined") result = cached;
  3890. else{
  3891. result = ycAjaxCall({
  3892. type: 'POST',
  3893. async: false, // Wait for result from server.
  3894. url: 'actions.php',
  3895. data: ({
  3896. action: "get_treatments"
  3897. }),
  3898. success: function(data) {
  3899. }
  3900. }).responseText;
  3901. }
  3902.  
  3903. var _treatmentlist = $.parseJSON(result);
  3904.  
  3905.  
  3906. for (var i in _treatmentlist){
  3907.  
  3908. var d = JSON.stringify(_treatmentlist[i])
  3909. yc_updateCache('getTreatmentById_'+_treatmentlist[i].id_treatment,d);
  3910. }
  3911. //return result;
  3912. //alert(result);
  3913. return $.parseJSON(result);
  3914. }
  3915.  
  3916. function getTreatmentById(id) {
  3917. let cached = yc_getCache('getTreatmentById_'+id);
  3918.  
  3919. if(cached && typeof cached !== "undefined") result = cached;
  3920. else{
  3921. result = ycAjaxCall({
  3922. type: 'POST',
  3923. async: false, // Wait for result from server.
  3924. url: 'actions.php',
  3925. data: ({
  3926. action: "get_treatment",
  3927. id_treatment: id
  3928. }),
  3929. success: function(data) {
  3930. //alert(data);
  3931. }
  3932. }).responseText;
  3933. yc_updateCache('getTreatmentById_'+id,result);
  3934. }
  3935.  
  3936. return result;
  3937. }
  3938.  
  3939. function insertWorkingTimeQuery(insertData, feedback){
  3940.  
  3941. result = ycAjaxCall({
  3942. type: 'POST',
  3943. async: false, // WICHTIG!
  3944. url: 'actions.php',
  3945. data: ({
  3946. "action": "insert_working_time",
  3947. "id_staff": insertData['staffId'],
  3948. "beginning_date": insertData['resultDateBegin'],
  3949. "end_date": insertData['resultDateEnd'],
  3950. "matter": insertData['matter']
  3951. }),
  3952. success: function(data) {
  3953. if(feedback === true){
  3954. alert(data);
  3955. getWorkingTimes(selectedStaff)
  3956.  
  3957. $("#add-workingtime-dialog").dialog("close");
  3958. updateWeekDiv(today);
  3959. }
  3960.  
  3961. }
  3962. });//.responseText;
  3963. }
  3964.  
  3965. function updateEditPatientForm(patient) {
  3966. //alert("Patient-length: " + patient.length);
  3967. if (patient === null) {
  3968. $('#edit-patient-prename').val("");
  3969. $('#edit-patient-surname').val("");
  3970. $('#edit-patient-birthday').val("");
  3971. $('#edit-patient-telephone').val("");
  3972. $('#edit-patient-remark').val("");
  3973. $('#edit-patient-town').val("");
  3974. $('#edit-patient-zipcode').val("");
  3975. $('#edit-patient-street').val("");
  3976. }
  3977. else {
  3978. $('#edit-patient-prename').val(patient['prename']);
  3979. $('#edit-patient-surname').val(patient['surname']);
  3980. $('#edit-patient-birthday').val(patient['birthday']);
  3981. $('#edit-patient-telephone').val(patient['telephone']);
  3982. $('#edit-patient-remark').val(patient['description_text']);
  3983. $('#edit-patient-town').val(patient['town']);
  3984. $('#edit-patient-zipcode').val(patient['zipcode']);
  3985. $('#edit-patient-street').val(patient['street']);
  3986.  
  3987. }
  3988. }
  3989.  
  3990.  
  3991. function updateEditStaffForm(staff) {
  3992. //alert("Patient-length: " + patient.length);
  3993. //$('#edit-staff-active').attr("checked", "checked");
  3994. if (staff === null || staff=='') {
  3995. $('#edit-staff-prename').val("");
  3996. $('#edit-staff-surname').val("");
  3997. $('#edit-staff-birthday').val("");
  3998. $('#edit-staff-telephone').val("");
  3999. $('#edit-staff-remark').val("");
  4000. //$('#edit-staff-active').attr("checked", false);
  4001. //$('#edit-staff-active').removeAttr("checked");
  4002. var editStaffActive = document.getElementById('edit-staff-active');
  4003. editStaffActive.checked = null;
  4004. }
  4005. else {
  4006. var editStaffActive = document.getElementById('edit-staff-active');
  4007. if(staff['is_present'] === "true"){
  4008. editStaffActive.checked = "checked";
  4009. }
  4010. else{
  4011. editStaffActive.checked = null;
  4012. }
  4013. //$('#edit-staff-active').attr("checked", "checked");
  4014. $('#edit-staff-prename').val(staff['prename']);
  4015. $('#edit-staff-surname').val(staff['surname']);
  4016. $('#edit-staff-birthday').val(staff['birthday']);
  4017. $('#edit-staff-telephone').val(staff['telephone']);
  4018. $('#edit-staff-remark').val(staff['description_text']);
  4019. // if(staff['is_present'] === "true"){
  4020. // alert("yeah");
  4021. // }
  4022.  
  4023. }
  4024. }
  4025.  
  4026. function openTreatmentDate(start, begin_time, id_staff, id_patient, id_treatment, time_end, description){
  4027. //alert("testii");
  4028. fillSelectPatientsForNewTreatmentdate(id_staff, id_patient, id_treatment);
  4029.  
  4030. $("#add-treatmentdate-input-start").val((start !== null) ? start : "");
  4031. $("#add-treatmentdate-input-end").val("");
  4032. $("#add-treatmentdate-input-time-begin").val((begin_time !== null) ? begin_time : "");
  4033. $("#add-treatmentdate-input-time-end").val((time_end !== null) ? time_end : "");
  4034. $("#add-treatmentdate-input-description").val((description !== null) ? description : "");
  4035.  
  4036. $("#add-treatmentdate-dialog").dialog("open");
  4037. }
  4038.  
  4039. function toolbarFilter(){
  4040. var staffList = new Array();
  4041. staffList = getStaffList();
  4042. var staffChooserDiv = document.createElement('div');
  4043. staffChooserDiv.id = "staffchooser";
  4044. staffChooserDiv.style="left: 0px; text-align: left; margin-top: 20px; width: 100%; float:left; position: relative;";
  4045. for (var i in staffList){
  4046. if(staffList[i]['is_present'] !== "true"){
  4047. continue;
  4048. }
  4049. //hashFilterStaff[staffList[i]['id_staff']] = true;
  4050. var staffCheckBox = document.createElement('input');
  4051. staffCheckBox.type='checkbox';
  4052. $(staffCheckBox).attr('id_staff',staffList[i]['id_staff'] );
  4053. //staffCheckBox.id_staff = staffList[i]['id_staff'];
  4054. staffCheckBox.onclick = (function(){
  4055. //alert(hashFilterStaff[this.id_staff]);
  4056. //hashFilterStaff[this.id_staff] = this.checked;
  4057. if($("#staffFilterButton:checked").val()){
  4058. updateWeekDiv(currentWeekDate, currentDayView);
  4059. }
  4060. });;
  4061. staffChooserDiv.appendChild(staffCheckBox);
  4062. var staffSpanName = document.createElement('span');
  4063. staffSpanName.innerHTML = staffList[i]['surname'];
  4064. staffSpanName.style="margin-right:10px;";
  4065. staffChooserDiv.appendChild(staffSpanName);
  4066. }
  4067. //var staffFilterButton = document.createElement('button');
  4068. var staffFilterButton = document.createElement('input');
  4069. staffFilterButton.id='staffFilterButton';
  4070. staffFilterButton.style="margin-left:20px;";
  4071. staffFilterButton.type='checkbox';
  4072. //staffFilterButton.innerHTML = "Test";
  4073. //staffFilterButton.innerHTML = "Filter";
  4074. var staffFilterLabel = document.createElement('label');
  4075. staffFilterLabel.for="staffFilterButton";
  4076.  
  4077. staffFilterLabel.innerHTML = "<b><u>Filter1</u></b>"
  4078.  
  4079. staffChooserDiv.appendChild(staffFilterButton);
  4080. staffChooserDiv.appendChild(staffFilterLabel);
  4081.  
  4082. // $(staffFilterButton).button( {
  4083. // icons: {
  4084. // primary: "ui-icon-calendar"
  4085. // },
  4086. // text: true
  4087. // });
  4088. $(staffFilterButton).change(function(){
  4089. updateWeekDiv(currentWeekDate, currentDayView);
  4090. //alert("test");
  4091. });
  4092. $('#toolbar').append(staffChooserDiv);
  4093. }
  4094.  
  4095. function updateWeekDiv(date, dayview){
  4096.  
  4097. var plan = $("#plan").empty();
  4098.  
  4099. currentWeekDate = date;
  4100. currentDayView = dayview;
  4101. //plan.append(staffChooserDiv);
  4102.  
  4103. var dayCount = null;
  4104. if(dayview === true || $("#day-view-check:checked").val()){
  4105. //var myDate = new Date(date);
  4106. updateWeekDayDiv(date);
  4107. }
  4108. else{
  4109. //alert(date);
  4110. var inputDate = new Date(date);
  4111. //alert(inputDate);
  4112. var startDate = new Date(date);
  4113. //startDate.setDate(date.getDate() - date.getDay() + 1);
  4114. //alert(date.getDate() +" " + date.getDay() );
  4115. startDate.setDate(date.getDate() - date.getDay() + 1);
  4116. //alert(startDate);
  4117. for(var i=0; i<5; i++){
  4118. var myDate = new Date(startDate);
  4119. myDate.setDate(startDate.getDate()+i);
  4120. //alert("mydate: " + myDate);
  4121. //alert("date: " + date);
  4122. var isFocus = false;
  4123. if(inputDate.getTime() === myDate.getTime()){
  4124. isFocus=true;
  4125. dayCount = i;
  4126. //alert("found"+i);
  4127. }
  4128. updateWeekDayDiv(myDate, isFocus);
  4129. }
  4130. }
  4131. var totalWidth = 0;
  4132. var i = 0;
  4133. var scrollLeftValue = 0;
  4134. // alert("i=" + i + "\n dayCount" + dayCount);
  4135. plan.children('div').each(
  4136. function() {
  4137. var child = $(this);
  4138. // alert("i=" + i + "\n dayCount" + dayCount);
  4139. if(child.attr('id') !== 'staffchooser'){
  4140. //alert(child.attr('id'));
  4141. //alert(child.attr());
  4142. // alert("i=" + i + "\n dayCount" + dayCount);
  4143. if(i==dayCount){
  4144. // alert("yes we can");
  4145. scrollLeftValue = totalWidth;
  4146. }
  4147. i++;
  4148. totalWidth += child.width() + 50;
  4149. }
  4150. });
  4151. //alert("scrollLeftValue" + scrollLeftValue);
  4152. plan.width(totalWidth);
  4153. $('html,body').scrollLeft(scrollLeftValue);
  4154. }
  4155.  
  4156. function updateWeekDayDiv(date){
  4157. //function updateWeekDiv(date){
  4158. //alert("hello");
  4159.  
  4160. plan = $("#plan");
  4161. //var plan = $("#plan").empty();
  4162. //alert(convertDate(date));
  4163. //jetzt javascript ajax nach PHP
  4164. result = ycAjaxCall({
  4165. type: 'POST',
  4166. async: false, // Wait for result from server.
  4167. url: 'actions.php',
  4168. data: ({
  4169. action: "get_patient_treatment_day",
  4170. date: convertDate(date)//"28.03.2014"//convertDate(date)
  4171. }),
  4172. success: function(data) {
  4173. //alert("get_patient_treatment_day\n" + data);
  4174. }
  4175. }).responseText;
  4176.  
  4177. resultWorkingTimes = ycAjaxCall({
  4178. type: 'POST',
  4179. async: false, // Wait for result from server.
  4180. url: 'actions.php',
  4181. data: ({
  4182. action: "get_working_times",
  4183. date: convertDate(date)
  4184. }),
  4185. success: function(data) {
  4186. //alert("get_working_times\n" + data);
  4187. }
  4188. }).responseText;
  4189.  
  4190.  
  4191. //return result;
  4192. //alert(result);
  4193. var pt_day = $.parseJSON(result);
  4194. var working_times = $.parseJSON(resultWorkingTimes);
  4195. //alert(JSON.stringify(pt_day[0]['treatment_date']));
  4196. var div_weekday = document.createElement('div');
  4197. var h2_head = document.createElement('h2');
  4198.  
  4199. h2_head.style="margin-bottom: 0px; padding-bottom: 0px;";
  4200. h2_head.innerHTML=getDayByDate(date);
  4201. div_weekday.appendChild(h2_head);
  4202.  
  4203. var p_element = document.createElement('p');
  4204. p_element.style="margin-top: 0px; padding-top: 3px;";
  4205. p_element.innerHTML = "<font size=0.4em>" + convertDate(date) + "</font></p>";
  4206. div_weekday.appendChild(p_element);
  4207.  
  4208. var table_element = document.createElement('table');
  4209. table_element.border="1";
  4210. table_element.rules="groups";
  4211.  
  4212. var thead_element = document.createElement('thead');
  4213. var tr_element = document.createElement('tr');
  4214. var th_element = document.createElement('th');
  4215. th_element.class="time";
  4216. th_element.innerHTML = "Uhrzeit";
  4217. tr_element.appendChild(th_element);
  4218.  
  4219. var staffFilterList = new Array();
  4220.  
  4221. if($("#staffFilterButton:checked").val()){
  4222. $("#staffchooser").children('input').each(
  4223. function(){
  4224. if($(this).attr('id_staff')){
  4225. //alert($(this).attr('id_staff') + " : " + $(this).get(0).checked);
  4226. staffFilterList[$(this).attr('id_staff')] = $(this).get(0).checked;
  4227. }
  4228.  
  4229. });
  4230. }
  4231. // for (var x in staffFilterList){
  4232. // alert(staffFilterList[x] + ": " + x);
  4233. // }
  4234. // List all staff
  4235. var staffList = new Array();
  4236. staffList = getStaffList();
  4237.  
  4238. for (var i in staffList){
  4239. if(staffList[i]['is_present'] !== "true" ||
  4240. ( $("#staffFilterButton:checked").val() && staffFilterList[staffList[i]['id_staff']] !== true) ){
  4241.  
  4242. continue;
  4243. }
  4244. var th_element = document.createElement('th');
  4245. th_element.class="day";
  4246. th_element.style="min-width: 70px;"
  4247. th_element.innerHTML=staffList[i]['surname'];
  4248. th_element.value=Date.parse(date) + '_' + staffList[i]['id_staff'];
  4249.  
  4250.  
  4251. var th_element_button_pdf = document.createElement('button');
  4252. th_element_button_pdf.innerHTML = "pdf";
  4253. th_element_button_pdf.date_time = date;
  4254. th_element_button_pdf.id_staff= staffList[i]['id_staff'];
  4255. $(th_element_button_pdf).button({
  4256. icons: {
  4257. primary: " ui-icon-document "
  4258. },
  4259. text: false
  4260. });
  4261. th_element_button_pdf.style='height: 19px; width:26px; margin-left: 10px;';
  4262. $(th_element_button_pdf).click(function() {
  4263. //alert("hey " + convertDate(date));
  4264. window.open('stafftopdf.php?id_staff=' + this.id_staff + "&date="+convertDate(this.date_time), '_blank');
  4265. });
  4266.  
  4267. th_element.appendChild(th_element_button_pdf);
  4268. // th_element.onclick=(function(){
  4269. // resultWorkingTimes = ycAjaxCall({
  4270. // type: 'POST',
  4271. // async: false, // Wait for result from server.
  4272. // url: 'actions.php',
  4273. // data: ({
  4274. // action: "insert_working_time",
  4275. // id_staff: this.value.split('_')[1],
  4276. // beginning_date: this.value.split('_')[0],
  4277. // end_date: "test",
  4278. // matter: 'hello'
  4279. // }),
  4280. // success: function(data) {
  4281. // alert(data);
  4282. // //alert("get_patient_treatment_day\n" + data);
  4283. // }
  4284. // }).responseText;
  4285. // });
  4286.  
  4287. tr_element.appendChild(th_element);
  4288. }
  4289. thead_element.appendChild(tr_element);
  4290. table_element.appendChild(thead_element);
  4291.  
  4292. var tbody_element = document.createElement('tbody');
  4293.  
  4294. var day_begin_hour= <?php echo $settings['day_begin_hour'];?> //8; //default is 8 o'clock
  4295. var day_end_hour= <?php echo $settings['day_end_hour'];?> //19; //default is 19 o'clock
  4296. var time_granularity=<?php echo $settings['time_granularity'];?> // 10; // default is 10min
  4297.  
  4298. var hash_pt_day = new Array();
  4299.  
  4300. for(var i=day_begin_hour; i<=day_end_hour; i++){
  4301. for(var j=0; j<60; j = j + time_granularity){
  4302. var loopDate = new Date();
  4303. loopDate.setHours(i, j);
  4304. var tr_element = document.createElement('tr');
  4305.  
  4306. // display time
  4307. var td_time_element = document.createElement('td');
  4308. td_time_element.class="time";
  4309. td_time_element.style="font-size: 0.8em;";
  4310. td_time_element.innerHTML = (loopDate.getHours()<10? '0' : '') + loopDate.getHours() + ":" + (loopDate.getMinutes()<10?'0':'') + loopDate.getMinutes();//i + ":" + j;
  4311. // td_time_element.onclick = (function(){
  4312. // //alert(this.innerHTML);
  4313. // });
  4314. tr_element.appendChild(td_time_element);
  4315. var treatmentDateObj = new Array();
  4316. treatmentDateObj['begin_time'] = "";
  4317. treatmentDateObj['surname'] = "";
  4318. // display treatment date for every staff
  4319. for(var s in staffList){
  4320. //alert(JSON.stringify(staffList[s]));
  4321. if(staffList[s]['is_present'] !== "true" ||
  4322. ( $("#staffFilterButton:checked").val() && staffFilterList[staffList[s]['id_staff']] !== true)){
  4323. continue;
  4324. }
  4325. var td_date_element = document.createElement('td');
  4326. td_date_element.class="day";
  4327.  
  4328. var begin_date=""
  4329. var begin_time="";
  4330. var end_time="";
  4331. var treatment_time = new Date(date.getFullYear(), date.getMonth(), date.getDate(), loopDate.getHours(), loopDate.getMinutes());
  4332. var current_treatment = null;
  4333. var hasTermin = false;
  4334.  
  4335. for(var wt in working_times){
  4336. begin_date = working_times[wt]['beginning_time'].split(' ');
  4337. var end_date = working_times[wt]['end_time'].split(' ');
  4338. var wt_day_beginning_time = new Date(begin_date[0].split('.')[2], begin_date[0].split('.')[1]-1, begin_date[0].split('.')[0], begin_date[1].split(':')[0], begin_date[1].split(':')[1] );
  4339. var wt_day_end_time = new Date(end_date[0].split('.')[2], end_date[0].split('.')[1]-1, end_date[0].split('.')[0], end_date[1].split(':')[0], end_date[1].split(':')[1] );
  4340.  
  4341. var time_begin = new Date(treatment_time);
  4342. var time_end = new Date(treatment_time);
  4343.  
  4344. time_begin.setHours(wt_day_beginning_time.getHours());
  4345. time_begin.setMinutes(wt_day_beginning_time.getMinutes());
  4346. time_end.setHours(wt_day_end_time.getHours());
  4347. time_end.setMinutes(wt_day_end_time.getMinutes());
  4348.  
  4349.  
  4350. if(staffList[s]['id_staff'] === working_times[wt]['id_staff']){
  4351. if(Date.parse(wt_day_beginning_time) <= Date.parse(treatment_time) && Date.parse(treatment_time) <= Date.parse(wt_day_end_time) ){
  4352.  
  4353. if(working_times[wt]['matter'] === 'HOLIDAY'){
  4354. td_date_element.style="background-color: #ff6d6d;";
  4355. hasTermin = true;
  4356. }
  4357. else if (working_times[wt]['matter'] === 'WORK'){
  4358. if(Date.parse(time_begin) <= Date.parse(treatment_time) && Date.parse(treatment_time) <= Date.parse(time_end) ){
  4359. //td_date_element.style="background-color: #bbddff;";
  4360. td_date_element.style="background-color: #bbffbb;";
  4361. }
  4362. }
  4363.  
  4364.  
  4365. }
  4366.  
  4367. //td_date_element.innerHTML = "time";
  4368. //td_date_element.innerHTML = Date.parse(wt_day_end_time) + "<br />" + Date.parse(treatment_time);
  4369. }
  4370.  
  4371. //
  4372. }
  4373.  
  4374. // TODO HERE
  4375. //var pt_day_groups
  4376. // for (var pt in pt_day){
  4377. //
  4378. // }
  4379. var begin_date="";
  4380. var end_time="";
  4381. for(var pt in pt_day){
  4382.  
  4383. begin_date = pt_day[pt]['treatment_date'].split(' ');
  4384. //if(Math.abs(begin_date)
  4385. begin_time = begin_date[1];
  4386.  
  4387. var tt_end = pt_day[pt]['treatment_time_end'];
  4388. //end_time = tt_end[0] + ":" + tt_end[1];
  4389.  
  4390. var pt_time = new Date(date.getFullYear(), date.getMonth(), date.getDate(), begin_time.split(':')[0], begin_time.split(':')[1]);
  4391. //var pt_time2 = new Date(date.getFullYear(), date.getMonth(), date.getDate(), begin_time.split(':')[0], parseInt(begin_time.split(':')[1]) + 15);
  4392. var pt_time_end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), tt_end.split(':')[0], tt_end.split(':')[1]);
  4393. // 900000ms = 15min
  4394. // 600000ms = 10min
  4395. if(staffList[s]['id_staff'] === pt_day[pt]['id_staff']){
  4396. if((Math.abs(Date.parse(treatment_time) - Date.parse(pt_time)) < (time_granularity * 60 * 1000)) && (typeof(hash_pt_day[pt_day[pt]['id_patient_treatment']]) === 'undefined' || hash_pt_day[pt_day[pt]['id_patient_treatment']] === null) ){
  4397. hash_pt_day[pt_day[pt]['id_patient_treatment']] = true;
  4398. treatmentDateObj['begin_time'] = begin_time;
  4399. treatmentDateObj['surname'] = pt_day[pt]['surname'] + " " + pt_day[pt]['prename']+" <br>("+pt_day[pt]['shortcut']+") "+begin_time +"-"+tt_end.split(':')[0]+":"+tt_end.split(':')[1] + " <br>";//+"|";
  4400. treatmentDateObj['checked'] = pt_day[pt]['is_present'];
  4401.  
  4402. var td_date_element_check_button = document.createElement('input');
  4403. td_date_element_check_button.id_patient_treatment = pt_day[pt]['id_patient_treatment'];
  4404. td_date_element_check_button.type="checkbox";
  4405. if(treatmentDateObj['checked'] === 'true'){
  4406. td_date_element_check_button.checked="checked";
  4407. }
  4408. td_date_element_check_button.onclick=(function(){
  4409. //alert(this.checked);
  4410. //alert(this.id_patient_treatment);
  4411.  
  4412. //TODO
  4413. setPatientTreatmentCheck(this.id_patient_treatment, this.checked);
  4414.  
  4415. //$( "#-dialog" ).dialog('open');
  4416.  
  4417. });
  4418. td_date_element.appendChild(td_date_element_check_button);
  4419.  
  4420. var a_link_patient = document.createElement('span');
  4421. a_link_patient.id_patient = pt_day[pt]['id_patient'];
  4422. a_link_patient.innerHTML = treatmentDateObj['surname'];
  4423. //a_link_patient.href="";
  4424. a_link_patient.style="text-decoration: underline; cursor: pointer;";
  4425. a_link_patient.onclick = (function(){
  4426. // TODO
  4427. //alert(a_link_patient.id_patient);
  4428. ycShowLoader();
  4429.  
  4430. var ycThis = this;
  4431. ycDisplayLoader().then(function(v){
  4432.  
  4433.  
  4434.  
  4435.  
  4436. listPatients();
  4437. for(var sp in hashPatients){
  4438. //alert(sp);
  4439. if(hashPatients[sp] == ycThis.id_patient){
  4440. selectedPatient=Math.abs(sp)+1;
  4441. break;
  4442. }
  4443.  
  4444. }
  4445. var p = $.parseJSON(getPatient(ycThis.id_patient, true));
  4446. updateEditPatientForm(p);
  4447. getTreatmentDates(p['id_patient'], true);
  4448.  
  4449. $("#listpatients-dialog").dialog("open");
  4450.  
  4451. });
  4452. //$("#plan").scrollTo({ left:$('#listpatients-dialog').offset().left});
  4453. //alert($('#listpatients-dialog').offset().left);
  4454.  
  4455. //$("#listpatients-dialog").focus();
  4456.  
  4457. });
  4458. td_date_element.appendChild(a_link_patient);
  4459. // Add description/remark if there is a description for that patient_treatment
  4460. if(pt_day[pt]['description'] !== null && pt_day[pt]['description'] !== ""){
  4461.  
  4462. var td_date_element_description_button = document.createElement('button');
  4463. td_date_element_description_button.id_patient_treatment = pt_day[pt]['id_patient_treatment'];
  4464. td_date_element_description_button.innerHTML=pt_day[pt]['description'];
  4465. td_date_element_description_button.text=pt_day[pt]['description'];
  4466. //td_date_element_description_button.alt=pt_day[pt]['description'];
  4467. td_date_element_description_button.onclick=(function(){
  4468. alert(this.text);
  4469. //selectedPatientTreatmentDateCalendar = this.id_patient_treatment;
  4470. //$( "#-dialog" ).dialog('open');
  4471. });
  4472. //$( "button:first" ).button({
  4473. $(td_date_element_description_button).button({
  4474. icons: {
  4475. primary: "ui-icon-notice"
  4476. },
  4477. text: false
  4478. });
  4479. td_date_element_description_button.style='height: 19px; width:26px;';
  4480. td_date_element.appendChild(td_date_element_description_button);
  4481. }
  4482. //td_date_element.innerHTML = treatmentDateObj['surname'];
  4483. // Add delete button for every patient_treatment
  4484.  
  4485. var td_date_element_delete_button = document.createElement('button');
  4486. td_date_element_delete_button.id_patient_treatment = pt_day[pt]['id_patient_treatment'];
  4487. td_date_element_delete_button.innerHTML="löschen";
  4488. td_date_element_delete_button.onclick=(function(){
  4489. //alert(this.id_patient_treatment);
  4490. // selectedPatientTreatmentDateCalendar = this.id_patient_treatment;
  4491. //$( "#-dialog" ).dialog('open');
  4492.  
  4493. });
  4494. //$( "button:first" ).button({
  4495. $(td_date_element_delete_button).button({
  4496. icons: {
  4497. primary: "ui-icon-trash"
  4498. },
  4499. text: false
  4500. });
  4501. td_date_element_delete_button.style='height: 19px; width:26px;';
  4502. //td_date_element.innerHTML += ' <button id_treatment="'+pt_day[pt]['id_patient_treatment']+'">löschen</button>';
  4503.  
  4504. if(pt_day[pt]['color'] === null){
  4505. td_date_element.style="background-color: #fdff6d;";
  4506. }
  4507. else{
  4508. td_date_element.style="background-color: #"+pt_day[pt]['color']+";";
  4509. }
  4510. td_date_element.appendChild(td_date_element_delete_button);
  4511.  
  4512.  
  4513. var td_date_element_add_patient_button = document.createElement('button');
  4514. // TODO ADD BUTTON
  4515. td_date_element_add_patient_button.innerHTML = "add";
  4516. td_date_element_add_patient_button.id_patient_treatment = pt_day[pt]['id_patient_treatment'];
  4517. $(td_date_element_add_patient_button).button({
  4518. icons: {
  4519. primary: " ui-icon-plus "
  4520. },
  4521. text: false
  4522. });
  4523.  
  4524. //ADD GROUP
  4525. $(td_date_element_add_patient_button).click(function() {
  4526. //alert(this.id_patient_treatment);
  4527. if(this.id_patient_treatment != null){
  4528.  
  4529. result = ycAjaxCall({
  4530. type: 'POST',
  4531. async: false, // Wait for result from server.
  4532. url: 'actions.php',
  4533. data: ({
  4534. action: "get_patient_treatment",
  4535. id_patient_treatment: this.id_patient_treatment
  4536. }),
  4537. success: function(data) {
  4538. //alert(data);
  4539. //alert(test);
  4540. //listPatients();
  4541. //updateEditPatientForm(null);
  4542. //getTreatmentDates(selectedPatient);
  4543. //updateWeekDiv(today);
  4544.  
  4545. }
  4546. }).responseText;
  4547. //alert (result);
  4548. var data = $.parseJSON(result);
  4549. //openTreatmentDate(data['treatment_date'].split(' ')[0], data['treatment_date'].split(' ')[1], data['id_staff'], data['id_patient'], data['id_treatment'], data['treatment_time_end']);
  4550. openTreatmentDate(data['treatment_date'].split(' ')[0], data['treatment_date'].split(' ')[1], data['id_staff'], null, data['id_treatment'], data['treatment_time_end']);
  4551. }
  4552.  
  4553. });
  4554.  
  4555. td_date_element_add_patient_button.style='height: 19px; width:26px;'
  4556. if(pt_day[pt]['is_multiple_patients'] === 'true'){
  4557. td_date_element.appendChild(td_date_element_add_patient_button);
  4558. }
  4559. td_date_element.appendChild(document.createElement('br'));
  4560.  
  4561. hasTermin = true;
  4562. $( "#rewind" ).button({
  4563. text: false,
  4564. icons: {
  4565. primary: "ui-icon-seek-prev"
  4566. }
  4567. });
  4568. //td_date_element.innerHTML = Date.parse(treatment_time) + ", " + Date.parse(pt_time_end);
  4569. }
  4570.  
  4571. if(Date.parse(pt_time) <= Date.parse(treatment_time) && Date.parse(treatment_time) < Date.parse(pt_time_end) ){
  4572. if(pt_day[pt]['color'] === null){
  4573. td_date_element.style="background-color: #fdff6d;";
  4574. }
  4575. else{
  4576. td_date_element.style="background-color: #"+pt_day[pt]['color']+";";
  4577. }
  4578. hasTermin = true;
  4579. }
  4580. }
  4581.  
  4582.  
  4583. //Date.parse(pt_time2) - Date.parse(pt_time);//begin_time.split(':')[0];//begin_time;
  4584. //begin_time = pt_day[pt].split(' ')[1];
  4585. }
  4586. td_date_element.value=Date.parse(treatment_time) + "_" + staffList[s]['id_staff'];
  4587. //if(staffList[s].id_staff===)
  4588. // if(typeof(treatmentDateObj['surname']) !== 'undefined' && treatmentDateObj['surname'] !== null && treatmentDateObj['surname'] !== ""){
  4589. // td_date_element.innerHTML = treatmentDateObj['surname'];// + treatmentDateObj['begin_time'] + "";//treatment_time.getHours();
  4590. // td_date_element.style="background-color: #fdff6d;";
  4591. // }
  4592. // else{
  4593. // td_date_element.innerHTML = "";
  4594. // }
  4595. //td_date_element.innerHTML = "";
  4596. if(!hasTermin){
  4597. td_date_element.onclick= (function(){
  4598. //alert(this.value);
  4599. var milli = this.value.split('_')[0];
  4600. var id_staff = this.value.split('_')[1]
  4601. var curDate = new Date(parseInt(milli));
  4602. //alert(curDate);
  4603. curDateString = convertTo2LN(curDate.getDate()) + "." + convertTo2LN(Math.abs(curDate.getMonth()+1)) + "." + curDate.getFullYear();
  4604. curDateBeginTimeString = (curDate.getHours()<10? '0' : '') + curDate.getHours() + ":" + (curDate.getMinutes()<10?'0':'') + curDate.getMinutes();
  4605.  
  4606. openTreatmentDate(curDateString, curDateBeginTimeString, id_staff);
  4607. });
  4608. }
  4609. tr_element.appendChild(td_date_element);
  4610. }
  4611. /*tr_element.onclick = (function(){
  4612. alert(this.children[0].innerHTML);
  4613. });*/
  4614.  
  4615.  
  4616.  
  4617. tbody_element.appendChild(tr_element);
  4618. }
  4619. //tbody_element.innerHTML="<tr><td>nöööö</td></tr>";
  4620. }
  4621. table_element.appendChild(tbody_element);
  4622.  
  4623. div_weekday.appendChild(table_element);
  4624.  
  4625. /* this loop is nerver used so comment this out */
  4626. //for (var i in pt_day) {
  4627. //list.append('<li class="ui-widget-content">' + data[i]['prename'] + " " + data[i]['surname'] + '</li>');
  4628. //var patientTreatmentDate = data[i];
  4629.  
  4630. //div_weekday.append('<option '+selected + 'value="'+data[i]['id_patient']+'">' + patientString + '</option>');
  4631. //}
  4632. plan.append(div_weekday);
  4633. //dann die Daten für ein Tag versuchen als DIV anzeigen zu lassen
  4634.  
  4635. }
  4636.  
  4637.  
  4638. $("#addpatient-dialog").dialog({autoOpen: false, draggable: false});
  4639.  
  4640. $("#addpatient-opener").click(function() {
  4641. $('#input-prename').val("");
  4642. $('#input-surname').val("");
  4643. $('#input-birthday').val("");
  4644. $('#input-telephone').val("");
  4645. $('#input-remark').val("");
  4646. $('#input-town').val("");
  4647. $('#input-zipcode').val("");
  4648. $('#input-street').val("");
  4649. $("#addpatient-dialog").dialog("open");
  4650. return false;
  4651. });
  4652.  
  4653. $("#add-patient").click(function() {
  4654. $('#input-prename').val("");
  4655. $('#input-surname').val("");
  4656. $('#input-birthday').val("");
  4657. $('#input-telephone').val("");
  4658. $('#input-remark').val("");
  4659. $('#input-town').val("");
  4660. $('#input-zipcode').val("");
  4661. $('#input-street').val("");
  4662. $("#addpatient-dialog").dialog("open");
  4663. });
  4664.  
  4665. $("#add-treatmentdate-addpatient-button").click(function() {
  4666. $('#input-prename').val("");
  4667. $('#input-surname').val("");
  4668. $('#input-birthday').val("");
  4669. $('#input-telephone').val("");
  4670. $('#input-remark').val("");
  4671. $('#input-town').val("");
  4672. $('#input-zipcode').val("");
  4673. $('#input-street').val("");
  4674. $("#addpatient-dialog").dialog("open");
  4675. return false;
  4676. });
  4677.  
  4678. $("#removepatient-dialog").dialog({autoOpen: false, draggable: false});
  4679. $("#removestaff-dialog").dialog({autoOpen: false, draggable: false});
  4680. /*$("#removepatient-opener").click(function() {
  4681. $("#removepatient-dialog").dialog("open");
  4682. });*/
  4683.  
  4684. $("#removepatienttreatmentdate-dialog").dialog({autoOpen: false, draggable: false});
  4685. $("#removestaffworkingtime-dialog").dialog({autoOpen: false, draggable: false});
  4686. $("#delete-patient").click(function() {
  4687. //alert(selectedPatient != "");
  4688. if (selectedPatient != "" && !isNaN(selectedPatient)) {
  4689. //alert("selected: " + selectedPatient);
  4690. $("#removepatient-dialog").dialog("open");
  4691. }
  4692. else {
  4693. alert("Es wurde kein Patient selektiert.");
  4694. //alert(selectedPatient);
  4695. }
  4696. return false;
  4697. });
  4698.  
  4699. $("#delete-staff").click(function(){
  4700. if (selectedStaff != "" && !isNaN(selectedStaff)) {
  4701. //alert("selected: " + selectedStaff);
  4702. $("#removestaff-dialog").dialog("open");
  4703. }
  4704. else {
  4705. alert("Es wurde kein Mitarbeiter selektiert.");
  4706. //alert(selectedPatient);
  4707. }
  4708. return false;
  4709. });
  4710.  
  4711. $("#delete-patienttreatmentdate").click(function() {
  4712. //alert(selectedPatient != "");
  4713. if (selectedPatient != "" && !isNaN(selectedPatient) &&
  4714. selectedTreatmentDate != "" && !isNaN(selectedTreatmentDate)) {
  4715. //alert("selected: " + selectedPatient);
  4716. $("#removepatienttreatmentdate-dialog").dialog('option', 'position', 'center');
  4717. $("#removepatienttreatmentdate-dialog").dialog("open");
  4718. return false;
  4719. }
  4720. else {
  4721. alert("Es wurde kein Termin selektiert.");
  4722. //alert(selectedPatient);
  4723. }
  4724. });
  4725.  
  4726. $("#delete-stafftreatmentdate").click(function() {
  4727. //alert(selectedPatient != "");
  4728. if (selectedStaff != "" && !isNaN(selectedStaff) &&
  4729. selectedWorkingTime != "" && !isNaN(selectedWorkingTime)) {
  4730. //alert("selected: " + selectedPatient);
  4731. $("#removestaffworkingtime-dialog").dialog('option', 'position', 'center');
  4732. $("#removestaffworkingtime-dialog").dialog("open");
  4733. return false;
  4734. }
  4735. else {
  4736. alert("Es wurde kein Termin selektiert.");
  4737. //alert(selectedPatient);
  4738. }
  4739. });
  4740.  
  4741. $("#removepatient-button").click(function() {
  4742. removePatient();
  4743. $("#removepatient-dialog").dialog("close");
  4744. return false;
  4745.  
  4746. });
  4747.  
  4748. $("#removestaff-button").click(function() {
  4749. //alert("removeStaff");
  4750. removeStaff();
  4751. $("#removestaff-dialog").dialog("close");
  4752. return false;
  4753.  
  4754. });
  4755.  
  4756.  
  4757. $("#removepatienttreatmentdate-button").click(function() {
  4758.  
  4759. removePatientTreatmentDate();
  4760. // alert("oh nein");
  4761. $("#removepatienttreatmentdate-dialog").dialog("close");
  4762. return false;
  4763. });
  4764.  
  4765. $("#removestaffworkingtime-button").click(function() {
  4766. $("#removestaffworkingtime-dialog").dialog("close");
  4767. removeStaffWorkingTime();
  4768. //removePatientTreatmentDate();
  4769. //alert("Test -> wird noch nicht gelöscht");
  4770.  
  4771. return false;
  4772. });
  4773.  
  4774. $("#add-treatmentdate-dialog").dialog({autoOpen: false, draggable: false});
  4775. $("#add-patient-treatmentdate-opener").click(function() {
  4776. fillSelectPatientsForNewTreatmentdate();
  4777. $("#add-treatmentdate-input-start").val("");
  4778. $("#add-treatmentdate-input-end").val("");
  4779. $("#add-treatmentdate-input-time-begin").val("");
  4780. $("#add-treatmentdate-input-time-end").val("");
  4781. $("#add-treatmentdate-input-description").val("");
  4782.  
  4783. $("#add-treatmentdate-dialog").dialog("open");
  4784. return false;
  4785. });
  4786.  
  4787. $("#add-workingtime-dialog").dialog({autoOpen: false, draggable: false});
  4788. $("#add-workingtime-opener").click(function() {
  4789. fillSelectStaffForNewWorkingtime(selectedStaff);
  4790. $("#add-workingtime-input-start").val("");
  4791. $("#add-workingtime-input-end").val("");
  4792. $("#add-workingtime-input-time-begin").val("");
  4793. $("#add-workingtime-input-time-end").val("");
  4794. $("#add-workingtime-weekinterval-check").attr('checked', false);
  4795. $("#add-workingtime-dialog").dialog("open");
  4796. return false;
  4797. });
  4798.  
  4799.  
  4800. $("#addstaff-dialog").dialog({autoOpen: false, draggable: false});
  4801. $("#addstaff-opener").click(function() {
  4802. $("#addstaff-dialog").dialog("open");
  4803. return false;
  4804. });
  4805.  
  4806. $("#add-staff").click(function() {
  4807. $('#input-staff-prename').val("");
  4808. $('#input-staff-surname').val("");
  4809. $('#input-staff-birthday').val("");
  4810. $('#input-staff-telephone').val("");
  4811. $('#input-staff-remark').val("");
  4812. $("#addstaff-dialog").dialog("open");
  4813. return false;
  4814. });
  4815.  
  4816. $( "#-dialog" ).dialog({autoOpen: false, draggable: false});
  4817. $("#listpatients-dialog").dialog({autoOpen: false, resizable: false, draggable: false, width: 868, height: 680});
  4818. $("#liststaff-dialog").dialog({autoOpen: false, resizable: false, draggable: false, width: 868, height: 680});
  4819.  
  4820. $("#listpatients-opener").click(function() {
  4821. listPatients();
  4822. //updateEditPatientForm(null);
  4823. // TODO
  4824. //alert(getPatient(selectedPatient));
  4825. updateEditPatientForm($.parseJSON(getPatient(selectedPatient)))
  4826. $("#listpatients-dialog").dialog("open");
  4827. return false;
  4828. });
  4829.  
  4830. $("#liststaff-opener").click(function(){
  4831. listStaff();
  4832. updateEditStaffForm($.parseJSON(getStaffById(selectedStaff)));
  4833. $("#liststaff-dialog").dialog("open");
  4834. return false;
  4835. });
  4836. $("#get-patient-pdf-button").click(function(){
  4837. //alert(selectedPatient);
  4838. //window.location.href = 'customertopdf.php?id_patient=' + selectedPatient;
  4839. if(selectedPatient !== ''){
  4840. window.open('customertopdf.php?id_patient=' + hashPatients[selectedPatient-1], '_blank');
  4841. }
  4842. else{
  4843. alert("Es wurde kein Patient selektiert.");
  4844. }
  4845. return false;
  4846. });
  4847.  
  4848. $("#get-staff-pdf-button").click(function(){
  4849. //alert(selectedPatient);
  4850. //window.location.href = 'customertopdf.php?id_patient=' + selectedPatient;
  4851. if (selectedStaff != "" && !isNaN(selectedStaff)){
  4852. window.open('stafftopdf.php?id_staff=' + hashStaffList[selectedStaff-1], '_blank');
  4853. }
  4854. else{
  4855. alert("Es wurde kein Mitarbeiter selektiert.");
  4856. }
  4857. return false;
  4858. });
  4859.  
  4860. $(function() {
  4861.  
  4862. $('#addpatient-opener').button({
  4863. icons: {
  4864. primary: "ui-icon-plusthick"
  4865. },
  4866. text: true
  4867. });
  4868. $('#liststaff-opener').button({
  4869. icons: {
  4870. primary: "ui-icon-person"
  4871. },
  4872. text: true
  4873. });
  4874. $('#listpatients-opener').button({
  4875. icons: {
  4876. primary: "ui-icon-folder-open"
  4877. },
  4878. text: true
  4879. });
  4880. $('#get-patient-pdf-button').button({
  4881. icons: {
  4882. primary: "ui-icon-document"
  4883. },
  4884. text: true
  4885. });
  4886. $('#get-staff-pdf-button').button({
  4887. icons: {
  4888. primary: "ui-icon-document"
  4889. },
  4890. text: true
  4891. });
  4892. $('#add-treatmentdate-addpatient-button').button({
  4893. icons: {
  4894. primary: "ui-icon-plusthick"
  4895. },
  4896. text: false
  4897. });
  4898. $("input[type=submit], a, button")
  4899. .button()
  4900. /*.click(function(event) {
  4901. event.preventDefault();
  4902. })*/;
  4903. $.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
  4904. closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
  4905. prevText: '<zurück', prevStatus: 'letzten Monat zeigen',
  4906. nextText: 'Vor>', nextStatus: 'nächsten Monat zeigen',
  4907. currentText: 'heute', currentStatus: '',
  4908. monthNames: ['Januar','Februar','März','April','Mai','Juni',
  4909. 'Juli','August','September','Oktober','November','Dezember'],
  4910. monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
  4911. 'Jul','Aug','Sep','Okt','Nov','Dez'],
  4912. monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
  4913. weekHeader: 'Wo', weekStatus: 'Woche des Monats',
  4914. dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
  4915. dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
  4916. dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
  4917. dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
  4918. dateFormat: 'dd.mm.yy', firstDay: 1,
  4919. initStatus: 'Wähle ein Datum', isRTL: false};
  4920. $.datepicker.setDefaults( $.datepicker.regional[ "de" ] );
  4921. $( "#add-treatmentdate-input-start" ).datepicker($.datepicker.regional['de']);
  4922. $( "#add-treatmentdate-input-end" ).datepicker();
  4923. $( "#add-workingtime-input-start" ).datepicker($.datepicker.regional['de']);
  4924. $( "#add-workingtime-input-end" ).datepicker();
  4925. $('#add-treatmentdate-input-time-begin').timepicker({ 'timeFormat': 'H:i', 'minTime': '08:00',
  4926. 'maxTime': '22:00', 'step': 15 });
  4927. $('#add-treatmentdate-input-time-end').timepicker({ 'timeFormat': 'H:i', 'minTime': '08:00',
  4928. 'maxTime': '22:00', 'step': 15 });
  4929. $('#add-workingtime-input-time-begin').timepicker({ 'timeFormat': 'H:i', 'minTime': '08:00',
  4930. 'maxTime': '22:00', 'step': 15 });
  4931. $('#add-workingtime-input-time-end').timepicker({ 'timeFormat': 'H:i', 'minTime': '08:00',
  4932. 'maxTime': '22:00', 'step': 15 });
  4933. $("#input-birthday").datepicker();
  4934. $("#patient-birthday").datepicker();
  4935. $("#input-staff-birthday").datepicker();
  4936. $("#edit-patient-birthday").datepicker();
  4937.  
  4938. $("#date-today-input").datepicker(
  4939.  
  4940. );
  4941. $( "#date-today-input" ).change(function() {
  4942. currentDate = $( "#date-today-input" ).datepicker( "getDate" );
  4943. if($("#day-view-check:checked").val()){
  4944. //alert(currentDate + " " + $("#day-view-check:checked").val());
  4945. updateWeekDiv(currentDate, true);
  4946. }
  4947. else{
  4948. updateWeekDiv(currentDate, false);
  4949. }
  4950. });
  4951. });
  4952.  
  4953.  
  4954. $(function() {
  4955. today = new Date();//convertDate(new Date());
  4956. toolbarFilter();
  4957. //alert(today);
  4958. $( "#date-today-input" ).datepicker( "setDate", today );
  4959. updateWeekDiv(today);
  4960.  
  4961. $("#day-view-check" ).button( {
  4962. icons: {
  4963. primary: "ui-icon-calendar"
  4964. },
  4965. text: true
  4966. });
  4967.  
  4968. $( "#day-view-check" ).change(function() {
  4969. currentDate = $( "#date-today-input" ).datepicker( "getDate" );
  4970. if($("#day-view-check:checked").val()){
  4971. //alert(currentDate + " " + $("#day-view-check:checked").val());
  4972. updateWeekDiv(currentDate, true);
  4973. }
  4974. else{
  4975. updateWeekDiv(currentDate, false);
  4976. }
  4977. });
  4978.  
  4979. $("#patient-selectable").selectable({
  4980. stop: function() {
  4981. var result = $("#patient-select-result").empty();
  4982. $(".ui-selected", this).each(function() {
  4983. var index = $("#patient-selectable li").index(this);
  4984. result.append(" #" + (index + 1));
  4985. selectedPatient = index + 1;
  4986. updateEditPatientForm($.parseJSON(getPatient(index + 1)));
  4987. getTreatmentDates(index + 1);
  4988. //updateTreatmentDatesSelect($.parseJSON(getTreatmentDates(index + 1)))
  4989. //mapPatient(index);
  4990. });
  4991. }
  4992. });
  4993.  
  4994. $("#staff-selectable").selectable({
  4995. stop: function() {
  4996. var result = $("#staff-select-result").empty();
  4997. $(".ui-selected", this).each(function() {
  4998. var index = $("#staff-selectable li").index(this);
  4999. result.append(" #" + (index + 1));
  5000. selectedStaff = index + 1;
  5001. updateEditStaffForm($.parseJSON(getStaffById(hashStaffList[index])));
  5002. getWorkingTimes(index + 1);
  5003. //updateTreatmentDatesSelect($.parseJSON(getTreatmentDates(index + 1)))
  5004. //mapPatient(index);
  5005. });
  5006. }
  5007. });
  5008.  
  5009.  
  5010. $( "#-dialog" ).dialog({
  5011. resizable: false,
  5012. height:220,
  5013. modal: true,
  5014. buttons: {
  5015. "Ja, entfernen": function() {
  5016. //alert(selectedPatientTreatmentDateCalendar);
  5017. $( this ).dialog( "close" );
  5018. removePatientTreatmentDate(selectedPatientTreatmentDateCalendar);
  5019. //updateWeekDiv(today);
  5020.  
  5021.  
  5022. },
  5023. "Ja, verschieben": function() {
  5024. //alert(selectedPatientTreatmentDateCalendar);
  5025. $( this ).dialog( "close" );
  5026. shiftPatientTreatmentDate(selectedPatientTreatmentDateCalendar);
  5027. //removePatientTreatmentDate(selectedPatientTreatmentDateCalendar);
  5028. //updateWeekDiv(today);
  5029.  
  5030.  
  5031. },
  5032. Abbrechen: function() {
  5033. $( this ).dialog( "close" );
  5034. }
  5035. }
  5036. });
  5037.  
  5038.  
  5039.  
  5040. $("#patient-treatmentdates-selectable").selectable({
  5041. stop: function() {
  5042. var result = $("#patient-treatmentdates-select-result").empty();
  5043. $(".ui-selected", this).each(function() {
  5044. var index = $("#patient-treatmentdates-selectable li").index(this);
  5045. result.append(" #" + (index + 1));
  5046. selectedTreatmentDate = index + 1;
  5047. //selectedPatient = index + 1;
  5048. //updateEditPatientForm($.parseJSON(getPatient(index + 1)));
  5049. //getTreatmentDates(index + 1);
  5050. //updateTreatmentDatesSelect($.parseJSON(getTreatmentDates(index + 1)))
  5051. //mapPatient(index);
  5052. });
  5053. }
  5054. });
  5055.  
  5056. $("#staff-treatmentdates-selectable").selectable({
  5057. stop: function() {
  5058. var result = $("#staff-treatmentdates-select-result").empty();
  5059. $(".ui-selected", this).each(function() {
  5060. var index = $("#staff-treatmentdates-selectable li").index(this);
  5061. result.append(" #" + (index + 1));
  5062. selectedWorkingTime = index + 1;
  5063. //selectedPatient = index + 1;
  5064. //updateEditPatientForm($.parseJSON(getPatient(index + 1)));
  5065. //getTreatmentDates(index + 1);
  5066. //updateTreatmentDatesSelect($.parseJSON(getTreatmentDates(index + 1)))
  5067. //mapPatient(index);
  5068. });
  5069. }
  5070. });
  5071.  
  5072. });
  5073. $("#next-week-button").click(function(){
  5074. var startDate = new Date(today);
  5075. startDate.setDate(today.getDate() - today.getDay() + 8);
  5076. today = new Date(startDate);
  5077. $( "#date-today-input" ).datepicker( "setDate", startDate);
  5078. updateWeekDiv(startDate);
  5079.  
  5080.  
  5081. });
  5082.  
  5083. $("#prev-week-button").click(function(){
  5084. var startDate = new Date(today);
  5085. startDate.setDate(today.getDate() - today.getDay() - 7);
  5086. today = new Date(startDate);
  5087. $( "#date-today-input" ).datepicker( "setDate", startDate );
  5088. updateWeekDiv(startDate);
  5089.  
  5090.  
  5091. });
  5092.  
  5093. $("#editPatient-submit").click(function() {
  5094.  
  5095. var prename = encodeURI($('#edit-patient-prename').val());
  5096. var surname = encodeURI($('#edit-patient-surname').val());
  5097. var birthday = encodeURI($('#edit-patient-birthday').val());
  5098. var telephone = encodeURI($('#edit-patient-telephone').val());
  5099. var description = encodeURI($('#edit-patient-remark').val());
  5100. var town = encodeURI($('#edit-patient-town').val());
  5101. var zipcode = encodeURI($('#edit-patient-zipcode').val());
  5102. var street = encodeURI($('#edit-patient-street').val());
  5103. if (prename.length < 2) {
  5104. alert("Bitte Vornamen des Patienten angeben.");
  5105. return;
  5106. }
  5107. if (surname.length < 2) {
  5108. alert("Bitte Nachnamen des Patienten angeben.");
  5109. return;
  5110. }
  5111.  
  5112. //alert("test");
  5113. result = ycAjaxCall({
  5114. type: 'POST',
  5115. async: false, // WICHTIG!
  5116. url: 'actions.php',
  5117. data: ({
  5118. action: "update_patient",
  5119. patient: {
  5120. 'id_patient': hashPatients[selectedPatient - 1],
  5121. 'surname': surname,
  5122. 'prename': prename,
  5123. 'birthday': birthday,
  5124. 'telephone': telephone,
  5125. 'description': description,
  5126. 'town': town,
  5127. 'zipcode': zipcode,
  5128. 'street': street
  5129. }
  5130. }),
  5131. success: function(data) {
  5132. alert(data);
  5133. listPatients();
  5134. //alert("close");
  5135. //$("#addpatient-dialog").dialog("close");
  5136. }
  5137. });//.responseText;
  5138. });
  5139.  
  5140. $("#editStaff-submit").click(function() {
  5141.  
  5142. var prename = encodeURI($('#edit-staff-prename').val());
  5143. var surname = encodeURI($('#edit-staff-surname').val());
  5144. var birthday = encodeURI($('#edit-staff-birthday').val());
  5145. var telephone = encodeURI($('#edit-staff-telephone').val());
  5146. var description = encodeURI($('#edit-staff-remark').val());
  5147. var editStaffActive = document.getElementById('edit-staff-active');
  5148.  
  5149. //var active =$('#edit-staff-active').attr("checked");
  5150. var active = editStaffActive.checked;
  5151.  
  5152. if (prename.length < 2) {
  5153. alert("Bitte Vornamen des Mitarbeiters angeben.");
  5154. return;
  5155. }
  5156. if (surname.length < 2) {
  5157. alert("Bitte Nachnamen des Mitarbeiters angeben.");
  5158. return;
  5159. }
  5160. //alert(hashStaffList[selectedStaff - 1]);
  5161. //alert("test");
  5162. result = ycAjaxCall({
  5163. type: 'POST',
  5164. async: false, // WICHTIG!
  5165. url: 'actions.php',
  5166. data: ({
  5167. action: "update_staff",
  5168. staff: {
  5169. 'id_staff': hashStaffList[selectedStaff - 1],
  5170. 'surname': surname,
  5171. 'prename': prename,
  5172. 'birthday': birthday,
  5173. 'telephone': telephone,
  5174. 'description': description,
  5175. 'active': active
  5176. }
  5177. }),
  5178. success: function(data) {
  5179. alert(data);
  5180. listStaff();
  5181. updateWeekDiv(today);
  5182. //alert("close");
  5183. //$("#addpatient-dialog").dialog("close");
  5184. }
  5185. });//.responseText;
  5186. });
  5187.  
  5188.  
  5189.  
  5190.  
  5191. $("#addPatient-submit").click(function() {
  5192. var prename = encodeURI($('#input-prename').val());
  5193. var surname = encodeURI($('#input-surname').val());
  5194. var birthday = encodeURI($('#input-birthday').val());
  5195. var telephone = encodeURI($('#input-telephone').val());
  5196. var description = encodeURI($('#input-remark').val());
  5197. var town = encodeURI($('#input-town').val());
  5198. var zipcode = encodeURI($('#input-zipcode').val());
  5199. var street = encodeURI($('#input-street').val());
  5200. if (prename.length < 2) {
  5201. alert("Bitte Vornamen des Patienten angeben.");
  5202. return;
  5203. }
  5204. if (surname.length < 2) {
  5205. alert("Bitte Nachnamen des Patienten angeben.");
  5206. return;
  5207. }
  5208.  
  5209. //alert("test");
  5210. result = ycAjaxCall({
  5211. type: 'POST',
  5212. async: false, // WICHTIG!
  5213. url: 'actions.php',
  5214. data: ({
  5215. action: "insert_patient",
  5216. patient: {
  5217. 'surname': surname,
  5218. 'prename': prename,
  5219. 'birthday': birthday,
  5220. 'telephone': telephone,
  5221. 'description': description,
  5222. 'town': town,
  5223. 'zipcode': zipcode,
  5224. 'street': street
  5225. }
  5226. }),
  5227. success: function(data) {
  5228. alert(data);
  5229. listPatients();
  5230. //alert("close");
  5231. fillSelectPatientsForNewTreatmentdate();
  5232. $("#addpatient-dialog").dialog("close");
  5233. }
  5234. });//.responseText;
  5235.  
  5236. //alert(result);
  5237. });
  5238.  
  5239. $("#addStaff-submit").click(function() {
  5240. var prename = encodeURI($('#input-staff-prename').val());
  5241. var surname = encodeURI($('#input-staff-surname').val());
  5242. var birthday = encodeURI($('#input-staff-birthday').val());
  5243. var telephone = encodeURI($('#input-staff-telephone').val());
  5244. var description = encodeURI($('#input-staff-remark').val());
  5245. //alert("test");
  5246. result = ycAjaxCall({
  5247. type: 'POST',
  5248. async: false, // WICHTIG!
  5249. url: 'actions.php',
  5250. data: ({
  5251. action: "insert_staff",
  5252. staff: {
  5253. 'surname': surname,
  5254. 'prename': prename,
  5255. 'birthday': birthday,
  5256. 'telephone': telephone,
  5257. 'description': description
  5258. }
  5259. }),
  5260. success: function(data) {
  5261. alert(data);
  5262. $("#addstaff-dialog").dialog("close");
  5263. listStaff();
  5264. updateWeekDiv(today);
  5265.  
  5266. }
  5267. });//.responseText;
  5268.  
  5269. //alert(result);
  5270. });
  5271.  
  5272. $("#add-treatmentdate-submit").click(function() {
  5273. var patientId = encodeURI($('#add-treatmentdate-select-patient').val());
  5274. var staffId = encodeURI($('#add-treatmentdate-select-staff').val());
  5275. var treatmentId = encodeURI($('#add-treatmentdate-select-treatment').val());
  5276. var dateBegin = encodeURI($('#add-treatmentdate-input-start').val());
  5277. var timeBegin = encodeURI($('#add-treatmentdate-input-time-begin').val());
  5278. var timeEnd = encodeURI($('#add-treatmentdate-input-time-end').val());
  5279. var dateEnd = encodeURI($('#add-treatmentdate-input-end').val()); // Optional
  5280. var descriptionText = encodeURI($('#add-treatmentdate-input-description').val()); // Optional
  5281.  
  5282. if(patientId === null || patientId === ''){
  5283. alert("Es wurde kein Patient angegeben.");
  5284. return;
  5285. }
  5286. if(staffId === null || staffId === ''){
  5287. alert("Es wurde kein Betreuer angegeben.");
  5288. return;
  5289. }
  5290. if(treatmentId === null || treatmentId === ''){
  5291. alert("Es wurde keine Behandlung angegeben.");
  5292. return;
  5293. }
  5294. if(dateBegin === null || dateBegin === ''){
  5295. alert("Es wurde kein Einzeltermin (oder Anfangstermin für Dauerbehandlung) angegeben.");
  5296. return;
  5297. }
  5298. if(timeBegin === null || timeBegin === ''){
  5299. alert("Es wurde keine Uhrzeit für den Beginn festgelegt.");
  5300. return;
  5301. }
  5302. if(timeEnd === null || timeEnd === ''){
  5303. alert("Bis wann geht die Behandlung?");
  5304. return;
  5305. }
  5306. //alert(Date.parse('2011-01-26T13:51:50.417') );
  5307. if(dateEnd !== null && dateEnd !==''){
  5308. dateBeginArr = dateBegin.split('.');
  5309. dateEndArr = dateEnd.split('.');
  5310.  
  5311. var dbegin = new Date(dateBeginArr[2],dateBeginArr[1]-1,dateBeginArr[0]);
  5312. var dend = new Date(dateEndArr[2],dateEndArr[1]-1,dateEndArr[0]);
  5313. //alert(dend.getTime() - dbegin.getTime());
  5314. if(dbegin.getTime() > dend.getTime() ){
  5315. alert('Anfangsdatum bitte vor dem Enddatum setzen.');
  5316. return;
  5317. }
  5318. else if( (dend.getTime() - dbegin.getTime()) < 604800000 ){
  5319. alert('Zur Erstellung von Dauerterminen, bitte Enddatum um mind. 7 Tage hinter dem Anfangsdatum setzen.');
  5320. return;
  5321. }
  5322.  
  5323.  
  5324. }
  5325.  
  5326. timeBeginArr = timeBegin.split(':');
  5327. timeEndArr = timeEnd.split(':');
  5328. if(timeBeginArr[0] > timeEndArr[0] ||
  5329. (timeBeginArr[0] == timeEndArr[0] && timeBeginArr[1] >= timeEndArr[1]) ){
  5330. alert("Die Uhrzeit für den Beginn ist >= als die Uhrzeit für das Ende. Bitte korrigieren.");
  5331. return;
  5332. }
  5333.  
  5334. result = ycAjaxCall({
  5335. type: 'POST',
  5336. async: false, // WICHTIG!
  5337. url: 'actions.php',
  5338. data: ({
  5339. action: "insert_patient_treatment",
  5340. id_patient: patientId,
  5341. id_staff: staffId,
  5342. id_treatment: treatmentId,
  5343. treatment_date: dateBegin + " " + timeBegin,
  5344. treatment_time_end: timeEnd,
  5345. treatment_date_end: dateEnd,
  5346. description: descriptionText
  5347. }),
  5348. success: function(data) {
  5349.  
  5350. alert(data);
  5351. //alert("selected:" + selectedPatient);
  5352. //alert("hash:" + hashPatients[selectedPatient-1]);
  5353. //alert(selectedPatient);
  5354. if(selectedPatient !== null && selectedPatient !== ""){
  5355. //alert("getTreat");
  5356. getTreatmentDates(selectedPatient);
  5357. }
  5358. //alert("test");
  5359. //var d = new Date(dateBegin.split('.')[2],dateBegin.split('.')[1]-1, dateBegin.split('.')[0]);
  5360.  
  5361. //alert(d);
  5362. //alert(dateBegin.split('.')[2]+ "," + dateBegin.split('.')[1] + "," + dateBegin.split('.')[0]);
  5363.  
  5364. $("#add-treatmentdate-dialog").dialog("close");
  5365.  
  5366. if(data.includes('gespeichert')){
  5367. //if(window._yc_treatment_to_remove){ yc_removePatientTreatmentById(window._yc_treatment_to_remove); window._yc_treatment_to_remove = false; }
  5368. var d = new Date(dateBegin.split('.')[2],dateBegin.split('.')[1]-1, dateBegin.split('.')[0]);
  5369. updateWeekDiv(d);
  5370. }
  5371. //alert(d);
  5372. //updateWeekDiv(d);
  5373.  
  5374. }
  5375. });//.responseText;
  5376. return false;
  5377. //alert(result);
  5378. });
  5379.  
  5380. $("#add-workingtime-submit").click(function() {
  5381. var staffId = encodeURI($('#add-workingtime-select-staff').val());
  5382. var dateBegin = encodeURI($('#add-workingtime-input-start').val());
  5383. var timeBegin = encodeURI($('#add-workingtime-input-time-begin').val());
  5384. var timeEnd = encodeURI($('#add-workingtime-input-time-end').val());
  5385. var dateEnd = encodeURI($('#add-workingtime-input-end').val()); // Optional
  5386. var matter = encodeURI($('#add-workingtime-select-matter').val());
  5387. var isWeekInterval = encodeURI($("#add-workingtime-weekinterval-check:checked").val());
  5388.  
  5389. if(staffId === null || staffId === ''){
  5390. alert("Es wurde kein Betreuer angegeben.");
  5391. return;
  5392. }
  5393.  
  5394. if(dateBegin === null || dateBegin === ''){
  5395. alert("Es wurde kein Datum für den Beginn angegeben.");
  5396. return;
  5397. }
  5398.  
  5399. if(dateEnd === null || dateEnd === ''){
  5400. alert("Es wurde kein Datum für das Ende angegeben.");
  5401. return;
  5402. }
  5403.  
  5404. if(timeBegin === '' && timeEnd !== ''){
  5405. alert("Es wurde keine Uhrzeit für den Beginn festgelegt.");
  5406. return;
  5407. }
  5408. if(timeEnd === '' && timeBegin !== ''){
  5409. alert("Uhrzeit für das Ende fehlt.");
  5410. return;
  5411. }
  5412. //alert(Date.parse('2011-01-26T13:51:50.417') );
  5413. if(dateEnd !== null && dateEnd !==''){
  5414. dateBeginArr = dateBegin.split('.');
  5415. dateEndArr = dateEnd.split('.');
  5416.  
  5417. var dbegin = new Date(dateBeginArr[2],dateBeginArr[1]-1,dateBeginArr[0]);
  5418. var dend = new Date(dateEndArr[2],dateEndArr[1]-1,dateEndArr[0]);
  5419. //alert(dend.getTime() - dbegin.getTime());
  5420. if(dbegin.getTime() > dend.getTime() ){
  5421. alert('Anfangsdatum bitte vor dem Enddatum setzen.');
  5422. return;
  5423. }
  5424. }
  5425.  
  5426. var resultDateBegin = dateBegin;
  5427. var resultDateEnd = dateEnd;
  5428.  
  5429. if(timeBegin !== null && timeBegin !== '' && timeEnd !== null && timeEnd !== ''){
  5430. timeBeginArr = timeBegin.split(':');
  5431. timeEndArr = timeEnd.split(':');
  5432. if(timeBeginArr[0] > timeEndArr[0] ||
  5433. (timeBeginArr[0] == timeEndArr[0] && timeBeginArr[1] >= timeEndArr[1]) ){
  5434. alert("Die Uhrzeit für den Beginn ist >= als die Uhrzeit für das Ende. Bitte korrigieren.");
  5435. return;
  5436. }
  5437. resultDateBegin += " " + timeBegin;
  5438. resultDateEnd += " " + timeEnd;
  5439. }
  5440.  
  5441.  
  5442. if(isWeekInterval !== 'undefined' && isWeekInterval !== null && (dateEnd === null || dateEnd==='')){
  5443. alert("Um das Intverall zu setzen, muss auch das Enddatum angegeben werden.");
  5444. return;
  5445. }
  5446.  
  5447. if(isWeekInterval !== 'undefined' && isWeekInterval !== null && (timeBegin === null || timeBegin==='' || timeEnd === null || timeEnd==='')){
  5448. alert("Um das Intverall zu setzen, müssen auch Uhrzeiten angegeben werden.");
  5449. return;
  5450. }
  5451.  
  5452. if(isWeekInterval !== 'undefined' && isWeekInterval !== null){
  5453. //alert("yeah");
  5454. //TODO
  5455.  
  5456. var dbegin = new Date(dateBeginArr[2],dateBeginArr[1]-1,dateBeginArr[0]);
  5457. var dend = new Date(dateEndArr[2],dateEndArr[1]-1,dateEndArr[0]);
  5458. while(dbegin.getTime() <= dend.getTime()){
  5459. //alert(dbegin);
  5460. var resultDateBegin = convertTo2LN(dbegin.getDate()) + "." + convertTo2LN(Math.abs(dbegin.getMonth()+1)) + "." + convertTo2LN(dbegin.getFullYear());
  5461. var resultDateEnd = convertTo2LN(dbegin.getDate()) + "." + convertTo2LN(Math.abs(dbegin.getMonth()+1)) + "." + convertTo2LN(dbegin.getFullYear());
  5462. // resultDateBegin = encodeURI(resultDateBegin);
  5463. // resultDateEnd = encodeURI(resultDateEnd);
  5464. if(timeBegin !== null && timeBegin !== '' && timeEnd !== null && timeEnd !== ''){
  5465. //alert(timeBegin + " - " + timeEnd);
  5466. resultDateBegin += " " + timeBegin;
  5467. resultDateEnd += " " + timeEnd;
  5468. //alert(resultDateBegin + " - " + resultDateEnd);
  5469. }
  5470. //alert("'" + resultDateBegin + "' - '" + resultDateEnd + "'");
  5471.  
  5472. var insertData = new Array();
  5473. insertData['staffId'] = staffId;
  5474. insertData['resultDateBegin'] = resultDateBegin;
  5475. insertData['resultDateEnd'] = resultDateEnd;
  5476. insertData['matter'] = matter;
  5477. //insertWorkingTimeQuery(insertData, null);
  5478. result = ycAjaxCall({
  5479. type: 'POST',
  5480. async: false, // WICHTIG!
  5481. url: 'actions.php',
  5482. data: ({
  5483. "action": "insert_working_time",
  5484. "id_staff": insertData['staffId'],
  5485. "beginning_date": insertData['resultDateBegin'],
  5486. "end_date": insertData['resultDateEnd'],
  5487. "matter": insertData['matter']
  5488. }),
  5489. success: function(data) {
  5490. //alert(data);
  5491.  
  5492. }
  5493. });//.responseText;
  5494. dbegin.setDate(dbegin.getDate() + 7);
  5495.  
  5496. }
  5497. getWorkingTimes(selectedStaff)
  5498.  
  5499. $("#add-workingtime-dialog").dialog("close");
  5500. updateWeekDiv(today);
  5501.  
  5502. return;
  5503. //var startDate = new Date(today);
  5504.  
  5505. //startDate.setDate(today.getDate() - today.getDay() + 8);
  5506. }
  5507. else{
  5508. // alert("oh no");
  5509. // return;
  5510. var insertData = new Array();
  5511. insertData['staffId'] = staffId;
  5512. insertData['resultDateBegin'] = resultDateBegin;
  5513. insertData['resultDateEnd'] = resultDateEnd;
  5514. insertData['matter'] = matter;
  5515. insertWorkingTimeQuery(insertData, true);
  5516. }
  5517. return ;
  5518.  
  5519. //alert("Beginn: " + resultDateBegin);
  5520. //alert("Ende: " + resultDateEnd);
  5521. //alert("test");
  5522. result = ycAjaxCall({
  5523. type: 'POST',
  5524. async: false, // WICHTIG!
  5525. url: 'actions.php',
  5526. data: ({
  5527. "action": "insert_working_time",
  5528. "id_staff": staffId,
  5529. "beginning_date": resultDateBegin,
  5530. "end_date": resultDateEnd,
  5531. "matter": matter
  5532. }),
  5533. success: function(data) {
  5534. alert(data);
  5535. //alert("selected:" + selectedPatient);
  5536. //alert("hash:" + hashPatients[selectedPatient-1]);
  5537. //getTreatmentDates(selectedPatient);
  5538.  
  5539. getWorkingTimes(selectedStaff)
  5540.  
  5541. //var d = new Date(dateBegin.split('.')[2],dateBegin.split('.')[1]-1, dateBegin.split('.')[0]);
  5542.  
  5543. //alert(d);
  5544. //alert(dateBegin.split('.')[2]+ "," + dateBegin.split('.')[1] + "," + dateBegin.split('.')[0]);
  5545. $("#add-workingtime-dialog").dialog("close");
  5546. updateWeekDiv(today);
  5547.  
  5548. }
  5549. });//.responseText;
  5550.  
  5551. //alert(result);
  5552. });
  5553.  
  5554. // var currentTime = new Date()
  5555. //var month = currentTime.getMonth() + 1
  5556. //var day = currentTime.getDate()
  5557. //var year = currentTime.getFullYear()
  5558. //document.write(month + "/" + day + "/" + year)
  5559. </script>
  5560. <div class="ycloaderCtl yc_loader_container">
  5561.  
  5562. <div class="ycloader"></div>
  5563. </div>
  5564. <style>
  5565. .yc_loader_container{ position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 999999; background-color: rgba(255,255,255,0.9); display: flex;
  5566. flex-direction: column;
  5567. justify-content: center;
  5568. align-items: center; }
  5569. .ycloader {
  5570. border: 10px solid #ccc;
  5571. border-radius: 50%;
  5572. border-top: 10px solid #333;
  5573. width: 32px;
  5574. height: 32px;
  5575. -webkit-animation: spin 1s linear infinite; /* Safari */
  5576. animation: spin 1s linear infinite;
  5577. }
  5578.  
  5579. /* Safari */
  5580. @-webkit-keyframes spin {
  5581. 0% { -webkit-transform: rotate(0deg); }
  5582. 100% { -webkit-transform: rotate(360deg); }
  5583. }
  5584.  
  5585. @keyframes spin {
  5586. 0% { transform: rotate(0deg); }
  5587. 100% { transform: rotate(360deg); }
  5588. }
  5589. </style>
  5590. </body>
  5591. </html>
  5592. <?php } ?>
  5593.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement