<?php /** * Copyright Souke (2018) * * contact@souke.fr * * 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\helpers\GlobalParam; use domain\PointSale\PointSale\PointSale; use domain\Producer\Producer\ProducerModule; use domain\Product\Product\ProductModule; use domain\Subscription\Subscription\SubscriptionModule; use yii\grid\GridView; use yii\helpers\ArrayHelper; use yii\helpers\Html; $producerModule = ProducerModule::getInstance(); $productModule = ProductModule::getInstance(); $subscriptionModule = SubscriptionModule::getInstance(); $this->setTitle('Abonnements'); $this->addButton(['label' => '<i class="bi bi-plus-lg"></i> Créer', 'url' => 'subscription/form', 'class' => 'btn btn-primary']); $columns = [ [ 'label' => 'Point de vente', 'format' => 'raw', 'filter' => ArrayHelper::map(PointSale::find()->where(['id_producer' => GlobalParam::getCurrentProducerId()])->asArray()->all(), 'id', 'name'), 'value' => function ($model) { $html = ''; if ($model->pointSale) { $html .= Html::encode($model->pointSale->name); $html .= '<br /><span class="locality">'. Html::encode($model->pointSale->locality). '</span>'; } return $html; } ], [ 'attribute' => 'product_name', 'label' => 'Produits', 'format' => 'raw', 'value' => function ($subscription) use ($subscriptionModule) { return $subscriptionModule->getProductsListAsHtml($subscription); } ], [ 'attribute' => 'day', 'label' => 'Jours', 'format' => 'raw', 'filter' => [ 'monday' => 'Lundi', 'tuesday' => 'Mardi', 'wednesday' => 'Mercredi', 'thursday' => 'Jeudi', 'friday' => 'Vendredi', 'saterday' => 'Samedi', 'sunday' => 'Dimanche', ], 'contentOptions' => ['class' => 'text-small'], 'value' => function ($model) { $html = ''; if ($model->monday) { $html .= 'lundi, '; } if ($model->tuesday) { $html .= 'mardi, '; } if ($model->wednesday) { $html .= 'mercredi, '; } if ($model->thursday) { $html .= 'jeudi, '; } if ($model->friday) { $html .= 'vendredi, '; } if ($model->saturday) { $html .= 'samedi, '; } if ($model->sunday) { $html .= 'dimanche, '; } if (strlen($html)) { return substr($html, 0, strlen($html) - 2); } else { return '<i class="bi bi-exclamation-triangle"></i> Aucun jour'; } } ], [ 'attribute' => 'week_frequency', 'filter' => [ 1 => 'Toutes les semaines', 2 => 'Toutes les 2 semaines', 3 => 'Toutes les 3 semaines', 4 => 'Tous les mois'], 'value' => function ($model) { if ($model->week_frequency == 1) { return 'Toutes les semaines'; } else { return 'Toutes les ' . $model->week_frequency . ' semaines'; } } ], [ 'attribute' => 'date_begin', 'label' => 'Date de début', 'format' => 'raw', 'value' => function ($model) { $html = date('d/m/Y', strtotime($model->date_begin)); return $html; } ], ]; /*if($producerModule->getConfig('credit')) { $columns[] = [ 'format' => 'raw', 'label' => 'Paiement automatique', 'headerOptions' => ['class' => 'column-auto-payment'], 'contentOptions' => ['class' => 'column-auto-payment'], 'filter' => [0 => 'Non', 1 => 'Oui'], 'value' => function($model) { if($model->auto_payment) { return '<span class="label label-success">Oui</span>' ; } else { return '<span class="label label-danger">Non</span>' ; } } ] ; }*/ $columns[] = [ 'class' => 'yii\grid\ActionColumn', 'template' => '{form} {delete}', 'headerOptions' => ['class' => 'column-actions'], 'contentOptions' => ['class' => 'column-actions'], 'buttons' => [ 'form' => function ($url, $model) { return Html::a('<i class="bi bi-pencil"></i>', $url, [ 'title' => 'Modifier', 'class' => 'btn btn-secondary', 'data-bs-toggle' => 'tooltip', 'data-bs-placement' => 'top', 'title' => 'Modifier' ]); }, 'delete' => function ($url, $model) { return Html::a('<i class="bi bi-trash"></i>', $url, [ 'title' => 'Supprimer', 'class' => 'btn btn-secondary', 'data-bs-toggle' => 'tooltip', 'data-bs-placement' => 'top', 'title' => 'Supprimer' ]); } ], ]; ?> <div class="subscription-index"> <?php if ($dataProvider->getCount()): ?> <div class="table-responsive"> <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => $columns, 'summary' => '' ]); ?> </div> <?php else: ?> <div class="alert alert-dark"> Vous n'avez aucun abonnement chez ce producteur. </div> <?php endif; ?> </div>