403Webshell
Server IP : 210.245.233.93  /  Your IP : 216.73.216.226
Web Server : Apache/2.2.15 (CentOS)
System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/onesupportdemo.onesolution.hk/report/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/onesupportdemo.onesolution.hk/report//ClientServiceReport.php
<?php
require_once(__DIR__ . '/../checkuser.php');
function index() {
	global $dbh, $sqlsrv_dbh;

	// Check permission
	if (!Util::isAdmin()) {
		redirectAndExit(Util::link(__DIR__ . '/../main.php'));
	}

	$get_keys = array('customer_id', 'start_date', 'end_date', 'search',);
	$get = array();
	foreach ($get_keys as $get_key) {
		$$get_key = isset($_GET[$get_key]) ? $_GET[$get_key] : null;
		$get[$get_key] = &$$get_key;
	}

	$token = explode("-", $start_date);
	$start_date = $token[0]."-".$token[1]."-01";
	$token2 = explode("-", $end_date);
	$end_date  = $token2[0]."-".$token2[1]."-".date('t', strtotime($end_date));

	$sql = "
SELECT job.*,customer.*,staff.*, job.id as job_id
FROM sup_job job, v_cm_customer_support customer, sys_login staff
WHERE job.customer_id = customer.cust_id AND job.staff_id = staff.id
	AND (COALESCE(LENGTH(?), 0) = 0 OR job.customer_id = ?)
	AND (COALESCE(LENGTH(?), 0) = 0 OR job.`date` >= ?)
	AND (COALESCE(LENGTH(?), 0) = 0 OR job.`date` <= ?)

GROUP BY job.customer_id
ORDER BY customer.company_name ASC,job.id ASC
";
	$parameters = array(
		$customer_id, $customer_id,
		$start_date, $start_date,
		$end_date, $end_date,

	);


	if (!($sth = $dbh->prepare($sql))) {
		throw new Exception("sql prepare statement failure: $sql");
	}

	$sth->setFetchMode(PDO::FETCH_ASSOC);
	if (!$sth->execute($parameters)) {
		throw new Exception("sql execute statement failure: $sql");
	}

	$num_companies = $sth->fetchAll();

	$sql = "SELECT * FROM v_cm_customer_support V_CM_CUSTOMER_SUPPORT ORDER BY company_name";
	if (!($sth = $dbh->prepare($sql))) {
		throw new Exception("sql prepare statement failure: $sql");
	}
	$sth->setFetchMode(PDO::FETCH_ASSOC);
	if (!$sth->execute()) {
		throw new Exception("sql execute statement failure: $sql");
	}
	$customers = $sth->fetchAll();

	$sql = "SELECT * FROM sys_login WHERE deleted = ? ORDER BY username";
	$parameters = array(0);
	if (!($sth = $dbh->prepare($sql))) {
		throw new Exception("sql prepare statement failure: $sql");
	}
	$sth->setFetchMode(PDO::FETCH_ASSOC);
	if (!$sth->execute($parameters)) {
		throw new Exception("sql execute statement failure: $sql");
	}
	$staffs = $sth->fetchAll();

	return array(
		'staffs' => $staffs,
		'customers' => $customers,
		'num_companies' => $num_companies,
	);

}

extract(index());

if(isset($_GET['start_date'])){
	$token = explode("-", $_GET['start_date']);
	$_start_date = $token[0]."-".$token[1]."-01";
}else
	$_start_date = null;

if(isset($_GET['start_date'])){
	$token2 = explode("-", $_GET['end_date']);
	$_end_date  = $token2[0]."-".$token2[1]."-".date('t', strtotime($_GET['end_date']));
}else
	$_end_date = null;



$_customer_id = $_GET['customer_id'] ?: null;

