@@ -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> | |||
@@ -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 '' ; | |||
} | |||
} |
@@ -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); ?> |
@@ -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 ?> |
@@ -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' | |||
]; | |||
} | |||
@@ -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; | |||
} | |||
} |
@@ -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() ; | |||
} | |||
@@ -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> |
@@ -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> |
@@ -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 />'; |
@@ -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; |
@@ -175,6 +175,16 @@ | |||
.btn-primary { | |||
float: right ; | |||
} | |||
.date { | |||
font-size: 20px ; | |||
} | |||
.point-sales { | |||
color: gray ; | |||
font-size: 14px ; | |||
margin-top: 8px ; | |||
} | |||
} | |||
} | |||
} |