GrigliaDatiUtils   A
last analyzed

Complexity

Total Complexity 35

Size/Duplication

Total Lines 157
Duplicated Lines 0 %

Test Coverage

Coverage 70.65%

Importance

Changes 4
Bugs 1 Features 0
Metric Value
wmc 35
eloc 83
c 4
b 1
f 0
dl 0
loc 157
ccs 65
cts 92
cp 0.7065
rs 9.6

12 Methods

Rating   Name   Duplication   Size   Complexity  
A getDatiCampiExtra() 0 3 2
A getDatiPrecondizioni() 0 3 2
A getDatiNospan() 0 3 2
A getDatiDecodifiche() 0 3 2
A getDatiPrecondizioniAvanzate() 0 3 2
A getDatiOrdineColonne() 0 8 3
A getTabellejNormalizzate() 0 8 3
A getDatiOrdinamento() 0 14 4
A valorizzaVettore() 0 3 1
A setTabelleJoin() 0 16 4
A splitFiledOrderBy() 0 11 3
B campoElencato() 0 54 7
1
<?php
2
3
namespace Fi\CoreBundle\Utils;
4
5
class GrigliaDatiUtils
6
{
7
8 6
    public static function getTabellejNormalizzate($parametri)
9
    {
10 6
        $tabellej = (isset($parametri['tabellej']) ? $parametri['tabellej'] : null);
11 6
        if (is_object($tabellej)) {
12
            $tabellej = get_object_vars($tabellej);
13
        }
14
15 6
        return $tabellej;
16
    }
17
18 4
    public static function setTabelleJoin(&$q, $parametri = array())
19
    {
20 4
        $tabellej = $parametri['tabellej'];
21 4
        $nometabella = $parametri['nometabella'];
22
23 4
        foreach ($tabellej as $tabellaj) {
24 4
            if (is_object($tabellaj)) {
25
                $tabellaj = get_object_vars($tabellaj);
26
            }
27
            /* Serve per far venire nella getArrayResult() anche i campi della tabella il leftjoin
28
              altrimenti mostra solo quelli della tabella con alias a */
29 4
            $parametrotabella = array($tabellaj['tabella']);
30 4
            $tabellajoin = (isset($tabellaj['padre']) ? $tabellaj['padre'] : $nometabella) . '.' . $tabellaj['tabella'];
31 4
            $aliasjoin = $tabellaj['tabella'];
32 4
            $q->addSelect($parametrotabella);
33 4
            $q = $q->leftJoin($tabellajoin, $aliasjoin);
34
        }
35 4
    }
36
37 6
    public static function getDatiDecodifiche($parametri)
38
    {
39 6
        return isset($parametri['decodifiche']) ? $parametri['decodifiche'] : null;
40
    }
41
42 6
    public static function getDatiNospan($parametri)
43
    {
44 6
        return isset($parametri['nospan']) ? $parametri['nospan'] : false;
45
    }
46
47 6
    public static function getDatiPrecondizioni($parametri)
48
    {
49 6
        return isset($parametri['precondizioni']) ? $parametri['precondizioni'] : array();
50
    }
51
52 6
    public static function getDatiPrecondizioniAvanzate($parametri)
53
    {
54 6
        return isset($parametri['precondizioniAvanzate']) ? $parametri['precondizioniAvanzate'] : array();
55
    }
56
57 6
    public static function getDatiCampiExtra($parametri)
58
    {
59 6
        return isset($parametri['campiextra']) ? $parametri['campiextra'] : null;
60
    }
61
62 6
    public static function getDatiOrdineColonne($parametri)
63
    {
64 6
        $ordinecolonne = (isset($parametri['ordinecolonne']) ? $parametri['ordinecolonne'] : null);
65 6
        if (!isset($ordinecolonne)) {
66 5
            $ordinecolonne = GrigliaUtils::ordinecolonne($parametri);
67
        }
68
69 6
        return $ordinecolonne;
70
    }
71
72 6
    public static function getDatiOrdinamento(&$sidx, $nometabella)
73
    {
74
        /* se non è passato nessun campo (ipotesi peregrina) usa id */
75 6
        if (!$sidx) {
76 4
            $sidx = $nometabella . '.id';
77 4
            return ;
78
        }
79 2
        if (strrpos($sidx, '.') == 0) {
80 2
            if (strrpos($sidx, ',') == 0) {
81
                // un solo campo
82 2
                $sidx = $nometabella . '.' . $sidx;
83
            } else {
84
                // più campi, passati separati da virgole
85
                $sidx = self::splitFiledOrderBy($sidx, $nometabella);
86
            }
87
        }
88 2
    }
89
90
    public static function splitFiledOrderBy($sidx, $nometabella)
91
    {
92
        $parti = explode(',', $sidx);
93
        $neword = "";
94
        foreach ($parti as $parte) {
95
            if (trim($neword) != '') {
96
                $neword = $neword . ', ';
97
            }
98
            $neword = $neword . $nometabella . '.' . trim($parte);
99
        }
100
        return $neword;
101
    }
102
103 6
    public static function valorizzaVettore(&$vettoreriga, $parametri)
104
    {
105 6
        GrigliaExtraFunzioniUtils::valorizzaColonna($vettoreriga, $parametri);
106 6
    }
107
108 3
    public static function campoElencato($parametriCampoElencato)
109
    {
110 3
        $tabellej = $parametriCampoElencato['tabellej'];
111 3
        $nomecampo = $parametriCampoElencato['nomecampo'];
112 3
        $campoelencato = $parametriCampoElencato['campoelencato'];
113 3
        $vettoreriga = $parametriCampoElencato['vettoreriga'];
114 3
        $singolo = $parametriCampoElencato['singolo'];
115 3
        $doctrine = $parametriCampoElencato['doctrine'];
116 3
        $bundle = $parametriCampoElencato['bundle'];
117 3
        $decodifiche = $parametriCampoElencato['decodifiche'];
118
119 3
        if (isset($parametriCampoElencato['ordinecampo'])) {
120 3
            $ordinecampo = $parametriCampoElencato['ordinecampo'];
121
        } else {
122
            $ordinecampo = null;
123
        }
124
125 3
        if (isset($tabellej[$campoelencato])) {
126
            foreach ($tabellej[$campoelencato]['campi'] as $campoelencatointerno) {
127
                $parametriCampoElencatoInterno = array();
128
                $parametriCampoElencatoInterno['tabellej'] = $tabellej;
129
                $parametriCampoElencatoInterno['nomecampo'] = $campoelencato;
130
                $parametriCampoElencatoInterno['campoelencato'] = $campoelencatointerno;
131
                $parametriCampoElencatoInterno['vettoreriga'] = $vettoreriga;
132
                $parametriCampoElencatoInterno['singolo'] = $singolo;
133
                $parametriCampoElencatoInterno['doctrine'] = $doctrine;
134
                $parametriCampoElencatoInterno['bundle'] = $bundle;
135
                $parametriCampoElencatoInterno['ordinecampo'] = $ordinecampo;
136
                $parametriCampoElencatoInterno['decodifiche'] = $decodifiche;
137
138
                $vettoreriga = self::campoElencato($parametriCampoElencatoInterno);
139
            }
140
        } else {
141 3
            if (isset($tabellej[$nomecampo]['padre'])) {
142
                $fields = $singolo[$tabellej[$nomecampo]['padre']][$tabellej[$nomecampo]['tabella']] ?
143
                        $singolo[$tabellej[$nomecampo]['padre']][$tabellej[$nomecampo]['tabella']][$campoelencato] :
144
                        '';
145
            } else {
146 3
                $fields = $singolo[$tabellej[$nomecampo]['tabella']] ?
147 3
                        $singolo[$tabellej[$nomecampo]['tabella']][$campoelencato] :
148 3
                        '';
149
            }
150
            $vettoredavalorizzare = array(
151 3
                'singolocampo' => $fields,
152 3
                'tabella' => $bundle . ':' . $tabellej[$nomecampo]['tabella'],
153 3
                'nomecampo' => $campoelencato,
154 3
                'doctrine' => $doctrine,
155 3
                'ordinecampo' => $ordinecampo,
156 3
                'decodifiche' => $decodifiche,
157
            );
158 3
            self::valorizzaVettore($vettoreriga, $vettoredavalorizzare);
159
        }
160
161 3
        return $vettoreriga;
162
    }
163
}
164