PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.11
Booking for Appointments and Events Calendar – Amelia v1.2.11
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / Repository / Coupon / CouponPackageRepository.php
ameliabooking / src / Infrastructure / Repository / Coupon Last commit date
CouponEventRepository.php 6 years ago CouponPackageRepository.php 3 years ago CouponRepository.php 1 year ago CouponServiceRepository.php 6 years ago
CouponPackageRepository.php
85 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\Repository\Coupon;
4
5 use AmeliaBooking\Domain\Entity\Bookable\Service\Package;
6 use AmeliaBooking\Domain\Entity\Coupon\Coupon;
7 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
8 use AmeliaBooking\Infrastructure\Repository\AbstractRepository;
9
10 /**
11 * Class CouponPackageRepository
12 *
13 * @package AmeliaBooking\Infrastructure\Repository\Coupon
14 */
15 class CouponPackageRepository extends AbstractRepository
16 {
17
18 /**
19 * @param Coupon $coupon
20 * @param Package $package
21 *
22 * @return mixed
23 * @throws QueryExecutionException
24 */
25 public function add($coupon, $package)
26 {
27 $couponData = $coupon->toArray();
28 $packageData = $package->toArray();
29
30 $params = [
31 ':couponId' => $couponData['id'],
32 ':packageId' => $packageData['id'],
33 ];
34
35 try {
36 $statement = $this->connection->prepare(
37 "INSERT INTO {$this->table}
38 (
39 `couponId`,
40 `packageId`
41 )
42 VALUES (
43 :couponId,
44 :packageId
45 )"
46 );
47
48 $res = $statement->execute($params);
49
50 if (!$res) {
51 throw new QueryExecutionException('Unable to add data in ' . __CLASS__);
52 }
53
54 return $this->connection->lastInsertId();
55 } catch (\Exception $e) {
56 throw new QueryExecutionException('Unable to add data in ' . __CLASS__, $e->getCode(), $e);
57 }
58 }
59
60 /**
61 * @param int $couponId
62 * @param int $packageId
63 *
64 * @return mixed
65 * @throws QueryExecutionException
66 */
67 public function deleteForPackage($couponId, $packageId)
68 {
69 $params = [
70 ':couponId' => $couponId,
71 ':packageId' => $packageId,
72 ];
73
74 try {
75 $statement = $this->connection->prepare(
76 "DELETE FROM {$this->table} WHERE couponId = :couponId AND packageId = :packageId"
77 );
78
79 return $statement->execute($params);
80 } catch (\Exception $e) {
81 throw new QueryExecutionException('Unable to delete data from ' . __CLASS__, $e->getCode(), $e);
82 }
83 }
84 }
85