Quellcode durchsuchen

[producer] Correctifs divers + envoi email confirmation

refactoring
Guillaume vor 4 Jahren
Ursprung
Commit
a869d6cf68
12 geänderte Dateien mit 368 neuen und 109 gelöschten Zeilen
  1. +6
    -0
      backend/views/producer/update.php
  2. +93
    -54
      common/helpers/Mailjet.php
  3. +65
    -0
      common/mail/orderConfirm-html.php
  4. +64
    -0
      common/mail/orderConfirm-text.php
  5. +3
    -2
      common/models/Producer.php
  6. +19
    -0
      console/migrations/m200603_062748_add_option_producer_mail_confirm.php
  7. +29
    -1
      producer/controllers/OrderController.php
  8. +3
    -2
      producer/views/order/confirm.php
  9. +44
    -29
      producer/views/order/order.php
  10. +2
    -1
      producer/views/site/index.php
  11. +30
    -20
      producer/web/css/screen.css
  12. +10
    -0
      producer/web/sass/order/_order.scss

+ 6
- 0
backend/views/producer/update.php Datei anzeigen

@@ -220,6 +220,12 @@ $this->addBreadcrumb($this->getTitle()) ;
<?= $form->field($model, 'option_payment_info')
->textarea(['rows' => 6])
->hint('Affiché au client à la fin de la prise de commande')?>

<?= $form->field($model, 'option_email_confirm')
->dropDownList([
0 => 'Non',
1 => 'Oui'
], []); ?>
</div>
</div>


+ 93
- 54
common/helpers/Mailjet.php Datei anzeigen

@@ -1,67 +1,106 @@
<?php

/**
Copyright distrib (2018)
/**
* Copyright distrib (2018)
*
* contact@opendistrib.net
*
* Ce logiciel est un programme informatique servant à aider les producteurs
* à distribuer leur production en circuits courts.
*
* Ce logiciel est régi par la licence CeCILL soumise au droit français et
* respectant les principes de diffusion des logiciels libres. Vous pouvez
* utiliser, modifier et/ou redistribuer ce programme sous les conditions
* de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
* sur le site "http://www.cecill.info".
*
* En contrepartie de l'accessibilité au code source et des droits de copie,
* de modification et de redistribution accordés par cette licence, il n'est
* offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
* seule une responsabilité restreinte pèse sur l'auteur du programme, le
* titulaire des droits patrimoniaux et les concédants successifs.
*
* A cet égard l'attention de l'utilisateur est attirée sur les risques
* associés au chargement, à l'utilisation, à la modification et/ou au
* développement et à la reproduction du logiciel par l'utilisateur étant
* donné sa spécificité de logiciel libre, qui peut le rendre complexe à
* manipuler et qui le réserve donc à des développeurs et des professionnels
* avertis possédant des connaissances informatiques approfondies. Les
* utilisateurs sont donc invités à charger et tester l'adéquation du
* logiciel à leurs besoins dans des conditions permettant d'assurer la
* sécurité de leurs systèmes et ou de leurs données et, plus généralement,
* à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
*
* Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
* pris connaissance de la licence CeCILL, et que vous en avez accepté les
* termes.
*/

contact@opendistrib.net
namespace common\helpers;

Ce logiciel est un programme informatique servant à aider les producteurs
à distribuer leur production en circuits courts.
use yii\helpers\Html;

