source: branches/2.3/calendar/inc/hourReport.php @ 4914

Revision 4914, 6.5 KB checked in by rafaelraymundo, 13 years ago (diff)

Ticket #2198 - Relatório de horas expõe sem resultado .

Line 
1<?php
2$phpgw_flags = Array(
3        'currentapp'    =>      'calendar',
4        'noappheader'   =>      True,
5        'noappfooter'   =>      True,
6        'nofooter'      =>      True
7);
8$GLOBALS['phpgw_info']['flags'] = $phpgw_flags;
9
10include('../../header.inc.php');
11$_SESSION['calendar']['user'] = $GLOBALS['phpgw_info']['user'];
12$_SESSION['calendar']['server'] = $GLOBALS['phpgw_info']['server'];
13define('PHPGW_API_INC','../../phpgwapi/inc');
14include_once(PHPGW_API_INC.'/class.db.inc.php');
15$page_content = <<<PAGE
16<HTML><HEAD></HEAD><BODY>
17<SCRIPT type="text/javascript">
18var Total = 0;
19        function show_table(){
20                var MainDiv = document.getElementById('MainDiv');
21                var showTable = document.createElement('TABLE');
22                showTable.style.color = "#000066"
23                showTable.style.background = "#F7F7F7";
24                showTable.style.border = "1px solid #CCCCCC";
25                showTable.width = "75%";
26                showTable.align = "center";
27                var trLine = document.createElement('TR');
28                var tdVal = document.createElement('TD');
29                tdVal.innerHTML = "Titulo";
30                trLine.appendChild(tdVal);
31                tdVal = document.createElement('TD');
32                tdVal.innerHTML = "Descricao";
33                trLine.appendChild(tdVal);
34                tdVal = document.createElement('TD');
35                tdVal.innerHTML = "Data";
36                trLine.appendChild(tdVal);
37                tdVal = document.createElement('TD');
38                tdVal.innerHTML = "Horas";
39                trLine.appendChild(tdVal);
40                trLine.style.background = "#DDD";
41                showTable.appendChild(trLine);
42
43                var Eelement = MainDiv.firstChild;
44                while (Eelement){
45                        trLine = document.createElement('TR');
46                        tdVal = document.createElement('TD');
47                        var cal_id = Eelement.childNodes[4].innerHTML;
48                        tdVal.innerHTML = "<a href='../../index.php?menuaction=calendar.uicalendar.view&cal_id="+cal_id+"'>"+Eelement.childNodes[0].innerHTML+"</a>";
49                        trLine.appendChild(tdVal);
50                        tdVal = document.createElement('TD');
51                        tdVal.innerHTML = Eelement.childNodes[1].innerHTML;
52                        trLine.appendChild(tdVal);
53                        tdVal = document.createElement('TD');
54                        var today = new Date();
55                        today.setTime(parseInt(Eelement.childNodes[2].innerHTML)*1000);
56                        tdVal.innerHTML = (today.getDate()+"/"+(today.getMonth()+1)+"/"+(today.getYear()+1900));
57                        trLine.appendChild(tdVal);
58                        tdVal = document.createElement('TD');
59                        Total += (Eelement.childNodes[3].innerHTML-Eelement.childNodes[2].innerHTML)/3600;
60                        tdVal.innerHTML = ((Eelement.childNodes[3].innerHTML-Eelement.childNodes[2].innerHTML)/3600).toFixed(1);
61                        trLine.appendChild(tdVal);
62                        var tbody = document.createElement('tbody');
63                        tbody.appendChild(trLine);
64                        showTable.appendChild(tbody);
65                        Eelement = Eelement.nextSibling;
66
67                }
68                trLine = document.createElement('TR');
69                tdVal = document.createElement('TD');
70                tdDes =  document.createElement('TD');
71                tdDes.innerHTML = "Total";
72                tdDes.align = "left";
73                tdVal.innerHTML = Total.toFixed(1);
74                trLine.style.background = "#FFF";
75                trLine.appendChild(tdDes);
76                trLine.appendChild(document.createElement('TD'));
77                trLine.appendChild(document.createElement('TD'));
78                trLine.appendChild(tdVal);
79                var tbody = document.createElement('tbody');
80                tbody.appendChild(trLine);
81                showTable.appendChild(tbody);
82                MainDiv.parentNode.appendChild(showTable);
83        }
84</SCRIPT>
85PAGE;
86echo $page_content;
87$db = new db();
88$db->Halt_On_Error = 'no';
89$db->connect(
90        $_SESSION['calendar']['server']['db_name'],
91        $_SESSION['calendar']['server']['db_host'],
92        $_SESSION['calendar']['server']['db_port'],
93        $_SESSION['calendar']['server']['db_user'],
94        $_SESSION['calendar']['server']['db_pass'],
95        $_SESSION['calendar']['server']['db_type']
96);
97if (IsSet($_POST['CAT']) && IsSet($_POST['CAL'])){
98        if (!preg_match("/[a-zA-Z0-9]+/i",$_POST['CAT'][0])){
99                echo "Invalid entry:".$_POST['CAT'][0];
100                return false;
101        }
102        if (strlen($_POST['DAT']) > 0 && !preg_match("/[0123][0-9].[01][0-9].[12][90][0-9][0-9]$/i",$_POST['DAT'])){
103                echo "Invalid entry:".$_POST['DAT'];
104                return false;
105        }
106
107        if (IsSet($_POST['DAT']))
108                $initDate = mktime(null,null,null,substr($_POST['DAT'],3,2),substr($_POST['DAT'],0,2),substr($_POST['DAT'],6,4));
109        if ($_POST['CAL'][0] != 'run')
110                $user_id = $_POST['CAL'][0];
111
112        foreach ($_POST['CAL'] as $cal_uid){
113                $found = false;
114                foreach($_SESSION['calendar']['cals'] as $grant)
115                        if ($cal_uid == $grant['value'])
116                                $found = true;
117                        if (!$found){
118                                echo "Permission denied, cal. id:".$cal_uid."<br>";
119                                return;
120                        }
121                }
122
123
124        foreach($_POST['CAT'] as $catid){
125                $query = "select cal_id,title,description,datetime,edatetime from phpgw_cal where ".(!$_POST['NORM']?"cal_type = 'H' and":" is_public = 1 and ")." owner = ".$user_id." and (category like '%,".$catid.",%' or category like '%,".$catid."' or category like '".$catid.",%' or category = '".$catid."')".(IsSet($initDate)?" and datetime > ".$initDate:"");
126                if(!$db->query($query)){
127                        print("<br>Query failed.<br>");
128                        return;
129                }
130                else{
131                        while($db->next_record()){
132                                $entry = $db->row();
133                                $repeated = false;
134                                if (!empty($result_))
135                                foreach($result_ as $value){
136                                        if ($value['cal_id'] == $entry['cal_id'])
137                                                $repeated = true;
138                                }
139                                if(!$repeated)
140                                        $result_[] = $entry;
141                        }
142                }
143}
144        echo "<div id='MainDiv' style='display: none;'>";
145        if (!empty($result_))
146        foreach($result_ as $ind => $entry){
147                echo "<div id=\"entry_".$ind."\"><div id=\"title_".$ind."\">".htmlspecialchars($entry['title'])."</div><div id=\"description_".$ind."\">".htmlspecialchars($entry['description'])."</div><div id=\"datetime_".$ind."\">".$entry['datetime']."</div><div id=\"edatetime_".$ind."\">".$entry['edatetime']."</div><div>".$entry['cal_id']."</div></div>";
148        }
149        echo "</div><script type=\"text/javascript\"> show_table();</script>";
150        return;
151}
152
153$self = $_SERVER['PHP_SELF'];
154print("<table><tbody><tr><td>");
155print("<form id=\"form1\" method=\"post\" action=\"$self\">");
156print("Categoria(s):<br></td><td>");
157print("<select name=\"CAT[]\" multiple>");
158print($_SESSION['calendar']['categories']);
159print("</select></td></tr><tr><td>");
160print("Incluir ocorr&ecirc;ncias do tipo normal:</td><td><input name=\"NORM\" type=\"checkbox\"></input><br></td></tr>");
161print("<tr><td>Usuario:</td><td><select name=\"CAL[]\" multiple>");
162foreach($_SESSION['calendar']['cals'] as $grant)
163        print(!strstr($grant['value'],'g_')?'<option value="'.$grant['value'].'">'.$grant['name'].'</option>':"");
164print("</td></tr><tr><td>Apartir da data: dd/mm/aaaa<br>(caso todas deixar em branco):</td><td><input name=\"DAT\" type=\"text\"></input></td></tr>");
165print("</td></tr></tbody></table><br><input value=\"Fazer consulta\" type=\"submit\"><br></form>");
166print("</BODY></HTML>");
167?>
Note: See TracBrowser for help on using the repository browser.