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".
prodstable
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

@@ -19,6 +19,19 @@ $this->params['breadcrumbs'][] = 'Paramètres';
<?= $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 />"
. "<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')
->dropDownList([
24 => 'Minuit',
@@ -29,7 +42,8 @@ $this->params['breadcrumbs'][] = 'Paramètres';
19 => '19h',
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() ?>
<?php
if (strlen($model->photo)) {

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

@@ -39,9 +39,10 @@ class Etablissement extends \yii\db\ActiveRecord
public function rules()
{
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]],
['delai_commande','in', 'range' => [1,2,3,4,5,6,7]],
['code', function($attribute, $params)
{
$code = $this->$attribute ;
@@ -73,7 +74,8 @@ class Etablissement extends \yii\db\ActiveRecord
'code_postal' => 'Code postal',
'ville' => 'Ville',
'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

@@ -0,0 +1,17 @@
<?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

@@ -73,16 +73,17 @@ class CommandeController extends \yii\web\Controller {

// jours de production
$heure_limite = 20 ;
$date = date('Y-m-d') ;
if(isset($etablissement))
{
$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()
->where(['actif' => 1])
->andWhere('date > :date')

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

@@ -39,7 +39,8 @@ use yii\helpers\Html ;
<?php endif; ?>
<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>

Loading…
Cancel
Save