Files
BE_CPONE/application/controllers/tools/management/Omsetperpayment.php
2026-04-27 10:26:26 +07:00

292 lines
14 KiB
PHP

<?php
class Omsetperpayment extends MY_Controller
{
function getdatas(){
$prm = $this->sys_input;
//print_r($prm);
$this->db_onedev = $this->load->database("onedev", true);
if($prm['type'] == 'month'){
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'CASH'
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_cash = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'DEBIT'
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_debit = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'CREDIT'
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_credit = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'TRANSFER'
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_transfer = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(T_OrderHeaderTotal,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_omset = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(SUM(total),2) as total
FROM (
SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y'
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'CASH'
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'
UNION
SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y'
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'CREDIT'
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'
UNION
SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y'
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'DEBIT'
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'
UNION
SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y'
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'TRANSFER'
WHERE
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y' ) x";
$data_pay = $this->db_onedev->query($sql)->row()->total;
$data_piutang = round(($data_omset - $data_pay),2) ;
}
if($prm['type'] == 'day'){
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'CASH'
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
//echo $sql;
$data_cash = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'DEBIT'
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_debit = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'CREDIT'
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_credit = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'TRANSFER'
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_transfer = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(IFNULL(SUM(IFNULL(T_OrderHeaderTotal,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'";
$data_omset = $this->db_onedev->query($sql)->row()->total;
$sql = "SELECT ROUND(SUM(total),2) as total
FROM (
SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y'
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'CASH'
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'
UNION
SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y'
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'CREDIT'
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'
UNION
SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y'
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'DEBIT'
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y'
UNION
SELECT ROUND(IFNULL(SUM(IFNULL(F_PaymentDetailAmount,0)),0)/1000000,2) as total
FROM t_orderheader
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND
ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
JOIN f_payment ON F_PaymentT_OrderHeaderID = T_OrderHeaderID AND F_PaymentIsActive = 'Y'
JOIN f_paymentdetail ON F_PaymentDetailF_PaymentID = F_PaymentID AND
F_PaymentDetailIsActive = 'Y'
JOIN m_paymenttype ON F_PaymentDetailM_PaymentTypeID = M_PaymentTypeID AND
M_PaymentTypeCode = 'TRANSFER'
WHERE
DAY(T_OrderHeaderDate) = DAY(NOW()) AND
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW()) AND
T_OrderHeaderIsActive = 'Y' ) x";
$data_pay = $this->db_onedev->query($sql)->row()->total;
$data_piutang = round(($data_omset - $data_pay),2) ;
}
echo json_encode(array('status'=>'OK','cash'=>$data_cash,'debit'=>$data_debit,'credit'=>$data_credit,'data_transfer'=>$data_transfer,'data_piutang'=>$data_piutang));
exit;
}
}
?>