Ce logiciel est régi par la licence CeCILL soumise au droit français et
respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
sur le site "http://www.cecill.info".
class Mailjet
{
public static function sendMail($params = [])
{
$mj = new \Mailjet\Client(
self::getApiKey('public'),
self::getApiKey('private'),
true,
['version' => 'v3.1']
);

En contrepartie de l'accessibilité au code source et des droits de copie,
de modification et de redistribution accordés par cette licence, il n'est
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
seule une responsabilité restreinte pèse sur l'auteur du programme, le
titulaire des droits patrimoniaux et les concédants successifs.
$body = ['Messages' => []] ;

A cet égard l'attention de l'utilisateur est attirée sur les risques
associés au chargement, à l'utilisation, à la modification et/ou au
développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à
manipuler et qui le réserve donc à des développeurs et des professionnels
avertis possédant des connaissances informatiques approfondies. Les
utilisateurs sont donc invités à charger et tester l'adéquation du
logiciel à leurs besoins dans des conditions permettant d'assurer la
sécurité de leurs systèmes et ou de leurs données et, plus généralement,
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
$body['Messages'][] = [
'From' => [
'Email' => $params['from_email'],
'Name' => $params['from_name']
],
'To' => [
[
'Email' => $params['to_email'],
'Name' => $params['to_name']
]
],
'Subject' => $params['subject'],
'TextPart' => Yii::$app->view->renderFile($params['content_view_text'], $params['content_params']),
'HTMLPart' => Yii::$app->view->renderFile($params['content_view_html'], $params['content_params'])
] ;

Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
pris connaissance de la licence CeCILL, et que vous en avez accepté les
termes.
*/
$response = $mj->post(\Mailjet\Resources::$Email, ['body' => $body]);

namespace common\helpers;
$success = $response->success() ;

class Mailjet
{
public static function getApiKey($type = 'private')
{
$filename = '../../common/config/mailjet/api.key' ;
if(file_exists($filename)) {
$handle = fopen($filename, "r") ;
$filesize = filesize($filename) ;
if($handle && $filesize) {
$apiKeys = fread($handle, $filesize);
fclose($handle);
$apiKeysArray = explode(':', $apiKeys) ;
if(count($apiKeysArray) == 2) {
if($type == 'private') {
$key = $apiKeysArray[1] ;
}
else {
$key = $apiKeysArray[0] ;
}
return trim($key) ;
if(!$success) {
Yii::error($response->getBody(), 'Mailjet');
}
}

return $success ;
}

public static function getApiKey($type = 'private')
{
$filename = '../../common/config/mailjet/api.key';
if (file_exists($filename)) {
$handle = fopen($filename, "r");
$filesize = filesize($filename);
if ($handle && $filesize) {
$apiKeys = fread($handle, $filesize);
fclose($handle);
$apiKeysArray = explode(':', $apiKeys);
if (count($apiKeysArray) == 2) {
if ($type == 'private') {
$key = $apiKeysArray[1];
} else {
$key = $apiKeysArray[0];
}
return trim($key);
}
}
}

return '';
}
return '' ;
}
}

+ 65
- 0
common/mail/orderConfirm-html.php Datei anzeigen

@@ -0,0 +1,65 @@
<?php

/**
Copyright distrib (2018)

contact@opendistrib.net

Ce logiciel est un programme informatique servant à aider les producteurs
à distribuer leur production en circuits courts.

Ce logiciel est régi par la licence CeCILL soumise au droit français et
respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
sur le site "http://www.cecill.info".

En contrepartie de l'accessibilité au code source et des droits de copie,
de modification et de redistribution accordés par cette licence, il n'est
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
seule une responsabilité restreinte pèse sur l'auteur du programme, le
titulaire des droits patrimoniaux et les concédants successifs.

A cet égard l'attention de l'utilisateur est attirée sur les risques
associés au chargement, à l'utilisation, à la modification et/ou au
développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à
manipuler et qui le réserve donc à des développeurs et des professionnels
avertis possédant des connaissances informatiques approfondies. Les
utilisateurs sont donc invités à charger et tester l'adéquation du
logiciel à leurs besoins dans des conditions permettant d'assurer la
sécurité de leurs systèmes et ou de leurs données et, plus généralement,
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.

Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
pris connaissance de la licence CeCILL, et que vous en avez accepté les
termes.
*/

use common\models\Producer ;
use common\helpers\GlobalParam ;
$producer = GlobalParam::getCurrentProducer() ;

?>

<p>Bonjour <?= Html::encode($user->name); ?>,</p>

<p>Votre commande d'une valeur de <strong><?= $order->getAmountWithTax(Order::AMOUNT_TOTAL, true); ?></strong> a bien été prise en compte.</p>

<p>Elle sera à retirer le <strong><?= date('d/m/Y',strtotime($distribution->date)) ?></strong> au point de retrait
<strong><?= Html::encode($pointSale->name) ?></strong><?php if(strlen($pointSale->locality) > 0): ?> situé à <?= Html::encode($pointSale->locality) ?><?php endif ?>.</p>

<?php $payment_infos = Producer::getConfig('option_payment_info') ; ?>
<?php if($payment_infos && strlen($payment_infos) > 0): ?>
<p><strong>Informations de paiement :</strong><br />
<?= nl2br(Html::encode($payment_infos)); ?></p>
<?php endif; ?>

<?php $order_infos = Producer::getConfig('order_infos') ; ?>
<?php if($order_infos && strlen($order_infos) > 0): ?>
<p><strong>Informations générales :</strong><br />
<?= nl2br(Html::encode($order_infos)); ?></p>
<?php endif; ?>

À bientôt,<br />
<?= Html::encode($producer->name); ?>

+ 64
- 0
common/mail/orderConfirm-text.php Datei anzeigen

@@ -0,0 +1,64 @@
<?php

/**
Copyright distrib (2018)

contact@opendistrib.net

Ce logiciel est un programme informatique servant à aider les producteurs
à distribuer leur production en circuits courts.

Ce logiciel est régi par la licence CeCILL soumise au droit français et
respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
sur le site "http://www.cecill.info".

En contrepartie de l'accessibilité au code source et des droits de copie,
de modification et de redistribution accordés par cette licence, il n'est
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
seule une responsabilité restreinte pèse sur l'auteur du programme, le
titulaire des droits patrimoniaux et les concédants successifs.

A cet égard l'attention de l'utilisateur est attirée sur les risques
associés au chargement, à l'utilisation, à la modification et/ou au
développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à
manipuler et qui le réserve donc à des développeurs et des professionnels
avertis possédant des connaissances informatiques approfondies. Les
utilisateurs sont donc invités à charger et tester l'adéquation du
logiciel à leurs besoins dans des conditions permettant d'assurer la
sécurité de leurs systèmes et ou de leurs données et, plus généralement,
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.

Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
pris connaissance de la licence CeCILL, et que vous en avez accepté les
termes.
*/

use common\models\Producer ;
use common\helpers\GlobalParam ;
$producer = GlobalParam::getCurrentProducer() ;

?>

Bonjour <?= $user->name; ?>,

Votre commande d'une valeur de <?= $order->getAmountWithTax(Order::AMOUNT_TOTAL, true); ?> a bien été prise en compte.

Elle sera à retirer le <?= date('d/m/Y',strtotime($distribution->date)) ?> au point de retrait <?= $pointSale->name ?><?php if(strlen($pointSale->locality) > 0): ?> situé à <?= Html::encode($pointSale->locality) ?><?php endif ?>.

<?php $payment_infos = Producer::getConfig('option_payment_info') ; ?>
<?php if($payment_infos && strlen($payment_infos) > 0): ?>
Informations de paiement :
<?= $payment_infos ?>
<?php endif; ?>

<?php $order_infos = Producer::getConfig('order_infos') ; ?>
<?php if($order_infos && strlen($order_infos) > 0): ?>
Informations générales :
<?= $order_infos ?>
<?php endif; ?>

À bientôt,
<?= $producer->name ?>

+ 3
- 2
common/models/Producer.php Datei anzeigen

@@ -134,7 +134,7 @@ class Producer extends ActiveRecordCommon
}],
[['description', 'mentions', 'gcs', 'order_infos', 'slug', 'secret_key_payplug', 'background_color_logo', 'option_behavior_cancel_order', 'tiller_provider_token', 'tiller_restaurant_token', 'status',
'document_infos_bottom', 'document_infos_quotation', 'document_infos_invoice', 'document_infos_delivery_note', 'address', 'behavior_home_point_sale_day_list', 'behavior_order_select_distribution', 'option_payment_info'], 'string'],
[['negative_balance', 'credit', 'active', 'online_payment', 'user_manage_subscription', 'option_allow_user_gift', 'use_credit_checked_default', 'tiller', 'document_display_orders_invoice', 'document_display_orders_delivery_note', 'document_display_prices_delivery_note'], 'boolean'],
[['negative_balance', 'credit', 'active', 'online_payment', 'user_manage_subscription', 'option_allow_user_gift', 'use_credit_checked_default', 'tiller', 'document_display_orders_invoice', 'document_display_orders_delivery_note', 'document_display_prices_delivery_note', 'option_email_confirm'], 'boolean'],
[['name', 'siret', 'logo', 'photo', 'postcode', 'city', 'code', 'type', 'credit_functioning', 'option_behavior_cancel_order', 'document_quotation_prefix', 'document_quotation_first_reference', 'document_invoice_prefix', 'document_invoice_first_reference', 'document_delivery_note_prefix', 'document_delivery_note_first_reference'], 'string', 'max' => 255],
[['free_price', 'credit_limit_reminder', 'credit_limit'], 'double'],
['free_price', 'compare', 'compareValue' => 0, 'operator' => '>=', 'type' => 'number', 'message' => 'Prix libre doit être supérieur ou égal à 0'],
@@ -213,7 +213,8 @@ class Producer extends ActiveRecordCommon
'document_display_prices_delivery_note' => 'Afficher le chiffrage dans les bons de livraison',
'behavior_home_point_sale_day_list' => 'Accueil : affichage des jours de distribution',
'behavior_order_select_distribution' => 'Sélection de la date de distribution',
'option_payment_info' => 'Informations liées au paiement'
'option_payment_info' => 'Informations liées au paiement',
'option_email_confirm' => 'Envoyer un email de confirmation'
];
}


