GrigliaColonneUtils   A
last analyzed

Complexity

Total Complexity 32

Size/Duplication

Total Lines 140
Duplicated Lines 0 %

Test Coverage

Coverage 74.36%

Importance

Changes 0
Metric Value
wmc 32
eloc 70
dl 0
loc 140
ccs 58
cts 78
cp 0.7436
rs 9.84
c 0
b 0
f 0

9 Methods

Rating   Name   Duplication   Size   Complexity  
A getEtichettaNomeColonna() 0 3 1
A getAliasCampi() 0 19 3
A getEtichettaDescrizioneColonna() 0 5 2
A getColonne() 0 12 2
A getColonneDatabase() 0 18 4
A getDettagliCampi() 0 21 5
A getWidthCampo() 0 16 6
A getColonneOrdinate() 0 12 3
A elaboraColonna() 0 11 6
1
<?php
2
3
namespace Fi\CoreBundle\Utils;
4
5
class GrigliaColonneUtils
6
{
7
8 19
    public static function getColonne(&$nomicolonne, &$modellocolonne, &$indice, $paricevuti)
9
    {
10 19
        $doctrine = GrigliaParametriUtils::getDoctrineByEm($paricevuti);
11
12 19
        $nometabella = $paricevuti['nometabella'];
13 19
        $bundle = $paricevuti['nomebundle'];
14 19
        $entityName = $bundle . ':' . $nometabella;
15
16 19
        $colonne = self::getColonneDatabase(array('entityName' => $entityName, 'doctrine' => $doctrine));
17
18 19
        foreach ($colonne as $chiave => $colonna) {
19 19
            self::elaboraColonna($chiave, $colonna, $nomicolonne, $modellocolonne, $indice, $paricevuti);
20
        }
21 19
    }
22
23 19
    public static function elaboraColonna(&$chiave, &$colonna, &$nomicolonne, &$modellocolonne, &$indice, $paricevuti)
24
    {
25 19
        $alias = GrigliaParametriUtils::getAliasTestataPerGriglia($paricevuti);
26 19
        $escludere = GrigliaParametriUtils::getCampiEsclusiTestataPerGriglia($paricevuti);
27 19
        $escludereutente = GrigliaRegoleUtils::campiesclusi($paricevuti);
28
29 19
        if ((!isset($escludere) || !(in_array($chiave, $escludere))) && (!isset($escludereutente) || !(in_array($chiave, $escludereutente)))) {
30 19
            if (isset($alias[$chiave])) {
31 12
                self::getAliasCampi($nomicolonne, $modellocolonne, $indice, $chiave, $colonna, $paricevuti);
32
            } else {
33 19
                self::getDettagliCampi($nomicolonne, $modellocolonne, $alias, $indice, $chiave, $colonna, $paricevuti);
34
            }
35
        }
36 19
    }
37
38 19
    public static function getColonneDatabase($parametri = array())
39
    {
40 19
        $entityName = $parametri['entityName'];
41
        /* @var $doctrine \Doctrine\ORM\EntityManager */
42 19
        $doctrine = $parametri['doctrine'];
43
44 19
        $infocolonne = $doctrine->getMetadataFactory()->getMetadataFor($entityName);
45
46 19
        $colonne = array();
47 19
        $fieldMappings = $infocolonne->fieldMappings;
0 ignored issues
show
Bug introduced by
Accessing fieldMappings on the interface Doctrine\Persistence\Mapping\ClassMetadata suggest that you code against a concrete implementation. How about adding an instanceof check?
Loading history...
48 19
        foreach ($fieldMappings as $colonna) {
49 19
            $colonne[$colonna['fieldName']] = $colonna;
50 19
            if ($colonne[$colonna['fieldName']]['type'] == 'integer' || !(isset($colonne[$colonna['fieldName']]['length']))) {
51 19
                $colonne[$colonna['fieldName']]['length'] = 11;
52
            }
53
        }
54
55 19
        return $colonne;
56
    }
57
58 20
    public static function getColonneOrdinate($ordine)
59
    {
60 20
        $ordinecolonne = null;
61
62 20
        if (count($ordine) > 0) {
63
            $ordinecolonne = array();
64
            foreach ($ordine as $value) {
65
                $ordinecolonne[] = $value;
66
            }
67
        }
68
69 20
        return $ordinecolonne;
70
    }
71
72 12
    public static function getAliasCampi(&$nomicolonne, &$modellocolonne, &$indice, &$chiave, &$colonna, $paricevuti)
73
    {
74 12
        $alias = GrigliaParametriUtils::getAliasTestataPerGriglia($paricevuti);
75 12
        $etichetteutente = GrigliaUtils::etichettecampi($paricevuti);
76 12
        $larghezzeutente = GrigliaUtils::larghezzecampi($paricevuti);
77 12
        $ordinecolonne = GrigliaParametriUtils::getOrdineColonneTestataPerGriglia($paricevuti);
78
79 12
        $moltialias = (isset($alias[$chiave]) ? $alias[$chiave] : null);
80
81 12
        $indicecolonna = 0;
82
83 12
        foreach ($moltialias as $singoloalias) {
84 12
            GrigliaInfoCampiUtils::setOrdineColonne($ordinecolonne, $chiave, $indice, $indicecolonna);
85
86 12
            GrigliaInfoCampiUtils::getSingoloAliasNormalizzato($singoloalias);
87
88 12
            GrigliaInfoCampiUtils::setNomiColonne($nomicolonne, $chiave, $singoloalias, $indicecolonna, $etichetteutente);
89
90 12
            GrigliaInfoCampiUtils::setModelliColonne($modellocolonne, $colonna, $chiave, $singoloalias, $indicecolonna, $larghezzeutente);
91
        }
92 12
    }
93
94
    public static function getEtichettaDescrizioneColonna(&$singoloalias, $chiave)
95
    {
96
        $parametri = array('str' => $chiave, 'primamaiuscola' => true);
97
98
        return isset($singoloalias['descrizione']) ? $singoloalias['descrizione'] : GrigliaUtils::toCamelCase($parametri);
99
    }
100
101
    public static function getEtichettaNomeColonna(&$etichetteutente, $chiave)
102
    {
103
        return GrigliaUtils::toCamelCase(array('str' => trim($etichetteutente[$chiave]), 'primamaiuscola' => true));
104
    }
105
106
    public static function getWidthCampo(&$colonna, &$chiave, $singoloalias, $larghezzeutente)
107
    {
108
        if ((isset($larghezzeutente[$chiave])) && ($larghezzeutente[$chiave] != '') && ($larghezzeutente[$chiave] != 0)) {
109
            $widthcampo = $larghezzeutente[$chiave];
110
        } else {
111
            $moltiplicatorelarghezza = GrigliaUtils::MOLTIPLICATORELARGHEZZA;
112
            $larghezzamassima = GrigliaUtils::LARGHEZZAMASSIMA;
113
            $singoloaliaslunghezza = $singoloalias['lunghezza'];
114
            $moltiplicatore = $colonna['length'] * $moltiplicatorelarghezza;
115
            $larghezzacalc = $colonna['length'] * GrigliaUtils::MOLTIPLICATORELARGHEZZA;
116
            $larghezzaricalcolata = ($moltiplicatore > $larghezzamassima ? $larghezzamassima : $larghezzacalc);
117
118
            $widthcampo = isset($singoloaliaslunghezza) ? $singoloaliaslunghezza : $larghezzaricalcolata;
119
        }
120
121
        return $widthcampo;
122
    }
123
124 19
    public static function getDettagliCampi(&$nomicolonne, &$modellocolonne, &$alias, &$indice, &$chiave, &$colonna, &$paricevuti)
125
    {
126 19
        $etichetteutente = GrigliaUtils::etichettecampi($paricevuti);
127 19
        $larghezzeutente = GrigliaUtils::larghezzecampi($paricevuti);
128 19
        $ordinecolonne = GrigliaParametriUtils::getOrdineColonneTestataPerGriglia($paricevuti);
129
130 19
        $indicecolonna = 0;
131
132 19
        GrigliaInfoCampiUtils::setOrdineColonne($ordinecolonne, $chiave, $indice, $indicecolonna);
133
134 19
        GrigliaInfoCampiUtils::setNomiColonne($nomicolonne, $chiave, $alias, $indicecolonna, $etichetteutente);
135
136 19
        if ((isset($larghezzeutente[$chiave])) && ($larghezzeutente[$chiave] != '') && ($larghezzeutente[$chiave] != 0)) {
137
            $widthcampo = $larghezzeutente[$chiave];
138
        } else {
139 19
            $widthcampo = ($colonna['length'] * GrigliaUtils::MOLTIPLICATORELARGHEZZA > GrigliaUtils::LARGHEZZAMASSIMA ?
140 6
                    GrigliaUtils::LARGHEZZAMASSIMA :
141 19
                    $colonna['length'] * GrigliaUtils::MOLTIPLICATORELARGHEZZA);
142
        }
143
144 19
        $modellocolonne[$indicecolonna] = array('name' => $chiave, 'id' => $chiave, 'width' => $widthcampo, 'tipocampo' => $colonna['type']);
145 19
    }
146
}
147