diff --git a/Backend/src/main/java/com/ebdapo/backend/entity/Benutzer.java b/Backend/src/main/java/com/ebdapo/backend/entity/Benutzer.java index a5ed9a0e2012fb1d520f7352096a082ef9892ac0..4bc26a85b3b9fe9f33a841226591a2de2bd193b1 100644 --- a/Backend/src/main/java/com/ebdapo/backend/entity/Benutzer.java +++ b/Backend/src/main/java/com/ebdapo/backend/entity/Benutzer.java @@ -4,6 +4,7 @@ import com.ebdapo.backend.entity.enums.Rolle; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Data; import lombok.NoArgsConstructor; +import org.hibernate.annotations.Type; import javax.persistence.*; import java.util.List; @@ -31,7 +32,8 @@ public class Benutzer { @Column(name="passwort", nullable = false) private String passwort; - @Column(name="aktiv", nullable = false) + @Type(type = "org.hibernate.type.NumericBooleanType") + @Column(name="aktiv",columnDefinition = "TINYINT", nullable = false) private boolean aktiv; @Enumerated(EnumType.STRING) diff --git a/Backend/src/main/java/com/ebdapo/backend/entity/Betaeubungsmittel.java b/Backend/src/main/java/com/ebdapo/backend/entity/Betaeubungsmittel.java index a4c11cef8ad38b7060a954b5a2033e768baca54e..05aaa20c79cfeb52e62f77551f98865e2fc9cee5 100644 --- a/Backend/src/main/java/com/ebdapo/backend/entity/Betaeubungsmittel.java +++ b/Backend/src/main/java/com/ebdapo/backend/entity/Betaeubungsmittel.java @@ -31,6 +31,9 @@ public class Betaeubungsmittel { @Column(name="einheit", nullable = false) private Einheit einheit; + @Column(name="menge") + private int menge; + @ManyToOne(targetEntity = Apotheke.class) @JoinColumn(name="apotheke", referencedColumnName = "id") private Apotheke apotheke; diff --git a/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/BenutzerAPIDetails.java b/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/BenutzerAPIDetails.java index 45526e14cdfc5deda607ae60172822f6d4b5b4c4..48da38a38287f0952e562a4f6b3006686cd787e9 100644 --- a/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/BenutzerAPIDetails.java +++ b/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/BenutzerAPIDetails.java @@ -19,5 +19,6 @@ public class BenutzerAPIDetails { private String apotheke; //id private String oldPassword; private String newPassword; + private String passwort; } diff --git a/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/BetaeubungsmittelAPIDetails.java b/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/BetaeubungsmittelAPIDetails.java index 8f3f4fdb33d38a690d2c418b6cee600387a049e5..e0441e150d00d7640a21a03c9fcd68fedfd85d02 100644 --- a/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/BetaeubungsmittelAPIDetails.java +++ b/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/BetaeubungsmittelAPIDetails.java @@ -15,6 +15,7 @@ public class BetaeubungsmittelAPIDetails { private Darreichungsform darreichungsform; private Einheit einheit; private String apotheke; //id + private int menge; } diff --git a/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/LieferantAPIDetails.java b/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/LieferantAPIDetails.java index 22f3745716489ebebebe5b08accf07ebe0584501..ec41568a416d3e98c766bb229fc8e0848598e64c 100644 --- a/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/LieferantAPIDetails.java +++ b/Backend/src/main/java/com/ebdapo/backend/entity/apidetails/LieferantAPIDetails.java @@ -12,7 +12,6 @@ public class LieferantAPIDetails { private String id; private String name; private Adresse anschrift; - private String apotheke; //id } diff --git a/Backend/src/main/java/com/ebdapo/backend/restcontroller/ApothekenController.java b/Backend/src/main/java/com/ebdapo/backend/restcontroller/ApothekenController.java index 010aaf1beff2098d9d134ac11db007ab5cb6db3e..dd799e87d6a2b50ee5e9bf082227c41baaec7a5f 100644 --- a/Backend/src/main/java/com/ebdapo/backend/restcontroller/ApothekenController.java +++ b/Backend/src/main/java/com/ebdapo/backend/restcontroller/ApothekenController.java @@ -27,6 +27,7 @@ public class ApothekenController { @PostMapping("/apotheke") public ResponseEntity<?> newApotheke(@RequestBody Apotheke apotheke) { + if(apotheke.getName() == null || apotheke.getEmail() == null || apotheke.getAnschrift() == null) { throw new InvalidInputException("Ungültige oder fehlende Angaben"); } @@ -53,12 +54,14 @@ public class ApothekenController { @PutMapping("/apotheke/{apothekeId}") public ResponseEntity<?> updateApotheke(@PathVariable String apothekeId, @RequestBody Apotheke newApo) { - if(!authController.checkIfAuthorized(authController.getCurrentUsername(), apothekeId)) { + //only admin can update apotheke + if(!authController.isAdmin(authController.getCurrentUsername(), apothekeId)) { return new ResponseEntity<>(HttpStatus.FORBIDDEN); } Apotheke apo = apothekenRepo.findById(apothekeId).orElseThrow(InvalidInputException::new); apo.setName(newApo.getName()); + apo.setEmail(newApo.getEmail()); if(newApo.getAnschrift() != null){ apo.getAnschrift().setNummer(newApo.getAnschrift().getNummer()); apo.getAnschrift().setOrt(newApo.getAnschrift().getOrt()); @@ -73,9 +76,15 @@ public class ApothekenController { @DeleteMapping("/apotheke/{apothekeId}") public ResponseEntity<?> deleteApotheke(@PathVariable String apothekeId) { + //only admin can delete apotheke + if(!authController.isAdmin(authController.getCurrentUsername(), apothekeId)) { + return new ResponseEntity<>(HttpStatus.FORBIDDEN); + } + if(!apothekenRepo.existsById(apothekeId)) { throw new BadRequestException(); } + apothekenRepo.deleteById(apothekeId); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/Backend/src/main/java/com/ebdapo/backend/restcontroller/ArztController.java b/Backend/src/main/java/com/ebdapo/backend/restcontroller/ArztController.java index 595edbcd8d2b68438bd2e743c855f2ad86d7e3f7..9ef6619967e03e1da5269f4c4e17a6973e07619a 100644 --- a/Backend/src/main/java/com/ebdapo/backend/restcontroller/ArztController.java +++ b/Backend/src/main/java/com/ebdapo/backend/restcontroller/ArztController.java @@ -83,10 +83,6 @@ public class ArztController { if(found == null) { throw new InvalidInputException("Arzt konnte nicht gefunden werden"); } - - if(arzt.getApotheke() == null || arzt.getApotheke().isEmpty()){ - throw new InvalidInputException("ApothekenId darf nicht leer sein"); - } found.setName(arzt.getName()); found.getAnschrift().setPlz(arzt.getAnschrift().getPlz()); @@ -94,7 +90,6 @@ public class ArztController { found.getAnschrift().setStrasse(arzt.getAnschrift().getStrasse()); found.getAnschrift().setNummer(arzt.getAnschrift().getNummer()); - found.setApotheke(apothekenRepo.findById(arzt.getApotheke()).orElseThrow(InvalidInputException::new)); arztRepo.save(found); return new ResponseEntity<>(found, HttpStatus.OK); } diff --git a/Backend/src/main/java/com/ebdapo/backend/restcontroller/BenutzerController.java b/Backend/src/main/java/com/ebdapo/backend/restcontroller/BenutzerController.java index d4ff3ad1b0b801ed7282f002724722d6938b2fdd..f68bb616d2d2d8c2a759331fd1825c6fab176609 100644 --- a/Backend/src/main/java/com/ebdapo/backend/restcontroller/BenutzerController.java +++ b/Backend/src/main/java/com/ebdapo/backend/restcontroller/BenutzerController.java @@ -56,31 +56,34 @@ public class BenutzerController { } @PostMapping("/apotheke/{apothekeId}/benutzer") - public ResponseEntity<?> createNewBenutzer(@PathVariable String apothekeId, @RequestBody Benutzer benutzer) { + public ResponseEntity<?> createNewBenutzer(@PathVariable String apothekeId, @RequestBody BenutzerAPIDetails benutzerData) { if(!authController.checkIfAuthorized(authController.getCurrentUsername(), apothekeId)) { return new ResponseEntity<>(HttpStatus.FORBIDDEN); } - benutzer.setApotheke(apothekeRepo.findById(apothekeId).orElseThrow(InvalidInputException::new)); - - String nutzername = benutzer.getNutzername(); - String name = benutzer.getName(); - String vorname = benutzer.getVorname(); - String passwort = benutzer.getPasswort(); - - if(nutzername == null || benutzer.getApotheke() == null || vorname == null || name == null || - passwort == null || benutzer.getRolle() == null){ + if(benutzerData.getPasswort() == null || benutzerData.getVorname() == null || benutzerData.getName() == null + || benutzerData.getRolle() == null) { throw new InvalidInputException("Ungültige oder fehlende Angaben"); - }else if(nutzername.length() < 4 ||vorname.length() < 1 || name.length() < 1 || passwort.length() < 5) { + }else if(benutzerData.getNutzername().length() < 4 || benutzerData.getVorname().length() < 1 || + benutzerData.getName().length() < 1 || benutzerData.getPasswort().length() < 5) { throw new InvalidInputException("Ungültige oder fehlende Angaben"); } - if(checkIfUserExists(benutzer)) { + if(checkIfUserExists(benutzerData)) { throw new InvalidInputException("Benutzer existiert bereits"); } + Benutzer benutzer = new Benutzer(); + + benutzer.setApotheke(apothekeRepo.findById(apothekeId).orElseThrow(InvalidInputException::new)); + benutzer.setNutzername(benutzerData.getNutzername()); + benutzer.setName(benutzerData.getName()); + benutzer.setVorname(benutzerData.getVorname()); + benutzer.setPasswort(benutzerData.getPasswort()); + benutzer.setRolle(benutzerData.getRolle()); + benutzer.setId(UUID.randomUUID().toString()); - benutzer.setPasswort(new BCryptPasswordEncoder().encode(benutzer.getPasswort())); + benutzer.setPasswort(new BCryptPasswordEncoder().encode(benutzerData.getPasswort())); benutzer.setAktiv(true); benutzerRepo.save(benutzer); return new ResponseEntity<>(benutzer, HttpStatus.CREATED); @@ -96,41 +99,67 @@ public class BenutzerController { @PutMapping("/apotheke/{apothekeId}/benutzer/{benutzerId}") public ResponseEntity<?> updateBenutzerById(@PathVariable String apothekeId, @PathVariable String benutzerId, @RequestBody BenutzerAPIDetails newBenutzer){ - if(!authController.checkIfAuthorizedAndSameUserOrAdmin(authController.getCurrentUsername(), apothekeId, benutzerId)) { + String authorized = authController.checkIfAuthorizedAndSameUserOrAdmin(authController.getCurrentUsername(), apothekeId, benutzerId); + if(authorized == null) { return new ResponseEntity<>(HttpStatus.FORBIDDEN); } + if(!benutzerRepo.existsById(benutzerId)){ throw new InvalidInputException("Falsche ID"); } Benutzer benutzer = benutzerRepo.findById(benutzerId).orElseThrow(InvalidInputException::new); + if(usernameIsTaken(benutzer.getNutzername(), newBenutzer.getNutzername())) { + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + + + boolean reqFromAdmin = authorized.equals("admin"); + //checks if the user is authorized to change it (entering valid password) String pw = newBenutzer.getOldPassword() ; - if(pw != null && !pw.isBlank() && !benutzer.getRolle().toString().toLowerCase().equals("admin")){ - if(!new BCryptPasswordEncoder().matches(pw, benutzer.getPasswort())) { - throw new InvalidInputException("Falsches Passwort"); + + if(!reqFromAdmin){ + if(pw != null && !pw.isBlank()){ + if(!new BCryptPasswordEncoder().matches(pw, benutzer.getPasswort())) { + return new ResponseEntity<>(HttpStatus.FORBIDDEN); + } + }else { + return new ResponseEntity<>(HttpStatus.FORBIDDEN); } - }else { - throw new InvalidInputException("Passwort wird benötigt"); } Apotheke apo = apothekeRepo.findById(apothekeId).orElseThrow(InvalidInputException::new); benutzer.setName(newBenutzer.getName()); benutzer.setNutzername(newBenutzer.getNutzername()); benutzer.setVorname(newBenutzer.getVorname()); + + //Nur Admin kann aktiv oder inaktiv setzen + if(reqFromAdmin){ + benutzer.setAktiv(newBenutzer.isAktiv()); + } + + //nur admin kann Rolle ändern + if(reqFromAdmin && newBenutzer.getRolle() != null){ + benutzer.setRolle(newBenutzer.getRolle()); + } + if(newBenutzer.getNewPassword() != null){ benutzer.setPasswort(new BCryptPasswordEncoder().encode(newBenutzer.getNewPassword())); } - benutzer.setAktiv(newBenutzer.isAktiv()); - benutzer.setRolle(newBenutzer.getRolle()); + benutzer.setApotheke(apo); benutzerRepo.save(benutzer); return new ResponseEntity<>(benutzer, HttpStatus.OK); } + private boolean usernameIsTaken(String current, String newName) { + return !current.equals(newName) && benutzerRepo.getBenutzerByUsername(newName) != null; + } + @DeleteMapping("/apotheke/{apothekeId}/benutzer/{benutzerId}") public ResponseEntity<?> deleteUser(@PathVariable String apothekeId, @PathVariable String benutzerId) { if(!authController.checkIfAuthorized(authController.getCurrentUsername(), apothekeId)) { @@ -154,7 +183,7 @@ public class BenutzerController { } - private boolean checkIfUserExists(Benutzer benutzer) { + private boolean checkIfUserExists(BenutzerAPIDetails benutzer) { return benutzerRepo.getBenutzerByUsername(benutzer.getNutzername()) != null; } } diff --git a/Backend/src/main/java/com/ebdapo/backend/restcontroller/BetaeubungsmittelBuchungController.java b/Backend/src/main/java/com/ebdapo/backend/restcontroller/BetaeubungsmittelBuchungController.java index e480498d9ba804eeadeef03d578f39e3fc257e3b..2f5fbfa81dd952c90197670ca6b42b12768260a3 100644 --- a/Backend/src/main/java/com/ebdapo/backend/restcontroller/BetaeubungsmittelBuchungController.java +++ b/Backend/src/main/java/com/ebdapo/backend/restcontroller/BetaeubungsmittelBuchungController.java @@ -142,6 +142,7 @@ public class BetaeubungsmittelBuchungController { zugang.setPruefdatum(btDetails.getPruefdatum()); Betaeubungsmittel btm = btmRepo.findById(btDetails.getBtm()).orElseThrow(InvalidInputException::new); + btm.setMenge(btm.getMenge()+zugang.getMenge()); zugang.setBtm(btm); Benutzer benutzer = benutzerRepository.findById(btDetails.getBenutzer()).orElseThrow(InvalidInputException::new); @@ -151,6 +152,9 @@ public class BetaeubungsmittelBuchungController { Lieferant lieferant = lieferantRepo.findById(btDetails.getLieferant()).orElseThrow(InvalidInputException::new); zugang.setLieferant(lieferant); zugang.setAnfordergungsschein(btDetails.getAnforderungsschein()); + + + btmRepo.save(btm); zugangRepository.save(zugang); return new ResponseEntity<>(zugang, HttpStatus.CREATED); @@ -163,6 +167,7 @@ public class BetaeubungsmittelBuchungController { abgang.setPruefdatum(btDetails.getPruefdatum()); Betaeubungsmittel btm = btmRepo.findById(btDetails.getBtm()).orElseThrow(InvalidInputException::new); + btm.setMenge(btm.getMenge()-abgang.getMenge()); abgang.setBtm(btm); Benutzer benutzer = benutzerRepository.findById(btDetails.getBenutzer()).orElseThrow(InvalidInputException::new); @@ -174,6 +179,8 @@ public class BetaeubungsmittelBuchungController { Arzt arzt = arztRepository.findById(btDetails.getArzt()).orElseThrow(InvalidInputException::new); abgang.setArzt(arzt); abgang.setRezept(btDetails.getRezept()); + + btmRepo.save(btm); abgangRepository.save(abgang); return new ResponseEntity<>(abgang, HttpStatus.CREATED); }else { @@ -206,9 +213,13 @@ public class BetaeubungsmittelBuchungController { } Zugang z = zugangRepository.findByIds(btmbuchungId, apothekeId); - if(z != null){ + Betaeubungsmittel btm = z.getBtm(); + int previousMenge = z.getMenge(); if(!pruefer){ + //Wenn eine Buchung aktualisiert wird, muss die vorherige Mengenberechnung + //rückgängig gemacht werden + btm.setMenge(btm.getMenge()-previousMenge+newBtmBuchung.getMenge()); z.setBenutzer(benutzerRepository.findById(newBtmBuchung.getBenutzer()).orElseThrow(InvalidInputException::new)); z.setBtm(btmRepo.findById(newBtmBuchung.getBtm()).orElseThrow(InvalidInputException::new)); z.setMenge(newBtmBuchung.getMenge()); @@ -216,13 +227,17 @@ public class BetaeubungsmittelBuchungController { z.setLieferant(lieferantRepo.findById(newBtmBuchung.getLieferant()).orElseThrow(InvalidInputException::new)); } z.setPruefdatum(newBtmBuchung.getPruefdatum()); + btmRepo.save(btm); zugangRepository.save(z); return new ResponseEntity<>(z, HttpStatus.OK); } Abgang a = abgangRepository.findByIds(btmbuchungId, apothekeId); if(a != null){ + Betaeubungsmittel btm = a.getBtm(); + int previousMenge = a.getMenge(); if(!pruefer){ + btm.setMenge(btm.getMenge()+previousMenge-newBtmBuchung.getMenge()); a.setBenutzer(benutzerRepository.findById(newBtmBuchung.getBenutzer()).orElseThrow(InvalidInputException::new)); a.setBtm(btmRepo.findById(newBtmBuchung.getBtm()).orElseThrow(InvalidInputException::new)); a.setMenge(newBtmBuchung.getMenge()); @@ -231,6 +246,7 @@ public class BetaeubungsmittelBuchungController { a.setArzt(arztRepository.findById(newBtmBuchung.getArzt()).orElseThrow(InvalidInputException::new)); } a.setPruefdatum(newBtmBuchung.getPruefdatum()); + btmRepo.save(btm); abgangRepository.save(a); return new ResponseEntity<>(a, HttpStatus.OK); }else { diff --git a/Backend/src/main/java/com/ebdapo/backend/restcontroller/BetaeubungsmittelController.java b/Backend/src/main/java/com/ebdapo/backend/restcontroller/BetaeubungsmittelController.java index 7cfa695142606143aa8c4863d72c27c5a0439b9d..61ed10c3b11ccc8eeaae0ebadc84d2cd5e1cbe96 100644 --- a/Backend/src/main/java/com/ebdapo/backend/restcontroller/BetaeubungsmittelController.java +++ b/Backend/src/main/java/com/ebdapo/backend/restcontroller/BetaeubungsmittelController.java @@ -71,12 +71,13 @@ public class BetaeubungsmittelController { throw new InvalidInputException("Betaeubungsmittel konnte nicht gefunden werden"); } - Apotheke apo = apothekeRepo.findById(newBtm.getApotheke()).orElseThrow(InvalidInputException::new); + Apotheke apo = apothekeRepo.findById(apothekeId).orElseThrow(InvalidInputException::new); btm.setName(newBtm.getName()); btm.setDarreichungsform(newBtm.getDarreichungsform()); btm.setEinheit(newBtm.getEinheit()); btm.setApotheke(apo); + btm.setMenge(newBtm.getMenge()); btmRepo.save(btm); return new ResponseEntity<>(btm, HttpStatus.OK); diff --git a/Backend/src/main/java/com/ebdapo/backend/restcontroller/LieferantController.java b/Backend/src/main/java/com/ebdapo/backend/restcontroller/LieferantController.java index 9ed868ec1e8ebc6c17f452153fc9a336523a0ae7..b640acd481452a215ce55462c5898c7e5289a053 100644 --- a/Backend/src/main/java/com/ebdapo/backend/restcontroller/LieferantController.java +++ b/Backend/src/main/java/com/ebdapo/backend/restcontroller/LieferantController.java @@ -80,18 +80,12 @@ public class LieferantController { throw new InvalidInputException("Lieferant konnte nicht gefunden werden"); } - if(newLiefer.getApotheke() == null || newLiefer.getApotheke().isEmpty()){ - throw new InvalidInputException("ApothekenId darf nicht leer sein"); - } - found.setName(newLiefer.getName()); found.getAnschrift().setPlz(newLiefer.getAnschrift().getPlz()); found.getAnschrift().setOrt(newLiefer.getAnschrift().getOrt()); found.getAnschrift().setStrasse(newLiefer.getAnschrift().getStrasse()); found.getAnschrift().setNummer(newLiefer.getAnschrift().getNummer()); - found.setApotheke(apothekenRepo.findById(newLiefer.getApotheke()).orElseThrow(InvalidInputException::new)); - lieferantRepo.save(found); return new ResponseEntity<>(found, HttpStatus.OK); } diff --git a/Backend/src/main/java/com/ebdapo/backend/security/auth/AuthenticationController.java b/Backend/src/main/java/com/ebdapo/backend/security/auth/AuthenticationController.java index 022dce9a912a4d7215bcaa6245cd0e400f486e54..001d52dde18eb749ca012784f5ca1b055e679720 100644 --- a/Backend/src/main/java/com/ebdapo/backend/security/auth/AuthenticationController.java +++ b/Backend/src/main/java/com/ebdapo/backend/security/auth/AuthenticationController.java @@ -65,11 +65,25 @@ public class AuthenticationController { } } - public boolean checkIfAuthorizedAndSameUserOrAdmin(String username, String apothekeId, String benutzerId) { + public String checkIfAuthorizedAndSameUserOrAdmin(String username, String apothekeId, String benutzerId) { if(username == null || apothekeId == null){ + return null; + } + Benutzer b = benutzerRepo.getBenutzerWithApotheke(username, apothekeId); + if(b.getRolle().toString().toLowerCase().equals("admin")){ + return "admin"; + }else if(b.getId().equals(benutzerId)) { + return "user"; + } + //unauthorized + return null ; + } + + public boolean isAdmin(String username, String apothekeId) { + if(username == null ){ return false; } Benutzer b = benutzerRepo.getBenutzerWithApotheke(username, apothekeId); - return b.getRolle().toString().toLowerCase().equals("admin") || b.getId().equals(benutzerId); + return b.getRolle().toString().toLowerCase().equals("admin"); } } diff --git a/Datenbank/EDB-Apo_dbdata.sql b/Datenbank/EDB-Apo_dbdata.sql index 379f33e28fab0925f541e4681f0275a1ecc47ff2..112cbde25aec3373e0e68fe0fafac5f263be977f 100644 --- a/Datenbank/EDB-Apo_dbdata.sql +++ b/Datenbank/EDB-Apo_dbdata.sql @@ -9,27 +9,36 @@ INSERT INTO adresse_t(id, strasse, nummer, ort, plz) values ('8', 'Honigstrasse' 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 apotheke(id, name, email, anschrift) values ('1', 'Löwen Apotheke','apo1@outlook.de', '1'); INSERT INTO apotheke(id, name, email, anschrift) values ('2', 'Dorf Apotheke', 'apo2@outlook.de', '2'); INSERT INTO apotheke(id, name, email, anschrift) values ('3', 'Hirsch Apotheke', 'apo3@outlook.de', '5'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('1', 'Capros Akut 20 mg', 'Tbl', 'Stueck', '1'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('2', 'Carehoxal 10mg', 'RTA', 'Stueck', '1'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('3', 'Dipidolor', 'Ampullen', 'Stueck', '1'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('4', 'Dronabinol 25mg/ml','Rezeptursubstanz','mg', '1'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('5', 'Elvanse 30 mg', 'HKP', 'Stueck', '1'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('6', 'Fentanyl-Hexal Pfl 37,5 ug/Std.', 'Pfl', 'Stueck', '2'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('7', 'Carehoxal 10mg', 'RTA', 'Stueck', '2'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('8', 'Dipidolor', 'Ampullen', 'Stueck', '2'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('9', 'Equasim Ret. 20mg', 'HKP', 'Stueck', '2'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('10','Elvanse 30 mg' ,'HKP', 'Stueck', '2'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('11', 'Oxycodon/Nalox Beta 10/5', 'RTA', 'Stueck', '3'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('12', 'Oxycodon/Nalox 20/10 mg Beta', 'RTA', 'Stueck', '3'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('13', 'Oxiconoica 10 mg', 'RTA', 'Stueck', '3'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('14', 'Dipidolor', 'Ampullen', 'Stueck', '3'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('15', 'Palexia', 'RTA', 'Stueck', '3'); -INSERT INTO btm(id,name, darreichungsform, einheit,apotheke) values ('16','Elvanse 30 mg','HKP', 'Stueck', '3'); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('1', 'Capros Akut 20 mg', 'Tbl', 'Stueck', '1', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('2', 'Carehoxal 10mg', 'RTA', 'Stueck', '1', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('3', 'Dipidolor', 'Ampullen', 'Stueck', '1', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('4', 'Dronabinol 25mg/ml','Rezeptursubstanz','mg', '1', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('5', 'Elvanse 30 mg', 'HKP', 'Stueck', '1', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('6', 'Fentanyl-Hexal Pfl 37,5 ug/Std.', 'Pfl', 'Stueck', '2', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('7', 'Carehoxal 10mg', 'RTA', 'Stueck', '2', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('8', 'Dipidolor', 'Ampullen', 'Stueck', '2', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('9', 'Equasim Ret. 20mg', 'HKP', 'Stueck', '2', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('10','Elvanse 30 mg' ,'HKP', 'Stueck', '2', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('11', 'Oxycodon/Nalox Beta 10/5', 'RTA', 'Stueck', '3', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('12', 'Oxycodon/Nalox 20/10 mg Beta', 'RTA', 'Stueck', '3', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('13', 'Oxiconoica 10 mg', 'RTA', 'Stueck', '3', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('14', 'Dipidolor', 'Ampullen', 'Stueck', '3', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('15', 'Palexia', 'RTA', 'Stueck', '3', 0); +INSERT INTO btm(id,name, darreichungsform, einheit,apotheke, menge) values ('16','Elvanse 30 mg','HKP', 'Stueck', '3', 0); INSERT INTO benutzer(id , name, vorname, nutzername, passwort, rolle, aktiv, apotheke) values ('1', 'Heller', 'Helga', 'nutzername1', '123_abcd', 'ADMIN', true, '1'); INSERT INTO benutzer(id , name, vorname, nutzername, passwort, rolle, aktiv, apotheke) values ('2', 'Kurz', 'Martin', 'benutzername2', '123_zbgvf', 'Pruefer', true, '1'); @@ -49,15 +58,15 @@ INSERT INTO benutzer(id , name, vorname, nutzername, passwort, rolle, aktiv, apo INSERT INTO benutzer(id , name, vorname, nutzername, passwort, rolle, aktiv, apotheke) values ('15', 'pruefer', 'pruefer', 'pruefer', '$2a$10$HkldGXpGNCKV/u1c9dT1ZuUgCEHvtFgDGcVEQjAMNzz96ERJodIyW', 'PRUEFER', true, '1'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('1', 'GEHE', '10', '1'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('2', 'GEHE', '10', '1'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('3', 'GEHE', '10', '1'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('4', 'Alliance Healthcare GmbH', '11', '2'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('5', 'Alliance Healthcare GmbH', '11', '2'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('6', 'Alliance Healthcare GmbH', '11', '2'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('7', 'Noweda','1', '3'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('8', 'Noweda','1', '3'); -INSERT INTO lieferant (id, name, anschrift, apotheke) values ('9', 'Noweda','1', '3'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('1', 'Browsecat', '11', '1'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('2', 'Wikivu', '12', '1'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('3', 'Demizz', '13', '1'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('4', 'Rhyzio', '14', '2'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('5', 'Tagtune', '15', '2'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('6', 'Jayo', '16', '2'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('7', 'Mymm','17', '3'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('8', 'Jabberbean','18', '3'); +INSERT INTO lieferant (id, name, anschrift, apotheke) values ('9', 'Topiczoom','19', '3'); INSERT INTO arzt (id, name, anschrift, apotheke) value ('1', 'Dr. Krause', '6', '1'); INSERT INTO arzt (id, name, anschrift, apotheke) value ('2', 'Dr. Michellmann', '7', '1'); diff --git a/Datenbank/EDB-Apo_dbdec.sql b/Datenbank/EDB-Apo_dbdec.sql index c664fe2b55862bf9c55cc5385d68fd52222146bb..ef09b628a44ebf5b300100081a7f607b4b6d32ae 100644 --- a/Datenbank/EDB-Apo_dbdec.sql +++ b/Datenbank/EDB-Apo_dbdec.sql @@ -34,6 +34,7 @@ CREATE TABLE btm( darreichungsform ENUM ('Tbl', 'Trp', 'Sup', 'RTA', 'RKA', 'Ampullen', 'Rezeptursubstanz', 'HKP', 'Pfl') NOT NULL, einheit ENUM('g','mg','ml', 'Stueck') NOT NULL, apotheke VARCHAR (40) NOT NULL, + menge INTEGER, PRIMARY KEY (id), FOREIGN KEY (apotheke) REFERENCES apotheke (id) ON UPDATE CASCADE ON DELETE CASCADE ); diff --git a/README.md b/README.md index a9056d9ed27b5570b3ea38e935a8f399e29e8fbf..7ac582a38d224e769860c8e55e6078857677b706 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ## Docker Container bauen ``` -docker-compose up down #only needed if containers already exist +docker-compose down #only needed if containers already exist cd Backend mvn package -Dmaven.test.skip=true cd ..