+ 19
- 0
console/migrations/m200603_062748_add_option_producer_mail_confirm.php Datei anzeigen

@@ -0,0 +1,19 @@
<?php

use yii\db\Migration;
use yii\db\Schema;

class m200603_062748_add_option_producer_mail_confirm extends Migration
{
public function safeUp()
{
$this->addColumn('producer', 'option_email_confirm', Schema::TYPE_BOOLEAN.' DEFAULT 0');
}

public function safeDown()
{
$this->dropColumn('producer', 'option_email_confirm');

return false;
}
}

+ 29
- 1
producer/controllers/OrderController.php Datei anzeigen

@@ -40,6 +40,7 @@ namespace producer\controllers;

use common\helpers\Debug;
use common\helpers\GlobalParam;
use common\helpers\Mailjet;
use common\models\ProductDistribution;
use common\models\User;
use common\models\Producer;
@@ -227,6 +228,11 @@ class OrderController extends ProducerBaseController
$totalQuantity = 0;
$producer = $this->getProducer();

$isNewOrder = false ;
if(!$order->id) {
$isNewOrder = true ;
}

foreach ($posts['products'] as $key => $quantity) {
$product = Product::find()->where(['id' => (int)$key])->one();
$totalQuantity += $quantity;
@@ -303,6 +309,7 @@ class OrderController extends ProducerBaseController
$order->save();

$order->changeOrderStatus('new-order', 'user');

// ajout de l'utilisateur à l'établissement
Producer::addUser(User::getCurrentId(), $distribution->id_producer);

@@ -385,7 +392,8 @@ class OrderController extends ProducerBaseController
}else{
$order->changeOrderStatus('waiting-paiement-on-delivery', 'user');
}
} // surplus à rembourser
}
// surplus à rembourser
elseif ($order->getPaymentStatus() == Order::PAYMENT_SURPLUS) {
$amountSurplus = $order->getAmount(Order::AMOUNT_SURPLUS);
$order->saveCreditHistory(
@@ -401,6 +409,26 @@ class OrderController extends ProducerBaseController
$order->changeOrderStatus('waiting-paiement-on-delivery', 'user');
}

// envoi mail de confirmation
if($isNewOrder && Producer::getConfig('option_email_confirm')) {
$user = User::getCurrent() ;
$successMail = Mailjet::sendMail([
'from_email' => $producer->getEmailOpendistrib(),
'from_name' => $producer->name,
'to_email' => $user->email,
'to_name' => $user->getUsername(),
'subject' => '['.$producer->name.'] Confirmation de commande',
'content_view_text' => '@common/mail/orderConfirm-text.php',
'content_view_html' => '@common/mail/orderConfirm-html.php',
'content_params' => [
'order' => $order,
'pointSale' => $pointSale,
'distribution' => $distribution,
'user' => $user
]
]);
}

$order->setTillerSynchronization() ;
}


