Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

ryxeo-glpi-git / front / report.infocom.php @ b67d8923

Historique | Voir | Annoter | Télécharger (8,51 ko)

1
<?php
2
/*
3
 * @version $Id: report.infocom.php 7763 2009-01-06 18:44:50Z moyo $
4
 -------------------------------------------------------------------------
5
 GLPI - Gestionnaire Libre de Parc Informatique
6
 Copyright (C) 2003-2009 by the INDEPNET Development Team.
7

8
 http://indepnet.net/   http://glpi-project.org
9
 -------------------------------------------------------------------------
10

11
 LICENSE
12

13
 This file is part of GLPI.
14

15
 GLPI is free software; you can redistribute it and/or modify
16
 it under the terms of the GNU General Public License as published by
17
 the Free Software Foundation; either version 2 of the License, or
18
 (at your option) any later version.
19

20
 GLPI is distributed in the hope that it will be useful,
21
 but WITHOUT ANY WARRANTY; without even the implied warranty of
22
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
 GNU General Public License for more details.
24

25
 You should have received a copy of the GNU General Public License
26
 along with GLPI; if not, write to the Free Software
27
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28
 --------------------------------------------------------------------------
29
 */
30

    
31
// ----------------------------------------------------------------------
32
// Original Author of file: Julien Dombre
33
// Purpose of file:
34
// ----------------------------------------------------------------------
35

    
36

    
37

    
38

    
39
$NEEDED_ITEMS=array("contract","infocom","computer","printer","monitor","peripheral","networking","software","phone","stat");
40

    
41
define('GLPI_ROOT', '..');
42
include (GLPI_ROOT . "/inc/includes.php");
43

    
44
checkRight("reports","r");
45

    
46
commonHeader($LANG["Menu"][6],$_SERVER['PHP_SELF'],"utils","report");
47

    
48

    
49
if(empty($_POST["date1"])&&empty($_POST["date2"])) {
50
        $year=date("Y")-1;
51
        $_POST["date1"]=date("Y-m-d",mktime(1,0,0,date("m"),date("d"),$year));
52

    
53
        $_POST["date2"]=date("Y-m-d");
54
}
55
if ($_POST["date1"]!=""&&$_POST["date2"]!=""&&strcmp($_POST["date2"],$_POST["date1"])<0){
56
        $tmp=$_POST["date1"];
57
        $_POST["date1"]=$_POST["date2"];
58
        $_POST["date2"]=$tmp;
59
}
60

    
61
echo "<div align='center'><form method=\"post\" name=\"form\" action=\"".$_SERVER['PHP_SELF']."\">";
62
echo "<table class='tab_cadre'><tr class='tab_bg_2'><td align='right'>";
63
echo $LANG["search"][8]." :</td><td>";
64
showCalendarForm("form","date1",$_POST["date1"]);
65
echo "</td><td rowspan='2' class='center'><input type=\"submit\" class='button' name=\"submit\" Value=\"". $LANG["buttons"][7] ."\" /></td></tr>";
66
echo "<tr class='tab_bg_2'><td align='right'>".$LANG["search"][9]." :</td><td>";
67
showCalendarForm("form","date2",$_POST["date2"]);
68
echo "</td></tr>";
69
echo "</table></form></div>";
70

    
71

    
72

    
73

    
74
$valeurtot=0;
75
$valeurnettetot=0;
76
$valeurnettegraphtot=array();
77
$valeurgraphtot=array();
78

    
79
/** Display an infocom report
80
* @param $device_type item type
81
* @param $begin begin date
82
* @param $end end date
83
*/
84
function display_infocoms_report($device_type,$begin,$end){
85
        global $DB,$valeurtot,$valeurnettetot, $valeurnettegraphtot, $valeurgraphtot,$LANG,$CFG_GLPI,$LINK_ID_TABLE;
86

    
87
        $query="SELECT glpi_infocoms.*, ".$LINK_ID_TABLE[$device_type].".name AS name, ".$LINK_ID_TABLE[$device_type].".ticket_tco, glpi_entities.completename as entname, glpi_entities.ID as entID FROM glpi_infocoms 
88
                INNER JOIN ".$LINK_ID_TABLE[$device_type]." ON (".$LINK_ID_TABLE[$device_type].".ID = glpi_infocoms.FK_device AND glpi_infocoms.device_type='".$device_type."')";
89
        $query.= " LEFT JOIN glpi_entities ON (".$LINK_ID_TABLE[$device_type].".FK_entities = glpi_entities.ID) ";
90

    
91
        $query.= " WHERE ".$LINK_ID_TABLE[$device_type].".is_template='0' ".getEntitiesRestrictRequest("AND",$LINK_ID_TABLE[$device_type]);
92

    
93
        if (!empty($begin)) $query.= " AND (glpi_infocoms.buy_date >= '".$begin."' OR glpi_infocoms.use_date >= '".$begin."' )";
94
        if (!empty($end)) $query.= " AND (glpi_infocoms.buy_date <= '".$end."' OR glpi_infocoms.use_date <= '".$end."' )";
95

    
96
        $query .=" ORDER BY entname ASC, buy_date, use_date";
97

    
98
        $display_entity=isMultiEntitiesMode();
99

    
100
        $result=$DB->query($query);
101
        if ($DB->numrows($result)>0){
102
                $comp=new CommonItem();
103
                $comp->getFromDB($device_type,0);
104

    
105
                echo "<h2>".$comp->getType()."</h2>";
106

    
107
                echo "<table class='tab_cadre'><tr><th>".$LANG["common"][16]."</th>";
108
                if ($display_entity){
109
                        echo "<th>".$LANG["entity"][0]."</th>";
110
                }
111

    
112
                echo "<th>".$LANG["financial"][21]."</th><th>".$LANG["financial"][92]."</th><th>".$LANG["financial"][91]."</th><th>".$LANG["financial"][14]."</th><th>".$LANG["financial"][76]."</th><th>".$LANG["financial"][80]."</th></tr>";
113

    
114

    
115
                $valeursoustot=0;
116
                $valeurnettesoustot=0;
117
                $valeurnettegraph=array();
118
                $valeurgraph=array();
119

    
120
                while ($line=$DB->fetch_array($result)){
121

    
122
                        if (isset($line["is_global"])&&$line["is_global"]){
123
                                $line["value"]*=getNumberConnections($device_type,$line["FK_device"]);
124
                        }
125

    
126
                        if ($line["value"]>0) $valeursoustot+=$line["value"];        
127

    
128
                        $valeurnette=TableauAmort($line["amort_type"],$line["value"],$line["amort_time"],$line["amort_coeff"],$line["buy_date"],$line["use_date"],$CFG_GLPI["date_fiscale"],"n");
129
                        $tmp=TableauAmort($line["amort_type"],$line["value"],$line["amort_time"],$line["amort_coeff"],$line["buy_date"],$line["use_date"],$CFG_GLPI["date_fiscale"],"all");
130

    
131
                        if (is_array($tmp)&&count($tmp)>0)
132
                                foreach ($tmp["annee"] as $key => $val){
133
                                        if ($tmp["vcnetfin"][$key]>0){
134
                                                if (!isset($valeurnettegraph[$val])) $valeurnettegraph[$val]=0;
135
                                                $valeurnettegraph[$val]+=$tmp["vcnetdeb"][$key];
136
                                        }
137
                                }
138
                        if ($line["buy_date"]!="0000-00-00"){
139
                                $year=substr($line["buy_date"],0,4);
140
                                if ($line["value"]>0){
141
                                        if (!isset($valeurgraph[$year])) $valeurgraph[$year]=0;
142
                                        $valeurgraph[$year]+=$line["value"];
143
                                }
144
                        }
145

    
146

    
147
                        $valeurnettesoustot+=str_replace(" ","",$valeurnette);        
148

    
149
                        echo "<tr class='tab_bg_1'><td>".$line["name"]."</td>";
150
                        if ($display_entity){
151
                                if ($line['entID']==0){
152
                                        echo "<td>".$LANG["entity"][2]."</td>";
153
                                } else {
154
                                        echo "<td>".$line['entname']."</td>";
155
                                }
156
                        }
157

    
158
                        echo "<td class='right'>".formatNumber($line["value"])."</td><td class='right'>".formatNumber($valeurnette)."</td><td class='right'>".showTco($line["ticket_tco"],$line["value"])."</td><td>".convDate($line["buy_date"])."</td><td>".convDate($line["use_date"])."</td><td>".getWarrantyExpir($line["buy_date"],$line["warranty_duration"])."</td></tr>";
159

    
160

    
161
                }        
162

    
163
                $valeurtot+=$valeursoustot;
164
                $valeurnettetot+=$valeurnettesoustot;
165

    
166
                echo "<tr><td colspan='6' class='center'><h3>".$LANG["common"][33].": ".$LANG["financial"][21]."=".formatNumber($valeursoustot)." - ".$LANG["financial"][81]."=".formatNumber($valeurnettesoustot)."</h3></td></tr>";
167

    
168

    
169
                if (count($valeurnettegraph)>0){
170

    
171
                        echo "<tr><td colspan='5'  class='center'>";
172
                        ksort($valeurnettegraph); 
173

    
174
                        $valeurnettegraphdisplay=array_map('round',$valeurnettegraph);
175

    
176
                        foreach ($valeurnettegraph as $key => $val) {
177
                                if (!isset($valeurnettegraphtot[$key])) $valeurnettegraphtot[$key]=0;
178
                                $valeurnettegraphtot[$key]+=$valeurnettegraph[$key];
179
                        }
180

    
181
                        graphBy($valeurnettegraphdisplay,$LANG["financial"][81],"",0,"year");
182

    
183
                        echo "</td></tr>";
184
                }
185

    
186
                if (count($valeurgraph)>0){
187
                        echo "<tr><td colspan='5' class='center'>";
188

    
189
                        ksort($valeurgraph); 
190

    
191
                        $valeurgraphdisplay=array_map('round',$valeurgraph);
192

    
193
                        foreach ($valeurgraph as $key => $val) {
194
                                if (!isset($valeurgraphtot[$key])) $valeurgraphtot[$key]=0;
195
                                $valeurgraphtot[$key]+=$valeurgraph[$key];
196
                        }
197

    
198
                        graphBy($valeurgraphdisplay,$LANG["financial"][21],"",0,"year");
199

    
200
                        echo "</td></tr>";
201
                }
202
                echo "</table>";
203

    
204
        }
205
}
206

    
207
echo "<table>";
208
echo "<tr><td>";
209
display_infocoms_report(COMPUTER_TYPE,$_POST["date1"],$_POST["date2"]);
210
echo "</td><td valign='top'>";
211
display_infocoms_report(MONITOR_TYPE,$_POST["date1"],$_POST["date2"]);
212
echo "</td></tr>";
213
echo "<tr><td>";
214
display_infocoms_report(NETWORKING_TYPE,$_POST["date1"],$_POST["date2"]);
215
echo "</td><td valign='top'>";
216
display_infocoms_report(PRINTER_TYPE,$_POST["date1"],$_POST["date2"]);
217
echo "</td></tr>";
218
echo "<tr><td>";
219
display_infocoms_report(PERIPHERAL_TYPE,$_POST["date1"],$_POST["date2"]);
220
echo "</td><td valign='top'>";
221
display_infocoms_report(PHONE_TYPE,$_POST["date1"],$_POST["date2"]);
222
echo "</td></tr>";
223
echo "</table>";
224

    
225

    
226

    
227
echo "<div align='center'><h3>".$LANG["common"][33].": ".$LANG["financial"][21]."=".formatNumber($valeurtot)." - ".$LANG["financial"][81]."=".formatNumber($valeurnettetot)."</h3></div>";
228

    
229
if (count($valeurnettegraphtot)>0){
230
        $valeurnettegraphtotdisplay=array_map('round',$valeurnettegraphtot);
231
        graphBy($valeurnettegraphtotdisplay,$LANG["financial"][81],"",0,"year");
232
}
233
if (count($valeurgraphtot)>0){        
234
        $valeurgraphtotdisplay=array_map('round',$valeurgraphtot);
235
        graphBy($valeurgraphtotdisplay,$LANG["financial"][21],"",0,"year");
236
}
237
commonFooter();
238
?>
Redmine Appliance - Powered by TurnKey Linux