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