+ 3
- 2
producer/views/order/confirm.php Datei anzeigen

@@ -46,8 +46,9 @@ $producer = GlobalParam::getCurrentProducer() ;
?>

<div id="order-success">

<div class="alert alert-success">
<span class="glyphicon glyphicon-ok glyphicon-big"></span>
<span class="glyphicon glyphicon-ok glyphicon-big"></span>
<div class="content">
<h3>Votre commande a bien été prise en compte</h3>
<a href="<?= Yii::$app->urlManagerProducer->createUrl(['order/history']) ?>" class="btn btn-default">
@@ -58,7 +59,7 @@ $producer = GlobalParam::getCurrentProducer() ;
<div class="clr"></div>
</div>
<div class="alert alert-info">
<span class="glyphicon glyphicon-list-alt glyphicon-big"></span>
<span class="glyphicon glyphicon-list-alt glyphicon-big"></span>
<div class="content">
<h3>Récapitulatif de votre commande</h3>
<ul>

+ 44
- 29
producer/views/order/order.php Datei anzeigen

@@ -1,17 +1,17 @@
<?php

/**
Copyright distrib (2018)
/**
Copyright distrib (2018)

contact@opendistrib.net

Ce logiciel est un programme informatique servant à aider les producteurs
à distribuer leur production en circuits courts.
Ce logiciel est un programme informatique servant à aider les producteurs
à distribuer leur production en circuits courts.

Ce logiciel est régi par la licence CeCILL soumise au droit français et
respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
sur le site "http://www.cecill.info".

En contrepartie de l'accessibilité au code source et des droits de copie,
@@ -22,16 +22,16 @@ titulaire des droits patrimoniaux et les concédants successifs.

A cet égard l'attention de l'utilisateur est attirée sur les risques
associés au chargement, à l'utilisation, à la modification et/ou au
développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à
développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à
manipuler et qui le réserve donc à des développeurs et des professionnels
avertis possédant des connaissances informatiques approfondies. Les
utilisateurs sont donc invités à charger et tester l'adéquation du
logiciel à leurs besoins dans des conditions permettant d'assurer la
sécurité de leurs systèmes et ou de leurs données et, plus généralement,
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
sécurité de leurs systèmes et ou de leurs données et, plus généralement,
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.

Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
pris connaissance de la licence CeCILL, et que vous en avez accepté les
termes.
*/
@@ -50,10 +50,10 @@ $producer = GlobalParam::getCurrentProducer() ;

