goiintra/public_html/doc/report_expense.php

511 lines
17 KiB
PHP

<?
// Level 9 이하만 사용 가능
$func->checkLevelModal(9);
// 기능 제한 (Admin : 1, Staff : 5, Accounting : 6, Driver : 9 만 가능)
$permit = array("1", "3", "5", "6", "7", "9");
if (in_array($_SESSION['ss_LEVEL'], $permit)) {
$setTag = "ENABLED";
}
else {
$setTag = "DISABLED";
$msg = "Sorry, You don't have permission. Please contact Administrator.";
$func -> modalMsg ($msg, "/index_intranet.php");
exit();
}
$APPLYDATE = "20231122000000";
$add_srchquery = "";
$add_query = "";
$add_subqry = "";
$add_hsubqry = "";
$add_dsubqry = "";
// searching
if($key_word) {
$key_wordStr = urldecode(trim($key_word));
//$add_srchquery .= " AND ((m_userid LIKE '%$key_wordStr%') OR (m_firstname LIKE '%$key_wordStr%') OR (m_cell LIKE '%$key_wordStr%'))";
}
// sorting
if($switch) {
$switched = $func -> switchOrder($switch, $switched);
$add_query .= " ORDER BY $switch $switched ";
$switched = $switch . "^" . $switched;
}else if($switched) {
$switched1 = explode("^", $switched);
$add_query .= " ORDER BY $switched1[0] $switched1[1] ";
} else {
$add_query .= " ORDER BY d_orderdate DESC, m_initial ASC ";
}
$getSWHStr = $switched;
/*
SELECT COUNT(*) FROM (
select d_orderdate, m_initial from tbl_daily
INNER JOIN tbl_member ON (d_driveruid = m_uid)
group by d_orderdate,d_driveruid
order by d_orderdate DESC, m_initial ASC
) as ORDERLIST
*/
//SELECT d_orderdate,m_initial,d_driveruid, COUNT(*) FROM tbl_daily
//INNER JOIN tbl_member ON (d_driveruid = m_uid)
//GROUP BY d_orderdate,d_driveruid
//ORDER BY d_orderdate DESC, m_initial ASC
if ($startYear == "" || $startMonth == "") {
$startYear = date('Y');
$startMonth = date('m');
}
if ($searchDriver == "") $searchDriver = "ALL";
if ($startYear != "" && $startMonth != "") $add_subqry = " AND (d_orderdate LIKE '$startYear$startMonth%') ";
else $add_subqry = "AND (d_orderdate LIKE '".date('Y').date('m')."%') ";
if ($searchDriver != "") {
if ($searchDriver == "ALL") {
$add_subqry .= "";
$add_hsubqry .= "";
$add_dsubqry .= "";
}
else {
$add_subqry .= " AND m_uid = '".$searchDriver."' ";
$add_hsubqry .= " AND h_driveruid = '".$searchDriver."' ";
$add_dsubqry .= " AND d_driveruid = '".$searchDriver."' ";
}
}
else {
$add_subqry .= "";
$add_hsubqry .= "";
$add_dsubqry .= "";
}
// For Test
//$add_subqry = " AND m_uid = '17' ";
//total record
$query = "SELECT COUNT(*) FROM (
SELECT d_orderdate, m_initial from tbl_daily
INNER JOIN tbl_member ON (d_driveruid = m_uid)
WHERE d_orderdate >= '".substr($APPLYDATE,0,8)."' AND d_orderdate <= '".date('Ymd')."' ". $add_subqry . "
GROUP BY d_orderdate,d_driveruid
ORDER BY d_orderdate DESC, m_initial ASC
) AS ORDERLIST ";
$total_count=$jdb->rQuery($query, "record query error");
//echo "<br><br><br><br><br>[$total_count][$query]<br>";
//페이징변수설정
if(!$page) $page = 1;
if(!$list_count) $list_count = $INIT_PAGECNT; //출력리스트 갯수
if(!$page_count) $page_count = $INIT_PAGEVIEWCNT; //출력페이지 갯수
$list_number = $total_count - (($page-1)*$list_count);
$start_number = $list_count * ($page-1);
$add_query .= " LIMIT $start_number, $INIT_PAGECNT";
$query = "SELECT d_orderdate, d_driveruid, m_initial
FROM tbl_daily
INNER JOIN tbl_member ON (d_driveruid = m_uid)
WHERE d_orderdate >= '".substr($APPLYDATE,0,8)."' AND d_orderdate <= '".date('Ymd')."' ". $add_subqry . "
GROUP BY d_orderdate,d_driveruid " . $add_allquery . $add_srchquery . $add_query;
//echo "[$query]";
$result=$jdb->nQuery($query, "list error");
while($list=mysqli_fetch_array($result, MYSQLI_ASSOC)) {
for($i=0; $i<sizeof($list); $i++) {
//list($key, $value) = each($list);
foreach ( (Array) $list as $key => $value )
$$key = $value;
}
//$signupdateStr = $func -> convertFormat ($MSIGNUPDATE, 1);
//$qry = "SELECT CNAME FROM tbl_company WHERE CUID = '$MCOMPANY' ";
//$rtd=$jdb->fQuery($qry, "fetch query error");
//if ($MCOMPANY == "0" || $MCOMPANY == "") $companyStr = "-";
//else $companyStr = $rtd[CNAME];
$d_orderdateSTR = $func -> convertFormat ($d_orderdate, 3);
$todayqtySTR = number_format(floatval($todayqty));
$todayestqtySTR = number_format(floatval($todayestqty));
//$qry_driver = "SELECT m_firstname, m_lastname FROM tbl_member WHERE m_uid = '$c_driveruid' ";
//$rt_driver = $jdb->fQuery($qry_driver, "fetch query error");
// tbl_memberhis 에 해당일,해당드라이버가 있는지 확인해서 있으면 update, 없으면 create
$qry_day = "SELECT COUNT(h_uid) FROM tbl_memberhis WHERE h_date = '".$d_orderdate."' AND h_driveruid = '".$d_driveruid."' ";
$rt_cnt_day = $jdb->rQuery($qry_day, "fetch query error");
$h_departuretime = "-";
$h_arrivaltime = "-";
$h_balance_o = "-";
$h_balance_in = "-";
$h_balance_out = "-";
$h_balance_t = "-";
$h_balance_g = "-";
if ($rt_cnt_day > 0) {
$dailymode = "update";
// Get Information
$qry = "SELECT * FROM tbl_memberhis
WHERE h_driveruid = '".$d_driveruid."' AND h_date = '".$d_orderdate."'
ORDER BY h_uid DESC LIMIT 1 ";
$rt=$jdb->fQuery($qry, "fetch query error");
//echo"$query";
for($i=0; $i<sizeof($rt); $i++)
{
//list($key, $value) = each($result);
foreach ( (Array) $rt as $key => $value )
$$key = $value;
}
$h_commentSTR = str_replace("\\", "", $h_comment);
}
else $dailymode = "create";
// Get Cash Out Today
$qry_cashouttoday = "SELECT SUM(d_payamount) FROM tbl_daily
WHERE d_driveruid = '".$d_driveruid."'
AND (d_visitdate LIKE '".$d_orderdate."%')
AND d_paystatus = 'P' AND d_status = 'F' ";
$cashoutTODAY = $jdb->rQuery($qry_cashouttoday, "fetch query error");
//echo"<br>[$qry_cashouttoday]<br>";
// Get Cash In Today
$qry_cashintoday = "SELECT h_balance_in FROM tbl_memberhis
WHERE h_driveruid = '".$d_driveruid."' AND (h_date = $d_orderdate) ORDER BY h_uid DESC LIMIT 1 ";
$cashinTODAY = $jdb->rQuery($qry_cashintoday, "fetch query error");
//echo"[$qry_cashintoday]<br>";
// Get Cash Retrun Today
$qry_cashrttoday = "SELECT h_balance_r FROM tbl_memberhis
WHERE h_driveruid = '".$d_driveruid."' AND (h_date = $d_orderdate) ORDER BY h_uid DESC LIMIT 1 ";
$cashrtTODAY = $jdb->rQuery($qry_cashrttoday, "fetch query error");
//echo"[$qry_cashintoday]<br>";
// Get Cash Out Total SUM (해당월)
$qry_cashout = "SELECT SUM(d_payamount) FROM tbl_daily
WHERE d_driveruid = '".$d_driveruid."'
AND (d_visitdate >= '".$APPLYDATE."' AND d_visitdate < ".$d_orderdate."000000)
AND d_paystatus = 'P' AND d_status = 'F' ";
$cashoutSUM = $jdb->rQuery($qry_cashout, "fetch query error");
//echo"[$qry_cashout]<br>";
// Get Cash Return Total SUM (해당월)
$qry_cashrt = "SELECT SUM(h_balance_r) FROM tbl_memberhis
WHERE h_driveruid = '".$d_driveruid."'
AND (h_date >= '".substr($APPLYDATE,0,8)."' AND h_date < $d_orderdate) ";
$cashrtSUM = $jdb->rQuery($qry_cashrt, "fetch query error");
//echo"[$qry_cashrt]<br>";
// Get Cash In Total SUM (해당월 ,해당일 포함)
$qry_cashin = "SELECT SUM(h_balance_in) FROM tbl_memberhis
WHERE h_driveruid = '".$d_driveruid."'
AND (h_date >= '".substr($APPLYDATE,0,8)."' AND h_date < $d_orderdate) ";
$cashinSUM = $jdb->rQuery($qry_cashin, "fetch query error");
//echo"[$qry_cashin]<br>";
$balance = floatval($cashinSUM) + floatval($cashinTODAY) - floatval($cashrtTODAY) - floatval($cashoutTODAY) - floatval($cashrtSUM) - floatval($cashoutSUM);
$openingbalance = floatval($cashinSUM) - floatval($cashrtSUM) - floatval($cashoutSUM);
$cashoutTODAY = number_format(floatval($cashoutTODAY), 2, '.', ',');
$cashrtTODAY = number_format(floatval($cashrtTODAY), 2, '.', ',');
$balance = number_format(floatval($balance), 2, '.', ',');
$openingbalance = number_format(floatval($openingbalance), 2, '.', ',');
$h_balance_in = number_format(floatval($h_balance_in), 2, '.', ',');
$cashoutSUM = number_format(floatval($cashoutSUM), 2, '.', ',');
$cashinSUM = number_format(floatval($cashinSUM), 2, '.', ',');
if ($d_orderdate < substr($APPLYDATE,0,8)) {
$openingbalance = "0.00";
$balance = "0.00";
}
$strList .= "
<tr>
<td>$list_number</td>
<td>$d_orderdateSTR</td>
<td>$m_initial</td>
<td style=\"text-align:right; padding-right:20px;\">$openingbalance</td>
<td style=\"text-align:right; padding-right:20px;\">$h_balance_in</td>
<td style=\"text-align:right; padding-right:20px;\">$cashoutTODAY</td>
<td style=\"text-align:right; padding-right:20px;\">$cashrtTODAY</td>
<td style=\"text-align:right; padding-right:20px;\">$balance</td>
<td style=\"text-align:right; padding-right:20px;\">$h_balance_g</td>
</tr>
";
$list_number--;
}
if( $total_count < 1 ) {
$strList = "
<tr><td colspan='9' align=center height='30'><B>No Data</B></td></tr>
";
}
// Get Cash In, Return, Gas SUM
$qry_sum = "SELECT
SUM(h_balance_in) AS CASHINSUM,
SUM(h_balance_r) AS CASHRETURNSUM,
SUM(h_balance_g) AS GASSUM
FROM tbl_memberhis
WHERE h_date LIKE '".$startYear.$startMonth."%' ". $add_hsubqry
;
//echo "LIST_TOT[$qry_sum]<br>";
$rt_sum = $jdb->fQuery($qry_sum, "fetch query error");
$getCASHINSUM = number_format(floatval($rt_sum['CASHINSUM']), 2, '.', ',');
$getCASHRETURNSUM = number_format(floatval($rt_sum['CASHRETURNSUM']), 2, '.', ',');
$getGASSUM = number_format(floatval($rt_sum['GASSUM']), 2, '.', ',');
// Get Cash Out SUM
$qry_cashouttoday = "SELECT SUM(d_payamount) FROM tbl_daily
WHERE (d_visitdate LIKE '".$startYear.$startMonth."%' )
" . $add_dsubqry . "
AND d_paystatus = 'P' AND d_status = 'F' ";
$getCASHOUTSUM = $jdb->rQuery($qry_cashouttoday, "fetch query error");
$getCASHOUTSUM = number_format(floatval($getCASHOUTSUM), 2, '.', ',');
// Get Driver Info
$qry_driver = "SELECT * FROM tbl_member WHERE m_level = 9 AND m_status = 'A' ORDER by m_initial ASC ";
$rt_driver = $jdb->nQuery($qry_driver, "list error");
$c_driveruidSTR = "
<option value='ALL' $selectStr>ALL</option>";
while($lt_driver=mysqli_fetch_array($rt_driver, MYSQLI_ASSOC)) {
if ($lt_driver['m_uid'] == $searchDriver) {
$selectStr = "selected";
$getDriverInitial = $lt_driver['m_initial'];
}
else $selectStr = "";
$c_driveruidSTR .= "
<option value='".$lt_driver['m_uid']."' $selectStr>".$lt_driver['m_initial']."</option>";
}
//echo "<br><br><br><br><br>###[$searchDriver]###";
if ($searchDriver == "ALL") $getDriverInitial = "ALL";
// 년, 월 표시 로직
for($i='2023'; $i<=date('Y'); $i++) {
if ($i == $startYear) $setTmp = "selected";
else if ($startYear == "" && $i == date('Y')) {
$setTmp = "selected";
//$startYear = date(Y);
}
else $setTmp = "";
$strYear .= " <option value='$i' $setTmp>$i</option>";
}
for($i=1; $i<=12; $i++) {
$j = sprintf("%02d", $i);
if ($i == $startMonth) $setTmp = "selected";
else if ($startMonth == "" && $i == date('m')) {
$setTmp = "selected";
//$startMonth = date(m);
}
else $setTmp = "";
$strMonth .= " <option value='$j' $setTmp>$j</option>";
}
addLog ("add", "EXPENSE LIST", "VIEW", $lguserid, $query, $lgno);
?>
<main id="main" class="main">
<!-- ======= Breadcrumbs ======= -->
<div class="breadcrumbs">
<div class="container">
<div class="d-flex justify-content-between align-items-center">
<h2>EXPENSE</h2>
<ol>
<li><a href="index.html">HOME</a></li>
<li>EXPENSE</li>
</ol>
</div>
</div>
</div><!-- End Breadcrumbs -->
<section class="page">
<div class="expense-wrap" data-aos="fade-up">
<div class="wrap-border">
<FORM METHOD=POST NAME=form2 action='<?=$_SERVER["PHP_SELF"]?>'>
<INPUT TYPE=HIDDEN NAME=view VALUE='report_expense'>
<table class="table-search-customer-2">
<tr>
<td class="td-title">
<select name="searchDriver" id="searchDriver" class="custom-select">
<?=$c_driveruidSTR?>
</select>
</td>
<td class="td-title">
<select name="startYear" id="startYear" class="custom-select">
<?=$strYear?>
</select>
</td>
<td class="td-title">
<select name="startMonth" id="startMonth" class="custom-select">
<?=$strMonth?>
</select>
</td>
<td align="right">
<button type="submit" class="btn-add">SEARCH</button>
</td>
</tr>
</table>
</FORM>
</div><!--wrap-border-->
<div class="container section-oil-history-details" data-aos="fade-up">
<table class="tb-info-box oil-qty-tb">
<tr>
<td class="td-title-info">PERIOD</td>
<td class="td-title-info">DRIVER</td>
<td class="td-title-info">CASH IN</td>
<td class="td-title-info">CASH OUT</td>
<td class="td-title-info">CASH RETURN</td>
<td class="td-title-info">GAS</td>
</tr>
<tr>
<td class="td-text-info"><?=$startYear?>-<?=$startMonth?></td>
<td class="td-text-info"><?=$getDriverInitial?></td>
<td class="td-text-info"><span class="sp-oil"><?=$getCASHINSUM?></span></td>
<td class="td-text-info"><span class="sp-oil"><?=$getCASHOUTSUM?></span></td>
<td class="td-text-info"><span class="sp-oil"><?=$getCASHRETURNSUM?></span></td>
<td class="td-text-info"><span class="sp-oil"><?=$getGASSUM?></span></td>
</tr>
</table>
</div>
<div class="wrap-overflow forecast-info">
<table class="tb-list">
<tr>
<th>No</th>
<th>Date</th>
<th>Driver</th>
<th style="text-align:right; padding-right:20px;">Opening Balance</th>
<th style="text-align:right; padding-right:20px;">Cash In</th>
<th style="text-align:right; padding-right:20px;">Cash Out</th>
<th style="text-align:right; padding-right:20px;">Cash Return</th>
<th style="text-align:right; padding-right:20px;">Balance</th>
<th style="text-align:right; padding-right:20px;">Gas</th>
</tr>
<?=$strList?>
<!--
<tr>
<td>1</td>
<td>2023-09-20</td>
<td>D.S</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
</tr>
<tr>
<td>1</td>
<td>2023-09-20</td>
<td>D.S</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
<td style="text-align:right; padding-right:20px;">$ 200.00</td>
</tr>
-->
</table>
</div>
<div class="container-inner">
<div class="pagination">
<!--a href="#" ><i class="bi bi-arrow-left"></i></a>
<a href="#"class="active">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
<a href="#">6</a>
<a href="#"><i class="bi bi-arrow-right"></i></a-->
<?
$page_string = "view=$view&key_word=$key_word&key_CTGSEQ=$key_CTGSEQ&column=$column&mode=$mode&switched=$getSWHStr&startYear=$startYear&startMonth=$startMonth&searchDriver=$searchDriver";
$paging = new PAGE('page',$total_count,$list_count,$page_count,$page,$page_string,'#c71930','','','#c71930','');
?>
</div>
</div>
</div><!--container Ends-->
</section>
</main><!-- End #main -->