Intégration du délai de commande permettant au boulanger de définir le délai séparant la date de prise de commande de la date de livraison. Mise à jour du formulaire des paramètres de l'établissement et mise en place sur le frontend. Ajout d'un champs dans la table "établissement".master
<?= $form->field($model, 'code')->hint("Saisissez ce champs si vous souhaitez protéger l'accès à votre boutique par un code, sinon laissez-le vide.<br />" | <?= $form->field($model, 'code')->hint("Saisissez ce champs si vous souhaitez protéger l'accès à votre boutique par un code, sinon laissez-le vide.<br />" | ||||
. "Ce code est à communiquer à vos client pour qu'ils puissent ajouter votre boulangerie à leur tableau de bord.<br />" | . "Ce code est à communiquer à vos client pour qu'ils puissent ajouter votre boulangerie à leur tableau de bord.<br />" | ||||
. "<a href=\"".Yii::$app->urlManager->createUrl(['communiquer/index'])."\">Cliquez ici</a> pour télécharger un mode d'emploi comprenant ce code à distribuer à vos clients.") ?> | . "<a href=\"".Yii::$app->urlManager->createUrl(['communiquer/index'])."\">Cliquez ici</a> pour télécharger un mode d'emploi comprenant ce code à distribuer à vos clients.") ?> | ||||
<?= $form->field($model, 'delai_commande') | |||||
->dropDownList([ | |||||
1 => '1 jour', | |||||
2 => '2 jours', | |||||
3 => '3 jours', | |||||
4 => '4 jours', | |||||
5 => '5 jours', | |||||
6 => '6 jours', | |||||
7 => '7 jours', | |||||
], []) | |||||
->hint('Si <strong>1 jour</strong> est sélectionné, le client pourra commander jusqu\'à la veille de la production.<br />' | |||||
. 'Si <strong>2 jours</strong> est sélectionné, le client pourra commander jusqu\'à l\'avant-veille de la production, etc.') ; ?> | |||||
<?= $form->field($model, 'heure_limite_commande') | <?= $form->field($model, 'heure_limite_commande') | ||||
->dropDownList([ | ->dropDownList([ | ||||
24 => 'Minuit', | 24 => 'Minuit', | ||||
19 => '19h', | 19 => '19h', | ||||
18 => '18h', | 18 => '18h', | ||||
], []) | ], []) | ||||
->hint('Heure limite jusqu\'à laquelle les clients peuvent commander pour le lendemain.') ; ?> | |||||
->hint('Heure limite jusqu\'à laquelle les clients peuvent commander pour satisfaire le délai de commande.<br />' | |||||
. 'Par exemple, si <strong>2 jours</strong> est sélectionné dans le délai de commande, le client devra commander l\'avant-veille de la production avant l\'heure précisée ici.') ; ?> | |||||
<?= $form->field($model, 'photo')->fileInput() ?> | <?= $form->field($model, 'photo')->fileInput() ?> | ||||
<?php | <?php | ||||
if (strlen($model->photo)) { | if (strlen($model->photo)) { |
public function rules() | public function rules() | ||||
{ | { | ||||
return [ | return [ | ||||
[['nom', 'siret', 'heure_limite_commande'], 'required'], | |||||
['heure_limite_commande','integer'], | |||||
[['nom', 'siret', 'heure_limite_commande','delai_commande'], 'required'], | |||||
[['heure_limite_commande','delai_commande'],'integer'], | |||||
['heure_limite_commande','in', 'range' => [18, 19, 20, 21, 22, 23, 24]], | ['heure_limite_commande','in', 'range' => [18, 19, 20, 21, 22, 23, 24]], | ||||
['delai_commande','in', 'range' => [1,2,3,4,5,6,7]], | |||||
['code', function($attribute, $params) | ['code', function($attribute, $params) | ||||
{ | { | ||||
$code = $this->$attribute ; | $code = $this->$attribute ; | ||||
'code_postal' => 'Code postal', | 'code_postal' => 'Code postal', | ||||
'ville' => 'Ville', | 'ville' => 'Ville', | ||||
'code' => 'Code', | 'code' => 'Code', | ||||
'heure_limite_commande' => 'Heure limite de commande' | |||||
'heure_limite_commande' => 'Heure limite de commande', | |||||
'delai_commande' => 'Délai de commande' | |||||
]; | ]; | ||||
} | } | ||||
<?php | |||||
use yii\db\Migration; | |||||
use yii\db\Schema; | |||||
class m161130_152006_etablissement_champs_reservation_j_plus_n extends Migration | |||||
{ | |||||
public function up() | |||||
{ | |||||
$this->addColumn('etablissement', 'delai_commande', Schema::TYPE_INTEGER.' DEFAULT 1') ; | |||||
} | |||||
public function down() | |||||
{ | |||||
$this->dropColumn('etablissement', 'delai_commande') ; | |||||
} | |||||
} |
// jours de production | // jours de production | ||||
$heure_limite = 20 ; | $heure_limite = 20 ; | ||||
$date = date('Y-m-d') ; | |||||
if(isset($etablissement)) | if(isset($etablissement)) | ||||
{ | { | ||||
$heure_limite = $etablissement->heure_limite_commande ; | $heure_limite = $etablissement->heure_limite_commande ; | ||||
if (date('H') >= $heure_limite) { | |||||
$date = date('Y-m-d', strtotime(date('Y-m-d')) + ($etablissement->delai_commande)*(24*60*60) ); | |||||
} else { | |||||
$date = date('Y-m-d', strtotime(date('Y-m-d')) + ($etablissement->delai_commande - 1)*(24*60*60)); | |||||
} | |||||
} | } | ||||
if (date('H') >= $heure_limite) { | |||||
$date = date('Y-m-d', strtotime(date('Y-m-d')) + 60 * 60 * 24); | |||||
} else { | |||||
$date = date('Y-m-d'); | |||||
} | |||||
$jours_production = Production::find() | $jours_production = Production::find() | ||||
->where(['actif' => 1]) | ->where(['actif' => 1]) | ||||
->andWhere('date > :date') | ->andWhere('date > :date') |
<?php endif; ?> | <?php endif; ?> | ||||
<div class="heure-limite-commande" data-toggle="tooltip" data-placement="bottom" title="Heure limite de commande pour le lendemain"> | <div class="heure-limite-commande" data-toggle="tooltip" data-placement="bottom" title="Heure limite de commande pour le lendemain"> | ||||
<span class="limite"><span class="glyphicon glyphicon-time"></span> Heure limite :</span> <?php echo Html::encode($e['heure_limite_commande']) ?> h | |||||
<span class="limite"><span class="glyphicon glyphicon-time"></span> Heure limite :</span> <?php echo Html::encode($e['heure_limite_commande']) ?> h <br /> | |||||
<span class="limite">Délai :</span> <?= Html::encode($e['delai_commande']) ?> jour<?php if($e['delai_commande'] > 1): ?>s<?php endif; ?> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> |