Commit faf8170b20b5b5f678085f6ef4b5fdeeac2442fa

Authored by Etienne Pallier
1 parent 66b80e1a
Exists in master and in 2 other branches dev, dev-IRAP

Bugfix et Améliorations Export CSV

@@ -53,11 +53,11 @@ Logiciel testé et validé sur les configurations suivantes : @@ -53,11 +53,11 @@ Logiciel testé et validé sur les configurations suivantes :
53 53
54 VERSION ACTUELLE 54 VERSION ACTUELLE
55 55
56 -Date: 04/06/2019  
57 -Version: 2.12.26 56 +Date: 05/06/2019
  57 +Version: 2.12.27
58 Author: EP 58 Author: EP
59 Commentaire: 59 Commentaire:
60 - Bugfix et Améliorations Emprunt 60 + Bugfix et Améliorations Export CSV
61 61
62 IMPORTANT : 62 IMPORTANT :
63 - Pour connaitre la version actuelle, taper "./VERSION" 63 - Pour connaitre la version actuelle, taper "./VERSION"
@@ -93,6 +93,12 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https @@ -93,6 +93,12 @@ La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https
93 93
94 ----------------------------------------------------------------------------------------------------------- 94 -----------------------------------------------------------------------------------------------------------
95 95
  96 +05/06/2019 Version: 2.12.27 (EP)
  97 + Bugfix et Améliorations Export CSV
  98 +
  99 +04/06/2019 Version: 2.12.26 (EP)
  100 + Bugfix et Améliorations Emprunt
  101 +
96 03/06/2019 Version: 2.12.24-25 (EP) 102 03/06/2019 Version: 2.12.24-25 (EP)
97 LDAP CACHED v3 103 LDAP CACHED v3
98 104
src/Controller/MaterielsController.php
@@ -2281,6 +2281,7 @@ class MaterielsController extends AppController @@ -2281,6 +2281,7 @@ class MaterielsController extends AppController
2281 2281
2282 $contain = ['Fournisseurs']; 2282 $contain = ['Fournisseurs'];
2283 2283
  2284 + // EXPORT SELECTED materiels only
2284 if ($this->request->getData('export') !== null) { 2285 if ($this->request->getData('export') !== null) {
2285 $this->myDebug("IN EXPORT"); 2286 $this->myDebug("IN EXPORT");
2286 $what = $this->request->getData('what'); 2287 $what = $this->request->getData('what');
@@ -2298,22 +2299,27 @@ class MaterielsController extends AppController @@ -2298,22 +2299,27 @@ class MaterielsController extends AppController
2298 } 2299 }
2299 2300
2300 $this->myDebug($selectedMateriels); 2301 $this->myDebug($selectedMateriels);
  2302 + // Si la liste de materiels cochés est vide, ne rien faire
  2303 + if (empty($selectedMateriels)) {
  2304 + if ($what != '' && $what != 'search') return $this->redirect(['action' => 'index', $what]);
  2305 + else if ($what == 'search') return $this->redirect('javascript:window.history.go(-3)');
  2306 + else return $this->redirect(['action' => 'index']);
  2307 + }
2301 2308
  2309 + //if (sizeof($selectedMateriels) > 0) {
  2310 + $materiels = $this->Materiels->find('all')
  2311 + ->where(['Materiels.id' => $selectedMateriels[0]])
  2312 + ->contain($contain);
2302 2313
2303 - if (sizeof($selectedMateriels) > 0) {  
2304 -  
2305 - $materiels = $this->Materiels->find('all')  
2306 - ->where(['Materiels.id' => $selectedMateriels[0]])  
2307 - ->contain($contain);  
2308 -  
2309 - for ($j = 0; $j < sizeof($selectedMateriels); $j ++) {  
2310 - $materiels->orWhere([  
2311 - 'Materiels.id' => $selectedMateriels[$j]  
2312 - ]);  
2313 - }  
2314 -  
2315 - $this->myDebug($materiels); 2314 + for ($j = 0; $j < sizeof($selectedMateriels); $j ++) {
  2315 + $materiels->orWhere([
  2316 + 'Materiels.id' => $selectedMateriels[$j]
  2317 + ]);
2316 } 2318 }
  2319 + //$this->myDebug($materiels);
  2320 + //}
  2321 +
  2322 + // EXPORT ALL materiels
2317 } else if ($this->request->getData('exportAll') !== null) { 2323 } else if ($this->request->getData('exportAll') !== null) {
2318 $this->myDebug("IN EXPORTALL"); 2324 $this->myDebug("IN EXPORTALL");
2319 2325
@@ -2335,9 +2341,10 @@ class MaterielsController extends AppController @@ -2335,9 +2341,10 @@ class MaterielsController extends AppController
2335 'contain' => $contain 2341 'contain' => $contain
2336 ]); 2342 ]);
2337 } 2343 }
2338 -  
2339 $this->myDebug("what is " . $what); 2344 $this->myDebug("what is " . $what);
2340 $this->myDebug("statut is " . $status); 2345 $this->myDebug("statut is " . $status);
  2346 +
  2347 + // OTHER CASE 3
