@@ -127,6 +127,12 @@ class UserController extends BackendController | |||
$model->points_sale[] = $userPointSaleArray->id_point_sale; | |||
} | |||
} | |||
$userProducer = UserProducer::searchOne([ | |||
'id_producer' => GlobalParam::getCurrentProducerId(), | |||
'id_user' => $model->id | |||
]) ; | |||
$model->product_price_percent = $userProducer->product_price_percent ; | |||
} | |||
// points de vente | |||
@@ -193,6 +199,7 @@ class UserController extends BackendController | |||
$model->sendMailWelcome($password); | |||
$this->processLinkPointSale($model); | |||
$this->processProductPricePercent($model) ; | |||
Yii::$app->getSession()->setFlash('success', 'Utilisateur créé.'); | |||
$model = new User(); | |||
@@ -230,6 +237,7 @@ class UserController extends BackendController | |||
$model->sendMailWelcome($password); | |||
} | |||
$this->processLinkPointSale($model); | |||
$this->processProductPricePercent($model) ; | |||
Yii::$app->getSession()->setFlash('success', 'Utilisateur modifié.'); | |||
} | |||
} else { | |||
@@ -288,6 +296,17 @@ class UserController extends BackendController | |||
} | |||
} | |||
public function processProductPricePercent($model) | |||
{ | |||
$userProducer = UserProducer::searchOne([ | |||
'id_producer' => GlobalParam::getCurrentProducerId(), | |||
'id_user' => $model->id | |||
]) ; | |||
$userProducer->product_price_percent = $model->product_price_percent ; | |||
$userProducer->save() ; | |||
} | |||
/** | |||
* Désactive l'utilisateur de l'établissement. | |||
* |
@@ -92,6 +92,13 @@ use common\models\Producer; | |||
Producer::CREDIT_FUNCTIONING_USER => Producer::$creditFunctioningArray[Producer::CREDIT_FUNCTIONING_USER], | |||
], [])->hint(Producer::HINT_CREDIT_FUNCTIONING); ?> | |||
<?= $form->field($model, 'product_price_percent') | |||
->dropDownList([ | |||
'' => 'Aucun', | |||
-5 => '-5%', | |||
5 => '+5%', | |||
], [])->hint('Pourcentage appliqué aux prix de chaque produit dans ce point de vente.'); ?> | |||
<div id="delivery-days"> | |||
<h2>Jours de livraison</h2> |
@@ -76,6 +76,13 @@ use yii\widgets\ActiveForm; | |||
]); | |||
?> | |||
<?= $form->field($model, 'product_price_percent') | |||
->dropDownList([ | |||
'' => 'Aucun', | |||
-5 => '-5%', | |||
5 => '+5%', | |||
], [])->hint('Pourcentage appliqué aux prix de chaque produit pour cet utilisateur.'); ?> | |||
<div class="form-group"> | |||
<?= Html::submitButton($model->isNewRecord ? 'Ajouter' : 'Modifier', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | |||
</div> |
@@ -90,7 +90,8 @@ class PointSale extends ActiveRecordCommon | |||
['point_production', 'default', 'value' => 0], | |||
[['id_producer', 'id_user'], 'integer'], | |||
['id_producer', 'required'], | |||
[['users', 'users_comment', 'code'], 'safe'] | |||
[['users', 'users_comment', 'code'], 'safe'], | |||
[['product_price_percent'], 'double'], | |||
]; | |||
} | |||
@@ -124,7 +125,8 @@ class PointSale extends ActiveRecordCommon | |||
'code' => 'Code', | |||
'credit_functioning' => 'Utilisation du Crédit par l\'utilisateur', | |||
'default' => 'Point de vente par défaut', | |||
'id_user' => 'Contact' | |||
'id_user' => 'Contact', | |||
'product_price_percent' => 'Prix produits : pourcentage' | |||
]; | |||
} | |||
@@ -0,0 +1,134 @@ | |||
<?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. | |||
*/ | |||
namespace common\models; | |||
use common\helpers\GlobalParam; | |||
use Yii; | |||
use yii\helpers\Html; | |||
use common\models\UserPointSale; | |||
use common\models\PointSaleDistribution; | |||
use common\components\ActiveRecordCommon; | |||
/** | |||
* This is the model class for table "product_price". | |||
* | |||
* @property integer $id | |||
*/ | |||
class ProductPrice extends ActiveRecordCommon | |||
{ | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public static function tableName() | |||
{ | |||
return 'product_price'; | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function rules() | |||
{ | |||
return [ | |||
[['id_product', 'price'], 'required'], | |||
[['id_product', 'id_user', 'id_point_sale', 'percent'], 'integer'], | |||
[['price'], 'double'], | |||
]; | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function attributeLabels() | |||
{ | |||
return [ | |||
'id' => 'ID', | |||
'id_product' => 'Produit', | |||
'id_user' => 'Utilisateur', | |||
'id_point_sale' => 'Point de vente', | |||
'price' => 'Prix (HT)', | |||
'percent' => 'Pourcentage', | |||
]; | |||
} | |||
/* | |||
* Relations | |||
*/ | |||
public function getProduct() | |||
{ | |||
return $this->hasOne( | |||
Product::className(), | |||
['id' => 'id_product'] | |||
); | |||
} | |||
public function getPointSale() | |||
{ | |||
return $this->hasOne( | |||
PointSale::className(), | |||
['id' => 'id_point_sale'] | |||
); | |||
} | |||
public function getUser() | |||
{ | |||
return $this->hasOne( | |||
User::className(), | |||
['id' => 'id_user'] | |||
) ; | |||
} | |||
/** | |||
* Retourne les options de base nécessaires à la fonction de recherche. | |||
* | |||
* @return array | |||
*/ | |||
public static function defaultOptionsSearch() | |||
{ | |||
return [ | |||
'with' => [], | |||
'join_with' => [], | |||
'orderby' => '', | |||
'attribute_id_producer' => '' | |||
]; | |||
} | |||
} |
@@ -76,6 +76,7 @@ class User extends ActiveRecordCommon implements IdentityInterface | |||
var $password_new_confirm; | |||
var $points_sale = []; | |||
var $one_name ; | |||
var $product_price_percent ; | |||
/** | |||
* @inheritdoc | |||
@@ -111,7 +112,7 @@ class User extends ActiveRecordCommon implements IdentityInterface | |||
['password_old', 'verifyPasswordOld'], | |||
['password_new', 'verifyPasswordNew'], | |||
['password_new_confirm', 'verifyPasswordNewConfirm'], | |||
[['date_last_connection', 'password_old', 'password_new', 'password_new_confirm', 'password_hash', 'points_sale'], 'safe'], | |||
[['date_last_connection', 'password_old', 'password_new', 'password_new_confirm', 'password_hash', 'points_sale', 'product_price_percent'], 'safe'], | |||
]; | |||
} | |||
@@ -140,7 +141,8 @@ class User extends ActiveRecordCommon implements IdentityInterface | |||
'points_sale' => 'Points de vente', | |||
'type' => 'Type', | |||
'name_legal_person' => 'Libellé', | |||
'is_main_contact' => 'Contact principal' | |||
'is_main_contact' => 'Contact principal', | |||
'product_price_percent' => 'Prix produits : pourcentage' | |||
]; | |||
} | |||
@@ -67,9 +67,9 @@ class UserProducer extends ActiveRecordCommon | |||
{ | |||
return [ | |||
[['id_user', 'id_producer'], 'required'], | |||
[['id_user', 'id_producer'], 'integer'], | |||
[['id_user', 'id_producer', 'product_price_percent'], 'integer'], | |||
[['active','bookmark','credit_active'], 'boolean'], | |||
[['credit'], 'double'], | |||
[['credit', 'product_price_percent'], 'double'], | |||
]; | |||
} | |||
@@ -83,7 +83,8 @@ class UserProducer extends ActiveRecordCommon | |||
'id_producer' => 'Producteur', | |||
'active' => 'Actif', | |||
'bookmark' => 'Favoris', | |||
'credit_active' => 'Crédit' | |||
'credit_active' => 'Crédit', | |||
'product_price_percent' => 'Prix produits : pourcentage' | |||
]; | |||
} | |||
@@ -0,0 +1,30 @@ | |||
<?php | |||
use yii\db\Migration; | |||
use yii\db\Schema; | |||
class m201207_160043_specific_prices extends Migration | |||
{ | |||
public function safeUp() | |||
{ | |||
$this->createTable('product_price', [ | |||
'id' => 'pk', | |||
'id_product' => Schema::TYPE_INTEGER . ' NOT NULL', | |||
'id_user' => Schema::TYPE_INTEGER, | |||
'id_point_sale' => Schema::TYPE_INTEGER, | |||
'price' => Schema::TYPE_FLOAT, | |||
]); | |||
$this->addColumn('user_producer', 'product_price_percent', Schema::TYPE_INTEGER) ; | |||
$this->addColumn('point_sale', 'product_price_percent', Schema::TYPE_INTEGER) ; | |||
} | |||
public function safeDown() | |||
{ | |||
$this->dropTable('product_price') ; | |||
$this->dropColumn('user_producer', 'product_price_percent') ; | |||
$this->dropColumn('point_sale', 'product_price_percent') ; | |||
return false; | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
<?php | |||
use yii\db\Migration; | |||
use yii\db\Schema; | |||
class m201207_164410_specific_prices_percent extends Migration | |||
{ | |||
public function safeUp() | |||
{ | |||
$this->addColumn('product_price', 'percent', Schema::TYPE_INTEGER) ; | |||
} | |||
public function safeDown() | |||
{ | |||
$this->dropColumn('product_price', 'percent') ; | |||
return false; | |||
} | |||
/* | |||
// Use up()/down() to run migration code without a transaction. | |||
public function up() | |||
{ | |||
} | |||
public function down() | |||
{ | |||
echo "m201207_164410_specific_prices_percent cannot be reverted.\n"; | |||
return false; | |||
} | |||
*/ | |||
} |