<div id="app-order-order" :class="{'loaded': !loadingInit}">
<?php if(isset($order)): ?>
<span id="order-distribution-date"><?= $order->distribution->date; ?></span>
<span id="order-distribution-date"><?= $order->distribution->date; ?></span>
<?php endif; ?>
<?php if(isset($date)): ?>
<span id="distribution-date"><?= $date; ?></span>
<span id="distribution-date"><?= $date; ?></span>
<?php endif; ?>
<div v-if="loadingInit && distributions.length == 0" class="alert alert-warning">
Aucune distribution n'est prévue chez ce producteur.
@@ -134,10 +134,31 @@ $producer = GlobalParam::getCurrentProducer() ;
<div id="distributions-list">
<?php $incomingDistributions = Distribution::getIncomingDistributions(); ?>
<?php foreach($incomingDistributions as $distribution): ?>

<?php
$pointSaleDistributions = PointSaleDistribution::searchAll([
'id_distribution' => $distribution->id,
'delivery' => 1
], [], [
'with' => 'pointSale'
]);
?>

<div class="panel panel-default">
<div class="panel-body">
<?= ucfirst(strftime('%A %d %B', strtotime($distribution->date))); ?>
<a href="javascript:void(0);" class="btn btn-primary" @click="dayClickList" data-distribution-date="<?= $distribution->date.' 00:00' ?>">Sélectionner cette distribution</a>
<span class="date"><?= ucfirst(strftime('%A %d %B', strtotime($distribution->date))); ?></span>
<?php
if($pointSaleDistributions && count($pointSaleDistributions) > 0) {
echo '<div class="point-sales">' ;
}
?>
<?php foreach($pointSaleDistributions as $pointSaleDistribution) {
echo $pointSaleDistribution->pointSale->name.'<br />' ;
}
echo '</div>' ;
?>

