Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

181 Zeilen
6.4KB

  1. <?php
  2. use common\models\Commande ;
  3. $num_jour_semaine = date('w', strtotime($date));
  4. $arr_jour_semaine = [0 => 'dimanche', 1 => 'lundi', 2 => 'mardi', 3 => 'mercredi', 4 => 'jeudi', 5 => 'vendredi', 6 => 'samedi'];
  5. $champs_horaires_point_vente = 'horaires_' . $arr_jour_semaine[$num_jour_semaine];
  6. $html = '' ;
  7. // par point de vente
  8. foreach ($points_vente as $pv) {
  9. if (count($pv->commandes) && strlen($pv->$champs_horaires_point_vente)) {
  10. $html .= '<h3>'.$pv->nom.'</h3>' ;
  11. $col_credit_pain = '' ;
  12. if($pv->credit_pain) {
  13. $col_credit_pain = '<th>Rappel crédit</th>' ;
  14. }
  15. $html .= '<table class="table table-bordered">'
  16. . '<thead>'
  17. . '<tr>'
  18. . '<th>Client</th>'
  19. . '<th>Produits</th>'
  20. . '<th>Commentaire</th>'
  21. . $col_credit_pain
  22. . '<th>Montant</th>'
  23. . '</tr>'
  24. . '<tbody>';
  25. foreach ($pv->commandes as $c) {
  26. $html .= '<tr>' ;
  27. $str_user = '';
  28. // username
  29. if ($c->user) {
  30. $str_user = $c->user->prenom . " " . $c->user->nom; //.' - '.date('d/m', strtotime($c->date)) ;
  31. } else {
  32. $str_user = $c->username; //.' - '.date('d/m', strtotime($c->date)) ;
  33. }
  34. if(strlen($c->commentaire_point_vente))
  35. {
  36. $str_user .= '<br /><em>'.$c->commentaire_point_vente.'</em>' ;
  37. }
  38. // téléphone
  39. if (isset($c->user) && strlen($c->user->telephone)) {
  40. $str_user .= '<br />' . $c->user->telephone . '';
  41. }
  42. $html .= '<td>'.$str_user.'</td>';
  43. // produits
  44. $str_produits = '';
  45. foreach ($produits as $p) {
  46. $add = false;
  47. foreach ($c->commandeProduits as $cp) {
  48. if ($p->id == $cp->id_produit) {
  49. $str_produits .= $cp->quantite . '&nbsp;' . $p->nom . ', ';
  50. $add = true;
  51. }
  52. }
  53. }
  54. $html .= '<td>'.substr($str_produits, 0, strlen($str_produits) - 2).'</td>';
  55. $html .= '<td>'.$c->commentaire.'</td>';
  56. if($pv->credit_pain) {
  57. $credit = '' ;
  58. if(isset($c->user) && isset($c->user->userEtablissement)) {
  59. $credit = number_format($c->user->userEtablissement[0]->credit,2).' €' ;
  60. }
  61. $html .= '<td>'.$credit.'</td>' ;
  62. }
  63. $html .= '<td><strong>'.number_format($c->montant, 2) . ' € ';
  64. if($c->getStatutPaiement() == Commande::STATUT_PAYEE)
  65. {
  66. $html .= '(payé)' ;
  67. }
  68. elseif($c->getStatutPaiement() == Commande::STATUT_IMPAYEE && $c->getMontantPaye())
  69. {
  70. $html .= '(reste '.$c->getMontantRestant(true).' à payer)' ;
  71. }
  72. elseif($c->getStatutPaiement() == Commande::STATUT_SURPLUS)
  73. {
  74. $html .= '(surplus : '.$c->getMontantSurplus(true).' à rembourser)' ;
  75. }
  76. $html .= '</strong></td>' ;
  77. $html .= '</tr>' ;
  78. }
  79. $html .= '<tr><td><strong>Total</strong></td>' ;
  80. $str_produits = '';
  81. foreach ($produits as $p) {
  82. if (!$p->vrac) {
  83. $quantite = Commande::getQuantiteProduit($p->id, $pv->commandes);
  84. $str_quantite = '';
  85. if ($quantite) {
  86. $str_quantite = $quantite;
  87. $str_produits .= $str_quantite .'&nbsp;'. $p->nom . ', ';
  88. }
  89. }
  90. }
  91. $str_produits = substr($str_produits, 0, strlen($str_produits) - 2) ;
  92. $html .= '<td>'.$str_produits.'</td><td></td>' ;
  93. if($pv->credit_pain) {
  94. $html .= '<td></td>' ;
  95. }
  96. $html .= '<td><strong>'.number_format($pv->recettes_pain, 2) . ' €</strong></td>';
  97. $html .= '</tbody></table><pagebreak>' ;
  98. }
  99. }
  100. // par point de vente
  101. $html .= '<h3>Points de vente</h3>' ;
  102. $html .= '<table class="table table-bordered">'
  103. . '<thead>'
  104. . '<tr>'
  105. . '<th>Point de vente</th>'
  106. . '<th>Produits</th>'
  107. . '<th>Montant</th>'
  108. . '</tr>'
  109. . '<tbody>';
  110. $recettes = 0 ;
  111. foreach ($points_vente as $pv)
  112. {
  113. if (count($pv->commandes) && strlen($pv->$champs_horaires_point_vente))
  114. {
  115. $html .= '<tr><td>'.$pv->nom.'</td><td>' ;
  116. foreach ($produits as $p) {
  117. $quantite = Commande::getQuantiteProduit($p->id, $pv->commandes);
  118. $str_quantite = '';
  119. if (!$p->vrac) {
  120. if ($quantite)
  121. $str_quantite = $quantite;
  122. }
  123. if(strlen($str_quantite))
  124. $html .= $str_quantite . '&nbsp;'.$p->nom.', ' ;
  125. }
  126. $html = substr($html, 0, strlen($html) - 2) ;
  127. $html .= '</td><td>'.number_format($pv->recettes_pain, 2).' €</td></tr>' ;
  128. $recettes += $pv->recettes_pain ;
  129. }
  130. }
  131. // total
  132. $html .= '<tr><td><strong>Total</strong></td><td>' ;
  133. foreach ($produits as $p) {
  134. $quantite = Commande::getQuantiteProduit($p->id, $commandes);
  135. if(!$p->vrac && $quantite)
  136. $html .= $quantite . '&nbsp;'.$p->nom.', ' ;
  137. }
  138. $html = substr($html, 0, strlen($html) - 2) ;
  139. $html .= '</td><td><strong>'.number_format($recettes, 2).' €</strong></td></tr>' ;
  140. $html .= '</tbody></table>' ;
  141. echo $html ;
  142. ?>