Passed
Push — master ( 88d705...44ae42 )
by Andrea
12:16
created

GrigliaDatiMultiUtils::buildRowGriglia()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 6
nc 2
nop 3
dl 0
loc 11
ccs 8
cts 8
cp 1
crap 2
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Fi\CoreBundle\DependencyInjection;
4
5
use Doctrine\ORM\Tools\Pagination\Paginator;
6
7
class GrigliaDatiMultiUtils
8
{
9 1
    public static function getTotalPages($quanti, &$limit)
10
    {
11
        /* calcola in mumero di pagine totali necessarie */
12 1
        return ceil($quanti / ($limit == 0 ? 1 : $limit));
13
    }
14
15 1
    public static function getLimit(&$limit)
16
    {
17 1
        return $limit ? $limit : 1;
18
    }
19
20 1
    public static function prepareQuery($parametri, &$q, &$sidx, &$sord, &$page, &$limit, &$quanti)
21
    {
22 1
        $output = GrigliaParametriUtils::getOuputType($parametri);
23 1
        $nospan = GrigliaDatiUtils::getDatiNospan($parametri);
24
        /* su quale campo fare l'ordinamento */
25
        /* conta il numero di record di risposta
0 ignored issues
show
Unused Code Comprehensibility introduced by
36% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
26
          $query_tutti_records = $q->getQuery();
27
          $quanti = count($query_tutti_records->getSingleScalarResult()); */
28
29 1
        $paginator = new Paginator($q, true);
30 1
        $quanti = count($paginator);
31
32
        /* imposta l'offset, ovvero il record dal quale iniziare a visualizzare i dati */
33 1
        $offset = ($limit * ($page - 1));
34
35
        /* se si mandano i dati in stampa non tiene conto di limite e offset ovvero risponde con tutti i dati */
36 1
        if ($output != 'stampa') {
37
            /* se nospan non tiene conto di limite e offset ovvero risponde con tutti i dati */
38 1
            if (!($nospan)) {
39
                /* Imposta il limite ai record da estrarre */
40 1
                $q = ($limit ? $q->setMaxResults($limit) : $q);
41
                /* E imposta il primo record da visualizzare (per la paginazione) */
42 1
                $q = ($offset ? $q->setFirstResult($offset) : $q);
43 1
            }
44 1
        } else {
45
            if ($quanti > 1000) {
46
                set_time_limit(960);
47
                ini_set('memory_limit', '2048M');
48
            }
49
        }
50
51 1
        if ($sidx) {
52 1
            $q->orderBy($sidx, $sord);
53 1
        }
54
        /* Dall'oggetto querybuilder si ottiene la query da eseguire */
55 1
        $query_paginata = $q->getQuery();
56
57
        /* Object -> $q = $query_paginata->getResult(); */
0 ignored issues
show
Unused Code Comprehensibility introduced by
47% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
58
        /* Array */
59
        /* Si ottiene un array con tutti i records */
60 1
        $q = $query_paginata->getArrayResult();
61
62
        /* Se il limire non è stato impostato si mette 1 (per calcolare la paginazione) */
63 1
        $limit = self::getLimit($limit);
64 1
    }
65
66 1
    public static function buildRowGriglia(&$singolo, &$vettoreriga, &$vettorerisposta)
67
    {
68
69
        /* Si costruisce la risposta json per la jqgrid */
70 1
        ksort($vettoreriga);
71 1
        $vettorerigasorted = array();
72 1
        foreach ($vettoreriga as $value) {
73 1
            $vettorerigasorted[] = $value;
74 1
        }
75 1
        $vettorerisposta['rows'][] = array('id' => $singolo['id'], 'cell' => $vettorerigasorted);
76 1
        unset($vettoreriga);
77 1
    }
78
79 1
    public static function setOrdineColonneDatiGriglia(&$ordinecolonne, &$nomecampo, &$indice, &$indicecolonna)
80
    {
81 1
        if (isset($ordinecolonne)) {
82
            $indicecolonna = array_search($nomecampo, $ordinecolonne);
83
            if ($indicecolonna === false) {
84
                if ($indice === 0) {
85
                    $indice = count($ordinecolonne);
86
                }
87
                ++$indice;
88
                $indicecolonna = $indice;
89
            } else {
90
                if ($indicecolonna > $indice) {
91
                    $indice = $indicecolonna;
92
                }
93
            }
94
        } else {
95 1
            ++$indice;
96 1
            $indicecolonna = $indice;
97
        }
98 1
    }
99
100 1
    public static function buildDatiGriglia($parametri, &$vettoreriga, &$singolo, &$nomecampo, &$indice, &$indicecolonna, &$singolocampo)
101
    {
102 1
        $doctrine = GrigliaParametriUtils::getDoctrineByEm($parametri);
103
104 1
        $bundle = $parametri['nomebundle'];
105 1
        $nometabella = $parametri['nometabella'];
106
        
107 1
        $tabellej = $parametri["tabellej"];
108 1
        $decodifiche = $parametri["decodifiche"];
109 1
        $escludere = $parametri["escludere"];
110 1
        $escludereutente = $parametri["escludereutente"];
111 1
        $ordinecolonne = $parametri["ordinecolonne"];
112
113
        /* Si controlla se il campo è da escludere o meno */
114 1
        if ((!isset($escludere) || !(in_array($nomecampo, $escludere))) && (!isset($escludereutente) || !(in_array($nomecampo, $escludereutente)))) {
115 1
            if (isset($tabellej[$nomecampo])) {
116 1
                self::tabellejNomecampoNormalizzato($tabellej, $nomecampo);
117
                /* Per ogni campo si cattura il valore dall'array che torna doctrine */
118 1
                foreach ($tabellej[$nomecampo]['campi'] as $campoelencato) {
119
                    /* Object -> $fields = $singolo->get($tabellej[$nomecampo]["tabella"]) ?
0 ignored issues
show
Unused Code Comprehensibility introduced by
72% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
120
                      $singolo->get($tabellej[$nomecampo]["tabella"])->get($campoelencato): ""; */
121
                    /* array */
122
123 1
                    self::setOrdineColonneDatiGriglia($ordinecolonne, $nomecampo, $indice, $indicecolonna);
124
                    
125 1
                    $parametriCampoElencato = array();
126 1
                    $parametriCampoElencato['tabellej'] = $tabellej;
127 1
                    $parametriCampoElencato['nomecampo'] = $nomecampo;
128 1
                    $parametriCampoElencato['campoelencato'] = $campoelencato;
129 1
                    $parametriCampoElencato['vettoreriga'] = $vettoreriga;
130 1
                    $parametriCampoElencato['singolo'] = $singolo;
131 1
                    $parametriCampoElencato['doctrine'] = $doctrine;
132 1
                    $parametriCampoElencato['bundle'] = $bundle;
133 1
                    $parametriCampoElencato['ordinecampo'] = $indicecolonna;
134 1
                    $parametriCampoElencato['decodifiche'] = $decodifiche;
135
136 1
                    $vettoreriga = GrigliaDatiUtils::campoElencato($parametriCampoElencato);
137 1
                }
138 1
            } else {
139 1
                self::setOrdineColonneDatiGriglia($ordinecolonne, $nomecampo, $indice, $indicecolonna);
140
                $parametriGrglia = array(
141 1
                    'singolocampo' => $singolocampo,
142 1
                    'tabella' => $bundle.':'.$nometabella,
143 1
                    'nomecampo' => $nomecampo,
144 1
                    'doctrine' => $doctrine,
145 1
                    'ordinecampo' => $indicecolonna,
146 1
                    'decodifiche' => $decodifiche,
147 1
                );
148 1
                GrigliaDatiUtils::valorizzaVettore($vettoreriga, $parametriGrglia);
149
            }
150 1
        }
151 1
    }
152
153 1
    public static function tabellejNomecampoNormalizzato(&$tabellej, $nomecampo)
154
    {
155 1
        if (is_object($tabellej[$nomecampo])) {
156
            $tabellej[$nomecampo] = get_object_vars($tabellej[$nomecampo]);
157
        }
158 1
    }
159
160 8
    public static function getWidthColonna(&$singoloalias, $colonna)
161
    {
162 8
        $moltiplicatorelarghezza = GrigliaUtils::MOLTIPLICATORELARGHEZZA;
163 8
        $larghezzamassima = GrigliaUtils::LARGHEZZAMASSIMA;
164 8
        $singoloaliaslunghezza = self::getLunghezzaSingoloAlias($singoloalias);
165 8
        $larghezzacalc = self::getLunghezzaSingoloAliasCalc($singoloalias, $colonna);
166 8
        $moltiplicatore = self::getMoltiplicatoreColonna($singoloaliaslunghezza, $colonna, $moltiplicatorelarghezza);
167 8
        $larghezzaricalcolata = ($moltiplicatore > $larghezzamassima ? $larghezzamassima : $larghezzacalc);
168 8
        $widthcampo = isset($singoloaliaslunghezza) ? $singoloaliaslunghezza : $larghezzaricalcolata;
169
170 8
        return $widthcampo;
171
    }
172
173 8
    public static function getLunghezzaSingoloAlias(&$singoloalias)
174
    {
175 8
        return isset($singoloalias['lunghezza']) ? $singoloalias['lunghezza'] : null;
176
    }
177
178 8
    public static function getLunghezzaSingoloAliasCalc(&$singoloalias, $colonna)
179
    {
180 8
        return isset($singoloalias['lunghezza']) ? $singoloalias['lunghezza'] : $colonna['length'] * GrigliaUtils::MOLTIPLICATORELARGHEZZA;
181
    }
182
183 8
    public static function getMoltiplicatoreColonna(&$singoloaliaslunghezza, $colonna, $moltiplicatorelarghezza)
184
    {
185 8
        return isset($singoloaliaslunghezza) ? $singoloaliaslunghezza : $colonna['length'] * $moltiplicatorelarghezza;
186
    }
187
}
188