return $dataProvider; | return $dataProvider; | ||||
} | } | ||||
if(isset($this->id_user) && is_numeric($this->id_user)) { | |||||
$query->andWhere([ | |||||
'subscription.id_user' => $this->id_user | |||||
]) ; | |||||
} | |||||
if(isset($this->id_point_sale) && is_numeric($this->id_point_sale)) { | if(isset($this->id_point_sale) && is_numeric($this->id_point_sale)) { | ||||
$query->andWhere([ | $query->andWhere([ | ||||
'subscription.id_point_sale' => $this->id_point_sale | 'subscription.id_point_sale' => $this->id_point_sale |
<?php | |||||
/** | |||||
Copyright La boîte à pain (2018) | |||||
contact@laboiteapain.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. | |||||
*/ | |||||
/** | |||||
Copyright La boîte à pain (2018) | |||||
contact@laboiteapain.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. | |||||
*/ | |||||
namespace producer\controllers; | |||||
class SubscriptionController extends ProducerBaseController | |||||
{ | |||||
var $enableCsrfValidation = false; | |||||
public function behaviors() | |||||
{ | |||||
return [ | |||||
'access' => [ | |||||
'class' => AccessControl::className(), | |||||
'rules' => [ | |||||
[ | |||||
'allow' => true, | |||||
'roles' => ['@'], | |||||
] | |||||
], | |||||
], | |||||
]; | |||||
} | |||||
/** | |||||
* Liste les commandes récurrente du producteur. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function actionIndex() | |||||
{ | |||||
$searchModel = new SubscriptionSearch ; | |||||
$searchModel->id_user = User::getCurrentId() ; | |||||
$dataProvider = $searchModel->search(Yii::$app->request->queryParams); | |||||
return $this->render('index', [ | |||||
'searchModel' => $searchModel, | |||||
'dataProvider' => $dataProvider | |||||
]); | |||||
} | |||||
/** | |||||
* Crée une commande récurrente. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function actionCreate() | |||||
{ | |||||
// form | |||||
$model = new SubscriptionForm; | |||||
$model->id_producer = Producer::getId(); | |||||
// produits | |||||
$productsArray = Product::searchAll() ; | |||||
if ($model->load(Yii::$app->request->post()) && $model->validate() | |||||
&& $model->save()) | |||||
{ | |||||
Yii::$app->getSession()->setFlash('success', 'Abonnement ajouté'); | |||||
$subscription = Subscription::findOne($model->id) ; | |||||
$matchedDistributionsArray = $subscription->searchMatchedIncomingDistributions() ; | |||||
if(count($matchedDistributionsArray)) { | |||||
return $this->redirect(['subscription/update-distributions', 'idSubscription' => $subscription->id]); | |||||
} | |||||
else { | |||||
return $this->redirect(['subscription/index']); | |||||
} | |||||
} | |||||
return $this->render('create', [ | |||||
'model' => $model, | |||||
'productsArray' => $productsArray | |||||
]); | |||||
} | |||||
/** | |||||
* Modifie une commande récurrente. | |||||
* | |||||
* @param integer $id | |||||
* @return string | |||||
* @throws NotFoundHttpException | |||||
*/ | |||||
public function actionUpdate($id) | |||||
{ | |||||
// form | |||||
$model = new SubscriptionForm; | |||||
$subscription = Subscription::findOne($id); | |||||
if ($subscription) { | |||||
$model->id = $id; | |||||
$model->id_producer = $subscription->id_producer; | |||||
$model->id_user = $subscription->id_user; | |||||
$model->username = $subscription->username; | |||||
$model->id_point_sale = $subscription->id_point_sale; | |||||
$model->date_begin = date('d/m/Y', strtotime($subscription->date_begin)); | |||||
if (strlen($subscription->date_end)) { | |||||
$model->date_end = date('d/m/Y', strtotime($subscription->date_end)); | |||||
} | |||||
$model->monday = $subscription->monday; | |||||
$model->tuesday = $subscription->tuesday; | |||||
$model->wednesday = $subscription->wednesday; | |||||
$model->thursday = $subscription->thursday; | |||||
$model->friday = $subscription->friday; | |||||
$model->saturday = $subscription->saturday; | |||||
$model->sunday = $subscription->sunday; | |||||
$model->auto_payment = $subscription->auto_payment; | |||||
$model->week_frequency = $subscription->week_frequency; | |||||
// produits | |||||
$arrayProductsSubscription = ProductSubscription::searchAll([ | |||||
'id_subscription' => $model->id | |||||
]) ; | |||||
foreach ($arrayProductsSubscription as $productSubscription) { | |||||
$model->products['product_' . $productSubscription->id_product] = $productSubscription->quantity; | |||||
} | |||||
} else { | |||||
throw new NotFoundHttpException('L\'abonnement est introuvable.', 404); | |||||
} | |||||
// produits | |||||
$productsArray = Product::searchAll() ; | |||||
if ($model->load(Yii::$app->request->post()) && $model->validate()) { | |||||
if (!strlen($model->date_end)) { | |||||
$model->date_end = null; | |||||
} | |||||
if ($model->save()) { | |||||
Yii::$app->getSession()->setFlash('success', 'Abonnement modifié'); | |||||
$subscription = Subscription::findOne($model->id) ; | |||||
$matchedDistributionsArray = $subscription->searchMatchedIncomingDistributions() ; | |||||
if(count($matchedDistributionsArray)) { | |||||
return $this->redirect(['subscription/update-distributions', 'idSubscription' => $subscription->id,'update' => true]); | |||||
} | |||||
else { | |||||
return $this->redirect(['subscription/index']); | |||||
} | |||||
} | |||||
} | |||||
return $this->render('update', [ | |||||
'model' => $model, | |||||
'productsArray' => $productsArray | |||||
]); | |||||
} | |||||
/** | |||||
* Supprime une commande récurrente. | |||||
* | |||||
* @param integer $id | |||||
*/ | |||||
public function actionDelete($id) | |||||
{ | |||||
ProductSubscription::deleteAll(['id_subscription' => $id]); | |||||
Subscription::findOne($id)->delete(); | |||||
Yii::$app->getSession()->setFlash('success', 'Abonnement supprimé'); | |||||
return $this->redirect(['subscription/index']); | |||||
} | |||||
public function actionUpdateDistributions($idSubscription, $generate = false, $update = false) | |||||
{ | |||||
$subscription = Subscription::findOne($idSubscription) ; | |||||
$matchedDistributionsArray = $subscription->searchMatchedIncomingDistributions() ; | |||||
if($generate) { | |||||
if($update) { | |||||
$subscription->deleteOrdersIncomingDistributions() ; | |||||
} | |||||
foreach($matchedDistributionsArray as $distribution) { | |||||
$subscription->add($distribution->date) ; | |||||
} | |||||
Yii::$app->getSession()->setFlash('success', 'Commandes '.($update ? 're-' : '').'générées dans les distributions futures.'); | |||||
return $this->redirect(['subscription/index']) ; | |||||
} | |||||
return $this->render('update_distributions',[ | |||||
'matchedDistributionsArray' => $matchedDistributionsArray, | |||||
'idSubscription' => $idSubscription, | |||||
'update' => $update | |||||
]) ; | |||||
} | |||||
} |
use yii\widgets\Breadcrumbs; | use yii\widgets\Breadcrumbs; | ||||
use common\widgets\Alert; | use common\widgets\Alert; | ||||
use common\helpers\Url; | use common\helpers\Url; | ||||
use common\models\Producer; | |||||
\common\assets\CommonAsset::register($this); | \common\assets\CommonAsset::register($this); | ||||
\producer\assets\AppAsset::register($this); | \producer\assets\AppAsset::register($this); | ||||
'visible' => !Yii::$app->user->isGuest, | 'visible' => !Yii::$app->user->isGuest, | ||||
'active' => $this->getControllerAction() == 'order/history', | 'active' => $this->getControllerAction() == 'order/history', | ||||
], | ], | ||||
[ | |||||
'label' => '<span class="glyphicon glyphicon-repeat"></span> Abonnement', | |||||
'url' => Yii::$app->urlManager->createUrl(['subscription/index']), | |||||
'visible' => !Yii::$app->user->isGuest && $producer->user_manage_subscription, | |||||
'active' => $this->getControllerAction() == 'subscription/index', | |||||
], | |||||
[ | [ | ||||
'label' => '<span class="glyphicon glyphicon-euro"></span> Crédit', | 'label' => '<span class="glyphicon glyphicon-euro"></span> Crédit', | ||||
'url' => Yii::$app->urlManager->createUrl(['credit/history']), | 'url' => Yii::$app->urlManager->createUrl(['credit/history']), | ||||
'visible' => !Yii::$app->user->isGuest && Producer::getConfig('credit'), | |||||
'visible' => !Yii::$app->user->isGuest && $producer->credit, | |||||
'active' => $this->getControllerAction() == 'credit/history', | 'active' => $this->getControllerAction() == 'credit/history', | ||||
], | ], | ||||
[ | [ |
<?php | |||||
/** | |||||
Copyright La boîte à pain (2018) | |||||
contact@laboiteapain.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 yii\helpers\Html; | |||||
use yii\widgets\ActiveForm; | |||||
use yii\helpers\ArrayHelper ; | |||||
use common\models\User ; | |||||
use common\models\PointSale ; | |||||
?> | |||||
<div class="subscription-form"> | |||||
<?php $form = ActiveForm::begin(['enableClientValidation' => false]); ?> | |||||
<div class="col-md-5" id="bloc-select-user"> | |||||
<?= $form->field($model, 'id_user')->dropDownList( ArrayHelper::map(User::find()->joinWith('userProducer')->where('user_producer.id_producer = '.Producer::getId())->andWhere('user_producer.active = 1')->orderBy('lastname ASC, name ASC')->all(), 'id', function($model, $defaultValue) { | |||||
return $model['lastname'].' '.$model['name']; | |||||
}), ['prompt' => '--','class' => 'form-control user-id', ]) ?> | |||||
</div> | |||||
<div class="col-md-1" id="or-user"> | |||||
<span>OU</span> | |||||
</div> | |||||
<div class="col-md-6"> | |||||
<?= $form->field($model, 'username')->textInput() ?> | |||||
</div> | |||||
<div class="clr"></div> | |||||
<?= $form->field($model, 'id_producer')->hiddenInput() ?> | |||||
<?= $form->field($model, 'id_point_sale')->dropDownList(ArrayHelper::map(PointSale::find()->where('id_producer = '.Producer::getId())->all(), 'id', function($model, $defaultValue) { | |||||
return $model['name']; | |||||
}), ['prompt' => '--','class' => 'form-control user-id']) ?> | |||||
<?= $form->field($model, 'date_begin') ?> | |||||
<?= $form->field($model, 'date_end')->hint('Laisser vide pour une durée indéterminée') ?> | |||||
<div class="days"> | |||||
<h2>Jours</h2> | |||||
<?= $form->field($model, 'monday')->checkbox() ?> | |||||
<?= $form->field($model, 'tuesday')->checkbox() ?> | |||||
<?= $form->field($model, 'wednesday')->checkbox() ?> | |||||
<?= $form->field($model, 'thursday')->checkbox() ?> | |||||
<?= $form->field($model, 'friday')->checkbox() ?> | |||||
<?= $form->field($model, 'saturday')->checkbox() ?> | |||||
<?= $form->field($model, 'sunday')->checkbox() ?> | |||||
</div> | |||||
<div class="clr"></div> | |||||
<?= $form->field($model, 'week_frequency')->dropDownList([1=>1, 2=>2, 3=>3, 4=>4]) ?> | |||||
<?= $form->field($model, 'auto_payment') | |||||
->checkbox() | |||||
->hint('Cochez cette case si vous souhaitez que le crédit pain du client soit automatiquement débité lors de la création de la commande.<br />' | |||||
. 'Attention, un compte client existant doit être spécifié en haut de ce formulaire.') ?> | |||||
<div class="products"> | |||||
<h2>Produits</h2> | |||||
<?php if(isset($model->errors['products']) && count($model->errors['products'])) | |||||
{ | |||||
echo '<div class="alert alert-danger">'.$model->errors['products'][0].'</div>' ; | |||||
} | |||||
?> | |||||
<table class="table table-bordered table-condensed table-hover"> | |||||
<?php foreach ($productsArray as $p) : ?> | |||||
<tr> | |||||
<td><?= Html::encode($p->name) ?></td> | |||||
<td> | |||||
<div class="input-group"> | |||||
<span class="input-group-btn"> | |||||
<button class="btn btn-default btn-moins" type="button"><span class="glyphicon glyphicon-minus"></span></button> | |||||
</span> | |||||
<?= Html::input('text', 'SubscriptionForm[products][product_'.$p->id.']', (isset($model->products['product_'.$p->id])) ? $model->products['product_'.$p->id] : '', ['class' => 'form-control quantity']) ?> | |||||
<span class="input-group-btn"> | |||||
<button class="btn btn-default btn-plus" type="button"><span class="glyphicon glyphicon-plus"></span></button> | |||||
</span> | |||||
</div> | |||||
</td> | |||||
</tr> | |||||
<?php endforeach; ?> | |||||
</table> | |||||
</div> | |||||
<?= Html::submitButton('Enregistrer' , ['class' => 'btn btn-primary']) ?> | |||||
<?php ActiveForm::end(); ?> | |||||
</div> |
<?php | |||||
/** | |||||
Copyright La boîte à pain (2018) | |||||
contact@laboiteapain.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 yii\helpers\Html; | |||||
$this->setTitle('Ajouter un abonnement') ; | |||||
$this->addBreadcrumb(['label' => 'Abonnements', 'url' => ['index']]) ; | |||||
$this->addBreadcrumb('Ajouter') ; | |||||
?> | |||||
<div class="subscription-create"> | |||||
<?= $this->render('_form', [ | |||||
'model' => $model, | |||||
'productsArray' => $productsArray | |||||
]) ?> | |||||
</div> |
<?php | |||||
/** | |||||
Copyright La boîte à pain (2018) | |||||
contact@laboiteapain.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 yii\helpers\Html; | |||||
use yii\grid\GridView; | |||||
$this->setTitle('Abonnements') ; | |||||
$columns = [ | |||||
[ | |||||
'attribute' => 'product_name', | |||||
'label' => 'Produits', | |||||
'format' => 'raw', | |||||
'value' => function($model) { | |||||
$html = '' ; | |||||
foreach($model->productSubscription as $productSubscription) | |||||
{ | |||||
if(isset($productSubscription->product)) { | |||||
$html .= $productSubscription->quantity . ' x '.Html::encode($productSubscription->product->name).'<br />' ; | |||||
} | |||||
else { | |||||
$html .= 'Produit non défini<br />' ; | |||||
} | |||||
} | |||||
// aucun produit | |||||
if(!count($model->productSubscription)) | |||||
{ | |||||
$html .= '<span class="glyphicon glyphicon-warning-sign"></span> Aucun produit' ; | |||||
} | |||||
return $html ; | |||||
} | |||||
], | |||||
[ | |||||
'attribute' => 'id_point_sale', | |||||
'label' => 'Point de vente', | |||||
'format' => 'raw', | |||||
'filter' => ArrayHelper::map(PointSale::find()->where(['id_producer' => Producer::getId()])->asArray()->all(), 'id', 'name'), | |||||
'value' => function($model) { | |||||
return Html::encode($model->pointSale->name) ; | |||||
} | |||||
], | |||||
[ | |||||
'attribute' => 'date_begin', | |||||
'label' => 'Date de début', | |||||
'format' => 'raw', | |||||
'value' => function($model) { | |||||
$html = date('d/m/Y',strtotime($model->date_begin)) ; | |||||
return $html ; | |||||
} | |||||
], | |||||
[ | |||||
'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 '<span class="glyphicon glyphicon-warning-sign"></span> 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' ; | |||||
} | |||||
} | |||||
], | |||||
] ; | |||||
if(Producer::getConfig('credit')) { | |||||
$columns[] = [ | |||||
'attribute' => 'auto_payment', | |||||
'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' => '{update} {delete}', | |||||
'headerOptions' => ['class' => 'column-actions'], | |||||
'contentOptions' => ['class' => 'column-actions'], | |||||
'buttons' => [ | |||||
'update' => function ($url, $model) { | |||||
return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [ | |||||
'title' => Yii::t('app', 'Modifier'), 'class' => 'btn btn-default' | |||||
]); | |||||
}, | |||||
'delete' => function ($url, $model) { | |||||
return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, [ | |||||
'title' => Yii::t('app', 'Supprimer'), 'class' => 'btn btn-default' | |||||
]); | |||||
} | |||||
], | |||||
] ; | |||||
?> | |||||
<div class="subscription-index"> | |||||
<?= GridView::widget([ | |||||
'filterModel' => $searchModel, | |||||
'dataProvider' => $dataProvider, | |||||
'columns' => $columns, | |||||
]); ?> | |||||
</div> |
<?php | |||||
/** | |||||
Copyright La boîte à pain (2018) | |||||
contact@laboiteapain.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 yii\helpers\Html; | |||||
$this->setTitle('Modifier un abonnement') ; | |||||
$this->addBreadcrumb(['label' => 'Abonnements', 'url' => ['index']]) ; | |||||
$this->addBreadcrumb('Modifier') ; | |||||
?> | |||||
<div class="subscription-update"> | |||||
<?= $this->render('_form', [ | |||||
'model' => $model, | |||||
'productsArray' => $productsArray | |||||
]) ?> | |||||
</div> |