Просмотр исходного кода

Adapter la génération du récapitulatif de commande en PDF

prodstable
keun 8 лет назад
Родитель
Сommit
ce066fd9b9
2 измененных файлов: 106 добавлений и 17 удалений
  1. +37
    -4
      backend/controllers/CommandeController.php
  2. +69
    -13
      backend/views/commande/report.php

+ 37
- 4
backend/controllers/CommandeController.php Просмотреть файл

@@ -39,10 +39,43 @@ class CommandeController extends \yii\web\Controller {
];
}
public function actionReport() {
public function actionReport($date = '') {

$commandes = Commande::find()
->with('commandeProduits', 'user')
->joinWith('production')
->where(['production.date' => $date])
->orderBy('date ASC')
->all();

foreach ($commandes as $c)
$c->init();
$production = Production::find()->where('date LIKE \'' . $date . '\'')->one();
$produits_selec = ProductionProduit::findProduits($production->id);
$points_vente = PointVente::find()->all();
foreach ($points_vente as $pv)
$pv->initCommandes($commandes);
// produits
$produits = Produit::find()
->where(['id_etablissement' => Yii::$app->user->identity->id_etablissement])
->orderBy('order ASC')
->all();
/*return [
'data' => $data,
'filename' => $filename
];*/
// get your HTML raw content without any layouts or scripts
$content = $this->renderPartial('report');
$content = $this->renderPartial('report',[
'production' => $production,
'produits_selec' => $produits_selec,
'points_vente' => $points_vente,
'date' => $date,
'produits' => $produits
]);

/*$pdf = Yii::$app->pdf;
$pdf->content = $content;
@@ -70,7 +103,7 @@ class CommandeController extends \yii\web\Controller {
//'options' => ['title' => 'Krajee Report Title'],
// call mPDF methods on the fly
'methods' => [
'SetHeader'=>['Krajee Report Header'],
'SetHeader'=>['Commandes'],
'SetFooter'=>['{PAGENO}'],
]
]);
@@ -659,7 +692,7 @@ class CommandeController extends \yii\web\Controller {
}

// téléphone
if (strlen($c->user->telephone)) {
if (isset($c->user) && strlen($c->user->telephone)) {
$str_user .= ' (' . $c->user->telephone . ')';
}


+ 69
- 13
backend/views/commande/report.php Просмотреть файл

@@ -1,17 +1,73 @@
<?php

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
<h1>Commandes <?php echo $date ; ?></h1>

?>
<?php

$num_jour_semaine = date('w', strtotime($date));
$arr_jour_semaine = [0 => 'dimanche', 1 => 'lundi', 2 => 'mardi', 3 => 'mercredi', 4 => 'jeudi', 5 => 'vendredi', 6 => 'samedi'];
$champs_horaires_point_vente = 'horaires_' . $arr_jour_semaine[$num_jour_semaine];

$html = '' ;

// par point de vente
foreach ($points_vente as $pv) {
if (count($pv->commandes) && strlen($pv->$champs_horaires_point_vente)) {
$html .= '<h3>'.$pv->nom.'</h3>' ;

$html .= '<table class="table table-bordered">'
. '<thead>'
. '<tr>'
. '<th>Client</th>'
. '<th>Produits</th>'
. '<th>Commentaire</th>'
. '<th>Montant</th>'
. '</tr>'
. '<tbody>';
foreach ($pv->commandes as $c) {
$html .= '<tr>' ;
$str_user = '';

// username
if ($c->user) {
$str_user = $c->user->prenom . " " . $c->user->nom; //.' - '.date('d/m', strtotime($c->date)) ;
} else {
$str_user = $c->username; //.' - '.date('d/m', strtotime($c->date)) ;
}

<h1>Commandes</h1>
// téléphone
if (isset($c->user) && strlen($c->user->telephone)) {
$str_user .= ' (' . $c->user->telephone . ')';
}

<p>Aliquam laoreet venenatis ligula, vitae porttitor ante molestie id. Praesent
eleifend placerat diam. Nullam vel finibus velit. Integer vitae enim vel
nunc eleifend condimentum. Morbi eu eros efficitur, gravida nibh eu, iaculis
tortor. Nam venenatis congue lacus, eget posuere mauris ultrices quis. Integer
tempus est ut felis elementum tincidunt. </p>
$html .= '<td>'.$str_user.'</td>';
// produits
$str_produits = '';
foreach ($produits as $p) {
if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) {
$add = false;
foreach ($c->commandeProduits as $cp) {
if ($p->id == $cp->id_produit) {
$str_produits .= $cp->quantite . '' . $p->diminutif . ', ';
$add = true;
}
}
}
}

$html .= '<td>'.substr($str_produits, 0, strlen($str_produits) - 2).'</td>';
$html .= '<td>'.$c->commentaire.'</td>';
$html .= '<td>'.number_format($c->montant, 2) . ' €'.'</td>';

$html .= '</tr>' ;
}
$html .= '</tbody></table>' ;
}
}

echo $html ;

?>

Загрузка…
Отмена
Сохранить