?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

	<?php require(__DIR__ . '/../inc/_head_meta.php'); ?>

	<?php require(__DIR__ . '/../inc/_head_css.php'); ?>

	<style type="text/css">
		body {
			padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
			padding-bottom: 40px;
		}
	</style>

	<?php require(__DIR__ . '/../inc/_head_script.php'); ?>

	<?php if($_GET["search"] == 1){ ?>
		<script>
			$(function(){
				$("#output_excel").submit();
			});
		</script>
	<?php } ?>

</head>
<body>

<?php require(__DIR__ . '/../inc/_navbar.php'); ?>

<div class="container">

<?php if (isset($_GET["message"]) && !empty($_GET["message"])): ?>
	<div class="alert alert-info">
		<button type="button" class="close" data-dismiss="alert">&times;</button>
		<h5 class="alert-heading">Note:</h5>

		<p><?= $_GET["message"] ?></p>
	</div>
<?php endif; ?>

<h2>Client Service Report</h2>

<div class="container-fluid">
	<div class="row-fluid">
		<div class="span12">
			<div class="hero-unit" style="padding:10px">
				<a href="#" id="search_btn" class="btn btn-link"><h4><i class="icon-list-alt"></i> Search Form</h4></a>
				<script type="text/javascript">
					$(function() {
						$('#search_btn').click(function(event) {
							event.preventDefault();
							$('#search_form').toggle();
						});
						$('.date-picker').datetimepicker({ pickTime: false, format: "yyyy-MM",
							viewMode: "months",
							minViewMode: "months" });
						$('.time-picker').datetimepicker({ pickDate: false, pickSeconds: false });
						$('.select2').select2();
						$('#search_form').validate();
					});
				</script>
				<form id="search_form" class="form-horizontal" method="get">
					<input type="hidden" name="search" value="1" />
					<div class="control-group">
						<?php $attribute = 'customer_id';$_value = '_customer_id'; $label = 'Customer'; ?>
						<label class="control-label" for="<?=$attribute?>"><?=$label?></label>
						<div class="controls">
							<select id="<?=$attribute?>" name="<?=$attribute?>" placeholder="Select a <?=$label?>" class="select2 required">
								<option value=""></option>
								<?php foreach ($customers as $customer): ?>
									<option value="<?=$customer['cust_id']?>"<?=$customer['cust_id'] == $$_value ? ' selected="selected"' : ''?>><?=$customer['enable'] == 1 ? '' : '[Disabled] '?><?=h($customer['company_name'])?></option>
								<?php endforeach; ?>
							</select>
						</div>
					</div>


					<div class="control-group">
						<?php $attribute = 'start_date';$_value = '_start_date'; $label = 'Start Month'; ?>
						<label class="control-label" for="<?=$attribute?>"><?=$label?></label>
						<div class="controls">
							<div class="input-append date-picker">
								<input type="text" id="<?=$attribute?>" name="<?=$attribute?>" class="required" data-format="yyyy-MM" value="<?=$$_value?>" placeholder="<?=$label?>" />
										<span class="add-on">
											<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
										</span>
							</div>
						</div>
					</div>
					<div class="control-group">
						<?php $attribute = 'end_date'; $_value = '_end_date';$label = 'End Month'; ?>
						<label class="control-label" for="<?=$attribute?>"><?=$label?></label>
						<div class="controls">
							<div class="input-append date-picker">
								<input type="text" id="<?=$attribute?>" name="<?=$attribute?>" class="required" data-format="yyyy-MM" value="<?=$$_value?>" placeholder="<?=$label?>" />
										<span class="add-on">
											<i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
										</span>
							</div>
						</div>
					</div>


					<div class="control-group">
						<div class="controls">
							<button type="submit" class="btn btn-primary"><i class="icon-search icon-white"></i> Search</button>
							<button type="reset" class="btn" onclick="top.location.href='ClientServiceReport.php'"><i class="icon-refresh icon-black"></i> Reset</button>
						</div>
					</div>

				</form>
			</div>
		</div><!--/span-->
	</div><!--/row-->
</div>

