Ver código fonte

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 anos atrás
pai
commit
cad41a1b73
5 arquivos alterados com 46 adições e 11 exclusões
  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 Ver arquivo

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

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

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

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

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

Carregando…
Cancelar
Salvar