123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- namespace App\Repository;
- use App\Model\PharmacyDrug;
- class PharmacyDrugRepository extends RepositoryAbstract
- {
- public function __construct()
- {
- parent::__construct();
- $this->entityName = 'pharmacyDrug';
- }
- /**
- * @param $id
- * @return null|PharmacyDrug
- */
- public function findById($idPharmacy, $idDrug)
- {
- $stmt = $this->pdo->prepare("
- SELECT pd.IdPharmacy, pd.IdDrug, p.Name AS NamePharmacy, d.Name AS NameDrug, pd.Quantity
- FROM pharmacy AS p
- INNER JOIN pharmacyDrug AS pd ON p.Id = pd.IdPharmacy
- INNER JOIN drug AS d ON pd.IdDrug = d.Id
- WHERE pd.IdPharmacy = :IdPharmacy
- AND pd.IdDrug = :IdDrug
- ");
- $stmt->execute([
- 'IdPharmacy' => $idPharmacy,
- 'IdDrug' => $idDrug
- ]);
- foreach ($stmt as $row) {
- return new PharmacyDrug($row['IdPharmacy'], $row['IdDrug'], $row['Quantity'], $row['NamePharmacy'], $row['NameDrug']);
- }
- return null;
- }
- /**
- * @return PharmacyDrug[] array
- */
- public function findAll(): array
- {
- $stmt = $this->pdo->prepare("
- SELECT pd.IdPharmacy, pd.IdDrug, p.Name AS NamePharmacy, d.Name AS NameDrug, pd.Quantity
- FROM pharmacy AS p
- INNER JOIN pharmacyDrug AS pd ON p.Id = pd.IdPharmacy
- INNER JOIN drug AS d ON pd.IdDrug = d.Id
- ");
- $stmt->execute();
- $pharmacyDrugs = [];
- foreach ($stmt as $row) {
- $pharmacyDrugs[] = new PharmacyDrug($row['IdPharmacy'], $row['IdDrug'], $row['Quantity'], $row['NamePharmacy'], $row['NameDrug']);
- }
- return $pharmacyDrugs;
- }
- /**
- * @param PharmacyDrug $pharmacyDrug
- */
- public function save(PharmacyDrug $pharmacyDrug)
- {
- $stmt = $this->pdo->prepare("INSERT INTO {$this->entityName} (IdPharmacy, IdDrug, Quantity) VALUES(:IdPharmacy, :IdDrug, :Quantity)");
- $stmt->execute([
- 'IdPharmacy' => $pharmacyDrug->idPharmacy,
- 'IdDrug' => $pharmacyDrug->idDrug,
- 'Quantity' => $pharmacyDrug->quantity
- ]);
- }
- /**
- * @param PharmacyDrug $pharmacyDrug
- */
- public function update(PharmacyDrug $pharmacyDrug)
- {
- $stmt = $this->pdo->prepare("UPDATE {$this->entityName} SET Quantity = :Quantity WHERE IdPharmacy = :IdPharmacy AND IdDrug = :IdDrug");
- $stmt->execute([
- 'IdPharmacy' => $pharmacyDrug->idPharmacy,
- 'IdDrug' => $pharmacyDrug->idDrug,
- 'Quantity' => $pharmacyDrug->quantity
- ]);
- }
- /**
- * @param int $id
- */
- public function delete($idPharmacy, $idDrug)
- {
- $stmt = $this->pdo->prepare("DELETE FROM {$this->entityName} WHERE IdPharmacy = :IdPharmacy AND IdDrug = :IdDrug");
- $stmt->execute([
- 'IdPharmacy' => $idPharmacy,
- 'IdDrug' => $idDrug
- ]);
- }
- }
|