</div>
</div>
<?php endforeach; ?>
@@ -178,7 +199,7 @@ $producer = GlobalParam::getCurrentProducer() ;
</div>
<button class="btn btn-primary" @click="pointSaleClick" :data-code="pointSale.code.length > 0" :data-id-point-sale="pointSale.id">
<span class="glyphicon glyphicon-map-marker"></span>
Choisir
Choisir
</button>
</td>
</tr>
@@ -209,7 +230,7 @@ $producer = GlobalParam::getCurrentProducer() ;
<img v-if="product.photo.length" class="photo-product" :src="'<?php echo Yii::$app->urlManager->getBaseUrl(); ?>/uploads/'+product.photo" />
</td>
<td class="name">
<span class="name">{{ product.name }}</span>
<span class="name">{{ product.name }}</span>
<span class="other">
<span v-if="product.description.length">/</span>
<span class="description">{{ product.description }}</span>
@@ -264,10 +285,10 @@ $producer = GlobalParam::getCurrentProducer() ;
<label for="order-comment">Commentaire</label>
<textarea id="order-comment" v-model="comment" class="form-control"></textarea>
</div>
<template v-if="!checkCreditLimit(order) && pointSaleActive.credit_functioning == 'mandatory'">
<template v-if="!checkCreditLimit(order) && pointSaleActive.credit_functioning == 'mandatory'">
<div class="alert alert-danger">Vous devez recharger votre crédit ou supprimer des produits. Votre producteur n'autorise pas un crédit inférieur à <strong>{{ formatPrice(creditLimit) }}</strong>.</div>
<div class="block-actions">
<a class="btn btn-primary" href="<?= Yii::$app->urlManager->createUrl(['site/index']) ?>">Retour à l'accueil</a>
</div>
@@ -275,9 +296,9 @@ $producer = GlobalParam::getCurrentProducer() ;
<template v-else>
<div class="credit">
<div v-if="producer.credit == 1 && pointSaleActive.credit == 1 && (pointSaleActive.credit_functioning != 'user' || (pointSaleActive.credit_functioning == 'user' && user.credit_active))">
<input type="checkbox" id="use-credit" v-model="useCredit" disabled="disabled" v-if="pointSaleActive.credit_functioning == 'mandatory' || (pointSaleActive.credit_functioning == 'user' && user.credit_active)" />
<input type="checkbox" id="use-credit" v-model="useCredit" disabled="disabled" v-if="pointSaleActive.credit_functioning == 'mandatory' || (pointSaleActive.credit_functioning == 'user' && user.credit_active)" />
<input type="checkbox" id="use-credit" v-model="useCredit" v-else /> <label for="use-credit">Utiliser mon Crédit ({{ formatPrice(user.credit) }})</label>
<div class="info" v-if="useCredit">
<template v-if="order == null || order.amount_paid == 0">
<span v-if="checkCreditLimit(order)">{{ priceTotal(true) }} seront débités</span>
@@ -299,17 +320,11 @@ $producer = GlobalParam::getCurrentProducer() ;
</div>
</div>
<div v-else>
<span class="glyphicon glyphicon-chevron-right"></span>
<?php if($producer->option_payment_info && strlen($producer->option_payment_info) > 0): ?>
<div class="panel panel-warning payment-info">
<div class="panel-heading">
<h3>Paiement de votre commande</h3>
</div>
<div class="panel-body">
<?= nl2br($producer->option_payment_info); ?>
</div>
</div>
Confirmez votre commande et retrouvez les informations liées au paiement sur la page suivante.
<?php else: ?>
<span class="glyphicon glyphicon-chevron-right"></span> La commande sera à régler sur place.
La commande sera à régler sur place.
<?php endif; ?>
</div>
</div>

+ 2
- 1
producer/views/site/index.php Datei anzeigen

