@@ -130,6 +130,25 @@ class ProducerAdminController extends BackendController | |||
} | |||
} | |||
/** | |||
* Modification d'un producteur. | |||
* | |||
* @return mixed | |||
*/ | |||
public function actionUpdate($id) | |||
{ | |||
$model = $this->findModel($id); | |||
if ($model->load(Yii::$app->request->post()) && $model->save()) { | |||
Yii::$app->getSession()->setFlash('success', 'Producteur modifié.'); | |||
return $this->redirect(['index']); | |||
} else { | |||
return $this->render('update', [ | |||
'model' => $model, | |||
]); | |||
} | |||
} | |||
public function actionUserTransfer($fromProducerId, $toProducerId, $withOrders = 1) | |||
{ | |||
$fromProducerId = (int) $fromProducerId; |
@@ -0,0 +1,73 @@ | |||
<?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 yii\helpers\Html; | |||
use yii\widgets\ActiveForm; | |||
?> | |||
<?php $form = ActiveForm::begin(); ?> | |||
<h3>Général</h3> | |||
<?= $form->field($model, 'name') ?> | |||
<?= $form->field($model, 'type')->textInput(['placeholder' => 'Boulangerie, brasserie, ferme ...']); ?> | |||
<?= $form->field($model, 'postcode') ?> | |||
<?= $form->field($model, 'city') ?> | |||
<?= $form->field($model, 'code')->label('Code d\'accès') ?> | |||
<h3>Facturation</h3> | |||
<?= $form->field($model, 'option_billing_type') | |||
->dropDownList(Producer::getBillingTypePopulateDropdown()); ?> | |||
<?= $form->field($model, 'option_billing_frequency') | |||
->dropDownList(Producer::getBillingFrequencyPopulateDropdown()); ?> | |||
<?= $form->field($model, 'option_billing_reduction') | |||
->dropDownList([ | |||
0 => 'Non', | |||
1 => 'Oui' | |||
]); ?> | |||
<?= $form->field($model, 'option_billing_reduction_percentage') ?> | |||
<?= $form->field($model, 'option_billing_permanent_transfer') | |||
->dropDownList([ | |||
0 => 'Non', | |||
1 => 'Oui' | |||
]); ?> | |||
<?= $form->field($model, 'option_billing_permanent_transfer_amount') ?> | |||
<div class="form-group"> | |||
<?= Html::submitButton($model->isNewRecord ? 'Ajouter' : 'Modifier', ['class' => 'btn btn-success']) ?> | |||
</div> | |||
<?php ActiveForm::end(); ?> |
@@ -48,14 +48,7 @@ $this->addBreadcrumb('Ajouter') ; | |||
?> | |||
<div class="producer-create"> | |||
<?php $form = ActiveForm::begin(); ?> | |||
<?= $form->field($model, 'name') ?> | |||
<?= $form->field($model, 'type')->textInput(['placeholder' => 'Boulangerie, brasserie, ferme ...']); ?> | |||
<?= $form->field($model, 'postcode') ?> | |||
<?= $form->field($model, 'city') ?> | |||
<?= $form->field($model, 'code')->label('Code d\'accès') ?> | |||
<div class="form-group"> | |||
<?= Html::submitButton('Ajouter', ['class' => 'btn btn-success']) ?> | |||
</div> | |||
<?php ActiveForm::end(); ?> | |||
<?= $this->render('_form', [ | |||
'model' => $model, | |||
]) ?> | |||
</div> |
@@ -130,7 +130,7 @@ $this->addButton(['label' => 'Nouveau producteur <span class="glyphicon glyphico | |||
} | |||
} | |||
], | |||
[ | |||
/*[ | |||
'attribute' => 'Prix libre', | |||
'label' => 'Prix libre', | |||
'format' => 'raw', | |||
@@ -153,21 +153,33 @@ $this->addButton(['label' => 'Nouveau producteur <span class="glyphicon glyphico | |||
return $str; | |||
} | |||
} | |||
], | |||
],*/ | |||
[ | |||
'attribute' => 'À facturer / chiffre d\'affaire', | |||
'label' => 'À facturer / chiffre d\'affaire', | |||
'format' => 'raw', | |||
'value' => function($model) { | |||
$str = ''; | |||
if($model->isBillingFrequencyMonthly()) { | |||
return $model->getSummaryAmountsToBeBilled('Mois dernier', 1); | |||
$str .= $model->getSummaryAmountsToBeBilled('Mois dernier', 1); | |||
} | |||
elseif($model->isBillingFrequencyQuarterly()) { | |||
return $model->getSummaryAmountsToBeBilled('3 derniers mois', 3); | |||
$str .= $model->getSummaryAmountsToBeBilled('3 derniers mois', 3); | |||
} | |||
elseif($model->isBillingFrequencyBiannual()) { | |||
return $model->getSummaryAmountsToBeBilled('6 derniers mois', 6); | |||
$str .= $model->getSummaryAmountsToBeBilled('6 derniers mois', 6); | |||
} | |||
if($model->option_billing_reduction && strlen($str)) { | |||
$str .= '<br /><u>Avec réduction</u> : '; | |||
if($model->option_billing_reduction_percentage) { | |||
$str .= ' '.$model->option_billing_reduction_percentage.' %'; | |||
} | |||
} | |||
return $str; | |||
} | |||
], | |||
[ | |||
@@ -175,16 +187,35 @@ $this->addButton(['label' => 'Nouveau producteur <span class="glyphicon glyphico | |||
'label' => 'Détails facturation', | |||
'format' => 'raw', | |||
'value' => function($model) { | |||
$str = ''; | |||
$str .= '- '.Producer::$billingTypeArray[$model->option_billing_type].'<br />'; | |||
$str .= '- '.Producer::$billingFrequencyArray[$model->option_billing_frequency]; | |||
$str = '<ul style="margin: 0px;padding-left: 15px;">'; | |||
$str .= '<li>'.Producer::$billingFrequencyArray[$model->option_billing_frequency].'</li>'; | |||
if($model->option_billing_reduction) { | |||
$str .= '<br />- <u>Avec réduction</u>'; | |||
if($model->option_billing_permanent_transfer) { | |||
$str .= '<li>Virement permanent : <strong>'.Price::format($model->option_billing_permanent_transfer_amount).'</strong></li>'; | |||
} | |||
$str .= '</ul>'; | |||
return $str; | |||
} | |||
] | |||
], | |||
[ | |||
'class' => 'yii\grid\ActionColumn', | |||
'template' => '{update}', | |||
'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' | |||
] | |||
); | |||
}, | |||
], | |||
], | |||
], | |||
]); ?> |
@@ -0,0 +1,54 @@ | |||
<?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 yii\helpers\Html; | |||
use yii\widgets\ActiveForm; | |||
use yii\helpers\ArrayHelper ; | |||
use common\models\Producer ; | |||
$this->setTitle('Modifier producteur') ; | |||
$this->addBreadcrumb(['label' => 'Producteurs', 'url' => ['index']]) ; | |||
$this->addBreadcrumb('Modifier') ; | |||
?> | |||
<div class="producer-update"> | |||
<?= $this->render('_form', [ | |||
'model' => $model, | |||
]) ?> | |||
</div> |
@@ -477,24 +477,6 @@ $this->addBreadcrumb($this->getTitle()); | |||
->textarea(['rows' => 15]) ?> | |||
</div> | |||
</div> | |||
<?php if (User::isCurrentAdmin()): ?> | |||
<div v-show="currentSection == 'administration'" class="panel panel-default"> | |||
<div class="panel-body"> | |||
<h4>Administration</h4> | |||
<?= $form->field($model, 'option_billing_type') | |||
->dropDownList(Producer::getBillingTypePopulateDropdown()); ?> | |||
<?= $form->field($model, 'option_billing_frequency') | |||
->dropDownList(Producer::getBillingFrequencyPopulateDropdown()); ?> | |||
<?= $form->field($model, 'option_billing_reduction') | |||
->dropDownList([ | |||
0 => 'Non', | |||
1 => 'Oui' | |||
]); ?> | |||
</div> | |||
</div> | |||
<?php endif; ?> | |||
<div class="form-group"> | |||
<?= Html::submitButton('Mettre à jour', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | |||
</div> |
@@ -80,11 +80,6 @@ var app = new Vue({ | |||
name: 'logiciels-caisse', | |||
nameDisplay: 'Logiciels de caisse', | |||
isAdminSection: 0 | |||
}, | |||
{ | |||
name: 'administration', | |||
nameDisplay: 'Administration', | |||
isAdminSection: 1 | |||
} | |||
] | |||
}, window.appInitValues); |
@@ -164,7 +164,9 @@ class Producer extends ActiveRecordCommon | |||
'document_quotation_duration', | |||
'option_dashboard_number_distributions', | |||
'option_online_payment_minimum_amount', | |||
'option_document_price_decimals' | |||
'option_document_price_decimals', | |||
'option_billing_reduction_percentage', | |||
'option_billing_permanent_transfer_amount', | |||
], | |||
'integer' | |||
], | |||
@@ -261,7 +263,8 @@ class Producer extends ActiveRecordCommon | |||
'option_notify_producer_order_summary', | |||
'option_billing_reduction', | |||
'option_export_evoliz', | |||
'option_display_message_new_opendistrib_version' | |||
'option_display_message_new_opendistrib_version', | |||
'option_billing_permanent_transfer' | |||
], | |||
'boolean' | |||
], | |||
@@ -403,7 +406,10 @@ class Producer extends ActiveRecordCommon | |||
'option_csv_separator' => 'Séparateur de colonnes (CSV)', | |||
'option_display_message_new_opendistrib_version' => 'Afficher les messages de mise à jour du logiciel Opendistrib', | |||
'option_online_payment_minimum_amount' => 'Paiement en ligne : montant minimum', | |||
'option_document_price_decimals' => 'Prix : nombre de décimales affichées' | |||
'option_document_price_decimals' => 'Prix : nombre de décimales affichées', | |||
'option_billing_reduction_percentage' => 'Réduction : pourcentage', | |||
'option_billing_permanent_transfer' => 'Virement permanent', | |||
'option_billing_permanent_transfer_amount' => 'Virement permanent : montant', | |||
]; | |||
} | |||
@@ -569,18 +575,11 @@ class Producer extends ActiveRecordCommon | |||
$turnover = $this->getTurnover($month); | |||
if ($turnover) { | |||
if ($this->isBillingTypeClassic()) { | |||
$text .= '<strong>'; | |||
} | |||
$isBold = $this->isBillingTypeClassic() && !$this->option_billing_permanent_transfer; | |||
if ($isBold) $text .= '<strong>'; | |||
$text .= $this->getAmountToBeBilledByTurnover($turnover, true); | |||
if ($this->isBillingTypeClassic()) { | |||
$text .= '</strong>'; | |||
} | |||
if ($isBold) $text .= '</strong>'; | |||
$text .= ' / '.Price::format($turnover); | |||
$text .= '<br />'; | |||
} | |||
} |
@@ -0,0 +1,30 @@ | |||
<?php | |||
use yii\db\Migration; | |||
use yii\db\Schema; | |||
/** | |||
* Class m230112_094203_producer_add_options_billing | |||
*/ | |||
class m230112_094203_producer_add_options_billing extends Migration | |||
{ | |||
/** | |||
* {@inheritdoc} | |||
*/ | |||
public function safeUp() | |||
{ | |||
$this->addColumn('producer', 'option_billing_reduction_percentage', Schema::TYPE_INTEGER .' DEFAULT NULL'); | |||
$this->addColumn('producer', 'option_billing_permanent_transfer', Schema::TYPE_BOOLEAN . ' DEFAULT 0'); | |||
$this->addColumn('producer', 'option_billing_permanent_transfer_amount', Schema::TYPE_INTEGER .' DEFAULT NULL'); | |||
} | |||
/** | |||
* {@inheritdoc} | |||
*/ | |||
public function safeDown() | |||
{ | |||
$this->dropColumn('producer', 'option_billing_reduction_percentage'); | |||
$this->dropColumn('producer', 'option_billing_permanent_transfer'); | |||
$this->dropColumn('producer', 'option_billing_permanent_transfer_amount'); | |||
} | |||
} |