Browse Source

Délai de commande

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
keun 8 years ago
parent
commit
cad41a1b73
5 changed files with 46 additions and 11 deletions
  1. +15
    -1
      backend/views/etablissement/update.php
  2. +5
    -3
      common/models/Etablissement.php
  3. +17
    -0
      console/migrations/m161130_152006_etablissement_champs_reservation_j_plus_n.php
  4. +7
    -6
      frontend/controllers/CommandeController.php
  5. +2
    -1
      frontend/views/commande/_liste_etablissements.php

+ 15
- 1
backend/views/etablissement/update.php View File

<?= $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)) {

+ 5
- 3
common/models/Etablissement.php View File

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'
]; ];
} }

+ 17
- 0
console/migrations/m161130_152006_etablissement_champs_reservation_j_plus_n.php View File

<?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') ;
}
}

+ 7
- 6
frontend/controllers/CommandeController.php View File



// 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')

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

<?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>

Loading…
Cancel
Save