You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

202 line
13KB

  1. <?php
  2. /**
  3. * Copyright distrib (2018)
  4. *
  5. * contact@opendistrib.net
  6. *
  7. * Ce logiciel est un programme informatique servant à aider les producteurs
  8. * à distribuer leur production en circuits courts.
  9. *
  10. * Ce logiciel est régi par la licence CeCILL soumise au droit français et
  11. * respectant les principes de diffusion des logiciels libres. Vous pouvez
  12. * utiliser, modifier et/ou redistribuer ce programme sous les conditions
  13. * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
  14. * sur le site "http://www.cecill.info".
  15. *
  16. * En contrepartie de l'accessibilité au code source et des droits de copie,
  17. * de modification et de redistribution accordés par cette licence, il n'est
  18. * offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
  19. * seule une responsabilité restreinte pèse sur l'auteur du programme, le
  20. * titulaire des droits patrimoniaux et les concédants successifs.
  21. *
  22. * A cet égard l'attention de l'utilisateur est attirée sur les risques
  23. * associés au chargement, à l'utilisation, à la modification et/ou au
  24. * développement et à la reproduction du logiciel par l'utilisateur étant
  25. * donné sa spécificité de logiciel libre, qui peut le rendre complexe à
  26. * manipuler et qui le réserve donc à des développeurs et des professionnels
  27. * avertis possédant des connaissances informatiques approfondies. Les
  28. * utilisateurs sont donc invités à charger et tester l'adéquation du
  29. * logiciel à leurs besoins dans des conditions permettant d'assurer la
  30. * sécurité de leurs systèmes et ou de leurs données et, plus généralement,
  31. * à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
  32. *
  33. * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
  34. * pris connaissance de la licence CeCILL, et que vous en avez accepté les
  35. * termes.
  36. */
  37. use yii\helpers\Html;
  38. use yii\grid\GridView;
  39. use common\models\PointVenteUser;
  40. $this->setTitle('Points de vente');
  41. $this->addBreadcrumb($this->getTitle());
  42. $this->addButton(
  43. [
  44. 'label' => 'Nouveau point de vente <span class="glyphicon glyphicon-plus"></span>',
  45. 'url' => 'point-sale/create',
  46. 'class' => 'btn btn-primary'
  47. ]
  48. );
  49. ?>
  50. <div class="point-sale-index">
  51. <?= GridView::widget([
  52. 'filterModel' => $searchModel,
  53. 'dataProvider' => $dataProvider,
  54. 'columns' => [
  55. [
  56. 'attribute' => 'name',
  57. 'label' => 'Nom',
  58. 'format' => 'raw',
  59. 'value' => function ($model) {
  60. $html = '';
  61. $html .= $model->name;
  62. if ($model->is_bread_box) {
  63. $html .= ' <span class="label label-default">Boîte à pain</span> ';
  64. }
  65. return $html;
  66. }
  67. ],
  68. 'locality',
  69. [
  70. 'attribute' => 'delivery',
  71. 'label' => 'Livraison',
  72. 'filter' => [
  73. 'monday' => 'Lundi',
  74. 'tuesday' => 'Mardi',
  75. 'wednesday' => 'Mercredi',
  76. 'thursday' => 'Jeudi',
  77. 'friday' => 'Vendredi',
  78. 'saterday' => 'Samedi',
  79. 'sunday' => 'Dimanche',
  80. ],
  81. 'value' => function ($model) {
  82. return $model->getStrDeliveryDays();
  83. }
  84. ],
  85. [
  86. 'attribute' => 'access_type',
  87. 'label' => 'Accès',
  88. 'filter' => [
  89. 'open' => 'Ouvert',
  90. 'code' => 'Code',
  91. 'restricted_access' => 'Accès restreint'
  92. ],
  93. 'format' => 'raw',
  94. 'value' => function ($model) {
  95. $count = UserPointSale::find()->where(
  96. ['id_point_sale' => $model->id]
  97. )->count();
  98. $html = '';
  99. if ($model->restricted_access) {
  100. $html .= '<span class="glyphicon glyphicon-lock"></span> ';
  101. if ($count == 1) {
  102. $html .= '1 utilisateur';
  103. } else {
  104. $html .= $count . ' utilisateurs';
  105. }
  106. }
  107. if (strlen($model->code)) {
  108. if (strlen($html)) {
  109. $html .= '<br />';
  110. }
  111. $html .= 'Code : <strong>' . Html::encode(
  112. $model->code
  113. ) . '</strong>';
  114. }
  115. return $html;
  116. }
  117. ],
  118. [
  119. 'attribute' => 'credit',
  120. 'label' => 'Crédit',
  121. 'format' => 'raw',
  122. 'value' => function ($model) {
  123. if ($model->credit && isset(Producer::$creditFunctioningArray[$model->credit_functioning])) {
  124. return '<span class="glyphicon glyphicon-euro"></span> ' . Producer::$creditFunctioningArray[$model->credit_functioning];
  125. }
  126. return '';
  127. }
  128. ],
  129. [
  130. 'attribute' => 'default',
  131. 'label' => 'Par défaut',
  132. 'format' => 'raw',
  133. 'contentOptions' => ['class' => 'td-default'],
  134. 'value' => function ($model) {
  135. if ($model->default) {
  136. return Html::a(
  137. '<span class="glyphicon glyphicon-star"></span>',
  138. ['point-sale/default', 'id' => $model->id],
  139. [
  140. 'title' => Yii::t(
  141. 'app',
  142. 'Point de vente par défaut'
  143. ),
  144. 'class' => 'btn btn-default'
  145. ]
  146. );
  147. } else {
  148. return Html::a(
  149. '<span class="glyphicon glyphicon-star-empty"></span>',
  150. ['point-sale/default', 'id' => $model->id],
  151. [
  152. 'title' => Yii::t(
  153. 'app',
  154. 'Point de vente par défaut'
  155. ),
  156. 'class' => 'btn btn-default'
  157. ]
  158. );
  159. }
  160. }
  161. ],
  162. [
  163. 'class' => 'yii\grid\ActionColumn',
  164. 'template' => '{update} {delete}',
  165. 'headerOptions' => ['class' => 'column-actions'],
  166. 'contentOptions' => ['class' => 'column-actions'],
  167. 'buttons' => [
  168. 'update' => function ($url, $model) {
  169. return Html::a(
  170. '<span class="glyphicon glyphicon-pencil"></span>',
  171. $url,
  172. [
  173. 'title' => Yii::t('app', 'Modifier'),
  174. 'class' => 'btn btn-default'
  175. ]
  176. );
  177. },
  178. 'delete' => function ($url, $model) {
  179. return Html::a(
  180. '<span class="glyphicon glyphicon-trash"></span>',
  181. $url,
  182. [
  183. 'title' => Yii::t('app', 'Supprimer'),
  184. 'class' => 'btn btn-default'
  185. ]
  186. );
  187. }
  188. ],
  189. ],
  190. ],
  191. ]); ?>
  192. </div>