public function testNotEqualToCreatesOperatorPredicate() { $predicate = new Predicate(); $predicate->notEqualTo('foo.bar', 'bar'); $parts = $predicate->getExpressionData(); $this->assertEquals(1, count($parts)); $this->assertContains('%s != %s', $parts[0]); $this->assertContains(array('foo.bar', 'bar'), $parts[0]); }
/** * @param int $reservationId * * @return \Traversable|array */ public function getFirstAccTaxCharge($reservationId) { $this->resultSetPrototype->setArrayObjectPrototype(new \DDD\Domain\Booking\ForCancelCharge()); $result = $this->fetchAll(function (Select $select) use($reservationId) { $select->join(['addons' => DbTables::TBL_BOOKING_ADDONS], $this->getTable() . '.addons_type = addons.id', ['addon' => 'name', 'location_tax' => 'location_join', 'cxl_apply' => 'cxl_apply'], Select::JOIN_LEFT); $select->where->equalTo($this->getTable() . '.reservation_id', $reservationId); $select->where->equalTo($this->table . '.status', ChargeService::CHARGE_STATUS_NORMAL); $accOrTaxWhere = new Predicate(); $accOrTaxWhere->in($this->table . '.addons_type', [BookingAddon::ADDON_TYPE_ACC, BookingAddon::ADDON_TYPE_PARKING, BookingAddon::ADDON_TYPE_CLEANING_FEE, BookingAddon::ADDON_TYPE_DISCOUNT, BookingAddon::ADDON_TYPE_COMPENSATION, BookingAddon::ADDON_TYPE_EXTRA_PERSON]); // acc or parking $accOrTaxWhere->OR; $accOrTaxWhere->notEqualTo('addons.location_join', ''); // taxes $select->where->addPredicate($accOrTaxWhere); $select->order('id ASC'); }); return $result; }