/** * * @ WHMCS FULL DECODED & NULLED * * @ Version : 5.2.15 * @ Author : MTIMER * @ Release on : 2013-12-24 * @ Website : http://www.mtimer.cn * **/ function project_management_timesoutput($vars, $taskid) { $timesoutput = "<table width=\"95%\" bgcolor=\"#cccccc\" cellspacing=\"1\" align=\"center\" style=\"margin-top:5px;\"><tr class=\"taskholder" . $taskid . "\" bgcolor=\"#efefef\" style=\"text-align:center;font-weight:bold;\"><td align=\"center\">" . $vars['_lang']['staff'] . "</td><td>" . $vars['_lang']['starttime'] . "</td><td>" . $vars['_lang']['stoptime'] . "</td><td>" . $vars['_lang']['timespent'] . "</td><td width=\"25\"></td></tr>"; $result2 = select_query("mod_projecttimes", "*", array("taskid" => $taskid)); while ($timerdata = mysql_fetch_assoc($result2)) { $show_startresume = "false"; $timerid = $timerdata['id']; $timeradmin = mysql_fetch_assoc(select_query("tbladmins", "firstname,lastname", array("id" => $timerdata['adminid']))); $timerstart = $timerdata['start']; $timerend = $timerdata['end']; $starttime = fromMySQLDate(date("Y-m-d H:i:s", $timerstart), 1) . ":" . date("s", $timerstart); $endtimerlink = $timerdata['adminid'] == $_SESSION['adminid'] || project_management_check_masteradmin() ? "<a rel=\"" . $timerid . "\" id=\"ajaxendtimertaskid" . $taskid . "\" class=\"ajaxendtimer timerlink\">" . $vars['_lang']['endtimer'] . "</a>" : $vars['_lang']['inprogress']; $deltimerlink = $timerdata['adminid'] == $_SESSION['adminid'] || project_management_check_masteradmin() ? "<a href=\"#\" onclick=\"deleteTimer('" . $timerid . "','" . $taskid . "');return false\"><img src=\"images/delete.gif\"></a>" : ""; $endtime = $timerend ? fromMySQLDate(date("Y-m-d H:i:s", $timerend), 1) . ":" . date("s", $timerend) : $endtimerlink; $totaltime = $timerend ? project_management_sec2hms($timerend - $timerstart) : $vars['_lang']['inprogress']; $timesoutput .= "<tr bgcolor=\"#ffffff\" class=\"time taskholder" . $taskid . "\"><td>" . $timeradmin['firstname'] . " " . $timeradmin['lastname'] . "</td><td>" . $starttime . "</td><td id=\"ajaxendtimertaskholderid" . $timerid . "\">" . $endtime . "</td><td id=\"ajaxtimerstatusholderid" . $timerid . "\">" . $totaltime . "</td><td>" . $deltimerlink . "</td></tr>"; if ($timerend) { $timecount += $timerend - $timerstart; $totaltimecount += $timerend - $timerstart; $show_startresume = "true"; $invoicelinedesc .= " > " . $starttime . " - " . $endtime . " (" . $totaltime . " " . $vars['_lang']['hours'] . ")\r\n"; } } if (!$timerid) { $timesoutput .= "<tr id=\"notasktimersexist" . $taskid . "\"><td colspan=\"6\" align=\"center\" bgcolor=\"#fff\">" . $vars['_lang']['notimesrecorded'] . "</td></tr>"; } $timesoutput .= "</table>"; $GLOBALS['timerid'] = $timerid; $GLOBALS['timecount'] = $timecount; $GLOBALS['invoicelinedesc'] = $invoicelinedesc; return $timesoutput; }
} $ticketinvoicesquery = !empty($ticketinvoicelinks) ? "(\".implode(' AND '," . $ticketinvoicelinks . ").\") OR " : ""; $totalinvoiced = get_query_val("tblinvoices", "SUM(subtotal+tax+tax2)", "id IN (SELECT invoiceid FROM tblinvoiceitems WHERE description LIKE '%Project #" . $projectid . "%' OR " . $ticketinvoicesquery . " (type='Project' AND relid='" . $projectid . "'))"); $totalinvoiced = $userid ? formatCurrency($totalinvoiced) : format_as_currency($totalinvoiced); $totalpaid = get_query_val("tblinvoices", "SUM(subtotal+tax+tax2)", "id IN (SELECT invoiceid FROM tblinvoiceitems WHERE description LIKE '%Project #" . $projectid . "%' OR " . $ticketinvoicesquery . " (type='Project' AND relid='" . $projectid . "')) AND status='Paid'"); $totalpaid = $userid ? formatCurrency($totalpaid) : format_as_currency($totalpaid); $reportdata['drilldown'][$i]['tableheadings'] = array("Task Name", "Start Time", "Stop Time", "Duration", "Task Status"); $timerresult = select_query("mod_projecttimes", "mod_projecttimes.start,mod_projecttimes.end,mod_projecttasks.task,mod_projecttasks.completed", array("mod_projecttimes.projectid" => $projectid), "", "", "", "mod_projecttasks ON mod_projecttimes.taskid = mod_projecttasks.id"); while ($data2 = mysql_fetch_assoc($timerresult)) { $rowcount = $rowtotal = 0; $taskid = $data2['id']; $task = $data2['task']; $taskadminid = $data2['adminid']; $timerstart = $data2['start']; $timerend = $data2['end']; $duration = $timerend ? $timerend - $timerstart : 0; $taskadmin = getAdminName($taskadminid); $starttime = date("d/m/Y H:i:s ", $timerstart); $stoptime = date("d/m/Y H:i:s ", $timerend); $taskstatus = $data2['completed'] ? "Completed" : "Open"; $totalprojectstime += $duration; $totaltaskstime += $duration; ++$rowcount; $rowtotal += $ordertotal; $reportdata['drilldown'][$i]['tablevalues'][] = array($task, $starttime, $stoptime, project_management_sec2hms($duration), $taskstatus); } $reportdata['tablevalues'][$i] = array("<a href=\"addonmodules.php?module=project_management&m=view&projectid=" . $projectid . "\">" . $projectid . "</a>", $created, $projectname, $admin, $client, $duedate, $totalinvoiced, $totalpaid, project_management_sec2hms($totaltaskstime), $projectstatus); ++$i; } $reportdata['footertext'] = "Total Time effort across " . $i . " projects: " . project_management_sec2hms($totalprojectstime);
$tasks = array(); $result = select_query("mod_projecttasks", "id,task,notes,adminid,created,duedate,completed", array("projectid" => $projectid), "order", "ASC"); while ($data = mysql_fetch_assoc($result)) { $tasks[$i] = $data; $tasks[$i]['adminname'] = $data['adminid'] ? get_query_val("tbladmins", "CONCAT(firstname,' ',lastname)", array("id" => $data['adminid'])) : "0"; $tasks[$i]['duein'] = $data['duedate'] != "0000-00-00" ? project_management_daysleft($data['duedate'], $vars) : "0"; $tasks[$i]['duedate'] = $data['duedate'] != "0000-00-00" ? fromMySQLDate($data['duedate'], 0, 1) : "0"; $totaltasktime = 0; $result2 = select_query("mod_projecttimes", "", array("projectid" => $projectid, "taskid" => $data['id'])); while ($data = mysql_fetch_array($result2)) { $timerid = $data['id']; $timerstart = $data['start']; $timerend = $data['end']; $starttime = fromMySQLDate(date("Y-m-d H:i:s", $timerstart), 1, 1) . ":" . date("s", $timerstart); $endtime = $timerend ? fromMySQLDate(date("Y-m-d H:i:s", $timerend), 1, 1) . ":" . date("s", $timerend) : 0; $totaltime = $timerend ? project_management_sec2hms($timerend - $timerstart) : 0; $tasks[$i]['times'][] = array("id" => $data['id'], "adminid" => $data['adminid'], "adminname" => get_query_val("tbladmins", "CONCAT(firstname,' ',lastname)", array("id" => $data['adminid'])), "start" => $starttime, "end" => $endtime, "duration" => $totaltime); if ($timerend) { $totaltasktime += $timerend - $timerstart; } } $totaltimecount += $totaltasktime; $tasks[$i]['totaltime'] = project_management_sec2hms($totaltasktime); ++$i; } $tplvars['tasks'] = $tasks; $totaltime = project_management_sec2hms($totaltimecount); $tplvars['project']['totaltime'] = $totaltime; return 1; } redir("m=project_management");