You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

367 lines
20KB

  1. <?php
  2. use yii\helpers\Html;
  3. use common\models\Commande;
  4. $this->title = 'Commande';
  5. $cpt_non_vrac = 0;
  6. foreach ($produits as $p) {
  7. if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) {
  8. if (!$p->vrac) {
  9. $cpt_non_vrac ++;
  10. }
  11. }
  12. }
  13. ?>
  14. <div id="page-commande">
  15. <div id="row1">
  16. <div class="col-md-3">
  17. <div class="panel panel-default">
  18. <div class="panel-heading">
  19. <h3 class="panel-title">Calendrier</h3>
  20. </div>
  21. <div class="panel-body">
  22. <?php
  23. // chargement assets
  24. common\components\fullcalendar\FullcalendarWidget::widget();
  25. // --> lancement du js en manuel (via lechatdesnoisettes.js)
  26. ?>
  27. <div id="calendar"></div>
  28. </div>
  29. </div>
  30. </div>
  31. <?php if ($date != ''): ?>
  32. <div class="col-md-5">
  33. <div class="panel panel-default">
  34. <div class="panel-heading">
  35. <h3 class="panel-title">Production du <strong><?php echo date('d/m/Y', strtotime($date)); ?></strong></h3>
  36. </div>
  37. <div class="panel-body">
  38. <strong>Production</strong><br />
  39. <div class="btn-group" role="group">
  40. <a class="btn btn-default<?php if ($production->actif): ?> btn-success<?php endif; ?>" href="<?php echo Yii::$app->urlManager->createUrl(['commande/change-state', 'date' => $date, 'actif' => 1]); ?>">Activé</a>
  41. <a class="btn btn-default<?php if (!$production->actif): ?> btn-danger<?php endif; ?>" href="<?php echo Yii::$app->urlManager->createUrl(['commande/change-state', 'date' => $date, 'actif' => 0]); ?>">Désactivé</a>
  42. </div>
  43. <br />
  44. <br />
  45. <strong>Livraison</strong> <br />
  46. <div class="btn-group" role="group">
  47. <a class="btn btn-default<?php if ($production->livraison): ?> btn-success<?php endif; ?>" href="<?php echo Yii::$app->urlManager->createUrl(['commande/change-livraison', 'date' => $date, 'livraison' => 1]); ?>">Activé</a>
  48. <a class="btn btn-default<?php if (!$production->livraison): ?> btn-danger<?php endif; ?>" href="<?php echo Yii::$app->urlManager->createUrl(['commande/change-livraison', 'date' => $date, 'livraison' => 0]); ?>">Désactivé</a>
  49. </div>
  50. <br /><br />
  51. <?php if (!count($commandes)): ?>
  52. <div class="alert alert-info">Aucune commande passée pour cette date</div>
  53. <?php else: ?>
  54. <strong><?= count($commandes) ?> commande<?php if(count($commandes)> 1): ?>s<?php endif; ?></strong><br />
  55. <a class="btn btn-primary" href="<?php echo Yii::$app->urlManager->createUrl(['commande/download', 'date' => $date, 'id_point_vente' => 0, 'global' => 1]); ?>"><span class="glyphicon glyphicon-download-alt"></span> Récapitulatif global</a>
  56. <br />
  57. <br />
  58. <?php endif; ?>
  59. </div>
  60. </div>
  61. </div>
  62. <?php endif; ?>
  63. <?php if ($production): ?>
  64. <div id="bloc-produits" class="col-md-4">
  65. <div class="panel panel-default">
  66. <div class="panel-heading">
  67. <h3 class="panel-title">Produits</h3>
  68. </div>
  69. <div class="panel-body">
  70. <!-- produits sélectionnés -->
  71. <form id="produits-production" action="<?php echo Yii::$app->urlManager->createUrl(['commande/index', 'date' => $date]); ?>" method="post">
  72. <div class="overflow">
  73. <table class="table table-hover table-condensed">
  74. <thead>
  75. <tr>
  76. <th>Produit</th>
  77. <th>Actif</th>
  78. <th>Max.</th>
  79. </tr>
  80. </thead>
  81. <tbody>
  82. <?php foreach ($produits as $p): ?>
  83. <tr<?php if ($p->vrac): ?> style="display:none;"<?php endif; ?>>
  84. <td><label for="produit-<?php echo $p->id; ?>"><?php if (strlen($p->description)): echo Html::encode($p->description);
  85. else: echo Html::encode($p->nom);
  86. endif; ?></label></td>
  87. <td><input id="produit-<?php echo $p->id; ?>" name="Produit[<?php echo $p->id; ?>][actif]" type="checkbox" <?php if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']): ?>checked="checked"<?php endif; ?> /></td>
  88. <td><input class="quantite-max" name="Produit[<?php echo $p->id; ?>][quantite_max]" type="text" value="<?php if (isset($produits_selec[$p->id])) echo $produits_selec[$p->id]['quantite_max']; ?>" /></td>
  89. </tr>
  90. <?php endforeach; ?>
  91. </tbody>
  92. </table>
  93. </div>
  94. <input type="submit" name="valider_produit_selec" class="btn btn-default" value="Valider" />
  95. </form>
  96. </div>
  97. </div>
  98. </div>
  99. <?php endif; ?>
  100. </div>
  101. <div id="row2" class="col-md-12">
  102. <input type="hidden" value="<?php echo $date; ?>" id="current-date" />
  103. <ul id="jours-production">
  104. <?php foreach ($jours_production as $j) : ?>
  105. <li><?php echo $j->date; ?></li>
  106. <?php endforeach; ?>
  107. </ul>
  108. <?php if ($date != ''): ?>
  109. <?php
  110. $num_jour_semaine = date('w', strtotime($date));
  111. $arr_jour_semaine = [0 => 'dimanche', 1 => 'lundi', 2 => 'mardi', 3 => 'mercredi', 4 => 'jeudi', 5 => 'vendredi', 6 => 'samedi'];
  112. $champs_horaires_point_vente = 'horaires_' . $arr_jour_semaine[$num_jour_semaine];
  113. ?>
  114. <div class="panel panel-default">
  115. <div class="panel-heading">
  116. <h3 class="panel-title">Commandes</h3>
  117. </div>
  118. <div class="panel-body">
  119. <form class="form-commandes-point-vente" action="<?php echo Yii::$app->urlManager->createUrl(['commande/index', 'date' => $date]); ?>" method="post">
  120. <table class="table table-hover table-header-rotated">
  121. <thead>
  122. <tr>
  123. <td class="title-point-vente" colspan="<?php echo count($produits) + 3; ?>"><strong>Global</strong></td>
  124. </tr>
  125. <tr>
  126. <th class="border-left"></th>
  127. <?php foreach ($produits as $p): ?>
  128. <?php if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']): ?>
  129. <th class="center rotate-45">
  130. <div><span><strong><?php echo Html::encode($p->getLibelleAdmin()); ?></strong></span></div>
  131. </th>
  132. <?php endif; ?>
  133. <?php endforeach; ?>
  134. <th class="title-totaux"><strong>Potentiel</strong></th>
  135. <th class="title-totaux border-right"><strong>Commandé</strong></th>
  136. </tr>
  137. <tr>
  138. <td><strong>Total</strong></td>
  139. <?php
  140. foreach ($produits as $p) {
  141. if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) {
  142. $quantite = Commande::getQuantiteProduit($p->id, $commandes);
  143. $str_quantite = '';
  144. if ($quantite)
  145. $str_quantite = $quantite;
  146. $classe = 'center total';
  147. if ($str_quantite > $produits_selec[$p->id]['quantite_max'] && !$produits_selec[$p->id]['vrac']) {
  148. $classe .= ' depasse';
  149. }
  150. if ($p->vrac) {
  151. $classe .= ' vrac';
  152. }
  153. echo '<td class="' . $classe . '"><strong>' . $str_quantite . ' <span>';
  154. if ($produits_selec[$p->id]['quantite_max'] && $str_quantite)
  155. echo '/ ' . $produits_selec[$p->id]['quantite_max'] . '</span></strong></td>';
  156. }
  157. }
  158. ?>
  159. <td><strong><?php echo number_format($ca_potentiel, 2); ?> €</strong><br /><?php echo number_format($poids_total / 1000, 2); ?> kg</td>
  160. <td><strong><?php echo str_replace(' ', '&nbsp;', $recettes_pain . ' €'); ?></strong><br /><?php echo round($poids_pain) . ' kg'; ?></td>
  161. </tr>
  162. </thead>
  163. <tbody>
  164. <?php foreach ($points_vente as $pv): ?>
  165. <?php
  166. if (strlen($pv->$champs_horaires_point_vente)):
  167. ?>
  168. <tr>
  169. <td class="title-point-vente" colspan="<?php echo count($produits) + 3; ?>"><?php echo Html::encode($pv->nom); ?></td>
  170. </tr>
  171. <tr>
  172. <th class="border-left"></th>
  173. <?php foreach ($produits as $p): ?>
  174. <?php if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']): ?>
  175. <th class="center rotate-45">
  176. <div><span><strong><?php echo Html::encode($p->getLibelleAdmin()); ?></strong></span></div>
  177. </th>
  178. <?php endif; ?>
  179. <?php endforeach; ?>
  180. <th></th>
  181. <th class="border-right"></th>
  182. </tr>
  183. <?php foreach ($pv->commandes as $c): ?>
  184. <tr>
  185. <td class="client">
  186. <?php if (isset($c->user)): ?>
  187. <?php echo Html::encode($c->user->prenom . ' ' . $c->user->nom); ?>
  188. <?php else: ?>
  189. <?php echo Html::encode($c->username); ?>
  190. <?php endif; ?>
  191. <?php if (strlen($c->commentaire)): ?>
  192. <button type="button" class="btn btn-xs btn-info" data-toggle="popover" title="Commentaire" data-content="<?php echo Html::encode($c->commentaire); ?>"><span class="glyphicon glyphicon-comment"></span></button>
  193. <?php endif; ?>
  194. <br /><span class="date-commande"><?php echo date('d/m/Y à H:i ', strtotime($c->date));
  195. if ($c->date_update && date('d/m/Y', strtotime($c->date_update)) != date('d/m/Y', strtotime($c->date))): ?><br />modif. <?php echo date('d/m/Y', strtotime($c->date_update)); ?><?php endif; ?></span>
  196. </td>
  197. <?php
  198. foreach ($produits as $p) {
  199. if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) {
  200. $add = false;
  201. $quantite = 0;
  202. foreach ($c->commandeProduits as $cp) {
  203. if ($p->id == $cp->id_produit) {
  204. $quantite = $cp->quantite;
  205. $add = true;
  206. }
  207. }
  208. echo '<td class="td-produit"><input class="quantite" type="text" value="' . $quantite . '" name="produit_' . $c->id . '_' . $p->id . '" /></td>';
  209. }
  210. }
  211. ?>
  212. <td><?php echo str_replace(' ', '&nbsp;', number_format($c->montant, 2) . ' €'); ?></td>
  213. <td><a href="<?php echo Yii::$app->urlManager->createUrl(['commande/delete-commande', 'date' => $date, 'delete' => 1, 'id_commande' => $c->id]); ?>" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span></a></td>
  214. </tr>
  215. <?php endforeach; ?>
  216. <tr>
  217. <td class="client"><!-- <select class="select-user" name="user_pv_<?php echo $pv->id; ?>">
  218. <?php
  219. foreach ($users as $id_user => $libelle_user) {
  220. echo '<option value="' . $id_user . '">' . $libelle_user . '</option>';
  221. }
  222. ?>
  223. </select> -->
  224. <input type="text" placeholder="Nom" class="text" name="username_pv_<?php echo $pv->id; ?>" />
  225. <br />
  226. <input type="text" name="date_commande_pv_<?php echo $pv->id; ?>" class="datepicker" value="<?php echo date('d/m/Y'); ?>" />
  227. </td>
  228. <?php
  229. foreach ($produits as $p) {
  230. if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) {
  231. echo '<td class="td-produit' . (($p->vrac) ? ' vrac' : '') . '"><input class="quantite" type="text" value="0" name="produit_pv_' . $pv->id . '_' . $p->id . '" /></td>';
  232. }
  233. }
  234. ?>
  235. <td></td>
  236. <td></td>
  237. </tr>
  238. <?php
  239. if (count($pv->commandes) && strlen($pv->$champs_horaires_point_vente)) {
  240. echo '<tr>';
  241. echo '<td><strong>Total pain</strong></td>';
  242. //$cpt_non_vrac = 0 ;
  243. foreach ($produits as $p) {
  244. if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) {
  245. $quantite = Commande::getQuantiteProduit($p->id, $pv->commandes);
  246. $str_quantite = '';
  247. if (!$p->vrac) {
  248. //$cpt_non_vrac ++ ;
  249. if ($quantite)
  250. $str_quantite = $quantite;
  251. }
  252. echo '<td class="center' . (($p->vrac) ? ' vrac' : '') . '"><strong>' . $str_quantite . '</strong></td>';
  253. }
  254. }
  255. // total
  256. echo '<td><strong>' . number_format($pv->recettes_pain, 2) . ' €</strong></td><td></td></tr>';
  257. }
  258. ?>
  259. <?php endif; ?>
  260. <?php endforeach; ?>
  261. </tbody>
  262. </table>
  263. <input type="submit" class="btn btn-primary submit-pv" value="Enregistrer" name="submit_pv" />
  264. </form>
  265. </div>
  266. </div>
  267. <div class="clr"></div>
  268. <?php if (count($commandes) && false): ?>
  269. <h2>Récapitulatif production <a href="<?php echo Yii::$app->urlManager->createUrl(['commande/download', 'date' => $date]); ?>" class="btn btn-default">CSV</a></h2>
  270. <table class="table table-striped table-bordered">
  271. <thead>
  272. <tr>
  273. <th>Lieu</th>
  274. <?php foreach ($produits as $p): ?>
  275. <?php if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) : ?>
  276. <th><?php echo Html::encode($p->description); ?></th>
  277. <?php endif; ?>
  278. <?php endforeach; ?>
  279. </tr>
  280. </thead>
  281. <tbody>
  282. <?php
  283. foreach ($points_vente as $pv) {
  284. if (count($pv->commandes) && strlen($pv->$champs_horaires_point_vente)) {
  285. echo '<tr>';
  286. echo '<td>' . Html::encode($pv->nom) . '</td>';
  287. foreach ($produits as $p) {
  288. if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) {
  289. $quantite = Commande::getQuantiteProduit($p->id, $pv->commandes);
  290. $str_quantite = '';
  291. if ($quantite)
  292. $str_quantite = $quantite;
  293. echo '<td>' . $str_quantite . '</td>';
  294. }
  295. }
  296. echo '</tr>';
  297. }
  298. }
  299. ?>
  300. </tbody>
  301. <tfoot>
  302. <tr>
  303. <td><strong>Total</strong></td>
  304. <?php
  305. foreach ($produits as $p) {
  306. if (isset($produits_selec[$p->id]['actif']) && $produits_selec[$p->id]['actif']) {
  307. $quantite = Commande::getQuantiteProduit($p->id, $commandes);
  308. $str_quantite = '';
  309. if ($quantite)
  310. $str_quantite = $quantite;
  311. echo '<td class="' . (($p->vrac) ? 'vrac' : '') . '">' . $str_quantite . '</td>';
  312. }
  313. }
  314. ?>
  315. </tr>
  316. </tfoot>
  317. </table>
  318. <?php endif; ?>
  319. <?php endif; ?>
  320. </div>
  321. </div>