[
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action) {
return Yii::$app->user->identity->status == USER::STATUS_ADMIN ;
}
]
],
],
];
}
public function actionIndex()
{
$datas_etablissements = new ActiveDataProvider([
'query' => Etablissement::find()
->with('userEtablissement','user')
->orderBy('date_creation DESC'),
'pagination' => [
'pageSize' => 1000,
],
]);
return $this->render('index', [
'datas_etablissements' => $datas_etablissements,
]);
}
public function actionFacturer($id_etablissement)
{
$etablissement = Etablissement::findOne($id_etablissement) ;
if($etablissement)
{
$periode = date('Y-m', strtotime('-1 month')) ;
$last_facture = Facture::getLastFacture() ;
if(!$last_facture)
{
$reference = 'BAP000001' ;
}
else {
$reference = str_replace('BAP','',$last_facture->reference) ;
$reference ++ ;
$reference = 'BAP'.$reference ;
}
$facture = new Facture ;
$facture->id_etablissement = $id_etablissement ;
$facture->date = date('Y-m-d H:i:s') ;
$facture->reference = $reference ;
$facture->ca = $etablissement->getCA($periode) ;
$facture->montant_ht = $etablissement->getMontantFacturer($periode) ;
$facture->libelle = 'Facture '.date('m/Y', strtotime('-1 month')) ;
$facture->texte = 'Utilisation de la plateforme La boîte à pain pour le mois : '.date('m/Y', strtotime('-1 month')).'
'
. 'Chiffre d\'affaire réalisé sur la plateforme : '.number_format($facture->ca,2).' € commissionné à 1%.' ;
$facture->paye = 0 ;
$facture->periode = $periode ;
$facture->save() ;
}
$this->redirect(['etablissement-admin/index']) ;
}
public function actionFacturation()
{
$datas_factures = new ActiveDataProvider([
'query' => Facture::find()
->with('etablissement')
->orderBy('reference DESC'),
'pagination' => [
'pageSize' => 1000,
],
]);
return $this->render('facturation', [
'datas_factures' => $datas_factures,
]);
}
protected function findModel($id)
{
if (($model = Etablissement::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
}