2341 } else if (isset($this->request->getAttribute('params')['pass'][0])) { 2348 } else if (isset($this->request->getAttribute('params')['pass'][0])) {
2342 $this->myDebug("OTHER CASE 3"); 2349 $this->myDebug("OTHER CASE 3");
2343 $what = $this->request->getAttribute('params')['pass'][0]; 2350 $what = $this->request->getAttribute('params')['pass'][0];
@@ -2345,6 +2352,8 @@ class MaterielsController extends AppController @@ -2345,6 +2352,8 @@ class MaterielsController extends AppController
2345 if ($what == 'search') { 2352 if ($what == 'search') {
2346 $materiels = $this->request->getSession()->read("result"); 2353 $materiels = $this->request->getSession()->read("result");
2347 } 2354 }
  2355 +
  2356 + // OTHER CASE 4
2348 } else { 2357 } else {
2349 $this->myDebug("OTHER CASE 4"); 2358 $this->myDebug("OTHER CASE 4");
2350 $materiels = $this->Materiels->find('all', [ 2359 $materiels = $this->Materiels->find('all', [
@@ -2355,8 +2364,14 @@ class MaterielsController extends AppController @@ -2355,8 +2364,14 @@ class MaterielsController extends AppController
2355 ]); 2364 ]);
2356 } 2365 }
2357 2366
2358 - $this->myDebug("Nb matos = " . count($materiels));  
2359 - $this->myDebug($materiels, true); 2367 +
  2368 + // NOW, CREATE THE CSV file from $materiels
  2369 +
  2370 + $this->myDebug("Nb matos = " .$materiels->count());
  2371 + //$this->myDebug("Nb matos = " . count($materiels));
  2372 +
  2373 + //$this->myDebug($materiels, true);
  2374 + $this->myDebug($materiels);
2360 2375
2361 ini_set('max_execution_time', 600); 2376 ini_set('max_execution_time', 600);
2362 2377
@@ -2413,9 +2428,12 @@ class MaterielsController extends AppController @@ -2413,9 +2428,12 @@ class MaterielsController extends AppController
2413 "Email responsable" 2428 "Email responsable"
2414 ]; 2429 ];
2415 2430
  2431 + // 1) Write HEADER row
2416 fputcsv($csv_file, $header_row, ';'); 2432 fputcsv($csv_file, $header_row, ';');
2417 2433
  2434 + // 2) Write DATA rows, 1 by 1
2418 foreach ($materiels as $result) { 2435 foreach ($materiels as $result) {
  2436 + $this->myDebug($result);
2419 $row = [ 2437 $row = [
2420 //utf8_encode($result->id), 2438 //utf8_encode($result->id),
2421 $result->designation 2439 $result->designation
@@ -2443,7 +2461,7 @@ class MaterielsController extends AppController @@ -2443,7 +2461,7 @@ class MaterielsController extends AppController
2443 array_push($row, $result->numero_laboratoire); 2461 array_push($row, $result->numero_laboratoire);
2444 array_push($row, $result->description); 2462 array_push($row, $result->description);
2445 2463
2446 - if ($organismes[$result->organisme_id] !== null) { 2464 + if ( !is_null($result->organisme_id) && !is_null($organismes[$result->organisme_id] ) ) {
2447 array_push($row, $organismes[$result->organisme_id]); 2465 array_push($row, $organismes[$result->organisme_id]);
2448 } else { 2466 } else {
2449 array_push($row, ""); 2467 array_push($row, "");
src/Template/Materiels/view.ctp
@@ -539,10 +539,10 @@ $bStyle = &#39;margin:0&#39;; @@ -539,10 +539,10 @@ $bStyle = &#39;margin:0&#39;;
539 <tr> 539 <tr>
540 <th class="actions"><?=__('')?></th> 540 <th class="actions"><?=__('')?></th>
541 <th><?=__('N°')?></th> 541 <th><?=__('N°')?></th>
542 - <th><?=__('Type d\'intervention')?></th> 542 + <th><?=__('Type')?></th>
543 <th><?=__('Intitulé')?></th> 543 <th><?=__('Intitulé')?></th>
544 - <th><?=__('Date debut / Frequence')?></th>  
545 - <th><?=__('Date fin / Repetition')?></th> 544 + <th><?=__('Date début / Fréquence')?></th>
  545 + <th><?=__('Date fin / Répétition')?></th>
546 <th><?=__('Statut')?></th> 546 <th><?=__('Statut')?></th>
547 </tr> 547 </tr>
548 <?php foreach ($materiel->suivis as $suivi) :?> 548 <?php foreach ($materiel->suivis as $suivi) :?>
@@ -621,10 +621,10 @@ $bStyle = &#39;margin:0&#39;; @@ -621,10 +621,10 @@ $bStyle = &#39;margin:0&#39;;
621 <th class="actions"><?=__('')?></th> 621 <th class="actions"><?=__('')?></th>
622 <th><?=__('N°')?></th> 622 <th><?=__('N°')?></th>
623 <th><?=__('Emprunteur')?></th> 623 <th><?=__('Emprunteur')?></th>
624 - <th><?=__('Type d\'Emprunt')?></th> 624 + <th><?=__("Type")?></th>
625 <th><?=__('Lieu')?></th> 625 <th><?=__('Lieu')?></th>
626 - <th><?=__('Date de l\'emprunt')?></th>  
627 - <th><?=__('Date de retour')?></th> 626 + <th><?=__('Date emprunt')?></th>
  627 + <th><?=__('Date retour')?></th>
628 </tr> 628 </tr>
629 <?php 629 <?php
630 630