2 function nice_time( $in_time ) {
3 /* does nothing yet... */
4 return substr("$in_time", 2);
6 if ( "$because" != "" )
11 if ( "$search_for$system_id " != "" ) {
12 if ( !isset($maxresults) ||
intval($maxresults) == 0 ) $maxresults = 200;
13 $query = "SELECT request.*, organisation.*, request_timesheet.*, ";
14 $query .= " worker.fullname AS worker_name, requester.fullname AS requester_name, ";
15 $query .= " last_status_on(request.request_id) AS status_on, last_status AS status, get_status_desc(last_status) AS status_desc ";
16 $query .= " FROM request ";
17 if ( ! is_member_of('Admin', 'Support') ) {
18 $query .= "JOIN work_system USING (system_id) ";
19 $query .= "JOIN system_usr ON (work_system.system_id = system_usr.system_id AND system_usr.user_no = $session->user_no) ";
21 $query .= ", usr AS worker, usr AS requester, organisation, request_timesheet ";
22 $query .= " WHERE request_timesheet.request_id = request.request_id";
23 $query .= " AND worker.user_no = work_by_id ";
24 $query .= " AND requester.user_no = requester_id ";
25 $query .= " AND organisation.org_code = requester.org_code ";
27 if ( "$user_no" <> "" ) {
28 $query .= " AND work_by_id=".intval($user_no);
31 if ( "$search_for" <> "" ) {
32 $query .= " AND work_description ~* '$search_for' ";
34 if ( "$system_id" <> "" ) {
35 $query .= " AND request.system_id=".intval($system_id);
37 if ( "$org_code" <> "" ) {
38 $query .= " AND requester.org_code=".intval($org_code);
42 $query .= " AND request_timesheet.work_on>'$after' ";
43 if ( "$before" != "" )
44 $query .= " AND request_timesheet.work_on<'$before' ";
46 if( isset ($filter) && is_array($filter) ) {
47 while( list( $k, $v ) = each ( $filter ) ) {
48 if ($v != "") { $query .= " AND $k = $v "; }
52 if( "$order_by" == "" && isset ($sort) && is_array($sort) ) {
53 while( list( $k, $v ) = each ( $sort ) ) {
54 $order_by = " ORDER BY $k";
58 $query .= " $order_by ";
59 $query .= " LIMIT $maxresults ";
61 $result = awm_pgexec( $dbconn, $query );
63 $error_loc = "work-form.php";
64 $error_qry = "$query";
68 echo "<FORM METHOD=POST ACTION=\"$REQUEST_URI\">\n";
69 echo "<table border=0 align=center>\n";
71 // Build table of organisations found
72 for ( $i=0; $i < pg_NumRows($result); $i++
) {
73 $timesheet = pg_Fetch_Object( $result, $i );
75 if ( ($i %
2) == 0 ) echo "<tr class=bgcolor0>";
76 else echo "<tr class=bgcolor1>";
78 echo "<td class=sml valign=top>$timesheet->requester_name</td>\n";
79 echo "<td class=sml valign=top>$timesheet->abbreviation</td>\n";
80 echo "<td class=sml valign=top>$timesheet->debtor_no</td>\n";
81 echo "<td class=sml valign=top><a href=\"/wr.php?request_id=$timesheet->request_id\">$timesheet->request_id</a></td>\n";
83 echo "<td class=sml valign=top>" ;
84 echo "$timesheet->status_desc";
87 echo "<td class=sml valign=top>" ;
88 echo "$timesheet->status_on";
91 echo "<td class=sml valign=top>$timesheet->brief</td>\n";
92 echo "<td class=sml valign=top>" . html_format( $timesheet->work_description
) . "</td>\n";
93 echo "<td class=sml valign=top>$timesheet->worker_name</td>\n";
94 echo "<td class=sml valign=top nowrap>" . substr( nice_date($timesheet->work_on
), 7) . "</td>\n";
95 echo "<td class=sml valign=top>$timesheet->work_quantity $timesheet->work_units</td>\n";
96 echo "<td class=sml valign=top align=right nowrap>$timesheet->work_rate</td>\n";
97 echo "<td class=sml valign=top align=right nowrap>";
98 if ( "$timesheet->work_charged" == "" ) {
99 echo "<input type=text size=6 name=\"chg_amt[$timesheet->timesheet_id]\" value=\"" ;
100 if ( "$timesheet->charged_amount" == "" ) echo $timesheet->work_rate
*$timesheet->work_quantity
;
101 else echo $timesheet->charged_amount
;
104 else echo "$timesheet->charged_amount";
106 echo "<td class=sml valign=top>";
107 if ( "$timesheet->work_charged" == "" ) {
108 echo "<input type=checkbox value=1 name=\"chg_ok[$timesheet->timesheet_id]\"";
109 if ( "$timesheet->ok_to_charge" == "t" ) echo " checked";
114 echo "<td class=sml valign=top>";
115 if ( "$timesheet->work_charged" == "" && "$timesheet->ok_to_charge" == "t" ) {
116 echo "<input name=\"chg_on[$timesheet->timesheet_id]\" type=text size=10 value=\"" . date("d/m/Y") . "\">";
118 else echo substr( nice_date($timesheet->work_charged
), 7) ;
121 echo "<td class=sml valign=top>";
122 if ( "$timesheet->work_charged" == "" && "$timesheet->ok_to_charge" == "t" ) {
123 echo "<input name=\"chg_inv[$timesheet->timesheet_id]\" type=text size=6 >";
125 else echo $timesheet->charged_details
;
130 if ( "$uncharged" != "" ) {
131 echo "<tr><td class=mand colspan=6 align=center><input type=submit alt=\"apply changes\" name=submit value=\"Apply Charges\"></td></tr>\n";
136 echo "<form method=post action=\"$REQUEST_URI\" name=\"options\">\n";
139 echo "<th class=cols>Requested by";
140 echo '<select class=sml name="filter[request.requester_id]">' . "\n";
141 echo "<option class=sml value=''>All</option>\n";
142 $select_query = "SELECT user_no, fullname FROM usr ";
143 if ( ! is_member_of('Admin', 'Support') ) {
144 $select_query .= "WHERE usr.org_code = $session->org_code";
146 $select_query .= "ORDER BY fullname";
147 $select_result = awm_pgexec( $dbconn, $select_query );
148 for ( $i=0; $i < pg_NumRows($select_result); $i++
) {
149 $select_option = pg_Fetch_Object( $select_result, $i );
150 echo "<option class=sml value='$select_option->user_no'";
151 if ( $select_option->user_no
== $filter["request.requester_id"] ) {
154 echo ">$select_option->fullname</option>\n";
159 echo "<th class=cols>Org.";
160 echo '<select class=sml name="filter[organisation.org_code]">' . "\n";
161 echo "<option class=sml value=''>All</option>\n";
162 $select_query = "SELECT org_code, abbreviation FROM organisation ";
163 if ( ! is_member_of('Admin', 'Support') ) {
164 $select_query .= "WHERE organisation.org_code = $session->org_code";
166 $select_query .= "ORDER BY abbreviation";
167 $select_result = awm_pgexec( $dbconn, $select_query );
168 for ( $i=0; $i < pg_NumRows($select_result); $i++
) {
169 $select_option = pg_Fetch_Object( $select_result, $i );
170 echo "<option class=sml value='$select_option->org_code'";
171 if ( $select_option->org_code
== $filter["organisation.org_code"] ) {
174 echo ">$select_option->abbreviation</option>\n";
179 echo '<th class=cols>Dbtr. No.';
180 echo '<input type="Image" src="$theme->images/down.gif" title="Sort" border="0" name="sort[organisation.org_code]" >';
183 echo '<th class=cols>WR No.<input TYPE="Image" src="/'.$theme->images
.'/down.gif" alt="Sort" BORDER="0" name="sort[request_timesheet.request_id]" ></th>' . "\n";
185 echo "<th class=cols>WR Status";
186 echo '<select class=sml name="filter[request.last_status]">' . "\n";
187 echo "<option class=sml value=''>All</option>\n";
188 $select_query = "SELECT lookup_code, lookup_desc FROM lookup_code";
189 $select_query .= " WHERE lookup_code.source_table = 'request' ";
190 $select_query .= " AND lookup_code.source_field = 'status_code' ";
191 $select_query .= " ORDER BY lookup_code.lookup_desc";
192 $select_result = awm_pgexec( $dbconn, $select_query );
193 for ( $i=0; $i < pg_NumRows($select_result); $i++
) {
194 $select_option = pg_Fetch_Object( $select_result, $i );
195 echo "<option class=sml value=\"'$select_option->lookup_code'\"";
196 if ( "'" . $select_option->lookup_code
. "'" == $filter["request.last_status"] ) {
199 echo ">$select_option->lookup_desc</option>\n";
204 echo "<th class=cols>Status On</th>\n";
205 echo "<th class=cols>WR Brief</th>\n";
206 echo '<th class=cols>';
207 echo '<table cellpadding=2 cellspacing=0 border=0>';
210 echo '<td align="middle"><input TYPE="Image" src="/'.$theme->images
.'/up.gif" alt="Sort Ascending" BORDER="0" name="sort_asc[request_timesheet.work_description]" ></td>';
213 echo '<td><input TYPE="Image" src="/$theme->images/hide.gif" alt="Hide Work Description" BORDER="0" name="hide[request_timesheet.work_description]" ></td>';
214 echo '<td>Work Description</td>';
218 echo '<td align="middle"><input TYPE="Image" src="/'.$theme->images
.'/down.gif" alt="Sort Descending" BORDER="0" name="sort[request_timesheet.work_description]" ></td>';
222 echo "<th class=cols>Done By</th>\n";
224 echo '<th class=cols nowrap>Done on<br>';
225 echo '<input type="text" name="done_on_from_date" size=10 maxlength=10 class=sml >';
226 echo '<a href="javascript:show_calendar(\'options.done_on_from_date\');"';
227 echo ' onmouseover="window.status=\'Date Picker\';return true;"';
228 echo ' onmouseout="window.status=\'\';return true;">';
229 echo '<img valign="middle" src="/'.$theme->images
.'/date-picker.gif" border=0>';
231 echo '<input type="text" name="done_on_to_date" size=10 maxlength=10 class=sml >';
232 echo '<a href="javascript:show_calendar(\'options.done_on_to_date\');"';
233 echo ' onmouseover="window.status=\'Date Picker\';return true;"';
234 echo ' onmouseout="window.status=\'\';return true;">';
235 echo '<img valign="middle" src="/'.$theme->images
.'/date-picker.gif" border=0>';
238 echo "<th class=cols>Qty.</th>\n";
239 echo "<th class=cols>Rate</th>\n";
240 echo "<th class=cols>Charge Amount</th>\n";
241 echo "<th class=cols>Ok to Charge</th>\n";
242 echo "<th class=cols>Charged On</th>\n";
243 echo "<th class=cols>Invoice No.</th>\n";