check shipping configuration in delivery loop. Fix #311

This commit is contained in:
Manuel Raynaud
2014-05-05 14:37:44 +02:00
parent b09a73af1c
commit d5c5e167a6
2 changed files with 22 additions and 0 deletions

View File

@@ -14,6 +14,7 @@ namespace Thelia\Core\Template\Loop;
use Thelia\Core\Template\Element\LoopResult;
use Thelia\Core\Template\Element\LoopResultRow;
use Thelia\Core\Template\Loop\Argument\Argument;
use Thelia\Model\AreaDeliveryModuleQuery;
use Thelia\Model\CountryQuery;
use Thelia\Model\Module;
use Thelia\Module\BaseModule;
@@ -54,6 +55,12 @@ class Delivery extends BaseSpecificModule
/** @var Module $deliveryModule */
foreach ($loopResult->getResultDataCollection() as $deliveryModule) {
$areaDeliveryModule = AreaDeliveryModuleQuery::create()
->findByCountryAndModule($country, $deliveryModule);
if (null === $areaDeliveryModule) continue;
$loopResultRow = new LoopResultRow($deliveryModule);
/** @var DeliveryModuleInterface $moduleInstance */

View File

@@ -17,4 +17,19 @@ use Thelia\Model\Base\AreaDeliveryModuleQuery as BaseAreaDeliveryModuleQuery;
class AreaDeliveryModuleQuery extends BaseAreaDeliveryModuleQuery
{
public function findByCountryAndModule(Country $country, Module $module)
{
$response = null;
if (null !== $country->getAreaId()) {
$response = $this->filterByAreaId($country->getAreaId())
->filterByModule($module)
->findOne();
}
return $response;
}
} // AreaDeliveryModuleQuery