diff --git a/Datenbank/EDB-Apo_dbdata.sql b/Datenbank/EDB-Apo_dbdata.sql
index 9e565f290d558af04551a20d791c4de0a3a67da5..edf8d981306267eea590e7966351bd9597ac877f 100644
--- a/Datenbank/EDB-Apo_dbdata.sql
+++ b/Datenbank/EDB-Apo_dbdata.sql
@@ -1,22 +1,22 @@
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('1', 'Milchstrasse', '14a','Dresden', '01139' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('2', 'Hasenbergstrasse', '8','Dresden', '01139' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('3', 'Königstrasse', '56','Dresden', '01139' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('4', 'Apothekerstrasse', '23','Dresden', '01126' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('5', 'Honigstrasse', '1','Reutlingen', '72764' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('6', 'Hausstrasse', '24','Reutlingen', '72764' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('7', 'Echazstrasse', '65/1','Reutlingen', '54326' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('8', 'Honigstrasse', '5','Reutlingen', '72764' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('9', 'Hausstrasse', '16/1a','Reutlingen', '72764' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('10', 'Neckartalstrasse', '153','Stuttgart', '70376' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('11', 'Friozheimerstrasse', '7','Stuttgart', '70499' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('12', 'Milchstrasse', '14a','Dresden', '01139' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('13', 'Hasenbergstrasse', '8','Dresden', '01139' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('14', 'Königstrasse', '56','Dresden', '01139' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('15', 'Apothekerstrasse', '23','Dresden', '01126' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('16', 'Honigstrasse', '1','Reutlingen', '72764' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('17', 'Hausstrasse', '24','Reutlingen', '72764' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('18', 'Echazstrasse', '65/1','Reutlingen', '54326' );
-INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('19', 'Honigstrasse', '5','Reutlingen', '72764' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('1', 'Milchstr.', '14a','Dresden', '01139' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('2', 'Hasenbergstr.', '8','Dresden', '01139' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('3', 'Königstr.', '56','Dresden', '01139' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('4', 'Apothekerstr.', '23','Dresden', '01126' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('5', 'Honigstr.', '1','Reutlingen', '72764' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('6', 'Hausstr.', '24','Reutlingen', '72764' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('7', 'Echazstr.', '65/1','Reutlingen', '54326' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('8', 'Honigstr.', '5','Reutlingen', '72764' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('9', 'Hausstr.', '16/1a','Reutlingen', '72764' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('10', 'Neckartalstr.', '153','Stuttgart', '70376' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('11', 'Friozheimerstr.', '7','Stuttgart', '70499' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('12', 'Milchstr.', '14a','Dresden', '01139' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('13', 'Hasenbergstr.', '8','Dresden', '01139' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('14', 'Königstr.', '56','Dresden', '01139' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('15', 'Apothekerstr.', '23','Dresden', '01126' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('16', 'Honigstr.', '1','Reutlingen', '72764' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('17', 'Hausstr.', '24','Reutlingen', '72764' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('18', 'Echazstr.', '65/1','Reutlingen', '54326' );
+INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('19', 'Honigstr.', '5','Reutlingen', '72764' );
 
 
 INSERT INTO apotheke(id, name, email, anschrift) values ('1', 'Löwen Apotheke','apo1@outlook.de', '1');
diff --git a/frontend/.eslintcache b/frontend/.eslintcache
index fb3024e88ac77e09344fbe748459adbfab32b7a5..17e1c4c3423205526f840cc225f71c20194ef424 100644
--- a/frontend/.eslintcache
+++ b/frontend/.eslintcache
@@ -1 +1 @@
-[{"D:\\dev\\EDB-Apo\\frontend\\src\\index.js":"1","D:\\dev\\EDB-Apo\\frontend\\src\\App.js":"2","D:\\dev\\EDB-Apo\\frontend\\src\\components\\startseite\\Startseite.js":"3","D:\\dev\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BTMBuch.js":"4","D:\\dev\\EDB-Apo\\frontend\\src\\components\\startseite\\Login.js":"5","D:\\dev\\EDB-Apo\\frontend\\src\\components\\headers\\Header.js":"6","D:\\dev\\EDB-Apo\\frontend\\src\\components\\headers\\StatusHeader.js":"7","D:\\dev\\EDB-Apo\\frontend\\src\\user\\UserDetails.js":"8","D:\\dev\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeuesBtmModal.js":"9","D:\\dev\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BuchungTabelle.js":"10","D:\\dev\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeueBuchungModal.js":"11","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\ApothekeEinstellungen.js":"12","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekenDetails.js":"13","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekeBtmList.js":"14","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\PersonalTabelle.js":"15","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\ArztTabelle.js":"16","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\LieferantTabelle.js":"17","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\BtmTabelle.js":"18","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\PersonalAddModal.js":"19","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\DeleteModal.js":"20","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\PersonalEditModal.js":"21","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\BtmAddModal.js":"22","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\LieferantEditModal.js":"23","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\BtmEditModal.js":"24","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\ArztEditModal.js":"25","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\LieferantAddModal.js":"26","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\ArztAddModal.js":"27","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\ApothekeEditModal.js":"28","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\UserDetailsUpdateModal.js":"29","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\ApothekeRegisterModal.js":"30","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\useForm.js":"31","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\UpdateBuchungModal.js":"32","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\index.js":"33","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\App.js":"34","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\startseite\\Startseite.js":"35","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BTMBuch.js":"36","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\ApothekeEinstellungen.js":"37","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\headers\\Header.js":"38","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\headers\\StatusHeader.js":"39","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\startseite\\Login.js":"40","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\BtmTabelle.js":"41","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\ArztTabelle.js":"42","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\user\\UserDetails.js":"43","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\PersonalTabelle.js":"44","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekenDetails.js":"45","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\LieferantTabelle.js":"46","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekeBtmList.js":"47","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\ApothekeEditModal.js":"48","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\DeleteModal.js":"49","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\BtmEditModal.js":"50","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\BtmAddModal.js":"51","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeuesBtmModal.js":"52","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\UserDetailsUpdateModal.js":"53","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\ApothekeRegisterModal.js":"54","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\ArztAddModal.js":"55","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\PersonalAddModal.js":"56","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\ArztEditModal.js":"57","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\LieferantEditModal.js":"58","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BuchungTabelle.js":"59","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\PersonalEditModal.js":"60","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\LieferantAddModal.js":"61","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\UpdateBuchungModal.js":"62","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\useForm.js":"63","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeueBuchungModal.js":"64"},{"size":280,"mtime":1607716944341,"results":"65","hashOfConfig":"66"},{"size":1001,"mtime":1608144374606,"results":"67","hashOfConfig":"66"},{"size":291,"mtime":1607953306893,"results":"68","hashOfConfig":"66"},{"size":2352,"mtime":1608144374607,"results":"69","hashOfConfig":"66"},{"size":2301,"mtime":1608045184175,"results":"70","hashOfConfig":"66"},{"size":206,"mtime":1607953306892,"results":"71","hashOfConfig":"66"},{"size":542,"mtime":1607953306893,"results":"72","hashOfConfig":"66"},{"size":1647,"mtime":1607969714791,"results":"73","hashOfConfig":"66"},{"size":4879,"mtime":1607953306892,"results":"74","hashOfConfig":"66"},{"size":11064,"mtime":1608210086311,"results":"75","hashOfConfig":"66"},{"size":8074,"mtime":1608144374607,"results":"76","hashOfConfig":"66"},{"size":4915,"mtime":1608032722487,"results":"77","hashOfConfig":"66"},{"size":1695,"mtime":1608045184175,"results":"78","hashOfConfig":"66"},{"size":1876,"mtime":1608045184174,"results":"79","hashOfConfig":"66"},{"size":4203,"mtime":1607961925919,"results":"80","hashOfConfig":"66"},{"size":3969,"mtime":1607961881960,"results":"81","hashOfConfig":"66"},{"size":4253,"mtime":1607961900285,"results":"82","hashOfConfig":"66"},{"size":3950,"mtime":1607961867240,"results":"83","hashOfConfig":"66"},{"size":5146,"mtime":1608027242688,"results":"84","hashOfConfig":"66"},{"size":1120,"mtime":1607953306894,"results":"85","hashOfConfig":"66"},{"size":6405,"mtime":1608027242688,"results":"86","hashOfConfig":"66"},{"size":4523,"mtime":1607962038625,"results":"87","hashOfConfig":"66"},{"size":3548,"mtime":1608027242688,"results":"88","hashOfConfig":"66"},{"size":5656,"mtime":1607962116356,"results":"89","hashOfConfig":"66"},{"size":3517,"mtime":1608027242688,"results":"90","hashOfConfig":"66"},{"size":3218,"mtime":1608027242688,"results":"91","hashOfConfig":"66"},{"size":3180,"mtime":1608027239646,"results":"92","hashOfConfig":"66"},{"size":3085,"mtime":1608027489589,"results":"93","hashOfConfig":"66"},{"size":7659,"mtime":1607969714791,"results":"94","hashOfConfig":"66"},{"size":9314,"mtime":1608144374608,"results":"95","hashOfConfig":"66"},{"size":716,"mtime":1607716944342,"results":"96","hashOfConfig":"66"},{"size":8268,"mtime":1608144374608,"results":"97","hashOfConfig":"66"},{"size":280,"mtime":1605886436525,"results":"98","hashOfConfig":"99"},{"size":1001,"mtime":1608217485892,"results":"100","hashOfConfig":"99"},{"size":291,"mtime":1607964703644,"results":"101","hashOfConfig":"99"},{"size":2352,"mtime":1608217485903,"results":"102","hashOfConfig":"99"},{"size":4915,"mtime":1608217485901,"results":"103","hashOfConfig":"99"},{"size":206,"mtime":1607964703641,"results":"104","hashOfConfig":"99"},{"size":542,"mtime":1607964703642,"results":"105","hashOfConfig":"99"},{"size":2301,"mtime":1608217485913,"results":"106","hashOfConfig":"99"},{"size":3950,"mtime":1607964703633,"results":"107","hashOfConfig":"99"},{"size":3969,"mtime":1607964703632,"results":"108","hashOfConfig":"99"},{"size":1647,"mtime":1607966091033,"results":"109","hashOfConfig":"99"},{"size":4203,"mtime":1607964703635,"results":"110","hashOfConfig":"99"},{"size":1765,"mtime":1608217485899,"results":"111","hashOfConfig":"99"},{"size":4253,"mtime":1607964703634,"results":"112","hashOfConfig":"99"},{"size":1817,"mtime":1608220768923,"results":"113","hashOfConfig":"99"},{"size":3085,"mtime":1608217485916,"results":"114","hashOfConfig":"99"},{"size":1120,"mtime":1607964703649,"results":"115","hashOfConfig":"99"},{"size":5656,"mtime":1607964703649,"results":"116","hashOfConfig":"99"},{"size":4523,"mtime":1607964703648,"results":"117","hashOfConfig":"99"},{"size":4879,"mtime":1607964703640,"results":"118","hashOfConfig":"99"},{"size":7659,"mtime":1607966243330,"results":"119","hashOfConfig":"99"},{"size":9314,"mtime":1608217485918,"results":"120","hashOfConfig":"99"},{"size":3180,"mtime":1608217485920,"results":"121","hashOfConfig":"99"},{"size":5146,"mtime":1608217485930,"results":"122","hashOfConfig":"99"},{"size":3517,"mtime":1608217485923,"results":"123","hashOfConfig":"99"},{"size":3548,"mtime":1608217485928,"results":"124","hashOfConfig":"99"},{"size":10056,"mtime":1608224834868,"results":"125","hashOfConfig":"99"},{"size":6405,"mtime":1608217485933,"results":"126","hashOfConfig":"99"},{"size":3218,"mtime":1608217485925,"results":"127","hashOfConfig":"99"},{"size":8268,"mtime":1608217485935,"results":"128","hashOfConfig":"99"},{"size":716,"mtime":1607363086075,"results":"129","hashOfConfig":"99"},{"size":8074,"mtime":1608217485908,"results":"130","hashOfConfig":"99"},{"filePath":"131","messages":"132","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},"19g8awo",{"filePath":"134","messages":"135","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"136","usedDeprecatedRules":"133"},{"filePath":"137","messages":"138","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"139","messages":"140","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"141","usedDeprecatedRules":"133"},{"filePath":"142","messages":"143","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"144","usedDeprecatedRules":"133"},{"filePath":"145","messages":"146","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"147","messages":"148","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"149","messages":"150","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"151","usedDeprecatedRules":"133"},{"filePath":"152","messages":"153","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"154","messages":"155","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"156","messages":"157","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"158","usedDeprecatedRules":"133"},{"filePath":"159","messages":"160","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"161","usedDeprecatedRules":"133"},{"filePath":"162","messages":"163","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"164","usedDeprecatedRules":"133"},{"filePath":"165","messages":"166","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"167","usedDeprecatedRules":"133"},{"filePath":"168","messages":"169","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"170","usedDeprecatedRules":"133"},{"filePath":"171","messages":"172","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"173","usedDeprecatedRules":"133"},{"filePath":"174","messages":"175","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"176","usedDeprecatedRules":"133"},{"filePath":"177","messages":"178","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"179","usedDeprecatedRules":"133"},{"filePath":"180","messages":"181","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"182","usedDeprecatedRules":"133"},{"filePath":"183","messages":"184","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"185","messages":"186","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"187","messages":"188","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"189","messages":"190","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"191","messages":"192","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"193","usedDeprecatedRules":"133"},{"filePath":"194","messages":"195","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"196","messages":"197","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"198","messages":"199","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"200","messages":"201","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"202","messages":"203","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"204","messages":"205","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"206","usedDeprecatedRules":"133"},{"filePath":"207","messages":"208","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"133"},{"filePath":"209","messages":"210","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"211","usedDeprecatedRules":"133"},{"filePath":"212","messages":"213","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},"ju0hv5",{"filePath":"215","messages":"216","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"136","usedDeprecatedRules":"214"},{"filePath":"217","messages":"218","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"219","messages":"220","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"141","usedDeprecatedRules":"214"},{"filePath":"221","messages":"222","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"161","usedDeprecatedRules":"214"},{"filePath":"223","messages":"224","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"225","messages":"226","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"227","messages":"228","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"144","usedDeprecatedRules":"214"},{"filePath":"229","messages":"230","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"179","usedDeprecatedRules":"214"},{"filePath":"231","messages":"232","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"173","usedDeprecatedRules":"214"},{"filePath":"233","messages":"234","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"151","usedDeprecatedRules":"214"},{"filePath":"235","messages":"236","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"170","usedDeprecatedRules":"214"},{"filePath":"237","messages":"238","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"239","usedDeprecatedRules":"214"},{"filePath":"240","messages":"241","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"176","usedDeprecatedRules":"214"},{"filePath":"242","messages":"243","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"244","messages":"245","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"246","messages":"247","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"248","messages":"249","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"193","usedDeprecatedRules":"214"},{"filePath":"250","messages":"251","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"252","messages":"253","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"254","messages":"255","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"256","messages":"257","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"206","usedDeprecatedRules":"214"},{"filePath":"258","messages":"259","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"260","messages":"261","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"182","usedDeprecatedRules":"214"},{"filePath":"262","messages":"263","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"264","messages":"265","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"266","messages":"267","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"268","messages":"269","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"270","messages":"271","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"272","messages":"273","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"211","usedDeprecatedRules":"214"},{"filePath":"274","messages":"275","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"214"},{"filePath":"276","messages":"277","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"158","usedDeprecatedRules":"214"},"D:\\dev\\EDB-Apo\\frontend\\src\\index.js",[],["278","279"],"D:\\dev\\EDB-Apo\\frontend\\src\\App.js",["280"],"import React from 'react';\r\nimport './App.scss';\r\nimport { BrowserRouter as Router, Switch, Route, Link } from \"react-router-dom\";\r\nimport Startseite from './components/startseite/Startseite';\r\nimport BTMBuch from './components/btmbuch/BTMBuch';\r\nimport ApothekeEinstellungen from './components/apotheke/einstellungen/ApothekeEinstellungen';\r\nimport { SnackbarProvider } from 'notistack';\r\nrequire('dotenv').config()\r\n\r\nfunction App() {\r\n  return (\r\n  <React.Fragment>\r\n    <SnackbarProvider maxSnack={10} anchorOrigin={{vertical:'bottom', horizontal:'center'}}>\r\n      <Router>\r\n        <Switch>\r\n          <Route path=\"/\" exact component={Startseite} />\r\n          <Route path=\"/login\" exact component={Startseite} />\r\n          <Route path=\"/apotheke/:apoId\" exact component={BTMBuch} />\r\n          <Route path=\"/apotheke/:apoId/einstellungen\" exact component={ApothekeEinstellungen} />\r\n        </Switch>\r\n      </Router>\r\n    </SnackbarProvider>\r\n  </React.Fragment>);\r\n}\r\n\r\nexport default App;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\startseite\\Startseite.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BTMBuch.js",["281"],"import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport Header from '../headers/Header'\r\nimport StatusHeader from '../headers/StatusHeader'\r\nimport ApothekenDetails from '../apotheke/ApothekenDetails';\r\nimport UserDetails from '../../user/UserDetails';\r\nimport ApothekeBtmList from '../apotheke/ApothekeBtmList';\r\nimport {Row, Col} from 'react-bootstrap';\r\nimport './BTMBuch.scss'\r\n \r\nfunction BTMBuch (props) {\r\n  const { apoId } = useParams();\r\n\r\n  const [user, setUser] = useState({});\r\n  const [isLoggedIn, setLoggedIn] = useState(false);\r\n  const [aktiveRolle, setAktiveRolle] = useState('');\r\n\r\n  const getUserDetails = async event => {\r\n      const response = await fetch(`http://${process.env.REACT_APP_BACKEND_URL}/benutzer/me`, {\r\n          method: 'GET',\r\n          headers: {\r\n              'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n          }\r\n      }).catch((err) => {\r\n          //SHOW ERROR\r\n          return;\r\n      });\r\n\r\n      if(response.status === 200) {\r\n          let u = await response.json();\r\n          console.log(JSON.stringify(u))\r\n          setUser(u);\r\n          setAktiveRolle(u.rolle);\r\n          setLoggedIn(true);\r\n      }else if(response.status === 403) {\r\n          props.history.push('/forbidden');\r\n      }else if(response.status === 400){\r\n          props.history.push('/badrequest');\r\n      }\r\n  }\r\n\r\n  useEffect(() => {\r\n      getUserDetails();\r\n  }, [])\r\n\r\n  //this obj is passed to each child, each child can add functions to this object and call functions from this object\r\n  let apothekeRefFunctions = {}\r\n  \r\n  return(\r\n      <React.Fragment>\r\n          {aktiveRolle.toLowerCase() !== 'benutzer' ?<StatusHeader aktiveRolle={aktiveRolle}/> : null}\r\n          <Header />\r\n          <Row className=\"details-list\">\r\n              <Col><ApothekenDetails {...props} apothekeRefFunctions={apothekeRefFunctions} apothekeId={apoId}/></Col>\r\n              <Col>{isLoggedIn ? <UserDetails {...props} user={user} setUser={setUser} aktiveRolle={aktiveRolle} setAktiveRolle={setAktiveRolle}/> : null }</Col>\r\n          </Row> \r\n          <ApothekeBtmList apothekeId={apoId} user={user} apothekeRefFunctions={apothekeRefFunctions} {...props} aktiveRolle={aktiveRolle}/>    \r\n      </React.Fragment>\r\n  )\r\n}\r\n\r\nexport default BTMBuch;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\startseite\\Login.js",["282"],"import React, { useState } from 'react';\r\nimport {Row, Col, Button, Form,} from 'react-bootstrap';\r\nimport { useForm } from \"react-hook-form\";\r\nimport ApothekeRegisterModal from '../../modals/ApothekeRegisterModal';\r\nimport './Startseite.scss'\r\n\r\n\r\nfunction Login(props) {\r\n    const [neuesApoRegisterModal, setNeuesApoRegisterModal] = useState(false);\r\n    const {handleSubmit} = useForm();\r\n    const [user, setUser] = useState({username:'', password:''});\r\n    \r\n    const login = async event => {\r\n        const response = await fetch(`http://${process.env.REACT_APP_BACKEND_URL}/login`, {\r\n            method: 'POST',\r\n            headers: {\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({\r\n                username: user.username,\r\n                password: user.password\r\n            })\r\n        }).catch((err) => {\r\n            //SHOW ERROR\r\n            console.log(err);\r\n        });\r\n\r\n\r\n        if(response && response.status === 200){\r\n            const data = await response.json();\r\n            window.sessionStorage.setItem(\"edbapo-jwt\", data.jwt)\r\n            props.history.push(`/apotheke/${data.apothekeId}`);\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div className=\"login\">\r\n            <b style={{fontSize:'20pt'}}>Login:</b>\r\n            <Form onSubmit={handleSubmit(login)} >\r\n                <Form.Row>\r\n                    <Col>\r\n                        <Form.Control onChange={e => setUser({...user, username: e.target.value})} placeholder=\"Benutzername\" />\r\n                        <Form.Control onChange={e => setUser({...user, password: e.target.value})} placeholder=\"Passwort\" />\r\n                        <Button variant=\"primary\" type=\"submit\">Login</Button>    \r\n                        <Button variant=\"primary\"  show={neuesApoRegisterModal} onClick={() => setNeuesApoRegisterModal(true)}>Neue Apotheke registrieren</Button>\r\n                        <ApothekeRegisterModal\r\n                                show={neuesApoRegisterModal}\r\n                                {...props}\r\n                                onHide={() => setNeuesApoRegisterModal(false)} ></ApothekeRegisterModal>\r\n                    </Col>\r\n                </Form.Row>\r\n            </Form>\r\n        </div>\r\n    )\r\n}\r\nexport default Login;","D:\\dev\\EDB-Apo\\frontend\\src\\components\\headers\\Header.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\components\\headers\\StatusHeader.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\user\\UserDetails.js",["283","284","285"],"import React, {useState} from 'react'\r\nimport { Button, Col, Row, Form } from 'react-bootstrap';\r\nimport { Settings } from '@material-ui/icons';\r\nimport UserDetailsUpdateModal from '../modals/UserDetailsUpdateModal';\r\n\r\nfunction UserDetails(props) {\r\n    //eslint disable-next-line\r\n   const {rolle, vorname, name, nutzername, aktiv} = props.user;\r\n   const [showUserSettings, setShowUserSettings] = useState(false);\r\n\r\n   var allRoles = {\r\n       ADMIN : { 0: \"Admin\", 1 : \"Pruefer\", 2: \"Benutzer\"},\r\n       PRUEFER : { 0 : \"Pruefer\", 1: \"Benutzer\"},\r\n       BENUTZER : { 0: \"Benutzer\"}\r\n   }\r\n\r\n   const logout = () => {\r\n       window.sessionStorage.removeItem(\"edbapo-jwt\")\r\n       props.history.push('/');\r\n   }\r\n\r\n   return(\r\n       <Row>\r\n           <UserDetailsUpdateModal {...props} loggedInUser={props.user} show={showUserSettings} onHide={() => setShowUserSettings(false)}/>\r\n\r\n           <Col><b>Nutzername:</b> {nutzername}</Col>\r\n           <Col>\r\n               <Form.Control as=\"select\" onChange={(event) => props.setAktiveRolle(event.target.value.toUpperCase())}>\r\n                   {Object.keys(allRoles[rolle]).map( role => <option key={allRoles[rolle][role]} value={allRoles[rolle][role]}>{allRoles[rolle][role]}</option>)}\r\n               </Form.Control>\r\n           </Col>\r\n           <Col>\r\n                <Button onClick={() => setShowUserSettings(true)}>\r\n                    <Settings />\r\n                    Einstellungen\r\n                </Button>\r\n           </Col>\r\n           <Col>\r\n               <Button onClick={logout}>Logout</Button>\r\n           </Col>\r\n       </Row>\r\n   )\r\n}\r\n\r\nexport default UserDetails;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeuesBtmModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BuchungTabelle.js",["286"],"D:\\dev\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeueBuchungModal.js",["287","288","289"],"import React, { useState, useEffect } from 'react';\r\nimport { Modal, Button, Form, Row, Col } from 'react-bootstrap';\r\nimport { useSnackbar } from 'notistack';\r\n\r\nfunction NeueBuchungModal(props) {\r\n    \r\n    const { enqueueSnackbar } = useSnackbar();\r\n    const [typ, setTyp] = useState('');\r\n    let {lieferanten, aerzte, empfaenger} = props;\r\n\r\n\r\n    const [maxMenge, setMaxMenge] = useState(props.btm.btm.menge);\r\n\r\n    const sendNewBuchungAnfrage = async (buchungData) => {\r\n        const response = await fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${props.apothekeId}/btmbuchung`, {\r\n            method: 'POST',\r\n            headers: {\r\n                'Content-Type': 'application/json',\r\n                'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n            },\r\n            body: JSON.stringify(buchungData)\r\n        }).catch((err) => {\r\n            //SHOW ERROR\r\n            console.log(err);\r\n        });\r\n\r\n\r\n        if (response && response.status === 201) {\r\n            const data = await response.json();\r\n            // console.log(data);\r\n            hideModal();\r\n            enqueueSnackbar('Buchung erfolgreich angelegt', { variant:'success', autoHideDuration: 3000} );\r\n            props.apothekeRefFunctions.updateBtmList();\r\n        } else {\r\n            //SHOW ERROR\r\n            console.log(response);\r\n        }\r\n    }\r\n\r\n    const createNewBuchung = event => {\r\n        event.preventDefault();\r\n        if (typ.toLowerCase() === 'zugang') {\r\n            let { anforderungsschein, btmMenge, lieferant, datum} = event.target;\r\n            let buchungData = {\r\n                benutzer: props.user.id,\r\n                btm: props.btm.btm.id,\r\n                menge: btmMenge.value,\r\n                typ: 'ZUGANG',\r\n                lieferant: lieferant.value,\r\n                anforderungsschein: anforderungsschein.value,\r\n                datum: datum.value,\r\n                pruefdatum: ''\r\n            }\r\n            sendNewBuchungAnfrage(buchungData);\r\n        } else if (typ.toLowerCase() === 'abgang') {\r\n            let { btmMenge, rezept, empfaenger, arzt, datum} = event.target;\r\n            let buchungData = {\r\n                benutzer: props.user.id,\r\n                btm: props.btm.btm.id,\r\n                menge: btmMenge.value,\r\n                typ: 'ABGANG',\r\n                empfaenger: empfaenger.value,\r\n                arzt: arzt.value,\r\n                rezept: rezept.value,\r\n                pruefdatum: '',\r\n                datum: datum.value\r\n            }\r\n            sendNewBuchungAnfrage(buchungData);\r\n        }\r\n    }\r\n\r\n    const hideModal = () => {\r\n        setTyp('');\r\n        props.onHide();\r\n    }\r\n\r\n    useEffect(() => {\r\n        setMaxMenge(props.btm.btm.menge)\r\n    }, []);\r\n\r\n    const renderZugang = () => {\r\n        return (\r\n            <React.Fragment>\r\n                <Form.Group as={Row} controlId=\"anforderungsschein\">\r\n                    <Form.Label column sm=\"2\">\r\n                        Lieferschein\r\n                        </Form.Label>\r\n                    <Col sm=\"10\">\r\n                        <Form.Control name=\"anforderungsschein\" type=\"text\" required />\r\n                    </Col>\r\n                </Form.Group>\r\n                <Form.Group as={Row} controlId=\"lieferant\">\r\n                    <Form.Label column sm=\"2\">\r\n                        Lieferant\r\n                        </Form.Label>\r\n                    <Col sm=\"10\">\r\n                        <Form.Control name=\"lieferant\" required as=\"select\">\r\n                            {lieferanten.map(l => <option key={l.id} value={l.id}>{l.name}</option>)}\r\n                        </Form.Control>\r\n                    </Col>\r\n                </Form.Group>\r\n            </React.Fragment>)\r\n    }\r\n\r\n    const renderAbgang = () => {\r\n        return (\r\n            <React.Fragment>\r\n                <Form.Group as={Row} controlId=\"empfaenger\">\r\n                    <Form.Label column sm=\"2\">\r\n                        Empfaenger\r\n                </Form.Label>\r\n                    <Col sm=\"10\">\r\n                        <Form.Control name=\"empfaenger\" required as=\"select\">\r\n                            {empfaenger.map(e => <option key={e.id} value={e.id}>{e.name}</option>)}\r\n                        </Form.Control>\r\n                    </Col>\r\n                </Form.Group>\r\n                <Form.Group as={Row} controlId=\"arzt\">\r\n                    <Form.Label column sm=\"2\">\r\n                        Arzt\r\n                </Form.Label>\r\n                    <Col sm=\"10\">\r\n                        <Form.Control name=\"arzt\" required as=\"select\">\r\n                            {aerzte.map(a => <option key={a.id} value={a.id}>{a.name}</option>)}\r\n                        </Form.Control>\r\n                    </Col>\r\n                </Form.Group>\r\n                <Form.Group as={Row} controlId=\"rezept\">\r\n                    <Form.Label column sm=\"2\">\r\n                        Rezept\r\n                        </Form.Label>\r\n                    <Col sm=\"10\">\r\n                        <Form.Control name=\"rezept\" type=\"text\" required />\r\n                    </Col>\r\n                </Form.Group>\r\n            </React.Fragment>)\r\n    }\r\n\r\n    return (\r\n        <Modal\r\n            {...props}\r\n            size=\"lg\"\r\n            aria-labelledby=\"contained-modal-title-vcenter\"\r\n            centered\r\n            onExiting={hideModal}\r\n        >\r\n            <Modal.Header closeButton>\r\n                <Modal.Title id=\"contained-modal-title-vcenter\">\r\n                    Betäubungsmittel-Buchung hinzufügen\r\n                 </Modal.Title>\r\n            </Modal.Header>\r\n            <Form onSubmit={createNewBuchung}>\r\n                <Modal.Body>\r\n                    <Form.Group as={Row} controlId=\"Typ\">\r\n                        <Col sm={{ span: 10, offset: 2 }}>\r\n                            <Row sm={6}>\r\n                                <Form.Check required\r\n                                    type=\"radio\"\r\n                                    label=\"Zugang\"\r\n                                    name=\"TypRadio\"\r\n                                    id=\"ZugangRadio\"\r\n                                    onClick={() => {setTyp('zugang'); setMaxMenge(9999)}}\r\n                                />\r\n                                <Form.Check required\r\n                                    type=\"radio\"\r\n                                    label=\"Abgang\"\r\n                                    name=\"TypRadio\"\r\n                                    id=\"AbgangRadio\"\r\n                                    onClick={() => setTyp('abgang')}\r\n                                />\r\n                            </Row>\r\n                        </Col>\r\n                    </Form.Group>\r\n\r\n                    <Form.Group as={Row} controlId=\"btmMenge\">\r\n                        <Form.Label column sm=\"2\">\r\n                            Menge\r\n                        </Form.Label>\r\n                        <Col sm=\"10\">\r\n                            <Form.Control name=\"btmMenge\" type=\"number\" min=\"1\" defaultValue=\"0\" />\r\n                        </Col>\r\n                    </Form.Group>\r\n                    <Form.Group as={Row} controlId=\"datum\">\r\n                        <Form.Label column sm=\"2\">\r\n                            Datum\r\n                        </Form.Label>\r\n                        <Col sm=\"10\">\r\n                            <Form.Control name=\"datum\" type=\"date\" defaultValue={new Date()} />\r\n                        </Col>\r\n                    </Form.Group>               \r\n\r\n                    {typ.toLowerCase() === 'zugang' ? renderZugang() : null}\r\n                    {typ.toLowerCase() === 'abgang' ? renderAbgang() : null}\r\n\r\n                </Modal.Body>\r\n                <Modal.Footer>\r\n                    <Button variant=\"danger\" onClick={hideModal}>Close</Button>\r\n                    <Button variant=\"primary\" type=\"submit\">Bestätigen</Button>\r\n                </Modal.Footer>\r\n            </Form>\r\n\r\n\r\n\r\n        </Modal>\r\n    )\r\n}\r\n\r\nexport default NeueBuchungModal;\r\n\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\ApothekeEinstellungen.js",["290"],"import React, { useState, Fragment, useEffect } from 'react';\r\nimport { ListGroup, Button, Row, Col } from 'react-bootstrap';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport Header from '../../headers/Header';\r\nimport StatusHeader from '../../headers/StatusHeader';\r\nimport UserDetails from '../../../user/UserDetails';\r\nimport ArztTabelle from './tabellen/ArztTabelle';\r\nimport BtmTabelle from './tabellen/BtmTabelle';\r\nimport LieferantTabelle from './tabellen/LieferantTabelle';\r\nimport PersonalTabelle from './tabellen/PersonalTabelle';\r\nimport ApothekeEditModal from '../../../modals/ApothekeEditModal';\r\n\r\nimport './ApothekeEinstellungen.scss'\r\n\r\nfunction ApothekeEinstellungen(props) {\r\n  const { apoId } = useParams()\r\n\r\n  const [apotheke, setApotheke] = useState({ anschrift: {} })\r\n  const [activeMenuItem, setActiveMenuItem] = useState('personal');\r\n  const [loggedIn, setLoggedIn] = useState(false);\r\n  const [aktiveRolle, setAktiveRolle] = useState('');\r\n  const [user, setUser] = useState({});\r\n  const [showApothekeEditModal, setShowApothekeEditModal] = useState(false);\r\n\r\n\r\n  const getCurrentApotheke = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}`, {\r\n      method: 'GET',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\")\r\n      }\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        return res.json()\r\n      } else if (res.status === 403) {\r\n        props.history.push('forbidden');\r\n      } else if (res.status === 400) {\r\n        props.history.push('badrequest');\r\n      }\r\n    }).then((data) => setApotheke(data))\r\n      .catch((err) => {\r\n        //SHOW ERROR\r\n        return;\r\n      })\r\n  }\r\n\r\n  const getUserData = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/benutzer/me`, {\r\n      method: 'GET',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      }\r\n    })\r\n      .then((res) => {\r\n        if (res.status === 200) {\r\n          return res.json()\r\n        } else if (res.status === 403) {\r\n          props.history.push('forbidden');\r\n        } else if (res.status === 400) {\r\n          props.history.push('badrequest');\r\n        }\r\n      }).then((data) => {\r\n        setUser(data);\r\n        setAktiveRolle(data.rolle)\r\n        setLoggedIn(true)\r\n      }).catch((err) => {\r\n        //SHOW ERROR\r\n        return;\r\n      });\r\n  }\r\n\r\n\r\n  const renderContent = () => {\r\n    if (activeMenuItem === 'personal') {\r\n      return <PersonalTabelle {...props} />;\r\n    } else if (activeMenuItem === 'btm') {\r\n      return <BtmTabelle {...props} />;\r\n    } else if (activeMenuItem === 'aerzte') {\r\n      return <ArztTabelle {...props} />\r\n    } else if (activeMenuItem === 'lieferanten') {\r\n      return <LieferantTabelle {...props} />\r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    getUserData();\r\n    getCurrentApotheke();\r\n  }, []);\r\n\r\n  return (\r\n    <Fragment>\r\n      <ApothekeEditModal {...props} show={showApothekeEditModal} onHide={() => setShowApothekeEditModal(false)} apotheke={apotheke} updateApothekeData={getCurrentApotheke} />\r\n      <StatusHeader aktiveRolle={aktiveRolle} />\r\n      <Header />\r\n      <Row className=\"details-list\">\r\n        <Col md={{ span: 6, offset: 6 }}>\r\n          {loggedIn ? <UserDetails {...props} user={user} setUser={setUser} aktiveRolle={aktiveRolle} setAktiveRolle={setAktiveRolle} /> : null}\r\n        </Col>\r\n      </Row>\r\n      <div className=\"main-content\">\r\n        <Row>\r\n          <Col sm={4}>\r\n            <ul>\r\n              <li>Name: {apotheke.name}</li>\r\n              <li>E-Mail: {apotheke.email}</li>\r\n              <li>Anschrift: {apotheke.anschrift.strasse} {apotheke.anschrift.nummer}  ({apotheke.anschrift.plz} {apotheke.anschrift.ort})</li>\r\n            </ul>\r\n            <Button onClick={() => setShowApothekeEditModal(true)}>Angaben bearbeiten</Button>\r\n          </Col>\r\n        </Row>\r\n        <Row style={{ marginTop: '3em' }}>\r\n          <Col sm={3}>\r\n            <ListGroup as=\"ul\" className=\"menu-list\">\r\n              <ListGroup.Item as=\"li\" onClick={() => setActiveMenuItem('personal')} active={activeMenuItem === 'personal'}>Pharmazeutisches Personal</ListGroup.Item>\r\n              <ListGroup.Item as=\"li\" onClick={() => setActiveMenuItem('btm')} active={activeMenuItem === 'btm'}>Betäubungsmittel</ListGroup.Item>\r\n              <ListGroup.Item as=\"li\" onClick={() => setActiveMenuItem('aerzte')} active={activeMenuItem === 'aerzte'}>Ärzte</ListGroup.Item>\r\n              <ListGroup.Item as=\"li\" onClick={() => setActiveMenuItem('lieferanten')} active={activeMenuItem === 'lieferanten'}>Lieferanten</ListGroup.Item>\r\n            </ListGroup>\r\n          </Col>\r\n          <Col sm={8}>\r\n            {user ? renderContent() : null}\r\n          </Col>\r\n        </Row>\r\n      </div>\r\n\r\n\r\n    </Fragment>\r\n  )\r\n}\r\n\r\nexport default ApothekeEinstellungen;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekenDetails.js",["291","292"],"import React, { useEffect, useState } from \"react\";\r\nimport { useParams } from 'react-router-dom';\r\nimport { Button } from \"react-bootstrap\";\r\nimport NeuesBtmModal from \"../btmbuch/NeuesBtmModal\";\r\nimport \"../../App.scss\";\r\n\r\nfunction ApothekenDetails(props) {\r\n  const [apotheke, setApotheke] = useState({ anschrift: {} });\r\n  const [neuesBtmModalShow, setneuesBtmModalShow] = useState(false);\r\n\r\n  const getApothekeData = async () => {\r\n    const response = await fetch(\r\n      `http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${props.match.params.apoId}`,\r\n      {\r\n        method: \"GET\",\r\n        headers: {\r\n          Authorization:\r\n            \"Bearer \" + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n        },\r\n      }\r\n    ).catch((err) => {\r\n      //SHOW ERROR\r\n      return;\r\n    });\r\n\r\n    if (response.status === 200) {\r\n      setApotheke(await response.json());\r\n    } else if (response.status === 403) {\r\n      props.history.push(\"/forbidden\");\r\n    } else if (response.status === 400) {\r\n      props.history.push(\"/badrequest\");\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    getApothekeData();\r\n  }, []);\r\n\r\n  return (\r\n    <div className=\"apo-details\">\r\n      <ul>\r\n        <li>Name: {apotheke.name}</li>\r\n        <li>E-Mail: {apotheke.email}</li>\r\n      </ul>\r\n      <Button >Apotheke Einstellungen</Button>\r\n      <Button\r\n        onClick={() => setneuesBtmModalShow(true)}\r\n        style={{ marginLeft: \"1em\" }}\r\n      >\r\n        Neues Betäubungsmittel anlegen\r\n      </Button>\r\n      <NeuesBtmModal\r\n        show={neuesBtmModalShow}\r\n        {...props}\r\n        onHide={() => setneuesBtmModalShow(false)}\r\n      />\r\n    </div>\r\n  );\r\n}\r\nexport default ApothekenDetails;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekeBtmList.js",["293","294"],"import React, { useState, useEffect } from \"react\";\r\nimport { useParams } from 'react-router-dom';\r\nimport BuchungTabelle from \"../btmbuch/BuchungTabelle\";\r\n\r\nfunction ApothekeBtmList(props) {\r\n\r\n  const { apoId } = useParams();\r\n  const [btms, setBtms] = useState([]);\r\n  const [input, setInput] = useState(\"\");\r\n\r\n  const getBtms = async () => {\r\n    const response = await fetch(\r\n      `http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btmbuchung`,\r\n      {\r\n        method: \"GET\",\r\n        headers: {\r\n          Authorization:\r\n            \"Bearer \" + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n        },\r\n      }\r\n    ).catch((err) => {\r\n      //SHOW ERROR\r\n      return;\r\n    });\r\n\r\n    if (response.status === 200) {\r\n      setBtms(await response.json());\r\n    } else if (response.status === 403) {\r\n      props.history.push(\"/forbidden\");\r\n    } else if (response.status === 400) {\r\n      props.history.push(\"/badrequest\");\r\n    }\r\n  };\r\n\r\n  //wird aufgerufen von NeuesBtmModal wenn ein neues BTM hinzugefügt wurde\r\n  props.apothekeRefFunctions.updateBtmList = getBtms;\r\n\r\n  useEffect(() => {\r\n    getBtms();\r\n  }, []);\r\n\r\n  return (\r\n    <div className=\"btm-buchung-wrapper\">\r\n      <input\r\n        id=\"searchBtmField\"\r\n        type=\"text\"\r\n        placeholder=\"Betäubungsmittel suchen\"\r\n        onChange={(event) => {\r\n          setInput(event.target.value);\r\n        }}\r\n        value={input}\r\n      />\r\n      {btms\r\n        .filter((val) => {\r\n          if (input === \"\") {\r\n            console.log(\"namen der Liste\", val.btm.name);\r\n            return val;\r\n          } else if (val.btm.name.toLowerCase().includes(input.toLowerCase())){\r\n              return val;\r\n          }\r\n        })\r\n        .map((btm, key) => (\r\n          <BuchungTabelle {...props} btm={btm} />\r\n        ))}\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default ApothekeBtmList;\r\n\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\PersonalTabelle.js",["295"],"import React, { Fragment, useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { AddBox, Edit, DeleteForever } from '@material-ui/icons';\r\nimport { Table, Button } from 'react-bootstrap';\r\n\r\nimport PersonalAddModal from '../../../../modals/PersonalAddModal';\r\nimport PersonalEditModal from '../../../../modals/PersonalEditModal';\r\nimport DeleteModal from '../../../../modals/DeleteModal';\r\nimport { useSnackbar } from 'notistack';\r\n\r\nfunction PersonalTabelle(props) {\r\n  const { apoId } = useParams();\r\n  const [personal, setPersonal] = useState([]);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [selectedUser, setSelectedUser] = useState(null);\r\n  const [showPersonalAddModal, setShowPersonalAddModal] = useState(false);\r\n  const [showPersonalEditModal, setShowPersonalEditModal] = useState(false);\r\n  const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n\r\n\r\n\r\n  const getPersonalData = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer`, {\r\n      method: 'GET',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      }\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        return res.json()\r\n      } else if (res.status === 403) {\r\n        props.history.push('forbidden');\r\n      } else if (res.status === 400) {\r\n        props.history.push('badrequest');\r\n      }\r\n    }).then((data) => setPersonal(data)).catch((err) => {\r\n      //SHOW ERROR\r\n      return;\r\n    });\r\n  }\r\n\r\n  const deleteUser = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer/${selectedUser.id}`, {\r\n      method: 'DELETE',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      },\r\n    }).then((res) => {\r\n      if (res && res.status === 200) {\r\n        getPersonalData();\r\n        enqueueSnackbar('Benutzer erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 });\r\n      } else {\r\n        //SHOW ERROR\r\n        console.log(res);\r\n      }\r\n    }).catch((err) => {\r\n      //SHOW ERROR\r\n      console.log(err);\r\n    });\r\n  }\r\n\r\n  const del = user => {\r\n    setSelectedUser(user);\r\n    setShowDeleteModal(true);\r\n  }\r\n  const edit = user => {\r\n    setSelectedUser(user);\r\n    setShowPersonalEditModal(true);\r\n  }\r\n\r\n  useEffect(() => {\r\n    getPersonalData()\r\n  }, [])\r\n\r\n  return (\r\n    <Fragment>\r\n      <PersonalAddModal {...props} show={showPersonalAddModal} onHide={() => setShowPersonalAddModal(false)} updatePersonalData={getPersonalData}/>\r\n      {selectedUser ? <PersonalEditModal {...props} user={selectedUser} show={showPersonalEditModal} onHide={() => setShowPersonalEditModal(false)} updatePersonalData={getPersonalData}/> : null}\r\n      <DeleteModal {...props} headertext={'Benutzer löschen'}\r\n        maintext={'Möchtest du diesen Benutzer wirklich löschen?'} onSubmit={deleteUser} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'}\r\n        show={showDeleteModal} onHide={() => setShowDeleteModal(false)} />\r\n      <Table striped bordered hover>\r\n        <thead>\r\n          <tr>\r\n            <th>Nutzername</th>\r\n            <th>Nachname</th>\r\n            <th>Vorname</th>\r\n            <th>Aktiv</th>\r\n            <th>Rolle</th>\r\n            <th style={{ textAlign: 'center', verticalAlign: 'middle' }}>\r\n              <Button onClick={() => setShowPersonalAddModal(true)} >Hinzufügen <AddBox /></Button>\r\n            </th>\r\n          </tr>\r\n        </thead>\r\n        <tbody>\r\n          {personal.map(user =>\r\n            <tr key={user.id}>\r\n              <td>{user.nutzername}</td>\r\n              <td>{user.name}</td>\r\n              <td>{user.vorname}</td>\r\n              <td>{user.aktiv ? 'ja' : 'nein'}</td>\r\n              <td>{user.rolle}</td>\r\n              <td style={{ textAlign: 'center', verticalAlign: 'middle' }}>\r\n                <Button onClick={() => edit(user)}><Edit /></Button>\r\n                <Button onClick={() => del(user)}><DeleteForever /></Button>\r\n              </td>\r\n            </tr>\r\n          )}\r\n        </tbody>\r\n      </Table>\r\n    </Fragment>\r\n  )\r\n}\r\n\r\nexport default PersonalTabelle;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\ArztTabelle.js",["296"],"import React, { Fragment, useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { AddBox, Edit, DeleteForever } from '@material-ui/icons';\r\nimport { Table, Button } from 'react-bootstrap';\r\nimport { useSnackbar } from 'notistack';\r\n\r\nimport ArztAddModal from '../../../../modals/ArztAddModal';\r\nimport ArztEditModal from '../../../../modals/ArztEditModal';\r\nimport DeleteModal from '../../../../modals/DeleteModal';\r\n\r\nfunction ArztTabelle(props) {\r\n  const { apoId } = useParams();\r\n  const [aerzte, setAerzte] = useState([]);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [selectedArzt, setSelectedArzt] = useState(null);\r\n  const [showArztAddModal, setShowArztAddModal] = useState(false);\r\n  const [showArztEditModal, setShowArztEditModal] = useState(false);\r\n  const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n\r\n  const getArztData = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/arzt`, {\r\n      method: 'GET',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      }\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        return res.json()\r\n      } else if (res.status === 403) {\r\n        props.history.push('forbidden');\r\n      } else if (res.status === 400) {\r\n        props.history.push('badrequest');\r\n      }\r\n    }).then((data) => setAerzte(data)).catch((err) => {\r\n      //SHOW ERROR\r\n      return;\r\n    });\r\n  }\r\n\r\n  const deleteArzt = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/arzt/${selectedArzt.id}`, {\r\n      method: 'DELETE',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      },\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        getArztData()\r\n        enqueueSnackbar('Arzt erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 });\r\n      } else {\r\n        //SHOW ERROR\r\n        console.log(res);\r\n      }\r\n    }).catch((err) => {\r\n      //SHOW ERROR\r\n      console.log(err);\r\n    });\r\n  }\r\n\r\n  const edit = arzt => {\r\n    setSelectedArzt(arzt);\r\n    setShowArztEditModal(true);\r\n  }\r\n\r\n  const del = arzt => {\r\n    setSelectedArzt(arzt);\r\n    setShowDeleteModal(true);\r\n  }\r\n\r\n  useEffect(() => {\r\n    getArztData();\r\n  }, [])\r\n\r\n  return (\r\n    <Fragment>\r\n      <ArztAddModal {...props} show={showArztAddModal} onHide={() => setShowArztAddModal(false)} updateArztData={getArztData} />\r\n      {selectedArzt ? <ArztEditModal {...props} arzt={selectedArzt} show={showArztEditModal} onHide={() => setShowArztEditModal(false)} updateArztData={getArztData} /> : null}\r\n      <DeleteModal {...props} headertext={'Arzt löschen'}\r\n        maintext={'Möchtest du diesen Arzt wirklich löschen?'} onSubmit={deleteArzt} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'}\r\n        show={showDeleteModal} onHide={() => setShowDeleteModal(false)} />\r\n      <Table striped bordered hover>\r\n        <thead>\r\n          <tr>\r\n            <th>Name</th>\r\n            <th>Strasse</th>\r\n            <th>Ort</th>\r\n            <th style={{ textAlign: 'center', verticalAlign: 'middle' }}>\r\n              <Button onClick={() => setShowArztAddModal(true)} >Hinzufügen <AddBox /></Button>\r\n            </th>\r\n          </tr>\r\n        </thead>\r\n        <tbody>\r\n          {aerzte.map(arzt =>\r\n            <tr key={arzt.id}>\r\n              <td>{arzt.name}</td>\r\n              <td>{arzt.anschrift.strasse} {arzt.anschrift.nummer}</td>\r\n              <td>{arzt.anschrift.plz} {arzt.anschrift.ort}</td>\r\n              <td style={{ textAlign: 'center', verticalAlign: 'middle' }}>\r\n                <Button onClick={() => edit(arzt)}><Edit /></Button>\r\n                <Button onClick={() => del(arzt)}><DeleteForever /></Button>\r\n              </td>\r\n            </tr>\r\n          )}\r\n        </tbody>\r\n      </Table>\r\n    </Fragment>\r\n  )\r\n}\r\n\r\nexport default ArztTabelle;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\LieferantTabelle.js",["297"],"import React, { Fragment, useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { AddBox, Edit, DeleteForever } from '@material-ui/icons';\r\nimport { Table, Button } from 'react-bootstrap';\r\nimport { useSnackbar } from 'notistack';\r\n\r\nimport LieferantAddModal from '../../../../modals/LieferantAddModal';\r\nimport LieferantEditModal from '../../../../modals/LieferantEditModal';\r\nimport DeleteModal from '../../../../modals/DeleteModal';\r\n\r\nfunction LieferantTabelle(props) {\r\n  const { apoId } = useParams();\r\n  const [lieferanten, setLieferanten] = useState([]);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [selectedLieferant, setSelectedLieferant] = useState(null);\r\n  const [showLieferantAddModal, setShowLieferantAddModal] = useState(false);\r\n  const [showLieferantEditModal, setShowLieferantEditModal] = useState(false);\r\n  const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n\r\n  const getLieferantData = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/lieferant`, {\r\n      method: 'GET',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      }\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        return res.json()\r\n      } else if (res.status === 403) {\r\n        props.history.push('forbidden');\r\n      } else if (res.status === 400) {\r\n        props.history.push('badrequest');\r\n      }\r\n    }).then((data) => setLieferanten(data)).catch((err) => {\r\n      //SHOW ERROR\r\n      return;\r\n    });\r\n  }\r\n\r\n  const deleteLieferant = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/lieferant/${selectedLieferant.id}`, {\r\n      method: 'DELETE',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      },\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        getLieferantData()\r\n        enqueueSnackbar('Lieferant erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 });\r\n      } else {\r\n        //SHOW ERROR\r\n        console.log(res);\r\n      }\r\n    }).catch((err) => {\r\n      //SHOW ERROR\r\n      console.log(err);\r\n    });\r\n  }\r\n\r\n  const edit = lieferant => {\r\n    setSelectedLieferant(lieferant);\r\n    setShowLieferantEditModal(true);\r\n  }\r\n\r\n  const del = lieferant => {\r\n    setSelectedLieferant(lieferant);\r\n    setShowDeleteModal(true);\r\n  }\r\n\r\n  useEffect(() => {\r\n    getLieferantData()\r\n  }, [])\r\n\r\n  return (\r\n    <Fragment>\r\n      <LieferantAddModal {...props} show={showLieferantAddModal} onHide={() => setShowLieferantAddModal(false)} updateLieferantData={getLieferantData} />\r\n      {selectedLieferant ? <LieferantEditModal {...props} lieferant={selectedLieferant} show={showLieferantEditModal} onHide={() => setShowLieferantEditModal(false)} updateLieferantData={getLieferantData} /> : null}\r\n      <DeleteModal {...props} headertext={'Lieferant löschen'}\r\n        maintext={'Möchtest du diesen Lieferant wirklich löschen?'} onSubmit={deleteLieferant} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'}\r\n        show={showDeleteModal} onHide={() => setShowDeleteModal(false)} />\r\n      <Table striped bordered hover>\r\n        <thead>\r\n          <tr>\r\n            <th>Name</th>\r\n            <th>Strasse</th>\r\n            <th>Ort</th>\r\n            <th style={{ textAlign: 'center', verticalAlign: 'middle' }}>\r\n              <Button onClick={() => setShowLieferantAddModal(true)} >Hinzufügen <AddBox /></Button>\r\n            </th>\r\n          </tr>\r\n        </thead>\r\n        <tbody>\r\n          {lieferanten.map(lieferant =>\r\n            <tr key={lieferant.id}>\r\n              <td>{lieferant.name}</td>\r\n              <td>{lieferant.anschrift.strasse} {lieferant.anschrift.nummer}</td>\r\n              <td>{lieferant.anschrift.plz} {lieferant.anschrift.ort}</td>\r\n              <td style={{ textAlign: 'center', verticalAlign: 'middle' }}>\r\n                <Button onClick={() => edit(lieferant)}><Edit /></Button>\r\n                <Button onClick={() => del(lieferant)}><DeleteForever /></Button>\r\n              </td>\r\n            </tr>\r\n          )}\r\n        </tbody>\r\n      </Table>\r\n    </Fragment>\r\n  )\r\n}\r\n\r\nexport default LieferantTabelle;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\BtmTabelle.js",["298"],"import React, { Fragment, useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { AddBox, Edit, DeleteForever } from '@material-ui/icons';\r\nimport { Table, Button } from 'react-bootstrap';\r\nimport { useSnackbar } from 'notistack';\r\n\r\nimport BtmAddModal from '../../../../modals/BtmAddModal';\r\nimport BtmEditModal from '../../../../modals/BtmEditModal';\r\nimport DeleteModal from '../../../../modals/DeleteModal';\r\n\r\nfunction BtmTabelle(props) {\r\n  const { apoId } = useParams();\r\n  const [btmListe, setBtmListe] = useState([]);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [selectedBtm, setSelectedBtm] = useState(null);\r\n  const [showBtmAddModal, setShowBtmAddModal] = useState(false);\r\n  const [showBtmEditModal, setShowBtmEditModal] = useState(false);\r\n  const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n\r\n  const getBtmData = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btm`, {\r\n      method: 'GET',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      }\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        return res.json()\r\n      } else if (res.status === 403) {\r\n        props.history.push('forbidden');\r\n      } else if (res.status === 400) {\r\n        props.history.push('badrequest');\r\n      }\r\n    }).then((data) => setBtmListe(data)).catch((err) => {\r\n      //SHOW ERROR\r\n      return;\r\n    });\r\n  }\r\n\r\n  const deleteBtm = () => {\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btm/${selectedBtm.id}`, {\r\n      method: 'DELETE',\r\n      headers: {\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      },\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        getBtmData()\r\n        enqueueSnackbar('Btm erfolgreich gelöscht', { variant: 'success', autoHideDuration: 3000 });\r\n      } else {\r\n        //SHOW ERROR\r\n        console.log(res);\r\n      }\r\n    }).catch((err) => {\r\n      //SHOW ERROR\r\n      console.log(err);\r\n    });\r\n  }\r\n\r\n  const edit = btm => {\r\n    setSelectedBtm(btm);\r\n    setShowBtmEditModal(true);\r\n  }\r\n\r\n  const del = btm => {\r\n    setSelectedBtm(btm);\r\n    setShowDeleteModal(true);\r\n  }\r\n\r\n  useEffect(() => {\r\n    getBtmData()\r\n  }, [])\r\n\r\n  return (\r\n    <Fragment>\r\n      <BtmAddModal {...props} show={showBtmAddModal} onHide={() => setShowBtmAddModal(false)} updateBtmData={getBtmData} />\r\n      {selectedBtm ? <BtmEditModal {...props} btm={selectedBtm} show={showBtmEditModal} onHide={() => setShowBtmEditModal(false)} updateBtmData={getBtmData} /> : null}\r\n      <DeleteModal {...props} headertext={'Btm löschen'}\r\n        maintext={'Möchtest du diesen Btm wirklich löschen?'} onSubmit={deleteBtm} subtext={'Dieser Vorgang kann nicht rückgängig gemacht werden'}\r\n        show={showDeleteModal} onHide={() => setShowDeleteModal(false)} />\r\n      <Table striped bordered hover>\r\n        <thead>\r\n          <tr>\r\n            <th>Name</th>\r\n            <th>Darreichungsform</th>\r\n            <th>Einheit</th>\r\n            <th>Menge</th>\r\n            <th style={{ textAlign: 'center', verticalAlign: 'middle' }}>\r\n              <Button onClick={() => setShowBtmAddModal(true)} >Hinzufügen <AddBox /></Button>\r\n            </th>\r\n          </tr>\r\n        </thead>\r\n        <tbody>\r\n          {btmListe.map(btm =>\r\n            <tr key={btm.id}>\r\n              <td>{btm.name}</td>\r\n              <td>{btm.darreichungsform}</td>\r\n              <td>{btm.einheit}</td>\r\n              <td>{btm.menge}</td>\r\n              <td style={{ textAlign: 'center', verticalAlign: 'middle' }}>\r\n                <Button onClick={() => edit(btm)}><Edit /></Button>\r\n                <Button onClick={() => del(btm)}><DeleteForever /></Button>\r\n              </td>\r\n            </tr>\r\n          )}\r\n        </tbody>\r\n      </Table>\r\n    </Fragment>\r\n  )\r\n}\r\n\r\nexport default BtmTabelle;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\PersonalAddModal.js",["299"],"import React, { useState, useEffect } from 'react';\r\nimport { Modal, Col, Button, Form } from 'react-bootstrap';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useSnackbar } from 'notistack';\r\n\r\nfunction PersonalAddModal(props) {\r\n\r\n  const { apoId } = useParams();\r\n\r\n  const [nutzernameVergeben, setNutzernameVergeben] = useState(false);\r\n\r\n  //for password checking\r\n  const [passwordConfirmInvalid, setPasswordConfirmInvalid] = useState(false);\r\n  const [newPasswordVal, setNewPasswordVal] = useState('');\r\n  const [passwordConfirmVal, setPasswordConfirmVal] = useState('');\r\n\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n  let roles = [\"ADMIN\", \"PRUEFER\", \"BENUTZER\"];\r\n\r\n  const createNewUser = async event => {\r\n    event.preventDefault();\r\n    let { username, vorname, nachname, neuesPasswort, rolle } = event.target;\r\n\r\n    let body = {\r\n      name: nachname.value,\r\n      nutzername: username.value,\r\n      vorname: vorname.value,\r\n      aktiv: true,\r\n      rolle: rolle.value,\r\n      passwort: neuesPasswort.value\r\n    }\r\n\r\n    console.log(body)\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer`, {\r\n      method: 'POST',\r\n      headers: {\r\n        'Content-Type': 'application/json',\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      },\r\n      body: JSON.stringify(body)\r\n    }).then((res) => {\r\n      if (res.status === 201) {\r\n        props.onHide();\r\n        props.updateUserList();\r\n        enqueueSnackbar('Benutzer erstellt', { variant: 'success', autoHideDuration: 3000 });\r\n      } else if (res.status === 400) {\r\n        enqueueSnackbar('Ein Fehler ist aufgetaucht', { variant: 'error', autoHideDuration: 3000 });\r\n      }\r\n    }).catch((err) => {\r\n      console.log(err);\r\n      return;\r\n    });\r\n  }\r\n\r\n  const checkIfUserNameIsTaken = async event => {\r\n    let newUsername = event.target.value;\r\n    if (newUsername.length < 4) {\r\n      //if shorter than 4 its invalid\r\n      setNutzernameVergeben(true);\r\n      return;\r\n    }\r\n\r\n    await fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer/${newUsername}/checkUsername`, {\r\n      method: 'POST',\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        setNutzernameVergeben(false);\r\n      } else if (res.status === 400) {\r\n        setNutzernameVergeben(true);\r\n      }\r\n    }).catch((err) => {\r\n      console.log(err);\r\n      return;\r\n    });\r\n  }\r\n\r\n  useEffect(() => {\r\n    setPasswordConfirmInvalid(newPasswordVal !== passwordConfirmVal);\r\n  }, [newPasswordVal, passwordConfirmVal]);\r\n\r\n\r\n  return (\r\n    <Modal\r\n      {...props}\r\n      size=\"lg\"\r\n      aria-labelledby=\"contained-modal-title-vcenter\"\r\n      centered\r\n      onExiting={props.onHide}\r\n    >\r\n      <Modal.Header closeButton>\r\n        <Modal.Title id=\"contained-modal-title-vcenter\">\r\n          Personal hinzufügen\r\n            </Modal.Title>\r\n      </Modal.Header>\r\n      <Form onSubmit={createNewUser}>\r\n        <Modal.Body>\r\n          <Form.Row>\r\n            <Form.Group as={Col} controlId=\"username\">\r\n              <Form.Label>Benutzername</Form.Label>\r\n              <Form.Control name=\"username\" required onChange={checkIfUserNameIsTaken}\r\n                isInvalid={nutzernameVergeben} type=\"text\" />\r\n            </Form.Group>\r\n          </Form.Row>\r\n\r\n          <Form.Row>\r\n            <Form.Group as={Col} sm={4} controlId=\"vorname\">\r\n              <Form.Label>Vorname</Form.Label>\r\n              <Form.Control name=\"vorname\" required type=\"text\" />\r\n            </Form.Group>\r\n\r\n            <Form.Group as={Col} sm={8} controlId=\"nachname\">\r\n              <Form.Label>Nachname</Form.Label>\r\n              <Form.Control name=\"nachname\" required type=\"text\" />\r\n            </Form.Group>\r\n          </Form.Row>\r\n\r\n          <Form.Row>\r\n            <Form.Group as={Col} controlId=\"neuesPasswort\">\r\n              <Form.Label>Neues Passwort</Form.Label>\r\n              <Form.Control required minlength={5} onChange={event => setNewPasswordVal(event.target.value)} name=\"neuesPasswort\" type=\"password\" />\r\n            </Form.Group>\r\n            <Form.Group as={Col} controlId=\"neuesPasswortConfirm\">\r\n              <Form.Label>Neues Passwort bestätigen</Form.Label>\r\n              <Form.Control required minlength={5} onChange={event => setPasswordConfirmVal(event.target.value)} isInvalid={passwordConfirmInvalid} name=\"neuesPasswortConfirm\" type=\"password\" />\r\n            </Form.Group>\r\n          </Form.Row>\r\n          <Form.Row>\r\n            <Form.Group as={Col} sm={4} controlId=\"rolle\">\r\n              <Form.Label>Rolle</Form.Label>\r\n              <Form.Control required name=\"rolle\" required as=\"select\" >\r\n                {roles.map(r => <option key={r} value={r}>{r}</option>)}\r\n              </Form.Control>\r\n            </Form.Group>\r\n          </Form.Row>\r\n        </Modal.Body>\r\n        <Modal.Footer>\r\n          <Button autofocus variant=\"\" onClick={props.onHide}>Abbrechen</Button>\r\n          <Button variant=\"primary\" type=\"submit\" >Bestätigen</Button>\r\n        </Modal.Footer>\r\n      </Form>\r\n    </Modal>\r\n  )\r\n}\r\n\r\nexport default PersonalAddModal;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\DeleteModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\PersonalEditModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\BtmAddModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\LieferantEditModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\BtmEditModal.js",["300","301","302"],"import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { Modal, Col, Button, Form, Alert, Row } from 'react-bootstrap';\r\nimport { useSnackbar } from 'notistack';\r\nimport { responsiveFontSizes } from '@material-ui/core';\r\n\r\nfunction BtmEditModal(props) {\r\n\r\n  const { apoId } = useParams();\r\n\r\n  const darreichungsformen = {\r\n    'Tbl': { einheiten: ['Stueck'] },\r\n    'Trp': { einheiten: ['ml'] },\r\n    'Sup': { einheiten: ['Stueck'] },\r\n    'RTA': { einheiten: ['Stueck'] },\r\n    'RKA': { einheiten: ['Stueck'] },\r\n    'Ampullen': { einheiten: ['Stueck'] },\r\n    'Rezeptursubstanz': { einheiten: ['mg', 'g'] },\r\n    'HKP': { einheiten: ['Stueck'] },\r\n    'Pfl': { einheiten: ['Stueck'] }\r\n  };\r\n\r\n  let { id, darreichungsform, einheit, name, menge } = props.btm;\r\n  // console.log(props.btm)\r\n\r\n  const [activeDarreichungsform, setActiveDarreichungsform] = useState(darreichungsform);\r\n  const [activeEinheit, setActiveEinheit] = useState(einheit);\r\n  const [einheiten, setEinheiten] = useState(darreichungsformen[darreichungsform].einheiten);\r\n\r\n  const [showError, setShowError] = useState(false);\r\n  const [errorMessage, setErrorMessage] = useState('');\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n\r\n  const updateDetails = async event => {\r\n    event.preventDefault();\r\n    let { name, darreichungsform, einheit, menge } = event.target;\r\n    let body = {\r\n      name: name.value,\r\n      darreichungsform: darreichungsform.value,\r\n      einheit: einheit.value,\r\n      menge: menge.value\r\n    }\r\n    console.log(body)\r\n    fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btm/${id}`, {\r\n      method: 'PUT',\r\n      headers: {\r\n        'Content-Type': 'application/json',\r\n        'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n      },\r\n      body: JSON.stringify(body)\r\n    }).then((res) => {\r\n      if (res.status === 200) {\r\n        hide();\r\n        props.updateBtmData();\r\n        enqueueSnackbar('Benutzer aktualisiert', { variant: 'success', autoHideDuration: 3000 });\r\n      } else if (res.status === 400) {\r\n        enqueueSnackbar('Ein Fehler ist aufgetaucht', { variant: 'error', autoHideDuration: 3000 });\r\n      } else if (responsiveFontSizes.status === 403) {\r\n        enqueueSnackbar('Falsches Passwort', { variant: 'error', autoHideDuration: 3000 });\r\n      }\r\n    }).catch((err) => {\r\n      console.log(err);\r\n      return;\r\n    });\r\n\r\n    \r\n  }\r\n\r\n  useEffect(() => {\r\n    setActiveDarreichungsform(props.btm.darreichungsform);\r\n    setActiveEinheit(props.btm.einheit);\r\n    setEinheiten(darreichungsformen[props.btm.darreichungsform].einheiten)\r\n    console.log(activeDarreichungsform, activeEinheit, einheiten)\r\n  }, [props.btm])\r\n\r\n  const hide = () => {\r\n    setActiveDarreichungsform(props.btm.darreichungsform);\r\n    setActiveEinheit(props.btm.einheit);\r\n    setEinheiten(darreichungsformen[props.btm.darreichungsform].einheiten)\r\n    props.onHide();\r\n  }\r\n\r\n  return (\r\n    <Modal\r\n      {...props}\r\n      size=\"lg\"\r\n      aria-labelledby=\"contained-modal-title-vcenter\"\r\n      centered\r\n      onExiting={hide}\r\n    >\r\n      <Modal.Header closeButton>\r\n        <Modal.Title id=\"contained-modal-title-vcenter\">\r\n          Betäubungsmittel bearbeiten\r\n                 </Modal.Title>\r\n      </Modal.Header>\r\n      <Form onSubmit={updateDetails}>\r\n        {showError ? <Alert variant=\"danger\">{errorMessage}</Alert> : null}\r\n        <Modal.Body>\r\n          <Form.Group as={Row} controlId=\"name\">\r\n            <Form.Label column sm=\"2\">\r\n              Name\r\n                        </Form.Label>\r\n            <Col sm=\"10\">\r\n              <Form.Control defaultValue={name} name=\"name\" required type=\"text\" />\r\n            </Col>\r\n          </Form.Group>\r\n\r\n          <Form.Group as={Row} controlId=\"menge\">\r\n            <Form.Label column sm=\"2\">\r\n              Menge\r\n                        </Form.Label>\r\n            <Col sm=\"10\">\r\n              <Form.Control defaultValue={menge} name=\"menge\" type=\"number\" min=\"0\" />\r\n            </Col>\r\n          </Form.Group>\r\n\r\n\r\n          <Form.Group as={Row} controlId=\"darreichungsform\">\r\n            <Form.Label column sm=\"2\">\r\n              Darreichungsform\r\n                        </Form.Label>\r\n            <Col sm=\"10\">\r\n              <Form.Control defaultValue={darreichungsform} onChange={event => {\r\n                setActiveDarreichungsform(event.target.value)\r\n                setEinheiten(darreichungsformen[event.target.value].einheiten)\r\n              }} name=\"darreichungsform\" required as=\"select\">\r\n                {\r\n                  darreichungsformen ? Object.keys(darreichungsformen).map(df => <option kef={df} value={df}>{df}</option>) : null\r\n                }\r\n              </Form.Control>\r\n            </Col>\r\n          </Form.Group>\r\n\r\n          <Form.Group as={Row} controlId=\"einheit\">\r\n            <Form.Label column sm=\"2\">\r\n              Einheit\r\n                        </Form.Label>\r\n            <Col sm=\"10\">\r\n              <Form.Control defaultValue={einheit} name=\"einheit\" required as=\"select\">\r\n                {\r\n                  einheiten ? Object.keys(einheiten).map(e => <option key={einheiten[e]} value={einheiten[e]}>{einheiten[e]}</option>) : null\r\n                }\r\n              </Form.Control>\r\n            </Col>\r\n          </Form.Group>\r\n\r\n        </Modal.Body>\r\n        <Modal.Footer>\r\n          <Button variant=\"\" onClick={props.onHide}>Abbrechen</Button>\r\n          <Button variant=\"primary\" type=\"submit\">Bestätigen</Button>\r\n        </Modal.Footer>\r\n      </Form>\r\n    </Modal>\r\n  )\r\n\r\n\r\n}\r\n\r\nexport default BtmEditModal;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\ArztEditModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\LieferantAddModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\ArztAddModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\ApothekeEditModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\UserDetailsUpdateModal.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\ApothekeRegisterModal.js",["303","304","305","306","307","308","309"],"import React, { useEffect, useState } from \"react\";\r\nimport { useParams } from 'react-router-dom';\r\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport { Modal, Button, Form, Row, Col } from \"react-bootstrap\";\r\nimport { useForm } from \"./useForm\";\r\nimport MobileStepper from \"@material-ui/core/MobileStepper\";\r\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\r\n\r\nconst useStyles = makeStyles({\r\n  root: {\r\n    flexGrow: 1,\r\n  },\r\n});\r\n\r\nfunction ApothekeRegisterModal(props) {\r\n  const classes = useStyles();\r\n  const theme = useTheme();\r\n  const [activeStep, setActiveStep] = useState(0);\r\n  const [showContinueModal, setShowContinueModal] = useState(false);\r\n  const [values, handleChange] = useForm({\r\n    name: \"\",\r\n    email: \"\",\r\n    strasse: \"\",\r\n    nummer: \"\",\r\n    plz: \"\",\r\n    ort: \"\",\r\n    vorname: \"\",\r\n    nachname: \"\",\r\n    nutzername: \"\",\r\n    rolle: \"Admin\",\r\n  });\r\n\r\n  const handleNext = () => {\r\n    setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n    setShowContinueModal(true);\r\n  };\r\n\r\n  const handleBack = () => {\r\n    setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n    setShowContinueModal(false);\r\n  };\r\n\r\n  const createNewApo = () => {\r\n    let body = {\r\n      name: values.name,\r\n      email: values.email,\r\n      anschrift: {\r\n        strasse: values.strasse,\r\n        nummer: values.nummer,\r\n        plz: values.plz,\r\n        ort: values.ort,\r\n      },\r\n    };\r\n    return fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke`, {\r\n      method: \"POST\",\r\n      headers: { \"Content-Type\": \"application/json\" },\r\n      body: JSON.stringify(body),\r\n    }).catch((err) => {\r\n      console.log(err);\r\n    });\r\n  };\r\n\r\n  const createNewAdmin = (apoId) => {\r\n    let body = {\r\n      name: values.nachname,\r\n      vorname: values.vorname,\r\n      nutzername: values.nutzername,\r\n      passwort: passwords.password,\r\n      rolle: 'ADMIN',\r\n    };\r\n\r\n    return fetch(\r\n      `http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/benutzer`,\r\n      {\r\n        method: \"POST\",\r\n        headers: {\r\n          \"Content-Type\": \"application/json\",\r\n        },\r\n        body: JSON.stringify(body),\r\n      }\r\n    ).catch((err) => {\r\n      console.log(err);\r\n    });\r\n  };\r\n\r\n  const login = async () => {\r\n    let body = {\r\n      username: values.nutzername,\r\n      password: passwords.password,\r\n    };\r\n    return await fetch(`http://${process.env.REACT_APP_BACKEND_URL}/login`, {\r\n      method: \"POST\",\r\n      headers: {\r\n        \"Content-Type\": \"application/json\",\r\n      },\r\n      body: JSON.stringify(body),\r\n    }).catch((err) => {\r\n      //SHOW ERROR\r\n      console.log(err);\r\n    });\r\n  };\r\n\r\n  const [passwords, setPasswords] = React.useState({\r\n    password: \"\",\r\n    passwordCheck: \"\",\r\n  });\r\n\r\n  function handleChangePassword(e) {\r\n    setPasswords({\r\n      ...passwords,\r\n      [e.target.name]: e.target.value,\r\n    });\r\n  }\r\n\r\n  const handleSubmit = async event => {\r\n    event.preventDefault();\r\n\r\n    //ERROR HANDLING MISSING\r\n    // let { username, neuesPasswort} = event.target;\r\n    let apoResponse = await createNewApo();\r\n    if (apoResponse.status === 201) {\r\n      let apoId = await apoResponse.json();\r\n      let adminRespone = await createNewAdmin(apoId.id);\r\n      if (adminRespone.status === 201) {\r\n        let loginResponse = await login();\r\n        if (loginResponse.status === 200) {\r\n          const data = await loginResponse.json();\r\n          window.sessionStorage.setItem(\"edbapo-jwt\", data.jwt);\r\n          props.history.push(`/apotheke/${data.apothekeId}`);\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  const cancel = () => {\r\n    setShowContinueModal(false);\r\n  };\r\n\r\n  const renderSchritt1 = () => {\r\n    return (\r\n      <React.Fragment>\r\n        <Form.Label>1. Schritt Apotheke erstellen</Form.Label>\r\n        <Form.Row>\r\n          <Form.Group as={Col} controlId=\"name\">\r\n            <Form.Control\r\n              required\r\n              type=\"text\"\r\n              placeholder=\"Name der Apotheke\"\r\n              name=\"name\"\r\n              value={values.name}\r\n              onChange={handleChange}\r\n            />\r\n          </Form.Group>\r\n        </Form.Row>\r\n\r\n        <Form.Row>\r\n          <Form.Group as={Col} controlId=\"email\">\r\n            <Form.Control\r\n              required\r\n              type=\"email\"\r\n              placeholder=\"E-Mail der Apotheke\"\r\n              name=\"email\"\r\n              value={values.email}\r\n              onChange={handleChange}\r\n            />\r\n          </Form.Group>\r\n        </Form.Row>\r\n\r\n        <Form.Row>\r\n          <Form.Group as={Col} sm={9} controlId=\"strasse\">\r\n            <Form.Control\r\n              required\r\n              type=\"text\"\r\n              placeholder=\"Straße\"\r\n              name=\"strasse\"\r\n              value={values.strasse}\r\n              onChange={handleChange}\r\n            />\r\n          </Form.Group>\r\n          <Form.Group as={Col} sm={3} controlId=\"nummer\">\r\n            <Form.Control\r\n              required\r\n              type=\"number\"\r\n              placeholder=\"Nummer\"\r\n              name=\"nummer\"\r\n              value={values.nummer}\r\n              onChange={handleChange}\r\n            />\r\n          </Form.Group>\r\n        </Form.Row>\r\n        <Form.Row>\r\n          <Form.Group as={Col} sm={3} controlId=\"plz\">\r\n            <Form.Control\r\n              required\r\n              type=\"text\"\r\n              placeholder=\"PLZ\"\r\n              name=\"plz\"\r\n              value={values.plz}\r\n              onChange={handleChange}\r\n            />\r\n          </Form.Group>\r\n          <Form.Group as={Col} sm={9} controlId=\"ort\">\r\n            <Form.Control\r\n              required\r\n              type=\"text\"\r\n              placeholder=\"Ort\"\r\n              name=\"ort\"\r\n              value={values.ort}\r\n              onChange={handleChange}\r\n            />\r\n          </Form.Group>\r\n        </Form.Row>\r\n      </React.Fragment>\r\n    );\r\n  };\r\n\r\n  const renderSchritt2 = () => {\r\n    return (\r\n      <React.Fragment>\r\n        <Form.Label>2. Schritt Admin Nutzer erstellen</Form.Label>\r\n        <Form.Group controllId=\"vorname\">\r\n          <Form.Control\r\n            required=\"required\"\r\n            type=\"text\"\r\n            placeholder=\"Vorname\"\r\n            name=\"vorname\"\r\n            value={values.vorname}\r\n            onChange={handleChange}\r\n          />\r\n        </Form.Group>\r\n        <Form.Group controllId=\"nachname\">\r\n          <Form.Control\r\n            required=\"required\"\r\n            type=\"text\"\r\n            placeholder=\"Nachname\"\r\n            name=\"nachname\"\r\n            value={values.nachname}\r\n            onChange={handleChange}\r\n          />\r\n        </Form.Group>\r\n        <Form.Group controllId=\"nutzername\">\r\n          <Form.Control\r\n            required=\"required\"\r\n            type=\"text\"\r\n            placeholder=\"Nutzername\"\r\n            name=\"nutzername\"\r\n            value={values.nutzername}\r\n            onChange={handleChange}\r\n          />\r\n        </Form.Group>\r\n        <Form.Group controllId=\"password\">\r\n          <Form.Control\r\n            required=\"required\"\r\n            type=\"password\"\r\n            placeholder=\"Passwort erstellen\"\r\n            name=\"password\"\r\n            value={passwords.password}\r\n            onChange={handleChangePassword}\r\n          />\r\n        </Form.Group>\r\n        <Form.Group>\r\n          <Form.Control\r\n            required=\"required\"\r\n            type=\"password\"\r\n            name=\"passwordCheck\"\r\n            placeholder=\"Passwort wiederholen\"\r\n            value={passwords.passwordCheck}\r\n            onChange={handleChangePassword}\r\n          />\r\n        </Form.Group>\r\n      </React.Fragment>\r\n    );\r\n  };\r\n\r\n  return (\r\n    <Modal\r\n      show={props.show}\r\n      onHide={props.onHide}\r\n      centered\r\n      aria-labelledby=\"contained-modal-title-vcenter\"\r\n    >\r\n      <Modal.Header>\r\n        <Modal.Title>Neue Apotheke registrieren</Modal.Title>\r\n      </Modal.Header>\r\n      <Form onSubmit={handleSubmit}>\r\n        <Modal.Body>\r\n          {showContinueModal ? renderSchritt2() : renderSchritt1()}\r\n        </Modal.Body>\r\n        <MobileStepper\r\n          variant=\"dots\"\r\n          steps={2}\r\n          position=\"static\"\r\n          activeStep={activeStep}\r\n          className={classes.root}\r\n          nextButton={\r\n            <Button\r\n              size=\"small\"\r\n              type={activeStep == 1 ? \"submit\" : \"button\"}\r\n              onClick={activeStep == 0 ? handleNext : null}\r\n              disabled={activeStep === 2}\r\n            >\r\n              {activeStep === 1 ? 'Registrien' : 'Weiter'}\r\n              {theme.direction === \"rtl\" ? (<KeyboardArrowLeft />) : (<KeyboardArrowRight />)}\r\n            </Button>\r\n          }\r\n          backButton={\r\n            <Button\r\n              size=\"small\"\r\n              type={activeStep == 1 ? \"submit\" : \"button\"}\r\n              onClick={handleBack}\r\n              disabled={activeStep === 0}\r\n            >\r\n              {theme.direction === \"rtl\" ? (\r\n                <KeyboardArrowRight />\r\n              ) : (\r\n                <KeyboardArrowLeft />\r\n              )}\r\n              Zurück\r\n            </Button>\r\n          }\r\n        />\r\n      </Form>\r\n    </Modal>\r\n  );\r\n}\r\nexport default ApothekeRegisterModal;\r\n","D:\\dev\\EDB-Apo\\frontend\\src\\modals\\useForm.js",[],"D:\\dev\\EDB-Apo\\frontend\\src\\modals\\UpdateBuchungModal.js",["310"],"import React,{useEffect} from 'react';\r\nimport { Modal, Button, Form, Row, Col } from 'react-bootstrap';\r\nimport { useSnackbar } from 'notistack';\r\nimport { useParams } from 'react-router-dom';\r\n\r\n\r\n\r\nfunction UpdateBuchungModal(props) {\r\n\r\n    // let apothekeId = sessionStorage.getItem('apothekeId');\r\n    const { apoId } = useParams();\r\n    // eslint-disable-next-line\r\n    let {lieferanten, aerzte, empfaenger} = props;\r\n    const { enqueueSnackbar } = useSnackbar();\r\n\r\n    const sendUpdateRequest = async (buchungData) => {\r\n        const response = await fetch(`http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${apoId}/btmbuchung/${props.buchung.id}`, {\r\n            method: 'PUT',\r\n            headers: {\r\n                'Content-Type': 'application/json',\r\n                'Authorization': 'Bearer ' + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n            },\r\n            body: JSON.stringify(buchungData)\r\n        }).catch((err) => {\r\n            //SHOW ERROR\r\n            console.log(err);\r\n        });\r\n\r\n\r\n        if (response && response.status === 200) {\r\n            props.onHide();\r\n            enqueueSnackbar('Buchung erfolgreich aktualisiert', { variant: 'success', autoHideDuration: 3000 });\r\n            props.apothekeRefFunctions.updateBtmList();\r\n        } else {\r\n            //SHOW ERROR\r\n            console.log(response);\r\n        }\r\n    }\r\n\r\n\r\n\r\n\r\n    const updateBuchung = event => {\r\n        event.preventDefault();\r\n\r\n        if (props.buchung.typ.toLowerCase() === 'zugang') {\r\n            let { anforderungsschein, btmMenge, lieferant, pruefdatum, datum } = event.target;\r\n            let buchungData = {\r\n                benutzer: props.user.id,\r\n                btm: props.btm.btm.id,\r\n                menge: btmMenge.value,\r\n                typ: 'ZUGANG',\r\n                lieferant: lieferant.value,\r\n                anforderungsschein: anforderungsschein.value,\r\n                pruefdatum: pruefdatum.value,\r\n                datum: datum.value\r\n            }\r\n            sendUpdateRequest(buchungData);\r\n        } else if (props.buchung.typ.toLowerCase() === 'abgang') {\r\n            let { btmMenge, rezept, empfaenger, arzt, pruefdatum, datum} = event.target;\r\n            let buchungData = {\r\n                benutzer: props.user.id,\r\n                btm: props.btm.btm.id,\r\n                menge: btmMenge.value,\r\n                typ: 'ABGANG',\r\n                empfaenger: empfaenger.value,\r\n                arzt: arzt.value,\r\n                rezept: rezept.value,\r\n                pruefdatum: pruefdatum.value,\r\n                datum: datum.value\r\n            }\r\n            sendUpdateRequest(buchungData);\r\n        }\r\n    }\r\n\r\n    \r\n\r\n\r\n    function Zugang({ buchung }) {\r\n        if (buchung.typ) {\r\n            if (buchung.typ.toLowerCase() === 'zugang') {\r\n                return (\r\n                    <React.Fragment>\r\n                        <Form.Group as={Row} controlId=\"anforderungsschein\">\r\n                            <Form.Label column sm=\"2\">\r\n                                Anforderungsschein\r\n                    </Form.Label>\r\n                            <Col sm=\"10\">\r\n                                <Form.Control name=\"anforderungsschein\" type=\"text\" required defaultValue={buchung.anforderungsschein} />\r\n                            </Col>\r\n                        </Form.Group>\r\n                        <Form.Group as={Row} controlId=\"lieferant\">\r\n                            <Form.Label column sm=\"2\">\r\n                                Lieferant\r\n                    </Form.Label>\r\n                            <Col sm=\"10\">\r\n                                <Form.Control name=\"lieferant\" defaultValue={buchung.lieferant.name} required as=\"select\">\r\n                                     {console.log('lieferanten', lieferanten)}   \r\n                                    {lieferanten.map(l => <option key={l.id} value={l.id}>{l.name}</option>)}\r\n                                </Form.Control>\r\n                            </Col>\r\n                        </Form.Group>\r\n                    </React.Fragment>)\r\n            }\r\n        }\r\n        return null;\r\n    }\r\n\r\n    function Abgang({ buchung }) {\r\n        if (buchung.typ) {\r\n            if (buchung.typ.toLowerCase() === 'abgang') {\r\n                return (\r\n                    <React.Fragment>\r\n                        <Form.Group as={Row} controlId=\"empfaenger\">\r\n                            <Form.Label column sm=\"2\">\r\n                                Empfaenger\r\n                    </Form.Label>\r\n                            <Col sm=\"10\">\r\n                                <Form.Control name=\"empfaenger\" defaultValue={buchung.empfaenger.name} required as=\"select\">\r\n                                    {empfaenger.map(e => <option key={e.id} value={e.id}>{e.vorname} {e.name}</option>)}\r\n                                </Form.Control>\r\n                            </Col>\r\n                        </Form.Group>\r\n                        <Form.Group as={Row} controlId=\"arzt\">\r\n                            <Form.Label column sm=\"2\">\r\n                                Arzt\r\n                    </Form.Label>\r\n                            <Col sm=\"10\">\r\n                                <Form.Control name=\"arzt\" defaultValue={buchung.arzt.name} required as=\"select\">\r\n                                    {aerzte.map(a => <option key={a.id} value={a.id}>{a.name}</option>)}\r\n                                </Form.Control>\r\n                            </Col>\r\n                        </Form.Group>\r\n                        <Form.Group as={Row} controlId=\"rezept\">\r\n                            <Form.Label column sm=\"2\">\r\n                                Rezept\r\n                            </Form.Label>\r\n                            <Col sm=\"10\">\r\n                                <Form.Control defaultValue={buchung.rezept} name=\"rezept\" type=\"text\" required />\r\n                            </Col>\r\n                        </Form.Group>\r\n                    </React.Fragment>)\r\n            }\r\n        }\r\n        return null;\r\n    }\r\n\r\n\r\n    return (\r\n        <Modal\r\n            {...props}\r\n            size=\"lg\"\r\n            aria-labelledby=\"contained-modal-title-vcenter\"\r\n            centered\r\n            onExiting={props.onHide}\r\n        >\r\n            <Modal.Header closeButton>\r\n                <Modal.Title id=\"contained-modal-title-vcenter\">\r\n                    Betäubungsmittel-Buchung aktualisieren\r\n                </Modal.Title>\r\n            </Modal.Header>\r\n            <Form onSubmit={updateBuchung}>\r\n                <Modal.Body>\r\n                <Form.Group as={Row} controlId=\"datum\">\r\n                        <Form.Label column sm=\"2\">\r\n                            Datum\r\n                        </Form.Label>\r\n                        <Col sm=\"10\">\r\n                            <Form.Control name=\"datum\" type=\"date\" defaultValue={props.buchung.datum} />\r\n                        </Col>\r\n                    </Form.Group>\r\n                    <Form.Group as={Row} controlId=\"btmMenge\">\r\n                        <Form.Label column sm=\"2\">\r\n                            Menge\r\n                        </Form.Label>\r\n                        <Col sm=\"10\">\r\n                            <Form.Control name=\"btmMenge\" type=\"number\" min=\"1\" defaultValue={props.buchung.menge} />\r\n                        </Col>\r\n                    </Form.Group>\r\n                    <Form.Group as={Row} controlId=\"pruefdatum\">\r\n                        <Form.Label column sm=\"2\">\r\n                            Prüfdatum\r\n                        </Form.Label>\r\n                        <Col sm=\"10\">\r\n                            <Form.Control name=\"pruefdatum\" type=\"date\" defaultValue={props.buchung.pruefdatum} />\r\n                        </Col>\r\n                    </Form.Group>\r\n                    <Zugang buchung={props.buchung} />\r\n                    <Abgang buchung={props.buchung} />\r\n                </Modal.Body>\r\n                <Modal.Footer>\r\n                    <Button variant=\"\" onClick={props.onHide}>Abbrechen</Button>\r\n                    <Button variant=\"primary\" type=\"submit\">Bestätigen</Button>\r\n                </Modal.Footer>\r\n            </Form>\r\n        </Modal>\r\n    )\r\n}\r\n\r\nexport default UpdateBuchungModal;\r\n","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\index.js",[],["311","312"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\App.js",["313"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\startseite\\Startseite.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BTMBuch.js",["314"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\ApothekeEinstellungen.js",["315"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\headers\\Header.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\headers\\StatusHeader.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\startseite\\Login.js",["316"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\BtmTabelle.js",["317"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\ArztTabelle.js",["318"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\user\\UserDetails.js",["319","320","321"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\PersonalTabelle.js",["322"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekenDetails.js",["323","324"],"import React, { useEffect, useState } from \"react\";\r\nimport { useParams, Link  } from 'react-router-dom';\r\nimport { Button } from \"react-bootstrap\";\r\nimport NeuesBtmModal from \"../btmbuch/NeuesBtmModal\";\r\nimport \"../../App.scss\";\r\n\r\nfunction ApothekenDetails(props) {\r\n  const [apotheke, setApotheke] = useState({ anschrift: {} });\r\n  const [neuesBtmModalShow, setneuesBtmModalShow] = useState(false);\r\n\r\n  const getApothekeData = async () => {\r\n    const response = await fetch(\r\n      `http://${process.env.REACT_APP_BACKEND_URL}/apotheke/${props.match.params.apoId}`,\r\n      {\r\n        method: \"GET\",\r\n        headers: {\r\n          Authorization:\r\n            \"Bearer \" + window.sessionStorage.getItem(\"edbapo-jwt\"),\r\n        },\r\n      }\r\n    ).catch((err) => {\r\n      //SHOW ERROR\r\n      return;\r\n    });\r\n\r\n    if (response.status === 200) {\r\n      setApotheke(await response.json());\r\n    } else if (response.status === 403) {\r\n      props.history.push(\"/forbidden\");\r\n    } else if (response.status === 400) {\r\n      props.history.push(\"/badrequest\");\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    getApothekeData();\r\n  }, []);\r\n\r\n  return (\r\n    <div className=\"apo-details\">\r\n      <ul>\r\n        <li>Name: {apotheke.name}</li>\r\n        <li>E-Mail: {apotheke.email}</li>\r\n      </ul>\r\n      <Link to={`${props.match.params.apoId}/einstellungen`} ><Button >Apotheke Einstellungen</Button></Link>\r\n      <Button\r\n        onClick={() => setneuesBtmModalShow(true)}\r\n        style={{ marginLeft: \"1em\" }}\r\n      >\r\n        Neues Betäubungsmittel anlegen\r\n      </Button>\r\n      <NeuesBtmModal\r\n        show={neuesBtmModalShow}\r\n        {...props}\r\n        onHide={() => setneuesBtmModalShow(false)}\r\n      />\r\n    </div>\r\n  );\r\n}\r\nexport default ApothekenDetails;\r\n","C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\LieferantTabelle.js",["325"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekeBtmList.js",["326","327"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\ApothekeEditModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\DeleteModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\BtmEditModal.js",["328","329","330"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\BtmAddModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeuesBtmModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\UserDetailsUpdateModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\ApothekeRegisterModal.js",["331","332","333","334","335","336","337"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\ArztAddModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\PersonalAddModal.js",["338"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\ArztEditModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\LieferantEditModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BuchungTabelle.js",["339"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\PersonalEditModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\LieferantAddModal.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\UpdateBuchungModal.js",["340"],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\modals\\useForm.js",[],"C:\\Users\\LMaro\\Desktop\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeueBuchungModal.js",["341","342","343"],{"ruleId":"344","replacedBy":"345"},{"ruleId":"346","replacedBy":"347"},{"ruleId":"348","severity":1,"message":"349","line":3,"column":50,"nodeType":"350","messageId":"351","endLine":3,"endColumn":54},{"ruleId":"352","severity":1,"message":"353","line":44,"column":6,"nodeType":"354","endLine":44,"endColumn":8,"suggestions":"355"},{"ruleId":"348","severity":1,"message":"356","line":2,"column":9,"nodeType":"350","messageId":"351","endLine":2,"endColumn":12},{"ruleId":"348","severity":1,"message":"357","line":8,"column":18,"nodeType":"350","messageId":"351","endLine":8,"endColumn":25},{"ruleId":"348","severity":1,"message":"358","line":8,"column":27,"nodeType":"350","messageId":"351","endLine":8,"endColumn":31},{"ruleId":"348","severity":1,"message":"359","line":8,"column":45,"nodeType":"350","messageId":"351","endLine":8,"endColumn":50},{"ruleId":"352","severity":1,"message":"360","line":226,"column":6,"nodeType":"354","endLine":226,"endColumn":8,"suggestions":"361"},{"ruleId":"348","severity":1,"message":"362","line":12,"column":12,"nodeType":"350","messageId":"351","endLine":12,"endColumn":20},{"ruleId":"348","severity":1,"message":"363","line":29,"column":19,"nodeType":"350","messageId":"351","endLine":29,"endColumn":23},{"ruleId":"352","severity":1,"message":"364","line":79,"column":8,"nodeType":"354","endLine":79,"endColumn":10,"suggestions":"365"},{"ruleId":"352","severity":1,"message":"366","line":89,"column":6,"nodeType":"354","endLine":89,"endColumn":8,"suggestions":"367"},{"ruleId":"348","severity":1,"message":"368","line":2,"column":10,"nodeType":"350","messageId":"351","endLine":2,"endColumn":19},{"ruleId":"352","severity":1,"message":"369","line":37,"column":6,"nodeType":"354","endLine":37,"endColumn":8,"suggestions":"370"},{"ruleId":"352","severity":1,"message":"371","line":40,"column":6,"nodeType":"354","endLine":40,"endColumn":8,"suggestions":"372"},{"ruleId":"373","severity":1,"message":"374","line":54,"column":23,"nodeType":"375","messageId":"376","endLine":54,"endColumn":25},{"ruleId":"352","severity":1,"message":"377","line":73,"column":6,"nodeType":"354","endLine":73,"endColumn":8,"suggestions":"378"},{"ruleId":"352","severity":1,"message":"379","line":72,"column":6,"nodeType":"354","endLine":72,"endColumn":8,"suggestions":"380"},{"ruleId":"352","severity":1,"message":"381","line":72,"column":6,"nodeType":"354","endLine":72,"endColumn":8,"suggestions":"382"},{"ruleId":"352","severity":1,"message":"383","line":72,"column":6,"nodeType":"354","endLine":72,"endColumn":8,"suggestions":"384"},{"ruleId":"385","severity":1,"message":"386","line":131,"column":51,"nodeType":"387","endLine":131,"endColumn":59},{"ruleId":"348","severity":1,"message":"388","line":30,"column":21,"nodeType":"350","messageId":"351","endLine":30,"endColumn":33},{"ruleId":"348","severity":1,"message":"389","line":31,"column":24,"nodeType":"350","messageId":"351","endLine":31,"endColumn":39},{"ruleId":"352","severity":1,"message":"390","line":75,"column":6,"nodeType":"354","endLine":75,"endColumn":17,"suggestions":"391"},{"ruleId":"348","severity":1,"message":"392","line":1,"column":17,"nodeType":"350","messageId":"351","endLine":1,"endColumn":26},{"ruleId":"348","severity":1,"message":"368","line":2,"column":10,"nodeType":"350","messageId":"351","endLine":2,"endColumn":19},{"ruleId":"348","severity":1,"message":"356","line":4,"column":31,"nodeType":"350","messageId":"351","endLine":4,"endColumn":34},{"ruleId":"348","severity":1,"message":"393","line":136,"column":9,"nodeType":"350","messageId":"351","endLine":136,"endColumn":15},{"ruleId":"394","severity":1,"message":"395","line":299,"column":32,"nodeType":"396","messageId":"397","endLine":299,"endColumn":34},{"ruleId":"394","severity":1,"message":"395","line":300,"column":35,"nodeType":"396","messageId":"397","endLine":300,"endColumn":37},{"ruleId":"394","severity":1,"message":"395","line":310,"column":32,"nodeType":"396","messageId":"397","endLine":310,"endColumn":34},{"ruleId":"348","severity":1,"message":"392","line":1,"column":15,"nodeType":"350","messageId":"351","endLine":1,"endColumn":24},{"ruleId":"344","replacedBy":"398"},{"ruleId":"346","replacedBy":"399"},{"ruleId":"348","severity":1,"message":"349","line":3,"column":50,"nodeType":"350","messageId":"351","endLine":3,"endColumn":54},{"ruleId":"352","severity":1,"message":"353","line":44,"column":6,"nodeType":"354","endLine":44,"endColumn":8,"suggestions":"400"},{"ruleId":"352","severity":1,"message":"366","line":89,"column":6,"nodeType":"354","endLine":89,"endColumn":8,"suggestions":"401"},{"ruleId":"348","severity":1,"message":"356","line":2,"column":9,"nodeType":"350","messageId":"351","endLine":2,"endColumn":12},{"ruleId":"352","severity":1,"message":"383","line":72,"column":6,"nodeType":"354","endLine":72,"endColumn":8,"suggestions":"402"},{"ruleId":"352","severity":1,"message":"379","line":72,"column":6,"nodeType":"354","endLine":72,"endColumn":8,"suggestions":"403"},{"ruleId":"348","severity":1,"message":"357","line":8,"column":18,"nodeType":"350","messageId":"351","endLine":8,"endColumn":25},{"ruleId":"348","severity":1,"message":"358","line":8,"column":27,"nodeType":"350","messageId":"351","endLine":8,"endColumn":31},{"ruleId":"348","severity":1,"message":"359","line":8,"column":45,"nodeType":"350","messageId":"351","endLine":8,"endColumn":50},{"ruleId":"352","severity":1,"message":"377","line":73,"column":6,"nodeType":"354","endLine":73,"endColumn":8,"suggestions":"404"},{"ruleId":"348","severity":1,"message":"368","line":2,"column":10,"nodeType":"350","messageId":"351","endLine":2,"endColumn":19},{"ruleId":"352","severity":1,"message":"369","line":37,"column":6,"nodeType":"354","endLine":37,"endColumn":8,"suggestions":"405"},{"ruleId":"352","severity":1,"message":"381","line":72,"column":6,"nodeType":"354","endLine":72,"endColumn":8,"suggestions":"406"},{"ruleId":"352","severity":1,"message":"371","line":40,"column":6,"nodeType":"354","endLine":40,"endColumn":8,"suggestions":"407"},{"ruleId":"373","severity":1,"message":"374","line":54,"column":23,"nodeType":"375","messageId":"376","endLine":54,"endColumn":25},{"ruleId":"348","severity":1,"message":"388","line":30,"column":21,"nodeType":"350","messageId":"351","endLine":30,"endColumn":33},{"ruleId":"348","severity":1,"message":"389","line":31,"column":24,"nodeType":"350","messageId":"351","endLine":31,"endColumn":39},{"ruleId":"352","severity":1,"message":"390","line":75,"column":6,"nodeType":"354","endLine":75,"endColumn":17,"suggestions":"408"},{"ruleId":"348","severity":1,"message":"392","line":1,"column":17,"nodeType":"350","messageId":"351","endLine":1,"endColumn":26},{"ruleId":"348","severity":1,"message":"368","line":2,"column":10,"nodeType":"350","messageId":"351","endLine":2,"endColumn":19},{"ruleId":"348","severity":1,"message":"356","line":4,"column":31,"nodeType":"350","messageId":"351","endLine":4,"endColumn":34},{"ruleId":"348","severity":1,"message":"393","line":136,"column":9,"nodeType":"350","messageId":"351","endLine":136,"endColumn":15},{"ruleId":"394","severity":1,"message":"395","line":299,"column":32,"nodeType":"396","messageId":"397","endLine":299,"endColumn":34},{"ruleId":"394","severity":1,"message":"395","line":300,"column":35,"nodeType":"396","messageId":"397","endLine":300,"endColumn":37},{"ruleId":"394","severity":1,"message":"395","line":310,"column":32,"nodeType":"396","messageId":"397","endLine":310,"endColumn":34},{"ruleId":"385","severity":1,"message":"386","line":131,"column":51,"nodeType":"387","endLine":131,"endColumn":59},{"ruleId":"352","severity":1,"message":"360","line":190,"column":6,"nodeType":"354","endLine":190,"endColumn":8,"suggestions":"409"},{"ruleId":"348","severity":1,"message":"392","line":1,"column":15,"nodeType":"350","messageId":"351","endLine":1,"endColumn":24},{"ruleId":"348","severity":1,"message":"362","line":12,"column":12,"nodeType":"350","messageId":"351","endLine":12,"endColumn":20},{"ruleId":"348","severity":1,"message":"363","line":29,"column":19,"nodeType":"350","messageId":"351","endLine":29,"endColumn":23},{"ruleId":"352","severity":1,"message":"364","line":79,"column":8,"nodeType":"354","endLine":79,"endColumn":10,"suggestions":"410"},"no-native-reassign",["411"],"no-negated-in-lhs",["412"],"no-unused-vars","'Link' is defined but never used.","Identifier","unusedVar","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'getUserDetails'. Either include it or remove the dependency array.","ArrayExpression",["413"],"'Row' is defined but never used.","'vorname' is assigned a value but never used.","'name' is assigned a value but never used.","'aktiv' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'loadAerzte', 'loadEmpfaenger', and 'loadLieferanten'. Either include them or remove the dependency array.",["414"],"'maxMenge' is assigned a value but never used.","'data' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'props.btm.btm.menge'. Either include it or remove the dependency array. If 'setMaxMenge' needs the current value of 'props.btm.btm.menge', you can also switch to useReducer instead of useState and read 'props.btm.btm.menge' in the reducer.",["415"],"React Hook useEffect has missing dependencies: 'getCurrentApotheke' and 'getUserData'. Either include them or remove the dependency array.",["416"],"'useParams' is defined but never used.","React Hook useEffect has a missing dependency: 'getApothekeData'. Either include it or remove the dependency array.",["417"],"React Hook useEffect has a missing dependency: 'getBtms'. Either include it or remove the dependency array.",["418"],"array-callback-return","Array.prototype.filter() expects a value to be returned at the end of arrow function.","ArrowFunctionExpression","expectedAtEnd","React Hook useEffect has a missing dependency: 'getPersonalData'. Either include it or remove the dependency array.",["419"],"React Hook useEffect has a missing dependency: 'getArztData'. Either include it or remove the dependency array.",["420"],"React Hook useEffect has a missing dependency: 'getLieferantData'. Either include it or remove the dependency array.",["421"],"React Hook useEffect has a missing dependency: 'getBtmData'. Either include it or remove the dependency array.",["422"],"react/jsx-no-duplicate-props","No duplicate props allowed","JSXAttribute","'setShowError' is assigned a value but never used.","'setErrorMessage' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'activeDarreichungsform', 'activeEinheit', 'darreichungsformen', and 'einheiten'. Either include them or remove the dependency array.",["423"],"'useEffect' is defined but never used.","'cancel' is assigned a value but never used.","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected",["411"],["412"],["424"],["425"],["426"],["427"],["428"],["429"],["430"],["431"],["432"],["433"],["434"],"no-global-assign","no-unsafe-negation",{"desc":"435","fix":"436"},{"desc":"437","fix":"438"},{"desc":"439","fix":"440"},{"desc":"441","fix":"442"},{"desc":"443","fix":"444"},{"desc":"445","fix":"446"},{"desc":"447","fix":"448"},{"desc":"449","fix":"450"},{"desc":"451","fix":"452"},{"desc":"453","fix":"454"},{"desc":"455","fix":"456"},{"desc":"435","fix":"457"},{"desc":"441","fix":"458"},{"desc":"453","fix":"459"},{"desc":"449","fix":"460"},{"desc":"447","fix":"461"},{"desc":"443","fix":"462"},{"desc":"451","fix":"463"},{"desc":"445","fix":"464"},{"desc":"455","fix":"465"},{"desc":"437","fix":"466"},{"desc":"439","fix":"467"},"Update the dependencies array to be: [getUserDetails]",{"range":"468","text":"469"},"Update the dependencies array to be: [loadAerzte, loadEmpfaenger, loadLieferanten]",{"range":"470","text":"471"},"Update the dependencies array to be: [props.btm.btm.menge]",{"range":"472","text":"473"},"Update the dependencies array to be: [getCurrentApotheke, getUserData]",{"range":"474","text":"475"},"Update the dependencies array to be: [getApothekeData]",{"range":"476","text":"477"},"Update the dependencies array to be: [getBtms]",{"range":"478","text":"479"},"Update the dependencies array to be: [getPersonalData]",{"range":"480","text":"481"},"Update the dependencies array to be: [getArztData]",{"range":"482","text":"483"},"Update the dependencies array to be: [getLieferantData]",{"range":"484","text":"485"},"Update the dependencies array to be: [getBtmData]",{"range":"486","text":"487"},"Update the dependencies array to be: [activeDarreichungsform, activeEinheit, darreichungsformen, einheiten, props.btm]",{"range":"488","text":"489"},{"range":"490","text":"469"},{"range":"491","text":"475"},{"range":"492","text":"487"},{"range":"493","text":"483"},{"range":"494","text":"481"},{"range":"495","text":"477"},{"range":"496","text":"485"},{"range":"497","text":"479"},{"range":"498","text":"489"},{"range":"499","text":"471"},{"range":"500","text":"473"},[1478,1480],"[getUserDetails]",[6832,6834],"[loadAerzte, loadEmpfaenger, loadLieferanten]",[2781,2783],"[props.btm.btm.menge]",[2921,2923],"[getCurrentApotheke, getUserData]",[1118,1120],"[getApothekeData]",[1141,1143],"[getBtms]",[2410,2412],"[getPersonalData]",[2331,2333],"[getArztData]",[2475,2477],"[getLieferantData]",[2310,2312],"[getBtmData]",[2744,2755],"[activeDarreichungsform, activeEinheit, darreichungsformen, einheiten, props.btm]",[1478,1480],[2921,2923],[2310,2312],[2331,2333],[2410,2412],[1125,1127],[2475,2477],[1141,1143],[2744,2755],[5974,5976],[2781,2783]]
\ No newline at end of file
+[{"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\index.js":"1","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\App.js":"2","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\startseite\\Startseite.js":"3","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BTMBuch.js":"4","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\ApothekeEinstellungen.js":"5","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\startseite\\Login.js":"6","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekenDetails.js":"7","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekeBtmList.js":"8","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\headers\\StatusHeader.js":"9","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\headers\\Header.js":"10","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\user\\UserDetails.js":"11","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\BtmTabelle.js":"12","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\PersonalTabelle.js":"13","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\LieferantTabelle.js":"14","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\EmpfaengerTabelle.js":"15","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\ArztTabelle.js":"16","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\ApothekeEditModal.js":"17","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BuchungTabelle.js":"18","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\ApothekeRegisterModal.js":"19","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\UserDetailsUpdateModal.js":"20","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\DeleteModal.js":"21","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\BtmAddModal.js":"22","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\BtmEditModal.js":"23","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\PersonalEditModal.js":"24","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\LieferantEditModal.js":"25","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\LieferantAddModal.js":"26","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\PersonalAddModal.js":"27","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\ArztAddModal.js":"28","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\EmpfaengerAddModal.js":"29","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\EmpfaengerEditModal.js":"30","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\ArztEditModal.js":"31","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeuesBtmModal.js":"32","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\useForm.js":"33","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\UpdateBuchungModal.js":"34","C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeueBuchungModal.js":"35"},{"size":280,"mtime":1607458621577,"results":"36","hashOfConfig":"37"},{"size":995,"mtime":1610031794238,"results":"38","hashOfConfig":"37"},{"size":291,"mtime":1607935571160,"results":"39","hashOfConfig":"37"},{"size":2247,"mtime":1610031794266,"results":"40","hashOfConfig":"37"},{"size":5630,"mtime":1610031794247,"results":"41","hashOfConfig":"37"},{"size":2417,"mtime":1610031794277,"results":"42","hashOfConfig":"37"},{"size":1791,"mtime":1610031794244,"results":"43","hashOfConfig":"37"},{"size":1885,"mtime":1610031794240,"results":"44","hashOfConfig":"37"},{"size":542,"mtime":1607935571157,"results":"45","hashOfConfig":"37"},{"size":206,"mtime":1607935571155,"results":"46","hashOfConfig":"37"},{"size":1626,"mtime":1610031794334,"results":"47","hashOfConfig":"37"},{"size":4028,"mtime":1610031794254,"results":"48","hashOfConfig":"37"},{"size":4316,"mtime":1610031794263,"results":"49","hashOfConfig":"37"},{"size":4331,"mtime":1610031794260,"results":"50","hashOfConfig":"37"},{"size":4659,"mtime":1610031794257,"results":"51","hashOfConfig":"37"},{"size":4046,"mtime":1610031794251,"results":"52","hashOfConfig":"37"},{"size":3083,"mtime":1610102864285,"results":"53","hashOfConfig":"37"},{"size":13120,"mtime":1610048670096,"results":"54","hashOfConfig":"37"},{"size":9291,"mtime":1610102436237,"results":"55","hashOfConfig":"37"},{"size":7699,"mtime":1610102935583,"results":"56","hashOfConfig":"37"},{"size":1155,"mtime":1610103836630,"results":"57","hashOfConfig":"37"},{"size":4548,"mtime":1610031794287,"results":"58","hashOfConfig":"37"},{"size":5681,"mtime":1610031794289,"results":"59","hashOfConfig":"37"},{"size":6436,"mtime":1610103205863,"results":"60","hashOfConfig":"37"},{"size":3573,"mtime":1610031794297,"results":"61","hashOfConfig":"37"},{"size":3243,"mtime":1610031794295,"results":"62","hashOfConfig":"37"},{"size":5169,"mtime":1610102809905,"results":"63","hashOfConfig":"37"},{"size":3205,"mtime":1610031794282,"results":"64","hashOfConfig":"37"},{"size":3486,"mtime":1610017671653,"results":"65","hashOfConfig":"37"},{"size":3874,"mtime":1610017671654,"results":"66","hashOfConfig":"37"},{"size":3542,"mtime":1610031794284,"results":"67","hashOfConfig":"37"},{"size":4908,"mtime":1610102701421,"results":"68","hashOfConfig":"37"},{"size":716,"mtime":1607458621580,"results":"69","hashOfConfig":"37"},{"size":8294,"mtime":1610103014156,"results":"70","hashOfConfig":"37"},{"size":8122,"mtime":1610102670716,"results":"71","hashOfConfig":"37"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1d2vijs",{"filePath":"74","messages":"75","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"76","messages":"77","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"78","messages":"79","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"82","messages":"83","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"84","messages":"85","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"88","messages":"89","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"90","messages":"91","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"92","messages":"93","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"94","messages":"95","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"96","messages":"97","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"98","messages":"99","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"104","messages":"105","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"106","messages":"107","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"108","messages":"109","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"110","messages":"111","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"114","messages":"115","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"116","messages":"117","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"118","messages":"119","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"120","messages":"121","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"122","messages":"123","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"124","messages":"125","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"126","messages":"127","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"128","messages":"129","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"130","messages":"131","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"132","messages":"133","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"136","messages":"137","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"138","messages":"139","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"140","messages":"141","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\index.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\App.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\startseite\\Startseite.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BTMBuch.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\ApothekeEinstellungen.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\startseite\\Login.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekenDetails.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\ApothekeBtmList.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\headers\\StatusHeader.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\headers\\Header.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\user\\UserDetails.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\BtmTabelle.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\PersonalTabelle.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\LieferantTabelle.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\EmpfaengerTabelle.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\apotheke\\einstellungen\\tabellen\\ArztTabelle.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\ApothekeEditModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\btmbuch\\BuchungTabelle.js",["142","143","144","145"],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\ApothekeRegisterModal.js",["146"],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\UserDetailsUpdateModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\DeleteModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\BtmAddModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\BtmEditModal.js",["147","148","149"],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\PersonalEditModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\LieferantEditModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\LieferantAddModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\PersonalAddModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\ArztAddModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\EmpfaengerAddModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\EmpfaengerEditModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\ArztEditModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeuesBtmModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\useForm.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\modals\\UpdateBuchungModal.js",[],"C:\\Users\\Public\\EDB\\EDB-Apo\\frontend\\src\\components\\btmbuch\\NeueBuchungModal.js",["150","151"],{"ruleId":"152","severity":1,"message":"153","line":32,"column":9,"nodeType":"154","messageId":"155","endLine":32,"endColumn":16},{"ruleId":"152","severity":1,"message":"156","line":35,"column":9,"nodeType":"154","messageId":"155","endLine":35,"endColumn":16},{"ruleId":"152","severity":1,"message":"157","line":35,"column":18,"nodeType":"154","messageId":"155","endLine":35,"endColumn":28},{"ruleId":"158","severity":1,"message":"159","line":252,"column":6,"nodeType":"160","endLine":252,"endColumn":8,"suggestions":"161"},{"ruleId":"152","severity":1,"message":"162","line":135,"column":9,"nodeType":"154","messageId":"155","endLine":135,"endColumn":15},{"ruleId":"152","severity":1,"message":"163","line":30,"column":21,"nodeType":"154","messageId":"155","endLine":30,"endColumn":33},{"ruleId":"152","severity":1,"message":"164","line":31,"column":24,"nodeType":"154","messageId":"155","endLine":31,"endColumn":39},{"ruleId":"158","severity":1,"message":"165","line":75,"column":6,"nodeType":"160","endLine":75,"endColumn":17,"suggestions":"166"},{"ruleId":"152","severity":1,"message":"167","line":12,"column":12,"nodeType":"154","messageId":"155","endLine":12,"endColumn":20},{"ruleId":"152","severity":1,"message":"168","line":29,"column":19,"nodeType":"154","messageId":"155","endLine":29,"endColumn":23},"no-unused-vars","'classes' is assigned a value but never used.","Identifier","unusedVar","'vorname' is assigned a value but never used.","'setVorname' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has missing dependencies: 'loadAerzte', 'loadEmpfaenger', and 'loadLieferanten'. Either include them or remove the dependency array.","ArrayExpression",["169"],"'cancel' is assigned a value but never used.","'setShowError' is assigned a value but never used.","'setErrorMessage' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'activeDarreichungsform', 'activeEinheit', 'darreichungsformen', and 'einheiten'. Either include them or remove the dependency array.",["170"],"'maxMenge' is assigned a value but never used.","'data' is assigned a value but never used.",{"desc":"171","fix":"172"},{"desc":"173","fix":"174"},"Update the dependencies array to be: [loadAerzte, loadEmpfaenger, loadLieferanten]",{"range":"175","text":"176"},"Update the dependencies array to be: [activeDarreichungsform, activeEinheit, darreichungsformen, einheiten, props.btm]",{"range":"177","text":"178"},[8503,8505],"[loadAerzte, loadEmpfaenger, loadLieferanten]",[2744,2755],"[activeDarreichungsform, activeEinheit, darreichungsformen, einheiten, props.btm]"]
\ No newline at end of file
diff --git a/frontend/src/App.scss b/frontend/src/App.scss
index 3d68af5675a968629f1655c4908b4914de7d73b3..f824a7f2bd656577a4140ece07b58ebd29d75346 100644
--- a/frontend/src/App.scss
+++ b/frontend/src/App.scss
@@ -1,6 +1,6 @@
 @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;1,300&display=swap');
 
-$base-green: rgb(0, 255, 136);
+$base-green: rgb(34, 139, 34);
 $base-blue: rgb(0, 212, 255);
 
 $theme-colors: (
@@ -24,7 +24,7 @@ $theme-colors: (
 .header{
   color: white;
   background-color: $base-green; 
-  background: linear-gradient(90deg,  $base-green 0%, $base-blue 100%);
+  background: $base-green;
   padding: 1em;
   padding-left: 7em;
 }
diff --git a/frontend/src/components/btmbuch/BuchungTabelle.js b/frontend/src/components/btmbuch/BuchungTabelle.js
index f8a3ccc22062e5ae31855faedc6d9dccf2fe25e0..bec44db6554c54acdfcb1763bbcc3c23d21b45b1 100644
--- a/frontend/src/components/btmbuch/BuchungTabelle.js
+++ b/frontend/src/components/btmbuch/BuchungTabelle.js
@@ -20,6 +20,7 @@ function BuchungTabelle(props) {
 
   const [page, setPage] = React.useState(0);
   const [rowsPerPage, setRowsPerPage] = React.useState(10);
+  const[vorname, setVorname]=React.useState('');
 
   const [open, setOpen] = useState(false);
   const { enqueueSnackbar } = useSnackbar();
@@ -209,36 +210,30 @@ function BuchungTabelle(props) {
     const marginLeft = 40;
     const doc = new jsPDF(orientation, unit, size);
 
-    doc.setFontSize(10);
-    console.log('print btm liste', btm.name);
-
     const title = [props.btm.btm.name];
     const headers = [["Datum", "Lieferant/Patient","Arztpraxis", "Zugang", "Abgang", "Rp.Nr./L.Nr.", "Prüfdatum", "Prüfer Kürzel"]];
 
     const moment = require('moment');
  
     const data = btm.buchungen.map(buchung => [moment(buchung.datum).format("DD.MM.YYYY"),
-    buchung.typ === "ZUGANG" ? buchung.lieferant.name : buchung.empfaenger.vorname + " " + buchung.empfaenger.name,
-    buchung.typ === "ABGANG" ? buchung.arzt.name : "",
+    buchung.typ === "ZUGANG" ? buchung.lieferant.name + "\n" + buchung.lieferant.anschrift.strasse + " " + buchung.lieferant.anschrift.nummer + ",\n"+ buchung.lieferant.anschrift.ort +" " + buchung.lieferant.anschrift.plz : buchung.empfaenger.vorname + " " + buchung.empfaenger.name + "\n" + buchung.empfaenger.anschrift.strasse +" "+ buchung.empfaenger.anschrift.nummer + ",\n" + buchung.empfaenger.anschrift.ort + ",\n" + buchung.empfaenger.anschrift.plz ,
+    buchung.typ === "ABGANG" ? buchung.arzt.name + "\n" + buchung.arzt.anschrift.strasse + " " + buchung.arzt.anschrift.nummer + ",\n" + buchung.arzt.anschrift.ort + ",\n" + buchung.arzt.anschrift.plz : "",
     buchung.typ === "ZUGANG" ? buchung.menge : "",
     buchung.typ === "ZUGANG" ? "" : buchung.menge,
     buchung.typ === "ZUGANG" ? buchung.anforderungsschein : buchung.rezept,
     buchung.pruefdatum ? moment(buchung.pruefdatum).format("DD.MM.YYYY") : "",
-    buchung.pruefer ? buchung.pruefer.vorname+" "+buchung.pruefer.name : "",
+    buchung.pruefer ? buchung.pruefer.vorname.charAt(0) +" "+buchung.pruefer.name.charAt(0) : "",
    ]);
- 
+
     let content = {
       startY: 50,
       head: headers,
       body: data
     };
-  
-
- 
+   
     doc.text(title, marginLeft, 40);
     doc.autoTable(content);
     doc.save("BtmListe.pdf")
-
   }
 
   useEffect(loadLieferanten, [apoId]);
@@ -339,7 +334,7 @@ function BuchungTabelle(props) {
                   <td>{buchung.typ === "ZUGANG" ? "" : buchung.menge}</td>
                   <td>{buchung.typ === "ZUGANG" ? buchung.anforderungsschein : buchung.rezept}</td>
                   <td>{buchung.pruefdatum ? <Moment format="DD.MM.YYYY">{buchung.pruefdatum}</Moment> : ""}</td>
-                  <td>{buchung.pruefer ? buchung.pruefer.vorname+" "+buchung.pruefer.name : ""}</td>
+                  <td >{buchung.pruefer ? buchung.pruefer.vorname +" "+buchung.pruefer.name : "" }</td>
 
                   {props.aktiveRolle.toLowerCase() === "admin" || props.aktiveRolle.toLowerCase() === "pruefer" ?
                     <th>{renderPruefButton(buchung)}</th> : null}
diff --git a/frontend/src/components/btmbuch/NeueBuchungModal.js b/frontend/src/components/btmbuch/NeueBuchungModal.js
index f0001ba242f5abe5c39e5f43bb69d6a0ea989d32..1db6d2371e39f6c91924ddd09e040a9c69d494c8 100644
--- a/frontend/src/components/btmbuch/NeueBuchungModal.js
+++ b/frontend/src/components/btmbuch/NeueBuchungModal.js
@@ -195,13 +195,10 @@ function NeueBuchungModal(props) {
 
                 </Modal.Body>
                 <Modal.Footer>
-                    <Button variant="danger" onClick={hideModal}>Close</Button>
+                    <Button variant="danger" onClick={hideModal}>Abbrechen</Button>
                     <Button variant="primary" type="submit">Bestätigen</Button>
                 </Modal.Footer>
             </Form>
-
-
-
         </Modal>
     )
 }
diff --git a/frontend/src/modals/ApothekeEditModal.js b/frontend/src/modals/ApothekeEditModal.js
index 75651557d256c69d91ba81e137c9d9adcd111764..8e1b2f68b930186430ed108edc7029c97c0e31e8 100644
--- a/frontend/src/modals/ApothekeEditModal.js
+++ b/frontend/src/modals/ApothekeEditModal.js
@@ -71,7 +71,7 @@ function ApothekeEditModal(props) {
           </Form.Group>
         </Modal.Body>
         <Modal.Footer>
-          <Button variant="secondary" onClick={props.onHide}>Abbrechen</Button>
+          <Button variant="danger"  onClick={props.onHide}>Abbrechen</Button>
           <Button variant="primary" type="Submit">Bearbeiten</Button>
         </Modal.Footer>
       </Form>
diff --git a/frontend/src/modals/DeleteModal.js b/frontend/src/modals/DeleteModal.js
index 8584712b7181b0537fd847cd48cdf8a9654d8046..3fb0998a4340a1ffd3a31da963e4865026b70af0 100644
--- a/frontend/src/modals/DeleteModal.js
+++ b/frontend/src/modals/DeleteModal.js
@@ -30,7 +30,7 @@ function DeleteModal(props) {
         </Row>
       </Modal.Body>
       <Modal.Footer>
-        <Button autoFocus variant="" onClick={props.onHide}>Abbrechen</Button>
+        <Button autoFocus variant="secondary"  onClick={props.onHide}>Abbrechen</Button>
         <Button variant="danger" onClick={() => { props.onHide(); props.onSubmit() }}>Bestätigen</Button>
       </Modal.Footer>
     </Modal>
diff --git a/frontend/src/modals/PersonalAddModal.js b/frontend/src/modals/PersonalAddModal.js
index 9cae6476943895684c161adfd26c7a8ed560be2a..abaf275edae8a6bd7e6f62b40823782477fd3ead 100644
--- a/frontend/src/modals/PersonalAddModal.js
+++ b/frontend/src/modals/PersonalAddModal.js
@@ -136,7 +136,7 @@ function PersonalAddModal(props) {
           </Form.Row>
         </Modal.Body>
         <Modal.Footer>
-          <Button autofocus variant="" onClick={props.onHide}>Abbrechen</Button>
+          <Button autofocus variant="danger"  onClick={props.onHide}>Abbrechen</Button>
           <Button variant="primary" type="submit" >Bestätigen</Button>
         </Modal.Footer>
       </Form>
diff --git a/frontend/src/modals/PersonalEditModal.js b/frontend/src/modals/PersonalEditModal.js
index 77084788ded3c9a4f79e2075b496cc0df3ba950c..28312cf8ef98a8cdf2195966d66e24f9575598de 100644
--- a/frontend/src/modals/PersonalEditModal.js
+++ b/frontend/src/modals/PersonalEditModal.js
@@ -160,7 +160,7 @@ function PersonalUpdateModal(props) {
           </Form.Group>
         </Modal.Body>
         <Modal.Footer>
-          <Button autofocus variant="" onClick={props.onHide}>Abbrechen</Button>
+          <Button autofocus variant="danger" onClick={props.onHide}>Abbrechen</Button>
           <Button variant="primary" type="submit" >Bestätigen</Button>
         </Modal.Footer>
       </Form>
diff --git a/frontend/src/modals/UpdateBuchungModal.js b/frontend/src/modals/UpdateBuchungModal.js
index b007f4f77d7edd1e09ea9edc36c118357689ee59..8b1e13d76dfaa34d83e41f95231543f9a963052e 100644
--- a/frontend/src/modals/UpdateBuchungModal.js
+++ b/frontend/src/modals/UpdateBuchungModal.js
@@ -190,7 +190,7 @@ function UpdateBuchungModal(props) {
                     <Abgang buchung={props.buchung} />
                 </Modal.Body>
                 <Modal.Footer>
-                    <Button variant="" onClick={props.onHide}>Abbrechen</Button>
+                    <Button variant="danger"  onClick={props.onHide}>Abbrechen</Button>
                     <Button variant="primary" type="submit">Bestätigen</Button>
                 </Modal.Footer>
             </Form>
diff --git a/frontend/src/modals/UserDetailsUpdateModal.js b/frontend/src/modals/UserDetailsUpdateModal.js
index ea2fb7626f33a744f9848ff2a5aeb23ead9b01ed..b20df79afe39b5cb0a68de8d517df9ca0c38464c 100644
--- a/frontend/src/modals/UserDetailsUpdateModal.js
+++ b/frontend/src/modals/UserDetailsUpdateModal.js
@@ -173,7 +173,7 @@ function UserDetailsUpdateModal(props) {
                     </Form.Row>
                 </Modal.Body>
                 <Modal.Footer>
-                    <Button autofocus variant="" onClick={props.onHide}>Abbrechen</Button>
+                    <Button autofocus variant="danger"  onClick={props.onHide}>Abbrechen</Button>
                     <Button variant="primary" type="submit" >Bestätigen</Button>
                 </Modal.Footer>
             </Form>