<?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. | |||||
*/ | |||||
Yii::setAlias('common', dirname(__DIR__)); | |||||
Yii::setAlias('frontend', dirname(dirname(__DIR__)) . '/frontend'); | |||||
Yii::setAlias('backend', dirname(dirname(__DIR__)) . '/backend'); | |||||
Yii::setAlias('console', dirname(dirname(__DIR__)) . '/console'); | |||||
Yii::setAlias('producer', dirname(dirname(__DIR__)) . '/producer'); | |||||
$serverName = $_SERVER['SERVER_NAME'] ; | |||||
$domainName = '' ; | |||||
if($serverName == 'localhost') { | |||||
$domainName = 'localhost' ; | |||||
} | |||||
else { | |||||
$domainName = (YII_ENV === 'dev' || YII_ENV === 'demo') ? 'opendistrib.local' : 'opendistrib.net' ; | |||||
} | |||||
Yii::setAlias('@domainName', $domainName); | |||||
Yii::setAlias('@baseUrl', ($serverName == 'localhost') ? '/www/projets/distrib/' : '/'); | |||||
Yii::setAlias('@baseUrlFrontend', (($serverName == 'localhost') ? '/frontend/web' : '')); | |||||
Yii::setAlias('@baseUrlBackend', (($serverName == 'localhost') ? '/backend/web' : '')); | |||||
Yii::setAlias('@baseUrlProducer', (($serverName == 'localhost') ? '/producer/web' : '')); | |||||
Yii::setAlias('@frontendSubdomain', (($serverName == 'localhost') ? '' : 'www')); | |||||
Yii::setAlias('@backendSubdomain', (($serverName == 'localhost') ? '' : 'admin')); | |||||
Yii::setAlias('@producerSubdomain', (($serverName == 'localhost') ? '' : 'producteurs')); | |||||
/* | |||||
* Autoload | |||||
*/ | |||||
Yii::$classMap['Import'] = Yii::getAlias('@common/exts/Import.php'); // sesuaikan pathnya | |||||
// yii | |||||
Import::using('Yii'); | |||||
Import::using('yii\filters\*'); | |||||
Import::using('yii\data\*'); | |||||
Import::using('yii\db\*'); | |||||
Import::using('yii\behaviors\*'); | |||||
Import::using('yii\helpers\*'); | |||||
Import::using('yii\web\NotFoundHttpException'); | |||||
Import::using('yii\grid\*'); | |||||
// models | |||||
Import::using('common\models\*'); | |||||
Import::using('frontend\models\*'); | |||||
Import::using('backend\models\*'); | |||||
// controllers | |||||
Import::using('common\controllers\*'); | |||||
Import::using('frontend\controllers\*'); | |||||
Import::using('backend\controllers\*'); | |||||
Import::using('producer\controllers\*'); | |||||
// helpers | |||||
Import::using('common\helpers\*'); | |||||
// components | |||||
Import::using('common\components\*'); | |||||
Import::using('producer\components\*'); | |||||
Import::using('backend\components\*'); | |||||
Import::using('frontend\components\*'); | |||||
Import::using('kartik\mpdf\Pdf'); |
{ | { | ||||
return [ | return [ | ||||
[['id_user', 'date', 'id_point_sale', 'id_distribution'], 'required', 'message' => ''], | [['id_user', 'date', 'id_point_sale', 'id_distribution'], 'required', 'message' => ''], | ||||
[['id_user', 'id_point_sale', 'id_distribution','id_subscription'], 'integer'], | |||||
[['id_user', 'id_point_sale', 'id_distribution','id_subscription', 'id_order_status', 'id_invoice', 'id_quotation', 'id_delivery_note'], 'integer'], | |||||
[['auto_payment', 'tiller_synchronization'], 'boolean'], | [['auto_payment', 'tiller_synchronization'], 'boolean'], | ||||
[['date', 'date_update', 'comment', 'comment_point_sale', 'mean_payment'], 'safe'] | [['date', 'date_update', 'comment', 'comment_point_sale', 'mean_payment'], 'safe'] | ||||
]; | ]; | ||||
'id_point_sale' => 'Point de vente', | 'id_point_sale' => 'Point de vente', | ||||
'id_distribution' => 'Date de distribution', | 'id_distribution' => 'Date de distribution', | ||||
'id_subscription' => 'Abonnement', | 'id_subscription' => 'Abonnement', | ||||
'id_order_status' => 'Statut', | |||||
'id_invoice' => 'Facture', | |||||
'id_quotation' => 'Devis', | |||||
'id_delivery_note' => 'Bon de livraison' | |||||
]; | ]; | ||||
} | } | ||||
return $this->hasOne(Subscription::className(), ['id' => 'id_subscription']) | return $this->hasOne(Subscription::className(), ['id' => 'id_subscription']) | ||||
->with('productSubscription'); | ->with('productSubscription'); | ||||
} | } | ||||
public function getOrderOrderStatus() | |||||
{ | |||||
return $this->hasMany(OrderOrderStatus::className(), ['id_order' => 'id'])->with('orderStatus') ; | |||||
} | |||||
public function getInvoice() | |||||
{ | |||||
return $this->hasOne(Invoice::className(), ['id' => 'id_invoice']) ; | |||||
} | |||||
public function getQuotation() | |||||
{ | |||||
return $this->hasOne(Quotation::className(), ['id' => 'id_quotation']) ; | |||||
} | |||||
public function getDeliveryNote() | |||||
{ | |||||
return $this->hasOne(DeliveryNote::className(), ['id' => 'id_delivery_note']) ; | |||||
} | |||||
/** | /** | ||||
* Retourne les options de base nécessaires à la fonction de recherche. | * Retourne les options de base nécessaires à la fonction de recherche. |
public function rules() | public function rules() | ||||
{ | { | ||||
return [ | return [ | ||||
[['name','type'], 'required'], | |||||
[['name','type','id_tax_rate_default'], 'required'], | |||||
[['tiller_provider_token','tiller_restaurant_token'], 'required', 'when' => function($model) { | [['tiller_provider_token','tiller_restaurant_token'], 'required', 'when' => function($model) { | ||||
return $model->tiller == true ; | return $model->tiller == true ; | ||||
}], | }], | ||||
[['order_deadline', 'order_delay'], 'integer'], | |||||
[['order_deadline', 'order_delay', 'id_tax_rate_default', 'document_quotation_duration'], 'integer'], | |||||
['order_deadline', 'in', 'range' => [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]], | ['order_deadline', 'in', 'range' => [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]], | ||||
['order_delay', 'in', 'range' => [1, 2, 3, 4, 5, 6, 7]], | ['order_delay', 'in', 'range' => [1, 2, 3, 4, 5, 6, 7]], | ||||
['code', function($attribute, $params) { | ['code', function($attribute, $params) { | ||||
$this->addError($attribute, 'Ce code est déjà utilisé par un autre producteur.'); | $this->addError($attribute, 'Ce code est déjà utilisé par un autre producteur.'); | ||||
} | } | ||||
}], | }], | ||||
[['description','mentions','gcs','order_infos','slug','secret_key_payplug','background_color_logo','option_behavior_cancel_order','tiller_provider_token','tiller_restaurant_token'], 'string'], | |||||
[['description','mentions','gcs','order_infos','slug','secret_key_payplug','background_color_logo','option_behavior_cancel_order','tiller_provider_token','tiller_restaurant_token','status', | |||||
'document_infos_bottom', 'document_infos_quotation', 'document_infos_invoice', 'document_infos_delivery_note'], 'string'], | |||||
[['negative_balance', 'credit', 'active','online_payment','user_manage_subscription', 'option_allow_user_gift','use_credit_checked_default','tiller'], 'boolean'], | [['negative_balance', 'credit', 'active','online_payment','user_manage_subscription', 'option_allow_user_gift','use_credit_checked_default','tiller'], 'boolean'], | ||||
[['name', 'siret', 'logo', 'photo', 'postcode', 'city', 'code','type','credit_functioning','option_behavior_cancel_order'], 'string', 'max' => 255], | |||||
[['name', 'siret', 'logo', 'photo', 'postcode', 'city', 'code','type','credit_functioning','option_behavior_cancel_order', 'document_quotation_prefix', 'document_quotation_first_reference', 'document_invoice_prefix', 'document_invoice_first_reference', 'document_delivery_note_prefix', 'document_delivery_note_first_reference'], 'string', 'max' => 255], | |||||
[['free_price', 'credit_limit_reminder','credit_limit'], 'double'], | [['free_price', 'credit_limit_reminder','credit_limit'], 'double'], | ||||
['free_price', 'compare', 'compareValue' => 0, 'operator' => '>=', 'type' => 'number', 'message' => 'Prix libre doit être supérieur ou égal à 0'], | ['free_price', 'compare', 'compareValue' => 0, 'operator' => '>=', 'type' => 'number', 'message' => 'Prix libre doit être supérieur ou égal à 0'], | ||||
]; | ]; | ||||
'tiller' => 'Tiller', | 'tiller' => 'Tiller', | ||||
'tiller_provider_token' => 'Token provider', | 'tiller_provider_token' => 'Token provider', | ||||
'tiller_restaurant_token' => 'Token restaurant', | 'tiller_restaurant_token' => 'Token restaurant', | ||||
'status' => 'Statut', | |||||
'id_tax_rate_default' => 'Taxe', | |||||
'document_quotation_prefix' => 'Préfixe des devis', | |||||
'document_quotation_first_reference' => 'Première référence des devis', | |||||
'document_quotation_duration' => 'Durée du devis', | |||||
'document_invoice_prefix' => 'Préfixe des factures', | |||||
'document_invoice_first_reference' => 'Première référence des factures', | |||||
'document_delivery_note_prefix' => 'Préfixe des bons de livraison', | |||||
'document_delivery_note_first_reference' => 'Première référence des bons de livraison', | |||||
'document_infos_bottom' => 'Informations affichées en bas des documents', | |||||
'document_infos_quotation' => 'Informations affichées en bas des devis', | |||||
'document_infos_invoice' => 'Informations affichées en bas des factures', | |||||
'document_infos_delivery_note' => 'Informations affichées en bas des bons de livraison', | |||||
]; | ]; | ||||
} | } | ||||
->where(['status' => User::STATUS_PRODUCER]); | ->where(['status' => User::STATUS_PRODUCER]); | ||||
} | } | ||||
public function getTaxRate() | |||||
{ | |||||
return $this->hasOne(TaxRate::className(), ['id' => 'id_tax_rate_default']) ; | |||||
} | |||||
/** | /** | ||||
* Retourne les options de base nécessaires à la fonction de recherche. | * Retourne les options de base nécessaires à la fonction de recherche. | ||||
* | * |
{ | { | ||||
return [ | return [ | ||||
[['id_order', 'id_product', 'quantity'], 'required'], | [['id_order', 'id_product', 'quantity'], 'required'], | ||||
[['id_order', 'id_product'], 'integer'], | |||||
[['id_order', 'id_product', 'id_tax_rate'], 'integer'], | |||||
[['unit'], 'string', 'max' => 255], | [['unit'], 'string', 'max' => 255], | ||||
[['quantity'], 'number', 'min' => 0] | |||||
[['quantity'], 'number', 'min' => 0], | |||||
[['description'], 'safe'] | |||||
]; | ]; | ||||
} | } | ||||
'id_order' => 'Commande', | 'id_order' => 'Commande', | ||||
'id_product' => 'Product', | 'id_product' => 'Product', | ||||
'quantity' => 'Quantité', | 'quantity' => 'Quantité', | ||||
'unit' => 'Unité' | |||||
'unit' => 'Unité', | |||||
'id_tax_rate' => 'Taxe', | |||||
'description' => 'Description' | |||||
]; | ]; | ||||
} | } | ||||
<?php | |||||
use yii\db\Migration; | |||||
use yii\db\Schema; | |||||
class m200106_143017_module_devis_bl_factures_modification_champs_id_status_order extends Migration | |||||
{ | |||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('order', 'id_status') ; | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->addColumn('order', 'id_status', Schema::TYPE_INTEGER) ; | |||||
} | |||||
} |
<?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. | |||||
*/ | |||||
Yii::setAlias('common', dirname(__DIR__)); | |||||
Yii::setAlias('frontend', dirname(dirname(__DIR__)) . '/frontend'); | |||||
Yii::setAlias('backend', dirname(dirname(__DIR__)) . '/backend'); | |||||
Yii::setAlias('console', dirname(dirname(__DIR__)) . '/console'); | |||||
Yii::setAlias('producer', dirname(dirname(__DIR__)) . '/producer'); | |||||
$server_name = $_SERVER['SERVER_NAME'] ; | |||||
Yii::setAlias('@domainName', (YII_ENV === 'dev') ? (($server_name == 'localhost') ? 'localhost' : 'laboiteapain-dev.net') : 'laboiteapain.net'); | |||||
Yii::setAlias('@baseUrl', ($server_name == 'localhost') ? '/laboiteapain/' : '/'); | |||||
Yii::setAlias('@baseUrlFrontend', (($server_name == 'localhost') ? '/frontend/web' : '')); | |||||
Yii::setAlias('@baseUrlBackend', (($server_name == 'localhost') ? '/backend/web' : '')); | |||||
Yii::setAlias('@baseUrlProducer', (($server_name == 'localhost') ? '/producer/web' : '')); | |||||
Yii::setAlias('@frontendSubdomain', (($server_name == 'localhost') ? '' : 'www')); | |||||
Yii::setAlias('@backendSubdomain', (($server_name == 'localhost') ? '' : 'admin')); | |||||
Yii::setAlias('@producerSubdomain', (($server_name == 'localhost') ? '' : 'producteurs')); | |||||
/* | |||||
* Autoload | |||||
*/ | |||||
Yii::$classMap['Import'] = Yii::getAlias('@common/exts/Import.php'); // sesuaikan pathnya | |||||
// yii | |||||
Import::using('Yii'); | |||||
Import::using('yii\filters\*'); | |||||
Import::using('yii\data\*'); | |||||
Import::using('yii\db\*'); | |||||
Import::using('yii\behaviors\*'); | |||||
Import::using('yii\helpers\*'); | |||||
Import::using('yii\web\NotFoundHttpException'); | |||||
// models | |||||
Import::using('common\models\*'); | |||||
Import::using('frontend\models\*'); | |||||
Import::using('backend\models\*'); | |||||
// controllers | |||||
Import::using('common\controllers\*'); | |||||
Import::using('frontend\controllers\*'); | |||||
Import::using('backend\controllers\*'); | |||||
Import::using('producer\controllers\*'); | |||||
// helpers | |||||
Import::using('common\helpers\*'); | |||||
// components | |||||
Import::using('common\components\*'); | |||||
Import::using('producer\components\*'); | |||||
Import::using('backend\components\*'); | |||||
Import::using('frontend\components\*'); | |||||
Import::using('kartik\mpdf\Pdf'); |