. * */ namespace Vvveb\System\Cart; use Vvveb\Sql\CouponSQL; trait CouponTrait { protected $coupons = []; public function addCoupon($code) { if ($code) { $coupon = new CouponSQL(); $options = $this->options + ['code' => $code, 'status' => 1]; $result = $coupon->get($options); if ($result && $result['code'] == $code) { $this->coupons[$code] = $result; return true; } } return false; } public function removeCoupon($code) { $coupon = $this->coupons[$code]; $this->removeTotal('coupon.' . $coupon['coupon_id']); unset($this->coupons[$code]); return true; } public function getCoupons() { return $this->coupons; } function addCouponTotal() { $coupons = $this->getCoupons(); foreach ($coupons as $coupon) { if ($coupon['type'] == 'P') { $discount = (($coupon['discount'] * $this->getSubTotal()) / 100); } else { $discount = $coupon['discount']; } $this->addTotal('coupon.' . $coupon['coupon_id'], $coupon['name'], $discount); } } }