Browse Source

Correction : impossible de commander un produit qui n'a pas de quantité max de définie

master
keun 7 years ago
parent
commit
618246b35f
3 changed files with 16 additions and 9 deletions
  1. +4
    -3
      frontend/controllers/CommandeController.php
  2. +2
    -1
      frontend/views/commande/_form.php
  3. +10
    -5
      frontend/web/js/lechatdesnoisettes.js

+ 4
- 3
frontend/controllers/CommandeController.php View File



// produits // produits
$produits = Produit::find() $produits = Produit::find()
->where(['actif' => 1, 'id_etablissement' => $id_etablissement])
->andWhere('vrac IS NULL OR vrac = 0')
->orderBy('order ASC')->all();
->leftJoin('production_produit', 'produit.id = production_produit.id_produit')
->where(['produit.actif' => 1, 'id_etablissement' => $id_etablissement])
->andWhere('produit.vrac IS NULL OR produit.vrac = 0')
->orderBy('produit.order ASC')->all();
$arr_produits = array(); $arr_produits = array();
foreach ($produits as $p) foreach ($produits as $p)
$arr_produits[] = $p; $arr_produits[] = $p;

+ 2
- 1
frontend/views/commande/_form.php View File

if (isset($produits_selec[$p->id])) if (isset($produits_selec[$p->id]))
$quantite = $produits_selec[$p->id]; $quantite = $produits_selec[$p->id];
?> ?>
<tr class="produit-<?php echo $p->id; ?>" data-quantite-max="<?= $quantite ?>" <?php if (count($produits_dispos) && !$produits_dispos[$p->id]['actif']): ?>style="display:none;"<?php endif; ?>>
<tr class="produit-<?php echo $p->id; ?>" data-no-limit="<?php if(!$p->quantite_max): ?>1<?php else: ?>0<?php endif; ?>" data-quantite-max="<?= $quantite ?>" <?php if (count($produits_dispos) && !$produits_dispos[$p->id]['actif']): ?>style="display:none;"<?php endif; ?>>
<td class="td-photo"> <td class="td-photo">
<?php if (strlen($p->photo) && file_exists(dirname(__FILE__).'/../../web/uploads/' . $p->photo)): ?><a href="<?= Yii::$app->urlManager->getBaseUrl() . '/uploads/' . $p->photo ?>" data-lightbox="produit-<?php echo $p->id; ?>"><img class="photo img-rounded" src="<?= Yii::$app->urlManager->getBaseUrl() . '/uploads/' . $p->photo ?>" alt="Photo <?= Html::encode($p->nom); ?>" /></a><?php endif; ?> <?php if (strlen($p->photo) && file_exists(dirname(__FILE__).'/../../web/uploads/' . $p->photo)): ?><a href="<?= Yii::$app->urlManager->getBaseUrl() . '/uploads/' . $p->photo ?>" data-lightbox="produit-<?php echo $p->id; ?>"><img class="photo img-rounded" src="<?= Yii::$app->urlManager->getBaseUrl() . '/uploads/' . $p->photo ?>" alt="Photo <?= Html::encode($p->nom); ?>" /></a><?php endif; ?>
</td> </td>

+ 10
- 5
frontend/web/js/lechatdesnoisettes.js View File

var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ; var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ;
var quantite_restante = parseInt($(this).parent().parent().parent().find('.quantite-restante .nb').html()) ; var quantite_restante = parseInt($(this).parent().parent().parent().find('.quantite-restante .nb').html()) ;
var quantite_max = $(this).parent().parent().parent().parent().data('quantite-max') ; var quantite_max = $(this).parent().parent().parent().parent().data('quantite-max') ;

var no_limit = $(this).parent().parent().parent().parent().data('no-limit') ;
if($(this).hasClass('moins') && quantite != 0) { if($(this).hasClass('moins') && quantite != 0) {
quantite -- ; quantite -- ;
quantite_restante ++ ; quantite_restante ++ ;
} }
if($(this).hasClass('plus') ){ if($(this).hasClass('plus') ){
if(quantite_restante > 0) {
if(quantite_restante > 0 || no_limit) {
quantite ++ ; quantite ++ ;
quantite_restante -- ; quantite_restante -- ;
} }
else { else {
$(this).parent().parent().parent().find('.quantite-restante').hide() ; $(this).parent().parent().parent().find('.quantite-restante').hide() ;
} }
if(quantite_restante == 0) {
if(quantite_restante == 0 && !no_limit) {
$(this).parent().parent().parent().find('.epuise').fadeIn() ; $(this).parent().parent().parent().find('.epuise').fadeIn() ;
} }
else { else {
else $('.produit-'+id_produit).hide() ; else $('.produit-'+id_produit).hide() ;
var quantite_restante = produit.quantite_max - produit.quantite_commandee ; var quantite_restante = produit.quantite_max - produit.quantite_commandee ;
var no_limit = false ;
if(!produit.quantite_max)
no_limit = true ;
$('.produit-'+id_produit).attr('data-quantite-max',produit.quantite_max) ; $('.produit-'+id_produit).attr('data-quantite-max',produit.quantite_max) ;
$('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ; $('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ;
} }
if($('.produit-'+id_produit+' .quantite-restante').size()) { if($('.produit-'+id_produit+' .quantite-restante').size()) {
if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5 || parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) == 0) {
if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5 ||
parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) <= 0) {
$('.produit-'+id_produit+' .quantite-restante').hide() ; $('.produit-'+id_produit+' .quantite-restante').hide() ;
} }
else { else {

Loading…
Cancel
Save