. */ /* */ /*************************************************************************************/ namespace FreeShipping; use FreeShipping\Model\Base\FreeShippingQuery; use Propel\Runtime\Connection\ConnectionInterface; use Thelia\Install\Database; use Thelia\Model\AreaQuery; use Thelia\Model\Country; use Thelia\Module\AbstractDeliveryModule; /** * Class FreeShipping * @package FreeShipping */ class FreeShipping extends AbstractDeliveryModule { /** * @param ConnectionInterface $con */ public function postActivation(ConnectionInterface $con = null) { $database = new Database($con->getWrappedConnection()); $database->insertSql(null, [ __DIR__.DS.'Config'.DS.'thelia.sql' ]); } /** * calculate and return delivery price * * @param Country $country * * @return mixed */ public function getPostage(Country $country) { return 0; } /** * @return string */ public function getCode() { return 'FreeShipping'; } /** * This method is called by the Delivery loop, to check if the current module has to be displayed to the customer. * Override it to implements your delivery rules/ * * If you return true, the delivery method will de displayed to the customer * If you return false, the delivery method will not be displayed * * @param Country $country the country to deliver to. * * @return boolean */ public function isValidDelivery(Country $country) { $cart = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher()); $amount = $cart->getTaxedAmount($country); $areaId = $country->getAreaId(); $area = FreeShippingQuery::create()->findOneByAreaId($areaId); $maxAmount = $area->getAmount(); if ($amount >= $maxAmount) { return true; } else { return false; } } }