Completed
Push — master ( 9b53e2...2758ff )
by Andrea
19:08 queued 08:29
created

GrigliaColonneUtils::getColonneDatabase()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 18
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 4

Importance

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