diff --git a/public_html/doc/report_expense.php b/public_html/doc/report_expense.php index 8de47da..7cb9e47 100644 --- a/public_html/doc/report_expense.php +++ b/public_html/doc/report_expense.php @@ -62,7 +62,21 @@ if ($startYear == "" || $startMonth == "") { $startYear = date('Y'); $startMonth = date('m'); } +// ---- cutoff_date 계산 (Balance 기준일) ---- +$selectedYM = $startYear . '-' . $startMonth; +$nowYM = date('Y-m'); +if ($selectedYM == $nowYM) { + $cutoff_ymd = date('Ymd'); // 이번달 조회면 "오늘" +} else { + // 그 달 말일 + $cutoff_ymd = date('Ymd', strtotime($startYear . '-' . $startMonth . '-01 last day of this month')); +} + +$apply_ymd = substr($APPLYDATE, 0, 8); // '20231122' +$cutoff_visit_to = $cutoff_ymd . "235959"; // tbl_daily용 (방문일 datetime) + +// if ($searchDriver == "") $searchDriver = "ALL"; if ($startYear != "" && $startMonth != "") $add_subqry = " AND (d_orderdate LIKE '$startYear$startMonth%') "; @@ -290,6 +304,47 @@ $qry_cashouttoday = "SELECT SUM(d_payamount) FROM tbl_daily $getCASHOUTSUM = $jdb->rQuery($qry_cashouttoday, "fetch query error"); $getCASHOUTSUM = number_format(floatval($getCASHOUTSUM), 2, '.', ','); + +// ---- Total Balance (as of cutoff) 계산 ---- +// Cash In (누적) +$qry_total_in = "SELECT SUM(h.h_balance_in) + FROM tbl_memberhis h + INNER JOIN tbl_member m ON (h.h_driveruid = m.m_uid) + WHERE m.m_level = 9 + AND m.m_status = 'A' + AND h.h_date >= '".$apply_ymd."' + AND h.h_date <= '".$cutoff_ymd."' + ".$add_hsubqry; +$total_in = $jdb->rQuery($qry_total_in, "fetch query error"); + +// Cash Return (누적) +$qry_total_rt = "SELECT SUM(h_balance_r) + FROM tbl_memberhis h + INNER JOIN tbl_member m ON (h.h_driveruid = m.m_uid) + WHERE m.m_level = 9 + AND m.m_status = 'A' + AND h.h_date >= '".$apply_ymd."' + AND h.h_date <= '".$cutoff_ymd."' + ".$add_hsubqry; +$total_rt = $jdb->rQuery($qry_total_rt, "fetch query error"); + +// Cash Out (누적) ※ d_visitdate 는 ymdHis 이라 cutoff는 235959까지 +$qry_total_out = "SELECT SUM(d.d_payamount) + FROM tbl_daily d + INNER JOIN tbl_member m ON (d.d_driveruid = m.m_uid) + WHERE m.m_level = 9 + AND m.m_status = 'A' + AND d.d_visitdate >= '".$APPLYDATE."' + AND d.d_visitdate <= '".$cutoff_visit_to."' + ".$add_dsubqry." + AND d.d_paystatus = 'P' + AND d.d_status = 'F'"; + +$total_out = $jdb->rQuery($qry_total_out, "fetch query error"); + +// Total Balance = In - Return - Out +$getTOTALBALANCE = floatval($total_in) - floatval($total_rt) - floatval($total_out); +$getTOTALBALANCE = number_format($getTOTALBALANCE, 2, '.', ','); // Get Driver Info $qry_driver = "SELECT * FROM tbl_member WHERE m_level = 9 AND m_status = 'A' ORDER by m_initial ASC "; @@ -417,6 +472,7 @@ addLog ("add", "EXPENSE LIST", "VIEW", $lguserid, $query, $lgno); CASH IN CASH OUT CASH RETURN + BALANCE (AS OF ) GAS @@ -425,6 +481,7 @@ addLog ("add", "EXPENSE LIST", "VIEW", $lguserid, $query, $lgno); +