'content' => $content, | 'content' => $content, | ||||
// format content from your own css file if needed or use the | // format content from your own css file if needed or use the | ||||
// enhanced bootstrap css built by Krajee for mPDF formatting | // enhanced bootstrap css built by Krajee for mPDF formatting | ||||
//'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css', | |||||
//'cssFile' => Yii::getAlias('@web/css/distribution/report.css'), | |||||
// any css to be embedded if required | // any css to be embedded if required | ||||
//'cssInline' => '.kv-heading-1{font-size:18px}', | |||||
'cssInline' => ' | |||||
table { | |||||
border-spacing : 0px ; | |||||
border-collapse : collapse ; | |||||
width: 100% ; | |||||
} | |||||
table tr th, | |||||
table tr td { | |||||
padding: 0px ; | |||||
margin: 0px ; | |||||
border: solid 1px #e0e0e0 ; | |||||
padding: 3px 8px ; | |||||
vertical-align : top; | |||||
} | |||||
table tr th { | |||||
font-size: 13px ; | |||||
} | |||||
table tr td { | |||||
font-size: 13px ; | |||||
} | |||||
', | |||||
// set mPDF properties on the fly | // set mPDF properties on the fly | ||||
//'options' => ['title' => 'Krajee Report Title'], | //'options' => ['title' => 'Krajee Report Title'], | ||||
// call mPDF methods on the fly | // call mPDF methods on the fly | ||||
'SetFooter' => ['{PAGENO}'], | 'SetFooter' => ['{PAGENO}'], | ||||
] | ] | ||||
]); | ]); | ||||
// return the pdf output as per the destination setting | // return the pdf output as per the destination setting | ||||
return $pdf->render(); | return $pdf->render(); | ||||
} | } |
$html .= '<h3>'.$pointSale->name.'</h3>' ; | $html .= '<h3>'.$pointSale->name.'</h3>' ; | ||||
$colCredit = ($pointSale->credit) ? '<th>Rappel crédit</th>' : '' ; | $colCredit = ($pointSale->credit) ? '<th>Rappel crédit</th>' : '' ; | ||||
$html .= '<table class="table table-bordered">' | |||||
$html .= '<table class="">' | |||||
. '<thead>' | . '<thead>' | ||||
. '<tr>' | . '<tr>' | ||||
. '<th>Client</th>' | . '<th>Client</th>' | ||||
$add = false; | $add = false; | ||||
foreach ($order->productOrder as $productOrder) { | foreach ($order->productOrder as $productOrder) { | ||||
if ($product->id == $productOrder->id_product) { | if ($product->id == $productOrder->id_product) { | ||||
$strProducts .= $product->name . ' (' .$productOrder->quantity . ' '.Product::strUnit($productOrder->unit, 'wording_short', true).'), '; | |||||
$unit = (Product::strUnit($productOrder->unit, 'wording_short', true) == 'p.') ? '' : ' '.Product::strUnit($productOrder->unit, 'wording_short', true) ; | |||||
$strProducts .= $product->name . ' (' .$productOrder->quantity .$unit.')<br />'; | |||||
$add = true; | $add = true; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
$html .= '<td>'.substr($strProducts, 0, strlen($strProducts) - 2).'</td>'; | |||||
$html .= '<td>'.substr($strProducts, 0, strlen($strProducts) - 6).'</td>'; | |||||
$html .= '<td>'.$order->comment.'</td>'; | $html .= '<td>'.$order->comment.'</td>'; | ||||
if($pointSale->credit) { | if($pointSale->credit) { | ||||
foreach(Product::$unitsArray as $unit => $dataUnit) { | foreach(Product::$unitsArray as $unit => $dataUnit) { | ||||
$quantity = Order::getProductQuantity($product->id, $pointSale->orders, false, $unit); | $quantity = Order::getProductQuantity($product->id, $pointSale->orders, false, $unit); | ||||
if ($quantity) { | if ($quantity) { | ||||
$strProducts .= $product->name . ' (' .$quantity . ' '.Product::strUnit($unit, 'wording_short', true).'), '; | |||||
$theUnit = (Product::strUnit($unit, 'wording_short', true) == 'p.') ? '' : ' '.Product::strUnit($unit, 'wording_short', true) ; | |||||
$strProducts .= $product->name . ' (' .$quantity .$theUnit.')<br />'; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
$strProducts = substr($strProducts, 0, strlen($strProducts) - 2) ; | |||||
$strProducts = substr($strProducts, 0, strlen($strProducts) - 6) ; | |||||
$html .= '<td>'.$strProducts.'</td><td></td>' ; | $html .= '<td>'.$strProducts.'</td><td></td>' ; | ||||
if($pointSale->credit) { | if($pointSale->credit) { | ||||
// par point de vente | // par point de vente | ||||
$html .= '<h3>Points de vente</h3>' ; | $html .= '<h3>Points de vente</h3>' ; | ||||
$html .= '<table class="table table-bordered">' | |||||
$html .= '<table class="">' | |||||
. '<thead>' | . '<thead>' | ||||
. '<tr>' | . '<tr>' | ||||
. '<th>Point de vente</th>' | . '<th>Point de vente</th>' | ||||
foreach(Product::$unitsArray as $unit => $dataUnit) { | foreach(Product::$unitsArray as $unit => $dataUnit) { | ||||
$quantity = Order::getProductQuantity($product->id, $pointSale->orders, false, $unit); | $quantity = Order::getProductQuantity($product->id, $pointSale->orders, false, $unit); | ||||
if ($quantity) { | if ($quantity) { | ||||
$html .= $product->name . ' (' .$quantity . ' '.Product::strUnit($unit, 'wording_short', true).'), '; | |||||
$theUnit = (Product::strUnit($unit, 'wording_short', true) == 'p.') ? '' : ' '.Product::strUnit($unit, 'wording_short', true) ; | |||||
$html .= $product->name . ' (' .$quantity .$theUnit.')<br />'; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
$html = substr($html, 0, strlen($html) - 2) ; | |||||
$html = substr($html, 0, strlen($html) - 6) ; | |||||
$html .= '</td><td>'.number_format($pointSale->revenues, 2).' €</td></tr>' ; | $html .= '</td><td>'.number_format($pointSale->revenues, 2).' €</td></tr>' ; | ||||
$revenues += $pointSale->revenues ; | $revenues += $pointSale->revenues ; | ||||
foreach(Product::$unitsArray as $unit => $dataUnit) { | foreach(Product::$unitsArray as $unit => $dataUnit) { | ||||
$quantity = Order::getProductQuantity($product->id, $ordersArray, false, $unit); | $quantity = Order::getProductQuantity($product->id, $ordersArray, false, $unit); | ||||
if ($quantity) { | if ($quantity) { | ||||
$html .= $product->name . ' (' .$quantity . ' '.Product::strUnit($unit, 'wording_short', true).'), '; | |||||
$theUnit = (Product::strUnit($unit, 'wording_short', true) == 'p.') ? '' : ' '.Product::strUnit($unit, 'wording_short', true) ; | |||||
$html .= $product->name . ' (' .$quantity .$theUnit.')<br />'; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
$html = substr($html, 0, strlen($html) - 2) ; | |||||
$html = substr($html, 0, strlen($html) - 6) ; | |||||
$html .= '</td><td><strong>'.number_format($revenues, 2).' €</strong></td></tr>' ; | $html .= '</td><td><strong>'.number_format($revenues, 2).' €</strong></td></tr>' ; | ||||
@charset "UTF-8"; | |||||
/** | |||||
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. | |||||
*/ | |||||
/* line 39, ../../sass/distribution/report.scss */ | |||||
table.table tr td { | |||||
border: solid 1px #e0e0e0; | |||||
padding: 2px; | |||||
} |
/** | |||||
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. | |||||
*/ | |||||
table.table { | |||||
tr { | |||||
td { | |||||
border: solid 1px #e0e0e0 ; | |||||
padding: 2px ; | |||||
} | |||||
} | |||||
} | |||||