['label' => 'Administration', 'options' => ['class' => 'header'], 'visible' => User::isCurrentAdmin()], | ['label' => 'Administration', 'options' => ['class' => 'header'], 'visible' => User::isCurrentAdmin()], | ||||
['label' => 'Producteurs','icon' => 'th-list','url' => ['/producer-admin/index'], 'visible' => User::isCurrentAdmin()], | ['label' => 'Producteurs','icon' => 'th-list','url' => ['/producer-admin/index'], 'visible' => User::isCurrentAdmin()], | ||||
['label' => 'Taxes','icon' => 'eur','url' => ['/tax-rate-admin/index'], 'visible' => User::isCurrentAdmin()], | ['label' => 'Taxes','icon' => 'eur','url' => ['/tax-rate-admin/index'], 'visible' => User::isCurrentAdmin()], | ||||
['label' => 'Statuts commande','icon' => 'tags','url' => ['/order-status-admin/index'], 'visible' => User::isCurrentAdmin()], | |||||
['label' => 'Communiquer','icon' => 'bullhorn','url' => ['/communicate-admin/index'], 'visible' => User::isCurrentAdmin()], | ['label' => 'Communiquer','icon' => 'bullhorn','url' => ['/communicate-admin/index'], 'visible' => User::isCurrentAdmin()], | ||||
['label' => 'Outils', 'options' => ['class' => 'header'], 'visible' => User::isCurrentAdmin()], | ['label' => 'Outils', 'options' => ['class' => 'header'], 'visible' => User::isCurrentAdmin()], |
<?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\grid\GridView; | |||||
use common\models\User ; | |||||
use common\models\Etablissement ; | |||||
$this->title = 'Facturation'; | |||||
$this->params['breadcrumbs'][] = 'Administration' ; | |||||
$this->params['breadcrumbs'][] = $this->title; | |||||
?> | |||||
<h1>Facturation</h1> | |||||
<?= GridView::widget([ | |||||
'dataProvider' => $datas_factures, | |||||
'columns' => [ | |||||
[ | |||||
'attribute' => 'reference', | |||||
'label' => 'Référence', | |||||
], | |||||
[ | |||||
'attribute' => 'id_producer', | |||||
'label' => 'Producteur', | |||||
'value' => function($model) { | |||||
return Html::encode($model->producer->name) ; | |||||
} | |||||
], | |||||
'libelle', | |||||
[ | |||||
'attribute' => 'amount_ht', | |||||
'label' => 'Montant', | |||||
'value' => function($model) { | |||||
return number_format($model->amount_ht,2).' €' ; | |||||
} | |||||
], | |||||
[ | |||||
'attribute' => 'paid', | |||||
'label' => 'Payé', | |||||
'format' => 'raw', | |||||
'value' => function($model) { | |||||
if($model->paid) | |||||
{ | |||||
return '<span class="label label-success">Oui</span>' ; | |||||
} | |||||
else { | |||||
return '<span class="label label-danger">Non</span>' ; | |||||
} | |||||
} | |||||
] | |||||
], | |||||
]); ?> |
'adminEmail' => 'contact@opendistrib.net', | 'adminEmail' => 'contact@opendistrib.net', | ||||
'supportEmail' => 'contact@opendistrib.net', | 'supportEmail' => 'contact@opendistrib.net', | ||||
'user.passwordResetTokenExpire' => 3600, | 'user.passwordResetTokenExpire' => 3600, | ||||
'producer' => false | |||||
'producer' => false, | |||||
'orderStatus' => [ | |||||
'new-order' => [ | |||||
'name' => 'Nouvelle commande', | |||||
'color' => '#14c40e', | |||||
'nextStatusAllow' => ['waiting-paiement-on-delivery', 'waiting-paiement-by-credit', 'canceled'], | |||||
'slug' => 'new-order' | |||||
], | |||||
'waiting-paiement-on-delivery' => [ | |||||
'name' => 'En attente de paiement à la livraison', | |||||
'color' => '#e19a4d', | |||||
'nextStatusAllow' => ['delivered', 'canceled'], | |||||
'slug' => 'waiting-paiement-on-delivery' | |||||
], | |||||
'waiting-paiement-by-credit' => [ | |||||
'name' => 'En attente de paiement par crédit', | |||||
'color' => '#e19a4d', | |||||
'nextStatusAllow' => ['paid-by-credit', 'canceled'], | |||||
'slug' => 'waiting-paiement-by-credit' | |||||
], | |||||
'paid-by-credit' => [ | |||||
'name' => 'Payé par crédit', | |||||
'color' => '#3180d5', | |||||
'nextStatusAllow' => ['waiting-delivery'], | |||||
'slug' => 'paid-by-credit' | |||||
], | |||||
'waiting-delevery'=>[ | |||||
'name' => 'En attente de livraison', | |||||
'color' => '#d5bb31', | |||||
'nextStatusAllow' => ['delivered', 'refunded'], | |||||
'slug' => 'new-order' | |||||
], | |||||
'delivered' => [ | |||||
'name' => 'Livré', | |||||
'color' => '#36d531', | |||||
'nextStatusAllow' => [], | |||||
'slug' => 'new-order' | |||||
], | |||||
'refunded' => [ | |||||
'name' => 'Remboursé', | |||||
'color' => '#d01d14', | |||||
'nextStatusAllow' => ['canceled'], | |||||
'slug' => 'refunded' | |||||
], | |||||
'cancel' => [ | |||||
'name' => 'Commande annulée', | |||||
'color' => '#d01d14', | |||||
'nextStatusAllow' => [], | |||||
'slug' => 'cancel' | |||||
] | |||||
] | |||||
]; | ]; |
public function rules() | public function rules() | ||||
{ | { | ||||
return [ | return [ | ||||
[['id_user', 'date', 'id_point_sale', 'id_distribution'], 'required', 'message' => ''], | |||||
[['id_user', 'id_point_sale', 'id_distribution', 'id_subscription', 'id_order_status', 'id_invoice', 'id_quotation', 'id_delivery_note'], 'integer'], | |||||
[['id_user', 'date', 'id_point_sale', 'id_distribution', 'status'], 'required', 'message' => ''], | |||||
[['id_user', 'id_point_sale', 'id_distribution', 'id_subscription', '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', | |||||
'status' => 'Statut', | |||||
'id_invoice' => 'Facture', | 'id_invoice' => 'Facture', | ||||
'id_quotation' => 'Devis', | 'id_quotation' => 'Devis', | ||||
'id_delivery_note' => 'Bon de livraison' | 'id_delivery_note' => 'Bon de livraison' | ||||
->with('productSubscription'); | ->with('productSubscription'); | ||||
} | } | ||||
public function getOrderOrderStatus() | |||||
{ | |||||
return $this->hasMany(OrderOrderStatus::className(), ['id_order' => 'id'])->with('orderStatus'); | |||||
} | |||||
public function getInvoice() | public function getInvoice() | ||||
{ | { | ||||
return $this->hasOne(Invoice::className(), ['id' => 'id_invoice']); | return $this->hasOne(Invoice::className(), ['id' => 'id_invoice']); |
<?php | |||||
namespace common\models; | |||||
use common\components\ActiveRecordCommon; | |||||
use Yii; | |||||
/** | |||||
* This is the model class for table "order_status". | |||||
* | |||||
* @property integer $id | |||||
* @property string $name | |||||
*/ | |||||
class OrderStatus extends ActiveRecordCommon | |||||
{ | |||||
/** | |||||
* @inheritdoc | |||||
*/ | |||||
public static function tableName() | |||||
{ | |||||
return 'order_status'; | |||||
} | |||||
/** | |||||
* @inheritdoc | |||||
*/ | |||||
public function rules() | |||||
{ | |||||
return [ | |||||
[['name'], 'string', 'max' => 255], | |||||
]; | |||||
} | |||||
/** | |||||
* @inheritdoc | |||||
*/ | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | |||||
'id' => 'ID', | |||||
'name' => 'Nom', | |||||
]; | |||||
} | |||||
/** | |||||
* Retourne les options de base nécessaires à la fonction de recherche. | |||||
* | |||||
* @return array | |||||
*/ | |||||
public static function defaultOptionsSearch() { | |||||
return [ | |||||
'with' => [], | |||||
'join_with' => ['user', 'order'], | |||||
'orderby' => 'id ASC', | |||||
'attribute_id_producer' => '' | |||||
] ; | |||||
} | |||||
} |
<?php | |||||
namespace common\models; | |||||
use common\components\ActiveRecordCommon; | |||||
use Yii; | |||||
/** | |||||
* This is the model class for table "order_order_status". | |||||
* | |||||
* @property integer $id | |||||
* @property integer $id_order | |||||
* @property integer $id_order_status | |||||
* @property string $date | |||||
*/ | |||||
class OrderStatusHistory extends ActiveRecordCommon | |||||
{ | |||||
/** | |||||
* @inheritdoc | |||||
*/ | |||||
public static function tableName() | |||||
{ | |||||
return 'order_status_history'; | |||||
} | |||||
/** | |||||
* @inheritdoc | |||||
*/ | |||||
public function rules() | |||||
{ | |||||
return [ | |||||
[['id_order', 'status', 'id_user',], 'integer'], | |||||
[['date'], 'safe'], | |||||
]; | |||||
} | |||||
/** | |||||
* @inheritdoc | |||||
*/ | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | |||||
'id' => 'ID', | |||||
'id_order' => 'Commande', | |||||
'id_user' => 'Utilisateur', | |||||
'status' => 'Statut', | |||||
'date' => 'Date', | |||||
]; | |||||
} | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getOrder() | |||||
{ | |||||
return $this->hasOne(User::className(), ['id' => 'id_order']); | |||||
} | |||||
public function getOrderStatus() | |||||
{ | |||||
return $this->hasOne(OrderStatus::className(), ['id' => 'id_order_status']); | |||||
} | |||||
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' => ['order', 'orderStatus'], | |||||
'orderby' => 'date ASC', | |||||
'attribute_id_producer' => '' | |||||
]; | |||||
} | |||||
} |
class m200106_143017_module_devis_bl_factures_modification_champs_id_status_order extends Migration | class m200106_143017_module_devis_bl_factures_modification_champs_id_status_order extends Migration | ||||
{ | { | ||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('order', 'id_status') ; | |||||
} | |||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('order', 'id_status'); | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->addColumn('order', 'id_status', Schema::TYPE_INTEGER) ; | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->addColumn('order', 'id_status', Schema::TYPE_INTEGER); | |||||
} | |||||
} | } |
public function safeUp() | public function safeUp() | ||||
{ | { | ||||
$this->dropColumn('delivery_note', 'id_point_sale_distribution'); | $this->dropColumn('delivery_note', 'id_point_sale_distribution'); | ||||
$this->addColumn('delivery_note', 'id_point_sale', Schema::TYPE_INTEGER) ; | |||||
$this->addColumn('delivery_note', 'id_distribution', Schema::TYPE_INTEGER) ; | |||||
$this->addColumn('delivery_note', 'id_point_sale', Schema::TYPE_INTEGER); | |||||
$this->addColumn('delivery_note', 'id_distribution', Schema::TYPE_INTEGER); | |||||
} | } | ||||
public function safeDown() | public function safeDown() | ||||
{ | { | ||||
$this->addColumn('delivery_note', 'id_point_sale_distribution', Schema::TYPE_INTEGER); | $this->addColumn('delivery_note', 'id_point_sale_distribution', Schema::TYPE_INTEGER); | ||||
$this->dropColumn('delivery_note', 'id_point_sale') ; | |||||
$this->dropColumn('delivery_note', 'id_distribution') ; | |||||
$this->dropColumn('delivery_note', 'id_point_sale'); | |||||
$this->dropColumn('delivery_note', 'id_distribution'); | |||||
} | } | ||||
} | } |
class m200107_101930_module_devis_bl_facture_suppression_champs_delivery_note extends Migration | class m200107_101930_module_devis_bl_facture_suppression_champs_delivery_note extends Migration | ||||
{ | { | ||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('delivery_note', 'id_point_sale') ; | |||||
$this->dropColumn('delivery_note', 'id_distribution') ; | |||||
} | |||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('delivery_note', 'id_point_sale'); | |||||
$this->dropColumn('delivery_note', 'id_distribution'); | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->addColumn('delivery_note', 'id_point_sale', Schema::TYPE_INTEGER) ; | |||||
$this->addColumn('delivery_note', 'id_distribution', Schema::TYPE_INTEGER) ; | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->addColumn('delivery_note', 'id_point_sale', Schema::TYPE_INTEGER); | |||||
$this->addColumn('delivery_note', 'id_distribution', Schema::TYPE_INTEGER); | |||||
} | |||||
} | } |
class m200107_140622_module_bl_devis_factures_modification_champ_taxrate extends Migration | class m200107_140622_module_bl_devis_factures_modification_champ_taxrate extends Migration | ||||
{ | { | ||||
public function safeUp() | |||||
{ | |||||
$this->renameColumn('tax_rate', 'pourcent', 'value'); | |||||
public function safeUp() | |||||
{ | |||||
$this->renameColumn('tax_rate', 'pourcent', 'value'); | |||||
} | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->renameColumn('tax_rate', 'value', 'pourcent'); | |||||
public function safeDown() | |||||
{ | |||||
$this->renameColumn('tax_rate', 'value', 'pourcent'); | |||||
} | |||||
} | |||||
} | } |
class m200108_091551_module_bl_devis_factures_suppression_champs_documents extends Migration | class m200108_091551_module_bl_devis_factures_suppression_champs_documents extends Migration | ||||
{ | { | ||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('invoice', 'city') ; | |||||
$this->dropColumn('invoice', 'postcode') ; | |||||
$this->dropColumn('quotation', 'city') ; | |||||
$this->dropColumn('quotation', 'postcode') ; | |||||
$this->dropColumn('delivery_note', 'city') ; | |||||
$this->dropColumn('delivery_note', 'postcode') ; | |||||
} | |||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('invoice', 'city'); | |||||
$this->dropColumn('invoice', 'postcode'); | |||||
$this->dropColumn('quotation', 'city'); | |||||
$this->dropColumn('quotation', 'postcode'); | |||||
$this->dropColumn('delivery_note', 'city'); | |||||
$this->dropColumn('delivery_note', 'postcode'); | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->addColumn('invoice', 'city', Schema::TYPE_STRING) ; | |||||
$this->addColumn('invoice', 'postcode', Schema::TYPE_STRING) ; | |||||
$this->addColumn('quotation', 'city', Schema::TYPE_STRING) ; | |||||
$this->addColumn('quotation', 'postcode', Schema::TYPE_STRING) ; | |||||
$this->addColumn('delivery_note', 'city', Schema::TYPE_STRING) ; | |||||
$this->addColumn('delivery_note', 'postcode', Schema::TYPE_STRING) ; | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->addColumn('invoice', 'city', Schema::TYPE_STRING); | |||||
$this->addColumn('invoice', 'postcode', Schema::TYPE_STRING); | |||||
$this->addColumn('quotation', 'city', Schema::TYPE_STRING); | |||||
$this->addColumn('quotation', 'postcode', Schema::TYPE_STRING); | |||||
$this->addColumn('delivery_note', 'city', Schema::TYPE_STRING); | |||||
$this->addColumn('delivery_note', 'postcode', Schema::TYPE_STRING); | |||||
} | |||||
} | } |
class m200108_101042_module_bl_devis_factures_modification_champs_documents extends Migration | class m200108_101042_module_bl_devis_factures_modification_champs_documents extends Migration | ||||
{ | { | ||||
public function safeUp() | |||||
{ | |||||
$this->addColumn('invoice', 'id_producer', Schema::TYPE_INTEGER) ; | |||||
$this->addColumn('quotation', 'id_producer', Schema::TYPE_INTEGER) ; | |||||
$this->addColumn('delivery_note', 'id_producer', Schema::TYPE_INTEGER) ; | |||||
$this->alterColumn('invoice', 'date', Schema::TYPE_DATETIME.' DEFAULT CURRENT_TIMESTAMP') ; | |||||
$this->alterColumn('delivery_note', 'date', Schema::TYPE_DATETIME.' DEFAULT CURRENT_TIMESTAMP') ; | |||||
$this->alterColumn('quotation', 'date', Schema::TYPE_DATETIME.' DEFAULT CURRENT_TIMESTAMP') ; | |||||
} | |||||
public function safeUp() | |||||
{ | |||||
$this->addColumn('invoice', 'id_producer', Schema::TYPE_INTEGER); | |||||
$this->addColumn('quotation', 'id_producer', Schema::TYPE_INTEGER); | |||||
$this->addColumn('delivery_note', 'id_producer', Schema::TYPE_INTEGER); | |||||
public function safeDown() | |||||
{ | |||||
$this->dropColumn('invoice', 'id_producer') ; | |||||
$this->dropColumn('delivery_note', 'id_producer') ; | |||||
$this->dropColumn('quotation', 'id_producer') ; | |||||
$this->alterColumn('invoice', 'date', Schema::TYPE_DATETIME) ; | |||||
$this->alterColumn('delivery_note', 'date', Schema::TYPE_DATETIME) ; | |||||
$this->alterColumn('quotation', 'date', Schema::TYPE_DATETIME) ; | |||||
} | |||||
$this->alterColumn('invoice', 'date', Schema::TYPE_DATETIME . ' DEFAULT CURRENT_TIMESTAMP'); | |||||
$this->alterColumn('delivery_note', 'date', Schema::TYPE_DATETIME . ' DEFAULT CURRENT_TIMESTAMP'); | |||||
$this->alterColumn('quotation', 'date', Schema::TYPE_DATETIME . ' DEFAULT CURRENT_TIMESTAMP'); | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
$this->dropColumn('invoice', 'id_producer'); | |||||
$this->dropColumn('delivery_note', 'id_producer'); | |||||
$this->dropColumn('quotation', 'id_producer'); | |||||
$this->alterColumn('invoice', 'date', Schema::TYPE_DATETIME); | |||||
$this->alterColumn('delivery_note', 'date', Schema::TYPE_DATETIME); | |||||
$this->alterColumn('quotation', 'date', Schema::TYPE_DATETIME); | |||||
} | |||||
} | } |
class m200108_145508_module_bl_devis_factures_suppression_price_unit_step_product_subscription extends Migration | class m200108_145508_module_bl_devis_factures_suppression_price_unit_step_product_subscription extends Migration | ||||
{ | { | ||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('product_subscription', 'unit') ; | |||||
$this->dropColumn('product_subscription', 'step') ; | |||||
$this->dropColumn('product_subscription', 'price') ; | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
echo "m200108_145508_module_bl_devis_factures_suppression_price_unit_step_product_subscription cannot be reverted.\n"; | |||||
return false; | |||||
} | |||||
/* | |||||
// Use up()/down() to run migration code without a transaction. | |||||
public function up() | |||||
{ | |||||
} | |||||
public function down() | |||||
{ | |||||
echo "m200108_145508_module_bl_devis_factures_suppression_price_unit_step_product_subscription cannot be reverted.\n"; | |||||
return false; | |||||
} | |||||
*/ | |||||
public function safeUp() | |||||
{ | |||||
$this->dropColumn('product_subscription', 'unit'); | |||||
$this->dropColumn('product_subscription', 'step'); | |||||
$this->dropColumn('product_subscription', 'price'); | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
echo "m200108_145508_module_bl_devis_factures_suppression_price_unit_step_product_subscription cannot be reverted.\n"; | |||||
return false; | |||||
} | |||||
/* | |||||
// Use up()/down() to run migration code without a transaction. | |||||
public function up() | |||||
{ | |||||
} | |||||
public function down() | |||||
{ | |||||
echo "m200108_145508_module_bl_devis_factures_suppression_price_unit_step_product_subscription cannot be reverted.\n"; | |||||
return false; | |||||
} | |||||
*/ | |||||
} | } |
<?php | |||||
use yii\db\Migration; | |||||
use yii\db\Schema; | |||||
class m200108_195657_module_bl_devis_factures_order_status_history extends Migration | |||||
{ | |||||
public function safeUp() | |||||
{ | |||||
$this->delete('order_status'); | |||||
$this->renameTable('order_order_status', 'order_status_history'); | |||||
$this->addColumn('order_status_history', 'id_user', Schema::TYPE_INTEGER); | |||||
$this->addColumn('order', 'status', Schema::TYPE_STRING); | |||||
$this->renameColumn('order_status_history', 'id_order_status', 'status'); | |||||
$this->alterColumn('order_status_history', 'status', Schema::TYPE_STRING); | |||||
} | |||||
public function safeDown() | |||||
{ | |||||
echo "m200108_195657_module_bl_devis_factures_order_status_history cannot be reverted.\n"; | |||||
return 'false'; | |||||
} | |||||
/* | |||||
// Use up()/down() to run migration code without a transaction. | |||||
public function up() | |||||
{ | |||||
} | |||||
public function down() | |||||
{ | |||||
echo "m200108_195657_module_bl_devis_factures_order_status_history cannot be reverted.\n"; | |||||
return false; | |||||
} | |||||
*/ | |||||
} |