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>