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

127 lines
7.7 KiB
PHP

<?php
class Omsetperproduct extends MY_Controller
{
function getdatas(){
$prm = $this->sys_input;
//print_r($prm);
$this->db_onedev = $this->load->database("onedev", true);
$rst = array();
if($prm['type'] == 'month'){
$sql = "
select
ROUND(IFNULL( sum(if(Nat_SubGroupID = '1',T_OrderDetailTotal, '0')) ,0)/1000000,2) as Hematologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('2','3','4','9'), T_OrderDetailTotal, '0')) ,0)/1000000,2) as KlinikRutin,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '5',T_OrderDetailTotal, '0')) ,0)/1000000,2) as Kimia,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '6',T_OrderDetailTotal, '0')) ,0)/1000000,2) as Immunologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('7','8'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Mikrobiologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('12','13','14','15','16'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Elektromedis,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '22',T_OrderDetailTotal, '0')) ,0)/1000000,2) as USG,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('17','18','19','20','21'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Xray,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('24','25','26','27','28'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Jasa,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('10','11','23'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Other
from t_orderdetail
join t_orderheader on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderIsActive = 'Y'
join t_test on T_OrderDetailT_TestID = T_TestID
join nat_subgroup on T_TestNat_SubgroupID = Nat_SubGroupID
join m_company on T_OrderHeaderM_CompanyID = M_CompanyID and M_CompanyIsActive = 'Y'
join m_companytype on M_CompanyM_CompanyTypeID = M_CompanyTypeID and M_CompanyTypeIsActive = 'Y'
join m_mou on T_OrderHeaderM_MouID = M_MouID
join m_patient on T_OrderHeaderM_PatientID = M_PatientID
join m_omzettype on M_MouM_OmzetTypeID = M_OmzetTypeID
join m_title ON M_PatientM_TitleID = M_TitleID AND M_TitleIsActive = 'Y'
where
MONTH(T_OrderHeaderDate) = MONTH(NOW()) AND
YEAR(T_OrderHeaderDate) = YEAR(NOW())
";
$r = $this->db_onedev->query($sql)->row();
}
if($prm['type'] == 'day'){
$sql = "SELECT ROUND(SUM(Hematologi),2) as Hematologi,
ROUND(SUM(KlinikRutin),2) as KlinikRutin,
ROUND(SUM(Kimia),2) as Kimia,
ROUND(SUM(Immunologi),2) as Immunologi,
ROUND(SUM(Mikrobiologi),2) as Mikrobiologi,
ROUND(SUM(Elektromedis),2) as Elektromedis,
ROUND(SUM(USG),2) as USG,
ROUND(SUM(Xray),2) as Xray,
ROUND(SUM(Jasa),2) as Jasa,
ROUND(SUM(Other),2) as Other
FROM (
select
ROUND(IFNULL( sum(if(Nat_SubGroupID = '1',T_OrderDetailTotal, '0')) ,0)/1000000,2) as Hematologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('2','3','4','9'), T_OrderDetailTotal, '0')) ,0)/1000000,2) as KlinikRutin,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '5',T_OrderDetailTotal, '0')) ,0)/1000000,2) as Kimia,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '6',T_OrderDetailTotal, '0')) ,0)/1000000,2) as Immunologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('7','8'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Mikrobiologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('12','13','14','15','16'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Elektromedis,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '22',T_OrderDetailTotal, '0')) ,0)/1000000,2) as USG,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('17','18','19','20','21'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Xray,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('24','25','26','27','28'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Jasa,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('10','11','23'),T_OrderDetailTotal, '0')) ,0)/1000000,2) as Other
from t_orderdetail
join t_orderheader on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderIsActive = 'Y'
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
join t_test on T_OrderDetailT_TestID = T_TestID
join nat_subgroup on T_TestNat_SubgroupID = Nat_SubGroupID
where date(T_OrderHeaderDate) = date(NOW()) AND T_OrderDetailIsActive = 'Y'
UNION
select
ROUND(IFNULL( sum(if(Nat_SubGroupID = '1',(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as Hematologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('2','3','4','9'), (T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as KlinikRutin,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '5',(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as Kimia,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '6',(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as Immunologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('7','8'),(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as Mikrobiologi,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('12','13','14','15','16'),(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as Elektromedis,
ROUND(IFNULL( sum(if(Nat_SubGroupID = '22',(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as USG,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('17','18','19','20','21'),(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as Xray,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('24','25','26','27','28'),(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as Jasa,
ROUND(IFNULL( sum(if(Nat_SubGroupID IN ('10','11','23'),(T_PacketDetailPriceSubTotal-fn_get_pro_rata(T_PacketID)), '0')) ,0)/1000000,2) as Other
from t_orderdetail
join t_orderheader on T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderIsActive = 'Y'
JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND ISNULL(T_OrderHeaderAddOnLabNumberOrigin)
join t_orderdetailaddon on T_OrderDetailAddOnIsPacket = 'Y' AND T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID
join t_packet ON T_OrderDetailAddOnT_PacketID = T_PacketID
join t_packetdetail ON T_PacketDetailT_PacketID = T_PacketID
join t_test on T_PacketDetailT_TestID = T_TestID
join nat_subgroup on T_TestNat_SubgroupID = Nat_SubGroupID
where date(T_OrderHeaderDate) = date(NOW()) AND T_OrderDetailIsActive = 'Y'
) x";
//echo $sql;
$r = $this->db_onedev->query($sql)->row();
}
$xdata = array('label'=>'Hematologi','total'=>$r->Hematologi);
array_push($rst,$xdata);
$xdata = array('label'=>'Klinik Rutin','total'=>$r->KlinikRutin);
array_push($rst,$xdata);
$xdata = array('label'=>'Kimia','total'=>$r->Kimia);
array_push($rst,$xdata);
$xdata = array('label'=>'Immunologi','total'=>$r->Immunologi);
array_push($rst,$xdata);
$xdata = array('label'=>'Mikrobiologi','total'=>$r->Mikrobiologi);
array_push($rst,$xdata);
$xdata = array('label'=>'Elektromedis','total'=>$r->Elektromedis);
array_push($rst,$xdata);
$xdata = array('label'=>'USG','total'=>$r->USG);
array_push($rst,$xdata);
$xdata = array('label'=>'Xray','total'=>$r->Xray);
array_push($rst,$xdata);
$xdata = array('label'=>'Jasa','total'=>$r->Jasa);
array_push($rst,$xdata);
$xdata = array('label'=>'Other','total'=>$r->Other);
array_push($rst,$xdata);
echo json_encode(array('status'=>'OK','datas'=>$rst));
exit;
}
}
?>