Commit 5fffddc6f8ebebaa19fc9beb50bab4f0b0b3d4e2
1 parent
847424d3
Exists in
master
and in
2 other branches
Corrige relatório de impressoras garantindo que o valor retornado seja sempre o …
…apresentado pelo contador.
Showing
3 changed files
with
22 additions
and
17 deletions
Show diff stats
Controller/PrinterController.php
| @@ -20,6 +20,7 @@ use Ddeboer\DataImport\Workflow; | @@ -20,6 +20,7 @@ use Ddeboer\DataImport\Workflow; | ||
| 20 | use Ddeboer\DataImport\Reader\ArrayReader; | 20 | use Ddeboer\DataImport\Reader\ArrayReader; |
| 21 | use Ddeboer\DataImport\Writer\CsvWriter; | 21 | use Ddeboer\DataImport\Writer\CsvWriter; |
| 22 | use Ddeboer\DataImport\ValueConverter\CallbackValueConverter; | 22 | use Ddeboer\DataImport\ValueConverter\CallbackValueConverter; |
| 23 | +use Ddeboer\DataImport\ItemConverter\CallbackItemConverter; | ||
| 23 | 24 | ||
| 24 | use Doctrine\ORM\EntityManager; | 25 | use Doctrine\ORM\EntityManager; |
| 25 | use Symfony\Component\HttpFoundation\StreamedResponse; | 26 | use Symfony\Component\HttpFoundation\StreamedResponse; |
| @@ -124,6 +125,12 @@ class PrinterController extends Controller | @@ -124,6 +125,12 @@ class PrinterController extends Controller | ||
| 124 | $workflow = new Workflow($reader); | 125 | $workflow = new Workflow($reader); |
| 125 | $data = new \DateTime(); | 126 | $data = new \DateTime(); |
| 126 | 127 | ||
| 128 | + // Contador geral das impressorasa | ||
| 129 | + $converter = new CallbackItemConverter(function ($item) { | ||
| 130 | + $item['totalPrints'] = $item['printsEnd'] - $item['printsStart']; | ||
| 131 | + return $item; | ||
| 132 | + }); | ||
| 133 | + $workflow->addItemConverter($converter); | ||
| 127 | 134 | ||
| 128 | // As you can see, the first names are not capitalized correctly. Let's fix | 135 | // As you can see, the first names are not capitalized correctly. Let's fix |
| 129 | // that with a value converter: | 136 | // that with a value converter: |
| @@ -240,6 +247,12 @@ class PrinterController extends Controller | @@ -240,6 +247,12 @@ class PrinterController extends Controller | ||
| 240 | // Create the workflow from the reader | 247 | // Create the workflow from the reader |
| 241 | $workflow = new Workflow($reader); | 248 | $workflow = new Workflow($reader); |
| 242 | 249 | ||
| 250 | + // Contador geral das impressorasa | ||
| 251 | + $converter = new CallbackItemConverter(function ($item) { | ||
| 252 | + $item['totalPrints'] = $item['printsEnd'] - $item['printsStart']; | ||
| 253 | + return $item; | ||
| 254 | + }); | ||
| 255 | + $workflow->addItemConverter($converter); | ||
| 243 | 256 | ||
| 244 | // As you can see, the first names are not capitalized correctly. Let's fix | 257 | // As you can see, the first names are not capitalized correctly. Let's fix |
| 245 | // that with a value converter: | 258 | // that with a value converter: |
Entity/PrinterCounterRepository.php
| @@ -27,9 +27,9 @@ class PrinterCounterRepository extends EntityRepository | @@ -27,9 +27,9 @@ class PrinterCounterRepository extends EntityRepository | ||
| 27 | pc1.blackInk, | 27 | pc1.blackInk, |
| 28 | pc1.coloredInk, | 28 | pc1.coloredInk, |
| 29 | max(pc1.date) as endDate, | 29 | max(pc1.date) as endDate, |
| 30 | - max(pc1.prints) as printsEnd, | ||
| 31 | - min(pc2.date) as startDate, | ||
| 32 | - min(pc2.prints) as printsStart, | 30 | + (SELECT pc2.prints FROM CocarBundle:PrinterCounter pc2 WHERE pc2.date = max(pc1.date) AND pc2.printer = printer.id) as printsEnd, |
| 31 | + min(pc1.date) as startDate, | ||
| 32 | + (SELECT pc3.prints FROM CocarBundle:PrinterCounter pc3 WHERE pc3.date = min(pc1.date) AND pc3.printer = printer.id) as printsStart, | ||
| 33 | printer.name, | 33 | printer.name, |
| 34 | printer.description, | 34 | printer.description, |
| 35 | printer.serie, | 35 | printer.serie, |
| @@ -37,7 +37,6 @@ class PrinterCounterRepository extends EntityRepository | @@ -37,7 +37,6 @@ class PrinterCounterRepository extends EntityRepository | ||
| 37 | printer.host | 37 | printer.host |
| 38 | FROM CocarBundle:Printer printer | 38 | FROM CocarBundle:Printer printer |
| 39 | LEFT JOIN CocarBundle:PrinterCounter pc1 WITH (pc1.printer = printer.id AND pc1.date BETWEEN :start AND :end) | 39 | LEFT JOIN CocarBundle:PrinterCounter pc1 WITH (pc1.printer = printer.id AND pc1.date BETWEEN :start AND :end) |
| 40 | - LEFT JOIN CocarBundle:PrinterCounter pc2 WITH (pc2.printer = printer.id AND pc2.date BETWEEN :start AND :end) | ||
| 41 | GROUP BY printer.id, | 40 | GROUP BY printer.id, |
| 42 | pc1.blackInk, | 41 | pc1.blackInk, |
| 43 | pc1.coloredInk, | 42 | pc1.coloredInk, |
| @@ -70,12 +69,10 @@ class PrinterCounterRepository extends EntityRepository | @@ -70,12 +69,10 @@ class PrinterCounterRepository extends EntityRepository | ||
| 70 | printer.host, | 69 | printer.host, |
| 71 | printer.serie, | 70 | printer.serie, |
| 72 | printer.local, | 71 | printer.local, |
| 73 | - max(pc1.prints) as printsEnd, | ||
| 74 | - min(pc2.prints) as printsStart, | ||
| 75 | - (max(pc1.prints) - min(pc2.prints)) as totalPrints | 72 | + (SELECT pc2.prints FROM CocarBundle:PrinterCounter pc2 WHERE pc2.date = max(pc1.date) AND pc2.printer = printer.id) as printsEnd, |
| 73 | + (SELECT pc3.prints FROM CocarBundle:PrinterCounter pc3 WHERE pc3.date = min(pc1.date) AND pc3.printer = printer.id) as printsStart | ||
| 76 | FROM CocarBundle:Printer printer | 74 | FROM CocarBundle:Printer printer |
| 77 | LEFT JOIN CocarBundle:PrinterCounter pc1 WITH (pc1.printer = printer.id AND pc1.date BETWEEN :start AND :end) | 75 | LEFT JOIN CocarBundle:PrinterCounter pc1 WITH (pc1.printer = printer.id AND pc1.date BETWEEN :start AND :end) |
| 78 | - LEFT JOIN CocarBundle:PrinterCounter pc2 WITH (pc2.printer = printer.id AND pc2.date BETWEEN :start AND :end) | ||
| 79 | GROUP BY printer.id, | 76 | GROUP BY printer.id, |
| 80 | printer.name, | 77 | printer.name, |
| 81 | printer.description, | 78 | printer.description, |
| @@ -102,18 +99,16 @@ class PrinterCounterRepository extends EntityRepository | @@ -102,18 +99,16 @@ class PrinterCounterRepository extends EntityRepository | ||
| 102 | 99 | ||
| 103 | 100 | ||
| 104 | $_dql = "SELECT printer.id, | 101 | $_dql = "SELECT printer.id, |
| 105 | - max(pc1.prints) as printsEnd, | ||
| 106 | max(pc1.date) as endDate, | 102 | max(pc1.date) as endDate, |
| 107 | - min(pc2.prints) as printsStart, | ||
| 108 | - min(pc2.date) as startDate, | 103 | + (SELECT pc2.prints FROM CocarBundle:PrinterCounter pc2 WHERE pc2.date = max(pc1.date) AND pc2.printer = printer.id) as printsEnd, |
| 104 | + min(pc1.date) as startDate, | ||
| 105 | + (SELECT pc3.prints FROM CocarBundle:PrinterCounter pc3 WHERE pc3.date = min(pc1.date) AND pc3.printer = printer.id) as printsStart, | ||
| 109 | printer.name, | 106 | printer.name, |
| 110 | printer.host, | 107 | printer.host, |
| 111 | printer.serie, | 108 | printer.serie, |
| 112 | - printer.local, | ||
| 113 | - (max(pc1.prints) - min(pc2.prints)) as totalPrints | 109 | + printer.local |
| 114 | FROM CocarBundle:Printer printer | 110 | FROM CocarBundle:Printer printer |
| 115 | LEFT JOIN CocarBundle:PrinterCounter pc1 WITH (pc1.printer = printer.id AND pc1.date BETWEEN :start AND :end) | 111 | LEFT JOIN CocarBundle:PrinterCounter pc1 WITH (pc1.printer = printer.id AND pc1.date BETWEEN :start AND :end) |
| 116 | - LEFT JOIN CocarBundle:PrinterCounter pc2 WITH (pc2.printer = printer.id AND pc2.date BETWEEN :start AND :end) | ||
| 117 | GROUP BY printer.id, | 112 | GROUP BY printer.id, |
| 118 | printer.name, | 113 | printer.name, |
| 119 | printer.description, | 114 | printer.description, |
Resources/views/Printer/index.html.twig
| @@ -39,11 +39,8 @@ | @@ -39,11 +39,8 @@ | ||
| 39 | <th>Host</th> | 39 | <th>Host</th> |
| 40 | <th>Serie</th> | 40 | <th>Serie</th> |
| 41 | <th>Local</th> | 41 | <th>Local</th> |
| 42 | -<<<<<<< HEAD | ||
| 43 | -======= | ||
| 44 | <th>Contador Inicial</th> | 42 | <th>Contador Inicial</th> |
| 45 | <th>Contador Final</th> | 43 | <th>Contador Final</th> |
| 46 | ->>>>>>> d4656e0e44b6f43d88cea85fd3ca4cd16f0e76fd | ||
| 47 | <th>Impressões</th> | 44 | <th>Impressões</th> |
| 48 | <th>Ações</th> | 45 | <th>Ações</th> |
| 49 | </tr> | 46 | </tr> |