Recettes : presque OK sur addToCart
This commit is contained in:
@@ -5,10 +5,11 @@
|
||||
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
|
||||
|
||||
<route id="recipe.save" path="/admin/module/Recettes/save" methods="post">
|
||||
<default key="_controller">Recettes\Controller\MainController::saveRecipe</default>
|
||||
<default key="_controller">Recettes\Controller\BackController::saveRecipe</default>
|
||||
</route>
|
||||
|
||||
<route id="recipe.addtocart" path="/admin/module/Recettes/addtocart" methods="post">
|
||||
<default key="_controller">Recettes\Controller\MainController::addToCart</default>
|
||||
<default key="_controller">Recettes\Controller\FrontController::addToCart</default>
|
||||
</route>
|
||||
|
||||
</routes>
|
||||
|
||||
@@ -22,10 +22,10 @@ use Thelia\Tools\URL;
|
||||
|
||||
|
||||
/**
|
||||
* Class MainController
|
||||
* Class BackController
|
||||
* @package Recettes\Controller
|
||||
*/
|
||||
class MainController extends BaseAdminController
|
||||
class BackController extends BaseAdminController
|
||||
{
|
||||
|
||||
public function saveRecipe(Request $request)
|
||||
@@ -99,9 +99,4 @@ class MainController extends BaseAdminController
|
||||
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content"));
|
||||
}
|
||||
|
||||
|
||||
public function addToCart(Request $request)
|
||||
{
|
||||
$order = $request->getSession()->getOrder();
|
||||
}
|
||||
}
|
||||
54
local/modules/Recettes/Controller/FrontController.php
Executable file
54
local/modules/Recettes/Controller/FrontController.php
Executable file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Recettes\Controller;
|
||||
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Thelia\Controller\Front\BaseFrontController;
|
||||
use Thelia\Core\Event\TheliaEvents;
|
||||
use Thelia\Core\HttpFoundation\Request;
|
||||
use Thelia\Core\Event\Cart\CartEvent;
|
||||
use Thelia\Exception\TheliaProcessException;
|
||||
use Thelia\Model\ProductSaleElementsQuery;
|
||||
use Thelia\Tools\URL;
|
||||
|
||||
|
||||
/**
|
||||
* Class FrontController
|
||||
* @package Recettes\Controller
|
||||
*/
|
||||
class FrontController extends BaseFrontController
|
||||
{
|
||||
|
||||
public function addToCart(Request $request)
|
||||
{
|
||||
$parameters = $request->request;
|
||||
$dispatcher = $this->getDispatcher();
|
||||
$produitsHorsStock = false;
|
||||
|
||||
foreach ($parameters as $key=>$value) {
|
||||
$string = explode("-", $key);
|
||||
$pseId = $string[1];;
|
||||
$qty = $string[3];
|
||||
|
||||
$productId = ProductSaleElementsQuery::create()->findOneById($pseId)->getProductId();
|
||||
$stock = ProductSaleElementsQuery::create()->findOneById($pseId)->getQuantity();
|
||||
|
||||
if ($stock > 0) {
|
||||
$eventAjout = new CartEvent($request->getSession()->getSessionCart($dispatcher));
|
||||
$eventAjout
|
||||
->setQuantity($qty)
|
||||
->setProduct($productId)
|
||||
->setProductSaleElementsId($pseId);
|
||||
|
||||
$dispatcher->dispatch(TheliaEvents::CART_ADDITEM, $eventAjout);
|
||||
}
|
||||
else {
|
||||
$produitsHorsStock = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (! $produitsHorsStock)
|
||||
return new RedirectResponse(URL::getInstance()->absoluteUrl('/cart'));
|
||||
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,17 @@
|
||||
namespace Recettes\Loop;
|
||||
|
||||
use Recettes\Model\RecipeProductsQuery;
|
||||
use Thelia\Action\AttributeAv;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
use Thelia\Core\Template\Element\LoopResult;
|
||||
use Thelia\Core\Template\Element\LoopResultRow;
|
||||
use Thelia\Core\Template\Element\PropelSearchLoopInterface;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Model\AttributeAvI18nQuery;
|
||||
use Thelia\Model\AttributeCombinationQuery;
|
||||
use Thelia\Model\AttributeI18n;
|
||||
use Thelia\Model\AttributeI18nQuery;
|
||||
use Thelia\Model\ProductI18nQuery;
|
||||
use Thelia\Model\ProductSaleElementsQuery;
|
||||
|
||||
@@ -33,6 +38,8 @@ class ProductsLoop extends BaseLoop implements PropelSearchLoopInterface
|
||||
|
||||
$pse = ProductSaleElementsQuery::create()->findOneById($product->getPseId());
|
||||
$productLabel = ProductI18nQuery::create()->findOneById($pse->getProductId())->getTitle();
|
||||
$attributeCombination = AttributeCombinationQuery::create()->findOneByProductSaleElementsId($product->getPseId());
|
||||
$unity = AttributeAvI18nQuery::create()->findOneById($attributeCombination->getAttributeAvId())->getTitle();
|
||||
|
||||
$loopResultRow = new LoopResultRow($product);
|
||||
$loopResultRow
|
||||
@@ -41,6 +48,7 @@ class ProductsLoop extends BaseLoop implements PropelSearchLoopInterface
|
||||
->set("PRODUCT_LABEL", $productLabel)
|
||||
->set("QUANTITY_NEEDED", $product->getQuantity())
|
||||
->set("QUANTITY_PROPOSED", $product->getNbOfProducts())
|
||||
->set('UNITY', $unity)
|
||||
;
|
||||
$loopResult->addRow($loopResultRow);
|
||||
}
|
||||
|
||||
@@ -78,4 +78,7 @@ div.entete span b {
|
||||
.table-steps td.number{
|
||||
padding-left: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.bouton-imprimer {
|
||||
text-align: center;
|
||||
}
|
||||
Reference in New Issue
Block a user