<div style="text-align: right">
	<form id="output_excel" action="print_ClientServiceReport.php" method="post">
		<input type="hidden" name="_customer_id" value="<?=$_customer_id?>" />
		<input type="hidden" name="_start_date" value="<?=$_start_date?>" />
		<input type="hidden" name="_end_date" value="<?=$_end_date?>" />
		<input type="hidden" name="project_job" value="<?=$_GET["project_job"]?>" />
		<input type="hidden" name="contract_job" value="<?=$_GET["contract_job"]?>" />

		<?php if($_GET["search"] == 1){ ?>
			<button type="submit" class="btn btn-primary">Print</button>
		<?php } ?>
	</form>
</div>


<?php /*if($_GET["search"] == 1){ ?>

	<table class="table table-striped">
	<caption class="text-left"><h2>Search Result</h2></caption>
	<thead>
	<tr>

		<th>&nbsp;</th>
		<th>Customer</th>
		<th style="width: 75px;">Job Date</th>
		<th>Start Time</th>
		<th>End Time</th>
		<th>Actual Start Time</th>
		<th>Actual End Time</th>
		<th>Schedule Call</th>
		<th>Services Call</th>
		<th>Urgent Call</th>
		<th>Remote Call</th>
		<th>Staff</th>
		<th>Status</th>
	</tr>
	</thead>
	<tbody>
	<?php


		foreach ($num_companies as $companies){

			//get contract data

			$sql3 = "SELECT * FROM sup_contract WHERE contract_from <= ? and ? <= contract_to and customer_id = ? limit 1";

			$parameters3 = array($_end_date, $_start_date, $companies["customer_id"]);


			if (!($sth = $dbh->prepare($sql3))) {
				throw new Exception("sql prepare statement failure: $sql3");
			}
			$sth->setFetchMode(PDO::FETCH_ASSOC);
			if (!$sth->execute($parameters3)) {
				throw new Exception("sql execute statement failure: $sql3");
			}
			//$contract = $sth->fetch(PDO::FETCH_ASSOC);

			while($contract = $sth->fetch(PDO::FETCH_ASSOC)){

				$num_schedule_call = 0;
				$num_services_call = 0;
				$num_urgent_call = 0;
				$num_remote_call = 0;
				$total_job = 0;

				if(!empty($contract)){  //search time and contract time overlap

					/*$sql2 = "
		SELECT job.*,customer.*,staff.*, job.id as job_id
		FROM sup_job job, v_cm_customer_support customer, sys_login staff
		WHERE job.customer_id = customer.cust_id AND job.staff_id = staff.id
			AND (COALESCE(LENGTH(?), 0) = 0 OR job.customer_id = ?)
			AND (COALESCE(LENGTH(?), 0) = 0 OR job.staff_id = ?)
			AND (COALESCE(LENGTH(?), 0) = 0 OR job.`date` >= ?)
			AND (COALESCE(LENGTH(?), 0) = 0 OR job.`date` <= ?)
			AND job.type IS NOT NULL".$include_contract_job.$include_project_job."
		ORDER BY customer.company_name ASC,job.id ASC
		";

					$sql2 = "
	SELECT job.*,customer.*,staff.*, job.id as job_id
	FROM sup_job job, v_cm_customer_support customer, sys_login staff
	WHERE job.customer_id = customer.cust_id AND job.staff_id = staff.id
		AND (COALESCE(LENGTH(?), 0) = 0 OR job.customer_id = ?)
		AND (COALESCE(LENGTH(?), 0) = 0 OR job.`date` >= ?)
		AND (COALESCE(LENGTH(?), 0) = 0 OR job.`date` <= ?)
		AND job.type IS NOT NULL
	ORDER BY job.date ASC
	";



					/*if($_start_date < $contract["contract_from"])
						$search_job_start_date = $contract["contract_from"];
					else
						$search_job_start_date = $_start_date;

					if($_end_date < $contract["contract_to"])
						$search_job_end_date = $_end_date;
					else
						$search_job_end_date = $contract["contract_to"];


					$parameters2 = array(
						//$customer_id, $customer_id,
						$companies["customer_id"], $companies["customer_id"],
						$_start_date, $_start_date,
						$_end_date, $_end_date
					);


					if (!($sth2 = $dbh->prepare($sql2))) {
						throw new Exception("sql prepare statement failure: $sql2");
					}

					$sth2->setFetchMode(PDO::FETCH_ASSOC);
					if (!$sth2->execute($parameters2)) {
						throw new Exception("sql execute statement failure: $sql2");
					}

					$this_company = $sth2->fetchAll();

					foreach($this_company as $company){

						$total_flag = 1;
						$total_job++;
						if($company["type"] == 1)
							$num_schedule_call++;
						else if($company["type"] == 2)
							$num_services_call++;
						else if($company["type"] == 3)
							$num_urgent_call++;
						else if($company["type"] == 4)
							$num_remote_call++;
						else {}

					?>
						<tr>
							<td><a href="../job/modifyform.php?id=<?=$company['job_id']?>" class="btn"><i class="icon-pencil"></i></a></td>
							<td><?=$company['company_name']?></td>
							<td><?=$company['date']?></td>
							<td ><?=$company['start_time']?></td>
							<td><?=$company['end_time']?></td>
							<td <?php if (!empty($company['actual_start_time']) && $company['actual_start_time'] > $company['start_time']) echo "style='background-color: #FA5858;'" ?>><?=$company['actual_start_time']?></td>
							<td <?php if (!empty($company['actual_end_time']) && $company['actual_end_time'] > $company['end_time']) echo "style='background-color: #FA5858;'" ?>><?=$company['actual_end_time']?></td>
							<?php
								if($company['type']==1){
									echo "<td><i class='icon-ok'></i></td>";
									echo "<td></td>";
									echo "<td></td>";
									echo "<td></td>";
								}else if($company['type'] == 2){
									echo "<td></td>";
									echo "<td><i class='icon-ok'></i></td>";
									echo "<td></td>";
									echo "<td></td>";
								}else if($company['type'] == 3){
									echo "<td></td>";
									echo "<td></td>";
									echo "<td><i class='icon-ok'></i></td>";
									echo "<td></td>";
								}else if($company['type'] == 4){
									echo "<td></td>";
									echo "<td></td>";
									echo "<td></td>";
									echo "<td><i class='icon-ok'></i></td>";
								}else{}

							?>

							<td><?=h($company['username'])?></td>
							<td><?php $job_status = Job::statusOptions(); echo $job_status[$company['status']]; ?></td>

						</tr>
					<?php
					}


					$search_date_range = dateRange( $_start_date, $_end_date, '+1 month');
					$contract_date_range = dateRange( $contract["contract_from"], $contract["contract_to"], '+1 month');

					$overlap_month = array();

					foreach($search_date_range as $search_date){
						foreach($contract_date_range as $contract_date){
							if($search_date == $contract_date){ //overlap month
								$overlap_month[] = $search_date;
							}
						}
					}

					if($contract["contract_type"] == 1){    //monthly
						$size_of_overlap_month = sizeof($overlap_month);

						if(!empty($contract['schedule_call_3hrs'])){
							$contract_schedule_call = $contract['schedule_call_3hrs']*$size_of_overlap_month;
						}else if(!empty($contract['schedule_call_half_day'])){
							$contract_schedule_call = $contract['schedule_call_half_day']*$size_of_overlap_month;
						}else if(!empty($contract['schedule_call_full_day'])){
							$contract_schedule_call = $contract['schedule_call_full_day']*$size_of_overlap_month;
						}else{
							$contract_schedule_call = 0;
						}


						if($contract['service_call'] == 0)
							$contract_service_call = 0;
						else
							$contract_service_call = $contract['service_call']*$size_of_overlap_month;

						if($contract['urgent_call'] == 0)
							$contract_urgent_call = 0;
						else
							$contract_urgent_call = $contract['urgent_call']*$size_of_overlap_month;

						if($contract['remote_service_call'] == 0)
							$contract_remote_call = 0;
						else
							$contract_remote_call = $contract['remote_service_call']*$size_of_overlap_month;


						$total_call = $contract_schedule_call+$contract_service_call+$contract_urgent_call+$contract_remote_call;
					}else{  //package
						if(!empty($contract['schedule_call_3hrs'])){
							$contract_schedule_call = $contract['schedule_call_3hrs'];
						}else if(!empty($contract['schedule_call_half_day'])){
							$contract_schedule_call = $contract['schedule_call_half_day'];
						}else if(!empty($contract['schedule_call_full_day'])){
							$contract_schedule_call = $contract['schedule_call_full_day'];
						}else{
							$contract_schedule_call = 0;
						}

						if($contract['service_call'] == 0)
							$contract_service_call = 0;
						else
							$contract_service_call = $contract['service_call'];

						if($contract['urgent_call'] == 0)
							$contract_urgent_call = 0;
						else
							$contract_urgent_call = $contract['urgent_call'];

						if($contract['remote_service_call'] == 0)
							$contract_remote_call = 0;
						else
							$contract_remote_call = $contract['remote_service_call'];


						$total_call = $contract_schedule_call+$contract_service_call+$contract_urgent_call+$contract_remote_call;
					}
				}else{
					$contract_schedule_call = 0;
					$contract_service_call = 0;
					$contract_urgent_call = 0;
					$contract_remote_call = 0;
					$total_call = 0;
				}


				//display count num of each type

				if($total_job == 0){
				?>
					<tr>
						<td></td>
						<td colspan="13" style="text-align: center;">No Jobs for the below contract</td>
					</tr>

				<?php
				}
					//if (empty($_staff_id)) {
					?>
					<tr>
						<td colspan="6" style="">
							<span style="padding-left: 55px;">
								<a href="../contract/modifyform.php?id=<?=$contract['contract_id']?>" class="btn" target="_blank"><i class="icon-pencil"></i></a>
							</span>

							<span style="padding:0 8px 0 8px;vertical-align: top !important;font-weight: bold;">
								Contract Summary
							</span>

							<span style="padding:0 8px 0 8px;vertical-align: top !important;">
								From: <?=$contract['contract_from']?>
							</span>

							<span style="padding:0 8px 0 8px;vertical-align: top !important;">
								To: <?=$contract['contract_to']?>
							</span>
						</td>


						<td><?php if($contract['contract_type'] == 1) echo "Monthly"; else if($contract['contract_type'] == 2) echo "Package"; else {}?></td>



						<td <?php if ($num_schedule_call > $contract_schedule_call) echo "style='background-color: #FA5858;'" ?>><?= $num_schedule_call . " / " . $contract_schedule_call ?></td>
						<td <?php if ($num_services_call > $contract_service_call) echo "style='background-color: #FA5858;'" ?>><?= $num_services_call . " / " . $contract_service_call ?></td>
						<td <?php if ($num_urgent_call > $contract_urgent_call) echo "style='background-color: #FA5858;'" ?>><?= $num_urgent_call . " / " . $contract_urgent_call ?></td>
						<td <?php if ($num_remote_call > $contract_remote_call) echo "style='background-color: #FA5858;'" ?>><?= $num_remote_call . " / " . $contract_remote_call ?></td>

						<td><?= "( ".$total_job."/".$total_call." )" ?></td>

						<td><?php $job_status = Job::statusOptions(); echo $job_status[$company['status']]; ?></td>

					</tr>
					<?php   //}

				//}
			} $total_flag = 0;	}  ?>
	</tbody>
	</table>

<?php
}*/
?>




<div class="scroll_to_top">
	<a href="#" class="btn btn-link btn-mini scroll-to-top">Scroll to Top</a>
</div>

<script type="text/javascript">
	$(function() {
		$('.scroll-to-top').click(function(event) {
			event.preventDefault();
			scrollToTop();
		});
	});
</script>

<?php require(__DIR__ . '/../inc/_footer.php'); ?>

</div> <!-- /container -->
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit