Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
78.95% covered (warning)
78.95%
15 / 19
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
GetColorsHelper
78.95% covered (warning)
78.95%
15 / 19
0.00% covered (danger)
0.00%
0 / 3
9.76
0.00% covered (danger)
0.00%
0 / 1
 calculateColors
77.78% covered (warning)
77.78%
7 / 9
0.00% covered (danger)
0.00%
0 / 1
5.27
 getColors
80.00% covered (warning)
80.00%
4 / 5
0.00% covered (danger)
0.00%
0 / 1
2.03
 getNotaColors
80.00% covered (warning)
80.00%
4 / 5
0.00% covered (danger)
0.00%
0 / 1
2.03
1<?php
2
3class GetColorsHelper
4{
5    public static function calculateColors($producto_id, $es_alta, $nota_bodega_id){
6
7        $helper = new GetColorsHelper();
8
9        $all_colors = $helper->getColors($producto_id);
10        if(empty($all_colors)){
11            return [];
12        }
13
14        if($es_alta === '0' && !empty($nota_bodega_id)){
15            $colors_en_nota = $helper->getNotaColors($nota_bodega_id);
16            if(empty($colors_en_nota)){
17                return [];
18            }
19            return array_merge($all_colors, $colors_en_nota);
20        }
21
22        return $all_colors;
23    }
24
25
26    protected function getColors($producto_id){
27        $method = __METHOD__;
28        global $gStrIt;
29
30
31        $query = "SELECT /*$method*/
32            pg.producto_general_id, 
33            c.color_id, 
34            c.color  as label, 
35            c.color , 
36            c.orden, 
37            pg.producto,
38            c.color_valor, 
39            c.color_id as real_data, 
40            c.color_id as real_value, 
41            c.color as value
42        FROM producto_color as pc
43                 JOIN producto_general AS pg ON pc.producto_general_id = pg.producto_general_id
44                 JOIN color as c ON pc.color_id = c.color_id
45        WHERE pg.producto_general_id = {$gStrIt($producto_id)}  AND pc.prohibido='No'  AND (c.activo='Si' AND pc.activo='Si')  ORDER BY c.orden, c.color";
46
47        $colors = ia_sqlArray($query, "color_id");
48
49        if($colors === false)
50        {
51            return [];
52        }
53
54        return $colors;
55    }
56
57
58    protected function getNotaColors($nota_bodega_id){
59        $method = __METHOD__;
60        global $gStrIt;
61        $query = "SELECT /*$method*/
62            pg.producto_general_id, 
63            c.color_id, 
64            c.color  as label, 
65            c.color , 
66            c.orden, 
67            pg.producto,
68            c.color_valor, 
69            c.color_id as real_data, 
70            c.color_id as real_value, 
71            c.color as value
72        FROM nota_bodega nb JOIN nota_bodega_items as pc ON nb.nota_bodega_id = pc.nota_bodega_id
73                 JOIN producto_general AS pg ON nb.producto_general_id = pg.producto_general_id
74                 JOIN color as c ON pc.color_id = c.color_id
75        WHERE  nb.nota_bodega_id = {$gStrIt($nota_bodega_id)} ORDER BY c.orden, c.color";
76
77        $colors = ia_sqlArray($query, "color_id");
78        if($colors === false)
79        {
80            return [];
81        }
82
83        return $colors;
84    }
85
86}