@@ -91,7 +91,8 @@ $this->setPageTitle(Html::encode($producer->type.' à '.$producer->city)) ;
foreach($incomingDistributions as $distribution) {
$countPointSaleDistribution = PointSaleDistribution::searchCount([
'id_distribution' => $distribution->id,
'id_point_sale' => $model->id
'id_point_sale' => $model->id,
'delivery' => 1
]);
if($countPointSaleDistribution) {
$html .= strftime('%A %d %B', strtotime($distribution->date)).'<br />';

+ 30
- 20
producer/web/css/screen.css Datei anzeigen

@@ -1443,70 +1443,80 @@ termes.
.order-order #main #app-order-order #content-step-date #distributions-list .panel .btn-primary {
float: right;
}
/* line 182, ../sass/order/_order.scss */
/* line 179, ../sass/order/_order.scss */
.order-order #main #app-order-order #content-step-date #distributions-list .panel .date {
font-size: 20px;
}
/* line 183, ../sass/order/_order.scss */
.order-order #main #app-order-order #content-step-date #distributions-list .panel .point-sales {
color: gray;
font-size: 14px;
margin-top: 8px;
}
/* line 192, ../sass/order/_order.scss */
.order-order #main #app-order-order .block-actions {
text-align: right;
margin-top: 20px;
}
/* line 189, ../sass/order/_order.scss */
/* line 199, ../sass/order/_order.scss */
.order-order #main #app-order-order table#points-sale td.name .the-name {
font-family: "capsuularegular";
color: black;
font-size: 20px;
line-height: 25px;
}
/* line 197, ../sass/order/_order.scss */
/* line 207, ../sass/order/_order.scss */
.order-order #main #app-order-order table#points-sale td.actions {
width: 150px;
}
/* line 199, ../sass/order/_order.scss */
/* line 209, ../sass/order/_order.scss */
.order-order #main #app-order-order table#points-sale td.actions button {
width: 100%;
}
/* line 205, ../sass/order/_order.scss */
/* line 215, ../sass/order/_order.scss */
.order-order #main #app-order-order table#points-sale tr.selected td {
background-color: white;
}
/* line 213, ../sass/order/_order.scss */
/* line 223, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products td.photo img {
width: 100px;
}
/* line 219, ../sass/order/_order.scss */
/* line 229, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products td.name .name {
font-family: "capsuularegular";
color: black;
font-size: 20px;
line-height: 25px;
}
/* line 225, ../sass/order/_order.scss */
/* line 235, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products td.name .other {
font-size: 14px;
color: #333;
}
/* line 229, ../sass/order/_order.scss */
/* line 239, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products td.name .recipe {
color: gray;
}
/* line 233, ../sass/order/_order.scss */
/* line 243, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products .price-unit, .order-order #main #app-order-order table#products .price-total {
width: 100px;
text-align: center;
}
/* line 237, ../sass/order/_order.scss */
/* line 247, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products .price-unit .unit, .order-order #main #app-order-order table#products .price-total .unit {
color: gray;
font-size: 13px;
}
/* line 242, ../sass/order/_order.scss */
/* line 252, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products .td-quantity {
width: 175px;
}
/* line 244, ../sass/order/_order.scss */
/* line 254, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products .td-quantity input.quantity {
text-align: center;
border-right: 0px none;
}
/* line 248, ../sass/order/_order.scss */
/* line 258, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products .td-quantity .input-group-addon {
padding: 5px;
padding-left: 0px;
@@ -1514,30 +1524,30 @@ termes.
border-left: 0px none;
border-right: 0px none;
}
/* line 258, ../sass/order/_order.scss */
/* line 268, ../sass/order/_order.scss */
.order-order #main #app-order-order table#products tr.total .price-total {
font-size: 23px;
}
/* line 266, ../sass/order/_order.scss */
/* line 276, ../sass/order/_order.scss */
.order-order #main #app-order-order #content-step-payment .credit .info {
margin-left: 20px;
color: gray;
}
/* line 272, ../sass/order/_order.scss */
/* line 282, ../sass/order/_order.scss */
.order-order #main #app-order-order #content-step-payment .comment {
margin-bottom: 20px;
}
/* line 283, ../sass/order/_order.scss */
/* line 293, ../sass/order/_order.scss */
.order-order #main #app-order-order #infos {
margin-top: 30px;
}
/* line 285, ../sass/order/_order.scss */
/* line 295, ../sass/order/_order.scss */
.order-order #main #app-order-order #infos .panel-body {
padding-top: 0px;
white-space: pre-line;
}

/* line 295, ../sass/order/_order.scss */
/* line 305, ../sass/order/_order.scss */
#main #content .panel h3 {
font-family: "highvoltageregular";
margin: 0px;

+ 10
- 0
producer/web/sass/order/_order.scss Datei anzeigen

@@ -175,6 +175,16 @@
.btn-primary {
float: right ;
}

.date {
font-size: 20px ;
}

.point-sales {
color: gray ;
font-size: 14px ;
margin-top: 8px ;
}
}
}
}

Laden…
Abbrechen
Speichern