/** * @param \Generated\Shared\Transfer\TaxRateTransfer $taxRateTransfer * * @throws \Spryker\Zed\Tax\Business\Model\Exception\ResourceNotFoundException * * @return \Orm\Zed\Tax\Persistence\SpyTaxRate */ private function findOrCreateTaxRateEntity(TaxRateTransfer $taxRateTransfer) { if ($taxRateTransfer->getIdTaxRate()) { $taxRateEntity = $this->queryContainer->queryTaxRate($taxRateTransfer->getIdTaxRate())->findOne(); if (!$taxRateEntity) { throw new ResourceNotFoundException(); } } else { $taxRateEntity = $this->createTaxRateEntity($taxRateTransfer); } return $taxRateEntity; }
/** * @param int $id * * @throws \Spryker\Zed\Tax\Business\Model\Exception\ResourceNotFoundException * * @return \Generated\Shared\Transfer\TaxSetTransfer */ public function getTaxSet($id) { $taxSetEntity = $this->queryContainer->queryTaxSet($id)->findOne(); if ($taxSetEntity === null) { throw new ResourceNotFoundException(); } $taxSetTransfer = new TaxSetTransfer(); $taxSetTransfer->fromArray($taxSetEntity->toArray()); foreach ($taxSetEntity->getSpyTaxRates() as $taxRateEntity) { $taxRateTransfer = new TaxRateTransfer(); $taxRateTransfer->fromArray($taxRateEntity->toArray()); if ($taxRateEntity->getCountry()) { $countryTransfer = new CountryTransfer(); $countryTransfer->fromArray($taxRateEntity->getCountry()->toArray(), true); $taxRateTransfer->setCountry($countryTransfer); } $taxSetTransfer->addTaxRate($taxRateTransfer); } return $taxSetTransfer; }
/** * @return void */ public function testRemoveTaxRateFromTaxSet() { $taxRate1Transfer = $this->createTaxRateTransfer(); $rate1Id = $this->taxFacade->createTaxRate($taxRate1Transfer)->getIdTaxRate(); $taxRate2Transfer = new TaxRateTransfer(); $taxRate2Transfer->setName(self::DUMMY_TAX_RATE2_NAME); $taxRate2Transfer->setRate(self::DUMMY_TAX_RATE2_PERCENTAGE); $rate2Id = $this->taxFacade->createTaxRate($taxRate2Transfer)->getIdTaxRate(); $taxSetTransfer = $this->createTaxSetTransfer(); $taxSetTransfer->addTaxRate($taxRate1Transfer); $taxSetTransfer->addTaxRate($taxRate2Transfer); $taxSetId = $this->taxFacade->createTaxSet($taxSetTransfer)->getIdTaxSet(); $taxSetQuery = SpyTaxSetQuery::create()->filterByIdTaxSet($taxSetId); $taxSetEntity = $taxSetQuery->findOne(); $this->assertCount(2, $taxSetEntity->getSpyTaxRates()); $this->taxFacade->removeTaxRateFromTaxSet($taxSetId, $rate2Id); $taxSetEntity = $taxSetQuery->findOne(); $this->assertCount(1, $taxSetEntity->getSpyTaxRates()); $this->assertEquals($rate1Id, $taxSetEntity->getSpyTaxRates()[0]->getIdTaxRate()); }