Advertisement
Guest User

Untitled

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