Pouvoir définir la quantité max des produits à 0 pour qu'elle devienne illimitée. Cela permet de gérer le cas des boulangeries qui ne travaillent pas avec des quantités maximales.master
@@ -385,7 +385,9 @@ class CommandeController extends BackendController { | |||
if (isset($p->quantite_max)) | |||
$produit_production->quantite_max = $p->quantite_max; | |||
else | |||
$produit_production->quantite_max = null; | |||
$produit_production->save(); | |||
} | |||
@@ -395,12 +397,12 @@ class CommandeController extends BackendController { | |||
$produit_production->actif = 0; | |||
} | |||
if ((isset($_POST['Produit'][$p->id]['quantite_max']) && $_POST['Produit'][$p->id]['quantite_max'] != '')) { | |||
if ((isset($_POST['Produit'][$p->id]['quantite_max']) && $_POST['Produit'][$p->id]['quantite_max'] != '')) | |||
{ | |||
$produit_production->quantite_max = (int) $_POST['Produit'][$p->id]['quantite_max']; | |||
} else { | |||
if (isset($p->quantite_max) && is_numeric($p->quantite_max) && $p->quantite_max > 0) { | |||
$produit_production->quantite_max = $p->quantite_max; | |||
} | |||
} | |||
else { | |||
$produit_production->quantite_max = null; | |||
} | |||
$produit_production->save(); |
@@ -88,7 +88,7 @@ foreach ($produits as $p) { | |||
<tr> | |||
<th class="td-actif">Actif</th> | |||
<th class="td-produit">Produit</th> | |||
<th class="td-max">Max.</th> | |||
<th class="td-max">Max. <span class="glyphicon glyphicon-info-sign" data-toggle="tooltip" data-placement="top" data-original-title="Quantité disponible à la commande. Laisser vide si vous ne souhaitez pas avoir de limite de commande. La valeur par défaut est configurable dans vos produits."></span></th> | |||
</tr> | |||
</thead> | |||
<tbody> |
@@ -18,7 +18,9 @@ use yii\widgets\ActiveForm; | |||
<?= $form->field($model, 'recette')->textarea() ?> | |||
<?= $form->field($model, 'prix')->textInput() ?> | |||
<?= $form->field($model, 'poids')->textInput() ?> | |||
<?= $form->field($model, 'quantite_max')->textInput() ?> | |||
<?= $form->field($model, 'quantite_max') | |||
->hint('Renseignez ce champs si vous souhaitez limiter la quantité commandable pour ce produit.') | |||
->textInput() ?> | |||
<?= $form->field($model, 'photo')->fileInput() ?> | |||
<?php |
@@ -400,7 +400,7 @@ class CommandeController extends \yii\web\Controller { | |||
$commande_produit->prix = $p->prix; | |||
$quantite_voulue = (int) $posts['Produit']['produit_' . $p->id]; | |||
if ($quantite_voulue > $produits_dispos[$p->id]['quantite_restante'] && !$produits_dispos[$p->id]['vrac']) | |||
if ($produits_dispos[$p->id]['quantite_max'] && $quantite_voulue > $produits_dispos[$p->id]['quantite_restante']) | |||
$quantite_voulue = $produits_dispos[$p->id]['quantite_restante']; | |||
$commande_produit->quantite = $quantite_voulue; |
@@ -149,7 +149,12 @@ use common\models\Etablissement; | |||
</thead> | |||
<tbody> | |||
<?php foreach ($produits as $p): ?> | |||
<tr class="produit-<?php echo $p->id; ?>" <?php if (count($produits_dispos) && !$produits_dispos[$p->id]['actif']): ?>style="display:none;"<?php endif; ?>> | |||
<?php | |||
$quantite = 0; | |||
if (isset($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; ?>> | |||
<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; ?> | |||
</td> | |||
@@ -163,11 +168,6 @@ use common\models\Etablissement; | |||
<span class="input-group-btn"> | |||
<button type="button" class="btn btn-default move-quantity moins">-</button> | |||
</span> | |||
<?php | |||
$quantite = 0; | |||
if (isset($produits_selec[$p->id])) | |||
$quantite = $produits_selec[$p->id]; | |||
?> | |||
<input type="text" value="<?php if (isset($produits_selec[$p->id])): echo $produits_selec[$p->id]; | |||
else: ?>0<?php endif; ?>" readonly name="Produit[produit_<?php echo $p->id; ?>]" class="quantity form-control"> | |||
<span class="input-group-btn"> | |||
@@ -175,8 +175,11 @@ use common\models\Etablissement; | |||
</span> | |||
</div> | |||
<?php if($quantite): ?> | |||
<div class="quantite-restante">Reste <span class="nb"><?php if (isset($produits_dispos[$p->id])): echo $produits_dispos[$p->id]['quantite_restante'] + $quantite; | |||
endif; ?></span> <?php echo Html::encode(strtolower($p->nom)); ?>(s)</div> | |||
<?php endif; ?> | |||
<div class="epuise">Épuisé</div> | |||
</td> | |||
<td class="total"><strong></strong></td> |
@@ -266,42 +266,27 @@ function chat_systeme_commande() { | |||
quantite_totale += parseInt($(this).val()) ; | |||
}) ; | |||
if($(this).hasClass('plus') && quantite_totale > 2 && $('#confiance').val() == 0) { | |||
$('html, body').animate({ | |||
scrollTop: $('#produits').offset().top - 150 | |||
}, 'normal', function() { | |||
$('#mess-limit-quantity').fadeOut('fast',function() { | |||
$(this).fadeIn('fast') ; | |||
}) | |||
}); | |||
} | |||
else { | |||
var quantite = parseInt($(this).parent().parent().find('input.quantity').val()) ; | |||
var quantite_restante = parseInt($(this).parent().parent().parent().find('.quantite-restante .nb').html()) ; | |||
//alert('bada') ; | |||
if($(this).hasClass('moins') && quantite != 0) | |||
quantite -- ; | |||
if($(this).hasClass('plus')){ | |||
if(quantite + 1 <= quantite_restante) { | |||
quantite ++ ; | |||
} | |||
else { | |||
if(quantite_restante <= 5) { | |||
$(this).parent().parent().parent().find('.quantite-restante').hide().fadeIn() ; | |||
} | |||
else { | |||
// alert ? | |||
// ... | |||
} | |||
} | |||
} | |||
$(this).parent().parent().find('input.quantity').val(quantite) ; | |||
chat_systeme_commande_maj_table_prix(); | |||
} | |||
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_max = $(this).parent().parent().parent().parent().data('quantite-max') ; | |||
if($(this).hasClass('moins') && quantite != 0) | |||
quantite -- ; | |||
if($(this).hasClass('plus') ){ | |||
if(quantite + 1 <= quantite_restante || !quantite_max) { | |||
quantite ++ ; | |||
} | |||
else { | |||
if(quantite_restante <= 5) { | |||
$(this).parent().parent().parent().find('.quantite-restante').hide().fadeIn() ; | |||
} | |||
} | |||
} | |||
$(this).parent().parent().find('input.quantity').val(quantite) ; | |||
chat_systeme_commande_maj_table_prix(); | |||
} | |||
}) ; | |||
@@ -351,28 +336,8 @@ function chat_systeme_commande_produits_dispos(str_date, date) { | |||
else $('.produit-'+id_produit).hide() ; | |||
var quantite_restante = produit.quantite_max - produit.quantite_commandee ; | |||
//if(quantite_restante > 0 || !produit.epuise) { | |||
/*if(quantite_restante > 0) { | |||
$('.produit-'+id_produit+' .epuise').hide() ; | |||
$('.produit-'+id_produit+' .input-group').show() ; | |||
$('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ; | |||
if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5) { | |||
$('.produit-'+id_produit+' .quantite-restante').hide() ; | |||
} | |||
else { | |||
$('.produit-'+id_produit+' .quantite-restante').show() ; | |||
} | |||
} | |||
else { | |||
$('.produit-'+id_produit+' .epuise').show() ; | |||
$('.produit-'+id_produit+' .quantite-restante').hide() ; | |||
$('.produit-'+id_produit+' .input-group').hide() ; | |||
} */ | |||
if((!produit.vrac && (!quantite_restante || quantite_restante < 0 || produit.epuise)) || (produit.vrac && produit.epuise)) { | |||
if(produit.quantite_max && (!quantite_restante || quantite_restante < 0 || produit.epuise)) { | |||
$('.produit-'+id_produit+' .epuise').show() ; | |||
$('.produit-'+id_produit+' .quantite-restante').hide() ; | |||
$('.produit-'+id_produit+' .input-group').hide() ; | |||
@@ -382,15 +347,15 @@ function chat_systeme_commande_produits_dispos(str_date, date) { | |||
$('.produit-'+id_produit+' .input-group').show() ; | |||
$('.produit-'+id_produit+' .quantite-restante .nb').html(quantite_restante) ; | |||
if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5) { | |||
if($('.produit-'+id_produit+' .quantite-restante').size()) { | |||
if(parseInt($('.produit-'+id_produit+' .quantite-restante .nb').html()) > 5) { | |||
$('.produit-'+id_produit+' .quantite-restante').hide() ; | |||
} | |||
else { | |||
$('.produit-'+id_produit+' .quantite-restante').show() ; | |||
} | |||
} | |||
else { | |||
$('.produit-'+id_produit+' .quantite-restante').show() ; | |||
} | |||
} | |||
} | |||
}); | |||
} | |||