Просмотр исходного кода

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 лет назад
Родитель
Сommit
cad41a1b73
5 измененных файлов: 46 добавлений и 11 удалений
  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 Просмотреть файл

@@ -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 Просмотреть файл

@@ -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 Просмотреть файл

@@ -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 Просмотреть файл

@@ -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 Просмотреть файл

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

Загрузка…
Отмена
Сохранить