db_onedev = $this->load->database("onedev", true); } public function lookup() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $deliveryorder = $prm['deliveryorder']; $search = $prm['search']; $year = $prm['year']; $paymenttype = $prm['paymenttype']; $limit = ''; if($all == 'N'){ $limit = ' LIMIT 10'; } $number_limit = 10; $number_offset = ($prm['current_page'] - 1) * $number_limit ; $sqltotalkapus = "select FORMAT(SUM(sysFaktur08SumAmountAfterRounding),0) as totalkapus from sys_f_kapus_sum LEFT JOIN sys_faktur_08_sum ON sysFaktur08SumDate = sysFKapusSumDate where month(sysFKapusSumDate) = '{$deliveryorder}' AND year(sysFKapusSumDate) = '{$year}'"; $totalkapus = $this->db_onedev->query($sqltotalkapus)->row()->totalkapus; $sqltotalkacab = "select FORMAT(SUM(sysFaktur08SumTotalAfterRounding),0) as totalkacab from sys_f_kapus_sum LEFT JOIN sys_faktur_08_sum ON sysFaktur08SumDate = sysFKapusSumDate where month(sysFKapusSumDate) = '{$deliveryorder}' AND year(sysFKapusSumDate) = '{$year}'"; $totalkacab = $this->db_onedev->query($sqltotalkacab)->row()->totalkacab; $sqltotalkacab_only = "select FORMAT(SUM(sysFaktur08SumTotalAfterRounding - sysFaktur08SumAmountAfterRounding),0) as totalkacab_only from sys_f_kapus_sum LEFT JOIN sys_faktur_08_sum ON sysFaktur08SumDate = sysFKapusSumDate where month(sysFKapusSumDate) = '{$deliveryorder}' AND year(sysFKapusSumDate) = '{$year}'"; $totalkacab_only = $this->db_onedev->query($sqltotalkacab_only)->row()->totalkacab_only; $sqlavgkapus = "select ROUND(AVG(sysFaktur08SumActualPct)) as avgkapus from sys_f_kapus_sum LEFT JOIN sys_faktur_08_sum ON sysFaktur08SumDate = sysFKapusSumDate where month(sysFKapusSumDate) = '{$deliveryorder}' AND year(sysFKapusSumDate) = '{$year}'"; $avgkapus = $this->db_onedev->query($sqlavgkapus)->row()->avgkapus; $sqlavgkacab = "select AVG(sysFaktur08SumTotalAfterRounding) as avgkacab from sys_f_kapus_sum LEFT JOIN sys_faktur_08_sum ON sysFaktur08SumDate = sysFKapusSumDate where month(sysFKapusSumDate) = '{$deliveryorder}' AND year(sysFKapusSumDate) = '{$year}'"; $avgkacab = $this->db_onedev->query($sqlavgkacab)->row()->avgkacab; $tot_count = 0; $tot_page = 0; $sql = "SELECT sys_faktur_08_sum.*, sysFKapusSumIsPosted, sysFKapusSumDate, IFNULL(sysFKapusSumID,sysFKapusSumID) as id, sysFKapusSumID, FORMAT(sysFaktur08SumAmount,0) as sysFaktur08SumAmount, FORMAT(sysFaktur08SumTotal,0) as sysFaktur08SumTotal, FORMAT(sysFaktur08SumAmountAfterRounding,0) as kapus, FORMAT(sysFaktur08SumTotalAfterRounding,0) as kascabang, FORMAT(sysFaktur08SumTotalAfterRounding - sysFaktur08SumAmountAfterRounding,0) as kascabang_only, ROUND(IFNULL(sysFaktur08SumTargetPct,50),0) as target, sysFaktur08SumActualPct as actual, DATE_FORMAT(sysFKapusSumDate,'%d-%m-%Y') as tanggal, IFNULL(sysFaktur08SumIsPosted,'N') as sysFaktur08SumIsPosted from sys_f_kapus_sum LEFT JOIN sys_faktur_08_sum ON sysFaktur08SumDate = sysFKapusSumDate where month(sysFKapusSumDate) = '{$deliveryorder}' AND year(sysFKapusSumDate) = '{$year}' GROUP BY sysFKapusSumID ORDER BY sysFKapusSumDate ASC"; $sql_param = array($search); $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("sys_faktur_08_sum select"); exit; } $result = array ("total" => $tot_page, "total_filter"=>count($rows),"records" => $rows, "totalkapus" => $totalkapus,"totalkacab" => $totalkacab,"avgkapus" => $avgkapus, "totalkacab_only" => $totalkacab_only, "avgkacab" => $avgkacab); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function getmonth(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query = "SELECT '01' as id, 'Januari' as name UNION SELECT '02' as id, 'Februari' as name UNION SELECT '03' as id, 'Maret' as name UNION SELECT '04' as id, 'April' as name UNION SELECT '05' as id, 'Mei' as name UNION SELECT '06' as id, 'Juni' as name UNION SELECT '07' as id, 'Juli' as name UNION SELECT '08' as id, 'Agustus' as name UNION SELECT '09' as id, 'September' as name UNION SELECT '10' as id, 'Oktober' as name UNION SELECT '11' as id, 'November' as name UNION SELECT '12' as id, 'Desember' as name "; //echo $query; $rows['months'] = $this->db_onedev->query($query)->result_array(); $sql = $this->db_onedev->query("SELECT MONTH(now()) as id")->row(); $id = $sql->id; $sqlyear = $this->db_onedev->query("SELECT YEAR(now()) as id")->row(); $syear = $sqlyear->id; if($id == 1){ $idmonth = '01'; $namemonth = 'Januari'; }elseif($id == 2){ $idmonth = '02'; $namemonth = 'Februari'; }elseif($id == 3){ $idmonth = '03'; $namemonth = 'Maret'; }elseif($id == 4){ $idmonth = '04'; $namemonth = 'April'; }elseif($id == 5){ $idmonth = '05'; $namemonth = 'Mei'; }elseif($id == 6){ $idmonth = '06'; $namemonth = 'Juni'; }elseif($id == 7){ $idmonth = '07'; $namemonth = 'Juli'; }elseif($id == 8){ $idmonth = '08'; $namemonth = 'Agustus'; }elseif($id == 9){ $idmonth = '09'; $namemonth = 'September'; }elseif($id == 10){ $idmonth = '10'; $namemonth = 'Oktober'; }elseif($id == 11){ $idmonth = '11'; $namemonth = 'November'; }elseif($id == 12){ $idmonth = '12'; $namemonth = 'Desember'; } $result = array( "total" => count($rows), "records" => $rows, "idmonth" => $idmonth, "namemonth" => $namemonth, "year" => $syear ); $this->sys_ok($result); exit; } public function lookupbybarcode() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $deliveryorder = $prm['deliveryorder']; $search = $prm['search']; $limit = ''; if($all == 'N'){ $limit = ' LIMIT 10'; } $number_limit = 10; $number_offset = ($prm['current_page'] - 1) * $number_limit ; $sql = "select COUNT(*) as total FROM(SELECT * from incoming_ref LEFT JOIN incoming_ref_detail ON incomingRefID = incomingRefDetailIncomingRefID JOIN m_branch ON incomingRefM_BranchID = M_BranchID where incomingRefT_RefDeliveryOrderDate = '{$deliveryorder}' AND (incomingRefT_RefDeliveryOrderNumber LIKE CONCAT('%','{$search}','%') OR M_BranchName LIKE CONCAT('%','{$search}','%')) GROUP BY incomingRefID) a"; $sql_param = array($search); // $total = $this->db_onedev->query($sql,$sql_param)->row()->total; $query = $this->db_onedev->query($sql); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count/$number_limit); } else { $this->sys_error_db("incoming_ref count", $this->db_onedev); exit; } $sql = "SELECT * FROM (SELECT incoming_ref.*, incomingRefID as id, M_BranchID, M_BranchName, M_BranchAddress, M_BranchM_CompanyID, M_CompanyName, M_BranchM_MouID, M_MouName, M_BranchM_DoctorID, M_DoctorName, M_BranchM_DoctorAddressID, CONCAT(M_DoctorAddressNote, '' , M_DoctorAddressDescription) as address, DATE_FORMAT(incomingRefT_RefDeliveryOrderDate,'%d%m%Y') as startdate, DATE_FORMAT(incomingRefT_RefDeliveryOrderDate,'%d-%m-%Y') as incomingRefT_RefDeliveryOrderDatex FROM incoming_ref LEFT JOIN m_branch ON incomingRefM_BranchID = M_BranchID LEFT JOIN m_company ON M_BranchM_CompanyID = M_CompanyID LEFT JOIN m_mou ON M_BranchM_MouID = M_MouID LEFT JOIN m_doctor ON M_BranchM_DoctorID = M_DoctorID LEFT JOIN m_doctoraddress ON M_BranchM_DoctorAddressID = M_DoctorAddressID JOIN incoming_ref_detail ON incomingRefID = incomingRefDetailIncomingRefID where incomingRefT_RefDeliveryOrderDate = '{$deliveryorder}' AND LEFT(incomingRefDetailT_BarcodeLabBarcode,12) = '{$search}' ) a GROUP BY incomingRefID ORDER BY incomingRefID DESC limit $number_limit offset $number_offset"; $sql_param = array($search); $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("incoming_ref select"); exit; } $result = array ("total" => $tot_page, "total_filter"=>count($rows),"records" => $rows); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function searchworklist(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM t_worklist where T_WorklistIsActive = 'Y' AND T_WorklistName like ? "; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_branch count",$this->db_onedev); exit; } $sql = "SELECT * FROM t_worklist where T_WorklistIsActive = 'Y' AND T_WorklistName like ? GROUP BY T_WorklistID ORDER BY T_WorklistName ASC"; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_branch rows",$this->db_onedev); exit; } } function searchcourier(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_courier JOIN m_staff ON M_CourierM_StaffID = M_StaffID WHERE M_StaffName like ? AND M_CourierIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_branch count",$this->db_onedev); exit; } $sql = "SELECT * FROM m_courier JOIN m_staff ON M_CourierM_StaffID = M_StaffID WHERE M_StaffName like ? AND M_CourierIsActive = 'Y' ORDER BY M_StaffName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_branch rows",$this->db_onedev); exit; } } function searchbranch(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_branch WHERE M_BranchName like ? AND M_BranchIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_branch count",$this->db_onedev); exit; } $sql = "SELECT * FROM m_branch LEFT JOIN m_city ON M_BranchM_CityID = M_CityID LEFT JOIN m_district ON M_BranchM_DistrictID = M_DistrictID LEFT JOIN m_kelurahan ON M_BranchM_KelurahanID = M_KelurahanID WHERE M_BranchName like ? AND M_BranchIsActive = 'Y' ORDER BY M_BranchName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_branch rows",$this->db_onedev); exit; } } function searchdestination(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $tipe = $prm['tipe']; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL if ($tipe == 'Internal'){ $sql = "SELECT count(*) as total FROM (SELECT M_BranchID as M_DestinationID, M_BranchName as M_DestinationName, M_BranchAddress as M_DestinationAddress, '' as M_DestinationUp, M_CityID, M_CityName, M_DistrictID, M_DistrictName, M_KelurahanID, M_KelurahanName FROM m_branch LEFT JOIN m_city ON M_BranchM_CityID = M_CityID LEFT JOIN m_district ON M_BranchM_DistrictID = M_DistrictID LEFT JOIN m_kelurahan ON M_BranchM_KelurahanID = M_KelurahanID WHERE M_BranchName like ? AND M_BranchIsActive = 'Y' ORDER BY M_BranchName ASC )a "; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_branch count",$this->db_onedev); exit; } $sql = "SELECT M_BranchID as M_DestinationID, M_BranchName as M_DestinationName, M_BranchAddress as M_DestinationAddress, '' as M_DestinationUp, M_CityID, M_CityName, M_DistrictID, M_DistrictName, M_KelurahanID, M_KelurahanName FROM m_branch LEFT JOIN m_city ON M_BranchM_CityID = M_CityID LEFT JOIN m_district ON M_BranchM_DistrictID = M_DistrictID LEFT JOIN m_kelurahan ON M_BranchM_KelurahanID = M_KelurahanID WHERE M_BranchName like ? AND M_BranchIsActive = 'Y' ORDER BY M_BranchName ASC"; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_branch rows",$this->db_onedev); exit; } }else{ $sql = "SELECT count(*) as total FROM (SELECT M_LabReferenceID as M_DestinationID, M_LabReferenceName as M_DestinationName, M_LabReferenceAddress as M_DestinationAddress, M_LabReferenceUp as M_DestinationUp, M_CityID, M_CityName, M_DistrictID, M_DistrictName, M_KelurahanID, M_KelurahanName FROM m_labreference LEFT JOIN m_city ON M_LabReferenceM_CityID = M_CityID LEFT JOIN m_district ON M_LabReferenceM_DistrictID = M_DistrictID LEFT JOIN m_kelurahan ON M_LabReferenceM_KelurahanID = M_KelurahanID WHERE M_LabReferenceName like ? AND M_LabReferenceIsActive = 'Y' ORDER BY M_LabReferenceName ASC)a "; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_branch count",$this->db_onedev); exit; } $sql = "SELECT M_LabReferenceID as M_DestinationID, M_LabReferenceName as M_DestinationName, M_LabReferenceAddress as M_DestinationAddress, M_LabReferenceUp as M_DestinationUp, M_CityID, M_CityName, M_DistrictID, M_DistrictName, M_KelurahanID, M_KelurahanName FROM m_labreference LEFT JOIN m_city ON M_LabReferenceM_CityID = M_CityID LEFT JOIN m_district ON M_LabReferenceM_DistrictID = M_DistrictID LEFT JOIN m_kelurahan ON M_LabReferenceM_KelurahanID = M_KelurahanID WHERE M_LabReferenceName like ? AND M_LabReferenceIsActive = 'Y' ORDER BY M_LabReferenceName ASC"; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_branch rows",$this->db_onedev); exit; } } } function selected_sample() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $sql = $this->db_onedev->query("SELECT COUNT(*) as semua FROM incoming_ref_detail WHERE incomingRefDetailIncomingRefID = '{$id}'")->row(); $semua = $sql->semua; $sql = $this->db_onedev->query("SELECT count(*) as terima FROM incoming_ref_detail WHERE incomingRefDetailIncomingRefID = '{$id}' AND incmoingRefDetailStatus = 'R'")->row(); $terima = $sql->terima; $sql = "SELECT * FROM (SELECT incoming_ref_detail.*, incmoingRefDetailStatus as ischoose, LEFT(incomingRefDetailT_BarcodeLabBarcode,12) as nosample, '{$semua}' as semua, '{$terima}' as terima from incoming_ref_detail where incomingRefDetailIncomingRefID = '{$id}') a GROUP BY nosample"; $query = $this->db_onedev->query($sql); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $result = array ("total" => count($rows), "records" => $rows, "semua" => $semua, "terima" => $terima); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function confirmdeliveryorder(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $rows = $this->db_onedev->query($query); foreach($prm['dodetail'] as $k=>$v){ if($v['ischoose'] == 'R'){ $query = "UPDATE incoming_ref_detail SET incmoingRefDetailStatus = 'R', incomingRefDetailCreated = now(), incomingRefDetailLastUpdated = now() WHERE incomingRefDetailIncomingRefID = ? AND LEFT(incomingRefDetailT_BarcodeLabBarcode,12) = ?"; $insert_new_test = $this->db_onedev->query($query,array( $prm['id'], $v['nosample'] )); } $result = array( "total" => 1 , "records" => array('status'=>'OK') ); } $this->sys_ok($result); exit; } function createorder(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $rows = $this->db_onedev->query($query); foreach($prm['dodetail'] as $k=>$v){ $query = "UPDATE incoming_ref_detail SET incmoingRefDetailStatus = 'Y', incomingRefDetailCreated = now(), incomingRefDetailLastUpdated = now() WHERE incomingRefDetailIncomingRefID = ? AND LEFT(incomingRefDetailT_BarcodeLabBarcode,12) = ?"; $insert_new_test = $this->db_onedev->query($query,array( $prm['id'], $v['nosample'] )); $result = array( "total" => 1 , "records" => array('status'=>'OK') ); } $query = "SELECT incoming_ref_detail.* FROM incoming_ref_detail WHERE incomingRefDetailIncomingRefID = '{$prm['id']}'"; $refdetail = $this->db_onedev->query($query)->result_array(); foreach($refdetail as $k => $v){ $x = $this->db_onedev->query("select incomingRefDetailPatient as n from incoming_ref_detail WHERE incomingRefDetailID = '{$v['incomingRefDetailID']}'")->row(); $patient = json_decode($x->n, true); // insert pasien $querypatient = "INSERT INTO m_patient ( M_PatientM_TitleID, M_PatientName, M_PatientDOB, M_PatientM_SexID, M_PatientM_ReligionID, M_PatientEmail, M_PatientPOB, M_PatientHP, M_PatientPhone, M_PatientM_IdTypeID, M_PatientIDNumber, M_PatientNote, M_PatientUserID, M_PatientOldID, M_PatientCreated, M_PatientLastUpdated) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,now(),now())"; $insert_new_patient = $this->db_onedev->query($querypatient,array( $patient['M_PatientM_TitleID'], $patient['M_PatientName'], $patient['M_PatientDOB'], $patient['M_PatientM_SexID'], $patient['M_PatientM_ReligionID'], $patient['M_PatientEmail'], $patient['M_PatientPOB'], $patient['M_PatientHP'], $patient['M_PatientPhone'], $patient['M_PatientM_IdTypeID'], $patient['M_PatientIDNumber'], $patient['M_PatientNote'], $patient['M_PatientID'], $userid )); // echo $insert_new_patient; $last_id = $this->db_onedev->insert_id(); // echo $last_id; $query = "UPDATE incoming_ref_detail SET incmoingRefDetailStatus = 'Y', incomingRefDetailNewM_PatientID = ?, incomingRefDetailM_PatientAge = '', incomingRefDetailCreated = now(), incomingRefDetailLastUpdated = now() WHERE incomingRefDetailIncomingRefID = ? AND incomingRefDetailT_OrderHeaderID = ?"; $insert_new_test = $this->db_onedev->query($query,array( $last_id, $prm['id'], $v['incomingRefDetailT_OrderHeaderID'] )); $saveorderlab = $this->orderlab($v['incomingRefDetailID'],$v['incomingRefDetailIncomingRefID']); $sqlreceivepatient = "UPDATE incoming_ref_detail SET incomingRefDetailNewT_OrderHeaderID = '{$saveorderlab->id}' WHERE incomingRefDetailID = {$v['incomingRefDetailID']}"; } $this->sys_ok($result); exit; } function orderlab($orderdetail_id,$order_id){ //$order_id = $prm['orderid']; //$patientage = $prm['patientage']; //echo $order_id; $userid = $this->sys_user["M_UserID"]; /***t_orderheader***/ $sql = "SELECT incoming_ref.* ,incoming_ref_detail.*, m_branch.* FROM incoming_ref_detail LEFT JOIN incoming_ref ON incomingRefDetailIncomingRefID = incomingRefID LEFT JOIN m_branch ON incomingRefM_BranchID = M_BranchID WHERE incomingRefDetailID = '{$orderdetail_id}'"; //echo $sql; $query = $this->db_onedev->query($sql); if (!$query) { $this->sys_error_db("select incoming_ref_detail", $this->db_onedev); exit; } $data_order = $query->row_array(); $xheader = array( 'patient_id' => $data_order['incomingRefDetailNewM_PatientID'], 'age' => $data_order['incomingRefDetailM_PatientAge'], 'sender_doctor_id' => $data_order['M_BranchM_DoctorID'], 'sender_address_id' => $data_order['M_BranchM_DoctorAddressID'], 'company_id' => $data_order['M_BranchM_CompanyID'], 'mou_id' => $data_order['M_BranchM_MouID'], 'lang_id' => '1', 'lang_si' => 'N', 'doctor_note' => '', 'fo_note' => $data_order['M_BranchM_MouID'], 'queue' => '', 'received_sample' => 'N', 'lang_id_2' => '2', 'lang_si_2' => 'N', ); $xdelivery = array(); $query = " SELECT incoming_ref.*,m_branch.* FROM incoming_ref_detail LEFT JOIN incoming_ref ON incomingRefDetailIncomingRefID = incomingRefID LEFT JOIN m_branch ON incomingRefM_BranchID = M_BranchID WHERE incomingRefDetailID = '{$orderdetail_id}'"; //echo $query; $delver = $this->db_onedev->query($query)->result_array(); foreach($delver as $k => $v){ $xdel = array( 'address_id' => $v['M_BranchID'], 'delivery_id' => '10', 'delivery_type_id' => '2', 'senderdoctorid' => $v['M_BranchM_DoctorID'], 'senderaddressid' => $v['M_BranchM_DoctorAddressID'], 'note' => $v['M_BranchAddress'], 'kelurahan' => $v['M_BranchM_KelurahanID'] ); array_push($xdelivery,$xdel); } //print_r($xdelivery ); $query = " SELECT incoming_ref.*, m_branch.*,incoming_ref_detail.*,IFNULL(T_PriceAmount,0) as T_PriceAmount,IFNULL(T_PriceDisc,0) as T_PriceDisc,IFNULL(T_PriceDiscRp,0) as T_PriceDiscRp, 'PX' as testtype, 'N' as ispaket FROM incoming_ref_detail LEFT JOIN incoming_ref ON incomingRefDetailIncomingRefID = incomingRefID LEFT JOIN m_branch ON incomingRefM_BranchID = M_BranchID LEFT JOIN t_price ON incomingRefDetailT_TestID = T_PriceT_TestID AND M_BranchM_CompanyID = T_PriceM_CompanyID AND M_BranchM_MouID = T_PriceM_MouID AND T_PriceIsActive = 'Y' WHERE incomingRefDetailID = '{$orderdetail_id}'"; //echo $query; $data_order_detail = $this->db_onedev->query($query)->result_array(); $xdetails = array(); foreach($data_order_detail as $k => $v){ $xdet = array( 't_id' => $v['incomingRefDetailT_TestID'], 't_cito' => 'N', 't_price' => $v['T_PriceAmount'], 't_disc' => $v['T_PriceDisc'], 't_discrp' => $v['T_PriceDiscRp'], 't_req' => 'Y', 't_reqnote' => '', 't_ispacket' => $v['ispaket'], 't_packettype' => $v['testtype'], 't_packetid' => '0' ); array_push($xdetails,$xdet); } $xreq = array( 'status' => 'Y', 'reqs' => '[]' ); $header_json = json_encode($xheader); $delivery_json = json_encode($xdelivery); $detail_json = json_encode($xdetails); $req_json = json_encode($xreq); $sql = "CALL `sp_fo_register_save_v5`( 0, '{$header_json}', '{$delivery_json}', '{$detail_json}', '{$req_json}', '{$userid}' );"; //echo $sql; $r = $this->db_onedev->query($sql)->row(); $this->clean_mysqli_connection($this->db_onedev->conn_id); return json_decode($r->data); /***t_orderheader***/ } /***begin-verification***/ function add_address_patient($orderid){ $query =" SELECT M_PatientAddressID as id, M_PatientAddressNote as note, M_PatientAddressDescription as description, M_PatientAddressM_KelurahanID as vilageid FROM m_patientaddress JOIN t_orderheader ON M_PatientAddressM_PatientID = T_OrderHeaderM_PatientID WHERE T_OrderHeaderID = {$orderid} AND M_PatientAddressIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if($rows) return $rows; else return array(); } function add_address_doctor($orderid){ $query =" SELECT M_DoctorAddressID as id, M_DoctorAddressNote as note, M_DoctorAddressDescription as description, M_DoctorAddressM_KelurahanID as vilageid FROM m_doctoraddress JOIN t_orderheader ON T_OrderHeaderSenderM_DoctorID = M_DoctorAddressM_DoctorID WHERE T_OrderHeaderID = {$orderid} AND M_DoctorAddressIsActive = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if($rows) return $rows; else return array(); } function add_verification_patient($orderid){ $query =" SELECT Fo_VerificationsLabelID as id, 0 as xid, 'Y' as chex, '' as note, Fo_VerificationsLabelName as label FROM fo_verificationslabel LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid WHERE Fo_VerificationsLabelID = 1 AND Fo_VerificationsLabelIsActive = 'Y' GROUP BY Fo_VerificationsLabelID "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } return $rows; } function add_verification_doctor($orderid){ $query =" SELECT Fo_VerificationsLabelID as id, 0 as xid, 'Y' as chex, '' as note, Fo_VerificationsLabelName as label FROM fo_verificationslabel LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid WHERE Fo_VerificationsLabelID = 2 AND Fo_VerificationsLabelIsActive = 'Y' GROUP BY Fo_VerificationsLabelID "; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } return $rows; } function add_verification_companymou($orderid){ $query =" SELECT Fo_VerificationsLabelID as id, 0 as xid, 'Y' as chex, '' as note, Fo_VerificationsLabelName as label FROM fo_verificationslabel LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid WHERE Fo_VerificationsLabelID = 3 AND Fo_VerificationsLabelIsActive = 'Y' GROUP BY Fo_VerificationsLabelID "; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } return $rows; } function add_verification_payment($orderid){ $query =" SELECT Fo_VerificationsLabelID as id, 0 as xid, 'Y' as chex, '' as note, Fo_VerificationsLabelName as label, 'reguler' as type FROM fo_verificationslabel LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid WHERE Fo_VerificationsLabelButton = 'PAYMENT' AND Fo_VerificationsLabelIsActive = 'Y' GROUP BY Fo_VerificationsLabelID "; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } return $rows; } function add_verification_supplies($orderid){ $query =" SELECT M_SuppliesID as id, 0 as xid, 'Y' as chex, 1 as qty, M_SuppliesName as name, IF(ISNULL(T_OrderSuppliesID),NOW(),T_OrderSuppliesLastUpdated) as lastupdated, IF(ISNULL(T_OrderSuppliesID),NOW(),T_OrderSuppliesLastUpdated) as tx_lastupdated FROM m_supplies LEFT JOIN t_ordersupplies ON T_OrderSuppliesT_OrderHeaderID = $orderid AND T_OrderSuppliesM_SuppliesID = M_SuppliesID WHERE M_SuppliesIsActive = 'Y' "; //echo $query ; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } return $rows; } function add_verification_barcode($orderid){ $query =" SELECT T_SampleTypeID as id, T_SampleTypeName as name, '' as children FROM t_orderheader JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID WHERE T_OrderHeaderID = {$orderid} GROUP BY T_SampleTypeID "; // echo $query ; $rows = $this->db_onedev->query($query)->result(); foreach($rows as $k => $v){ $query = "SELECT T_SampleTypeID as id, 0 as xid, 'Y' as chex, T_TestName as testname, T_SampleTypeName as samplename, IF(ISNULL(T_BarcodeLabID),CONCAT(T_OrderHeaderLabNumber,'.',T_SampleTypeID,'.',1),T_BarcodeLabBarcode) as barcodenumber FROM t_orderdetail JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID LEFT JOIN t_barcodelab ON T_BarcodeLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_BarcodeLabT_SampleTypeID = T_TestT_SampleTypeID AND T_BarcodeLabIsActive = 'Y' WHERE T_OrderDetailT_OrderHeaderID = {$orderid} AND T_SampleTypeID = {$v->id} GROUP BY T_BarcodeLabID "; $v->children = $this->db_onedev->query($query)->result_array(); foreach($v->children as $ki => $vi){ if($vi['chex'] == 'N') $v->children[$ki]['chex'] = false; else $v->children[$ki]['chex'] = true; } } return $rows; } function add_verification_delivery($orderid){ $query =" SELECT T_OrderDeliveryID as id, 0 as xid, M_DeliveryTypeCode as code, 'Y' as chex, M_DeliveryID as deliveryid, M_DeliveryTypeID as typedeliveryid, T_OrderDeliveryM_KelurahanID as vilageid, IF(ISNULL(Fo_VerificationDeliveryID),'',Fo_VerificationDeliveryReason) as note, 'reguler' as type, CASE WHEN T_OrderDeliveryM_DeliveryID = 1 THEN M_DeliveryName WHEN T_OrderDeliveryM_DeliveryID = 4 THEN CONCAT(M_DeliveryName, ' : ', M_DoctorAddressDescription) WHEN T_OrderDeliveryM_DeliveryID = 2 THEN CONCAT(M_DeliveryName, ' : ', M_PatientAddressDescription) WHEN ( T_OrderDeliveryM_DeliveryID = 7 OR T_OrderDeliveryM_DeliveryID = 9 ) THEN CONCAT(M_DeliveryName, ' : ', M_DoctorHP) WHEN ( T_OrderDeliveryM_DeliveryID = 6 OR T_OrderDeliveryM_DeliveryID = 8 ) THEN CONCAT(M_DeliveryName, ' : ', M_PatientHP) ELSE CONCAT(M_DeliveryName,' : ',T_OrderDeliveryDestination) END as label, CASE WHEN T_OrderDeliveryM_DeliveryID = 1 THEN '' WHEN T_OrderDeliveryM_DeliveryID = 4 THEN M_DoctorAddressDescription WHEN T_OrderDeliveryM_DeliveryID = 2 THEN M_PatientAddressDescription WHEN ( T_OrderDeliveryM_DeliveryID = 7 OR T_OrderDeliveryM_DeliveryID = 9 ) THEN M_DoctorHP WHEN ( T_OrderDeliveryM_DeliveryID = 6 OR T_OrderDeliveryM_DeliveryID = 8 ) THEN M_PatientHP ELSE T_OrderDeliveryDestination END as destination, CASE WHEN T_OrderDeliveryM_DeliveryID = 4 THEN M_DoctorAddressID WHEN T_OrderDeliveryM_DeliveryID = 2 THEN M_PatientAddressID ELSE 0 END as addressid FROM t_orderdelivery JOIN t_orderheader ON T_OrderDeliveryT_OrderHeaderID = T_OrderHeaderID JOIN m_delivery ON T_OrderDeliveryM_DeliveryID = M_DeliveryID JOIN m_deliverytype ON T_OrderDeliveryM_DeliveryTypeID = M_DeliveryTypeID LEFT JOIN m_doctoraddress ON T_OrderDeliveryAddressID = M_DoctorAddressID AND T_OrderDeliveryM_DeliveryID = 4 LEFT JOIN m_patientaddress ON T_OrderDeliveryAddressID = M_PatientAddressID AND T_OrderDeliveryM_DeliveryID = 2 LEFT JOIN fo_verification_delivery ON Fo_VerificationDeliveryT_OrderHeaderID = T_OrderDeliveryT_OrderHeaderID AND Fo_VerificationDeliveryIsActive = 'Y' LEFT JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND ( T_OrderDeliveryM_DeliveryID = 7 OR T_OrderDeliveryM_DeliveryID = 9 ) LEFT JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND ( T_OrderDeliveryM_DeliveryID = 6 OR T_OrderDeliveryM_DeliveryID = 8 ) WHERE T_OrderDeliveryT_OrderHeaderID = {$orderid} AND T_OrderDeliveryIsActive = 'Y' GROUP BY T_OrderDeliveryID UNION SELECT 0 as id, 0 as xid, M_DeliveryTypeCode as code, 'Y' as chex, Fo_VerificationDeliveryAddM_DeliveryID as deliveryid, Fo_VerificationDeliveryAddM_DeliveryTypeID as typedeliveryid, Fo_VerificationDeliveryAddM_KelurahanID as vilageid, IF(ISNULL(Fo_VerificationDeliveryAddID),'',Fo_VerificationDeliveryAddReason) as note, 'reguler' as type, CASE WHEN Fo_VerificationDeliveryAddM_DeliveryID = 1 THEN M_DeliveryName WHEN Fo_VerificationDeliveryAddM_DeliveryID = 4 THEN CONCAT(M_DeliveryName, ' : ', M_DoctorAddressDescription) WHEN Fo_VerificationDeliveryAddM_DeliveryID = 2 THEN CONCAT(M_DeliveryName, ' : ', M_PatientAddressDescription) WHEN ( Fo_VerificationDeliveryAddM_DeliveryID = 7 OR Fo_VerificationDeliveryAddM_DeliveryID = 9 ) THEN CONCAT(M_DeliveryName, ' : ', M_DoctorHP) WHEN ( Fo_VerificationDeliveryAddM_DeliveryID = 6 OR Fo_VerificationDeliveryAddM_DeliveryID = 8 ) THEN CONCAT(M_DeliveryName, ' : ', M_PatientHP) ELSE CONCAT(M_DeliveryName,' : ',Fo_VerificationDeliveryAddDestination) END as label, CASE WHEN Fo_VerificationDeliveryAddM_DeliveryID = 1 THEN '' WHEN Fo_VerificationDeliveryAddM_DeliveryID = 4 THEN M_DoctorAddressDescription WHEN Fo_VerificationDeliveryAddM_DeliveryID = 2 THEN M_PatientAddressDescription WHEN ( Fo_VerificationDeliveryAddM_DeliveryID = 7 OR Fo_VerificationDeliveryAddM_DeliveryID = 9 ) THEN M_DoctorHP WHEN ( Fo_VerificationDeliveryAddM_DeliveryID = 6 OR Fo_VerificationDeliveryAddM_DeliveryID = 8 ) THEN M_PatientHP ELSE Fo_VerificationDeliveryAddDestination END as destination, CASE WHEN Fo_VerificationDeliveryAddM_DeliveryID = 4 THEN M_DoctorAddressID WHEN Fo_VerificationDeliveryAddM_DeliveryID = 2 THEN M_PatientAddressID ELSE 0 END as addressid FROM fo_verification_delivery_add JOIN t_orderheader ON Fo_VerificationDeliveryAddT_OrderHeaderID = T_OrderHeaderID JOIN m_delivery ON Fo_VerificationDeliveryAddM_DeliveryID = M_DeliveryID JOIN m_deliverytype ON Fo_VerificationDeliveryAddM_DeliveryTypeID = M_DeliveryTypeID LEFT JOIN m_doctoraddress ON Fo_VerificationDeliveryAddAddressID = M_DoctorAddressID AND Fo_VerificationDeliveryAddM_DeliveryID = 4 LEFT JOIN m_patientaddress ON Fo_VerificationDeliveryAddAddressID = M_PatientAddressID AND Fo_VerificationDeliveryAddM_DeliveryID = 2 LEFT JOIN m_doctor ON T_OrderHeaderSenderM_DoctorID = M_DoctorID AND ( Fo_VerificationDeliveryAddM_DeliveryID = 7 OR Fo_VerificationDeliveryAddM_DeliveryID = 9 ) LEFT JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND ( Fo_VerificationDeliveryAddM_DeliveryID = 6 OR Fo_VerificationDeliveryAddM_DeliveryID = 8 ) WHERE Fo_VerificationDeliveryAddT_OrderHeaderID = {$orderid} AND Fo_VerificationDeliveryAddIsActive = 'Y' "; //echo $query ; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } return $rows; } function add_verification_test($orderid){ $query =" SELECT * FROM ( SELECT T_OrderDetailID as id, 0 as xid, 'Y' as chex, IF(ISNULL(Fo_VerificationTestID),'',Fo_VerificationTestReason) as note, T_TestID as pxid, T_TestName as pxname, T_OrderDetailIsCito as flagcito, T_OrderDetailPrice as bruto, T_OrderDetailDiscTotal as discount, T_OrderDetailTotal as total, 'N' as addon FROM t_orderdetail JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsPrice = 'Y' LEFT JOIN fo_verification_test ON Fo_VerificationTestT_OrderDetailID = T_OrderDetailID WHERE T_OrderDetailT_OrderHeaderID = $orderid AND T_OrderDetailIsActive = 'Y' UNION SELECT 0 as id, IFNULL(Fo_VerificationTestAddID,0) as xid, IF(ISNULL(Fo_VerificationTestAddIsOK),'N',Fo_VerificationTestAddIsOK) as chex, '' as note, Fo_VerificationTestAddT_TestID as pxid, T_TestName as pxname, Fo_VerificationTestAddIsCito as flagcito, Fo_VerificationTestAddBruto as bruto, Fo_VerificationTestAddDiscount as discount, Fo_VerificationTestAddTotal as total, 'N' as addon FROM fo_verification_test_add JOIN t_test ON Fo_VerificationTestAddT_TestID = T_TestID WHERE Fo_VerificationTestAddT_OrderHeaderID = $orderid AND Fo_VerificationTestAddIsActive = 'Y' ) x GROUP BY pxid "; //echo $query ; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; if($v['addon'] == 'N') $rows[$k]['addon'] = false; else $rows[$k]['addon'] = true; } return $rows; } function add_verification_info($orderid){ $query =" SELECT Fo_VerificationsLabelID as id, 0 as xid, 'Y' as chex, IF(ISNULL(Fo_VerificationID),'',Fo_VerificationReason) as note, Fo_VerificationsLabelName as label FROM fo_verificationslabel LEFT JOIN fo_verificationsvalue ON Fo_VerificationsValueFo_VerificationsLabelID = Fo_VerificationsLabelID AND Fo_VerificationsValueT_OrderHeaderID = $orderid WHERE Fo_VerificationsLabelButton = 'INFO' AND Fo_VerificationsLabelIsActive = 'Y' GROUP BY Fo_VerificationsLabelID "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); foreach($rows as $k => $v){ if($v['chex'] == 'N') $rows[$k]['chex'] = false; else $rows[$k]['chex'] = true; } return $rows; } public function savetrxverification($orderid,$prm) { try { //print_r($prm); //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $xuserid = $this->sys_user["M_UserID"]; //# ambil parameter input //print_r($xprm); //$prm = $xprm['patient']; $fostatusid = 3; $fologcode = 'FO.VERIFICATION.CONFIRM'; //print_r($prm); $xverificationnote = $prm['verification_note']; //echo $xverificationnote; $id = $orderid; /*$sql = "update t_orderheader set T_OrderHeaderVerificationNote = '' where T_OrderHeaderID = $id"; //echo $sql; $query = $this->db_onedev->query($sql);*/ //print_r($prm['verification_patient']); $xverification_patient = $this->saveverifications($id,$prm['verification_patient'],'PASIEN',$xuserid); $xverification_doctor = $this->saveverifications($id,$prm['verification_doctor'],'ORDER',$xuserid); $xverification_companymou = $this->saveverifications($id,$prm['verification_companymou'],'ORDER',$xuserid); //$xverification_payment = $this->saveverifications($id,$prm['verification_payment'],'PAYMENT',$xuserid); //$xverification_info = $this->saveverifications($id,$prm['verification_info'],'INFO',$xuserid); $xverification_delivery = $this->saveverification_delivery($id,$prm['verification_delivery'],$xuserid); $xverification_px = $this->saveverification_px($id,$prm['verification_px'],$xuserid); $sql = "insert into fo_status( Fo_StatusDate, Fo_StatusT_OrderHeaderID, Fo_StatusM_StatusID, Fo_StatusM_UserID, Fo_StatusCreated, Fo_StatusUpdated) values( now(), ?, ?, ?, now(),now())"; //echo $sql; $query = $this->db_onedev->query($sql, array( $id, $fostatusid, $xuserid ) ); //echo $this->db_onedev->last_query(); if (!$query) { $this->sys_error_db("fo_status insert"); exit; } $data_log = array(); $data_log['orderid'] = $id; $data_log['verification_patient'] = $prm['verification_patient']; $data_log['verification_doctor'] = $prm['verification_doctor']; $data_log['verification_companymou'] = $prm['verification_companymou']; $data_log['verification_payment'] = $prm['verification_payment']; $data_log['verification_info'] = $prm['verification_info']; $data_log['verification_px'] = $prm['verification_px']; $data_log['verification_delivery'] = $prm['verification_delivery']; $json_dt_log = json_encode($data_log); $sql = "insert into one_log.log_fo( Log_FoDate, Log_FoCode, Log_FoJson, Log_FoUserID) values( now(), ?, ?, ?)"; //echo $sql; $query = $this->db_onedev->query($sql, array( $fologcode, $json_dt_log, $xuserid ) ); if (!$query) { $this->sys_error_db("one_log.fo_log insert"); exit; } if($xstatus == 'Y'){ $msg = 'Verifikasi berhasil dilakukan'; } else{ $msg = 'Tolak Verifikasi berhasil dilakukan'; $sql = "INSERT INTO t_ordermessage ( T_OrderMessageT_OrderHeaderID, T_OrderMessageType, T_OrderMessageMessage, T_OrderMessageFromUserID, T_OrderMessageCreated, T_OrderMessageLastUpdated ) VALUES( {$id}, 'FO.VERIFICATION.REJECT', '{$xverificationnote}', {$xuserid}, NOW(), NOW() )"; //echo $sql; $query = $this->db_onedev->query($sql); if (!$query) { $this->sys_error_db("one_log.t_ordermessage insert"); exit; } } return rows; } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function saveverifications($id,$verifications,$type,$userid) { try { //$xverificationtypeid = $this->db_onedev->query("SELECT * FROM fo_verificationslabel WHERE Fo_VerificationsLabelButton = '{$type}' AND Fo_VerificationsLabelIsActive = 'Y'")->row()->Fo_VerificationsLabelID; //echo $xverificationtypeid; //print_r($verifications); foreach($verifications as $k => $v){ //print_r($v); if($v['xid'] === 0 || $v['xid'] === '0'){ $sql = "insert into fo_verificationsvalue( Fo_VerificationsValueT_OrderHeaderID, Fo_VerificationsValueFo_VerificationsLabelID, Fo_VerificationsValueCheck, Fo_VerificationsValueNote, Fo_VerificationsValueCreated, Fo_VerificationsValueLastUpdated, Fo_VerificationsValueUserID) values( ?, ?, ?, ?, now(),now(),?)"; //echo $sql; $query = $this->db_onedev->query($sql, array( $id, $v['id'], $v['chex'] == true ?'Y':'N', $v['note'], $userid ) ); //echo $this->db_onedev->last_query(); //echo "///////////////////////"; if (!$query) { $this->sys_error_db("fo_verificationsvalue insert"); exit; } } } return true; } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function saveverification_delivery($id,$deliveries,$userid) { try { foreach($deliveries as $k => $v){ if($v['id'] === 0){ $sql = "insert into fo_verification_delivery_add( Fo_VerificationDeliveryAddT_OrderHeaderID, Fo_VerificationDeliveryAddM_DeliveryID, Fo_VerificationDeliveryAddM_DeliveryTypeID, Fo_VerificationDeliveryAddDestination, Fo_VerificationDeliveryAddAddressID, Fo_VerificationDeliveryAddM_KelurahanID, Fo_VerificationDeliveryAddOK, Fo_VerificationDeliveryAddReason, Fo_VerificationDeliveryAddCreated, Fo_VerificationDeliveryAddLastUpdated, Fo_VerificationDeliveryAddUserID) values( ?, ?, ?, ?,?,?,?,?, now(),now(),?)"; //echo $sql; $query = $this->db_onedev->query($sql, array( $id, $v['deliveryid'], $v['typedeliveryid'], $v['destination'], $v['addressid'], $v['vilageid'], $v['chex'] == true ?'Y':'N', $v['note'], $userid ) ); if (!$query) { echo $this->db_onedev->last_query(); $this->sys_error_db("fo_verification_delivery_add insert"); exit; } }else{ $sql = "insert into fo_verification_delivery( Fo_VerificationDeliveryT_OrderHeaderID, Fo_VerificationDeliveryT_OrderDeliveryID, Fo_VerificationDeliveryIsOK, Fo_VerificationDeliveryReason, Fo_VerificationDeliveryCreated, Fo_VerificationDeliveryLastUpdated, Fo_VerificationDeliveryUserID) values( ?, ?, ?, ?, now(),now(),?)"; //echo $sql; $query = $this->db_onedev->query($sql, array( $id, $v['id'], $v['chex'] == true ?'Y':'N', $v['note'], $userid ) ); if (!$query) { echo $this->db_onedev->last_query(); $this->sys_error_db("fo_verification_delivery insert"); exit; } //echo $this->db_onedev->last_query(); } } return true; } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function saveverification_px($id,$pxs,$userid) { try { foreach($pxs as $k => $v){ if(intval($v['id']) == 0){ $cxh = $v['chex'] == true ?'Y':'N'; $sql = "insert into fo_verification_test_add( Fo_VerificationTestAddT_OrderHeaderID, Fo_VerificationTestAddT_TestID, Fo_VerificationTestAddBruto, Fo_VerificationTestAddDiscount, Fo_VerificationTestAddTotal, Fo_VerificationTestAddIsOK, Fo_VerificationTestAddIsCito, Fo_VerificationTestAddCreated, Fo_VerificationTestAddLastUpdated, Fo_VerificationTestAddUserID) values( $id, {$v['pxid']}, {$v['bruto']}, {$v['discount']},{$v['total']},'{$cxh}','{$v['flagcito']}',now(),now(),{$userid})"; //echo $sql; $query = $this->db_onedev->query($sql); //echo $this->db_onedev->last_query(); if (!$query) { $this->sys_error_db("fo_verification_test_add insert"); exit; } }else{ $sql = "insert into fo_verification_test( Fo_VerificationTestT_OrderHeaderID, Fo_VerificationTestT_OrderDetailID, Fo_VerificationTestIsOK, Fo_VerificationTestReason, Fo_VerificationTestCreated, Fo_VerificationTestLastUpdated, Fo_VerificationTestUserID) values( ?, ?, ?, ?, now(),now(),?)"; //echo $sql; $query = $this->db_onedev->query($sql, array( $id, $v['id'], $v['chex'] == true ?'Y':'N', $v['note'], $userid ) ); //echo $this->db_onedev->last_query(); if (!$query) { $this->sys_error_db("fo_verification_test insert"); exit; } } } return true; } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } /***end-verification***/ public function addnewdeliveryorderdetail() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $deliveryorderid = $prm['deliveryorderid']; $code = $prm['code']; $name = $prm['name']; $address = $prm['address']; $phone = $prm['phone']; $cityid = $prm['cityid']; $districtid = $prm['districtid']; $kelurahanid = $prm['kelurahanid']; $ipadrress = $prm['ipaddress']; $basename = $prm['basename']; $isdefault = $prm['isdefault']; $userid = $this->sys_user["M_UserID"]; if($deliveryorderid == 0 || $cityid == 0 || $districtid == 0 || $kelurahanid == 0){ $errors = array(); if($deliveryorderid == 0){ array_push($errors,array('field'=>'deliveryorder','msg'=>'Regional dipilih dulu dong')); } if($cityid == 0){ array_push($errors,array('field'=>'city','msg'=>'Kota dipilih dulu dong')); } if($districtid == 0){ array_push($errors,array('field'=>'district','msg'=>'Kecamatan dipilih dulu dong')); } if($kelurahanid == 0){ array_push($errors,array('field'=>'kelurahan','msg'=>'Kelurahan dipilih dulu dong')); } $result = array ("total" => -1,"errors" => $errors, "records" => 0); $this->sys_ok($result); }else{ if($prm['xid'] == 0){ $query = "SELECT COUNT(*) as exist FROM incoming_ref_detail WHERE incomingRefDetailIsActive = 'Y' AND incomingRefDetailCode = '{$code}'"; $exist_code = $this->db_onedev->query($query)->row()->exist; if($exist_code == 0){ $sql = "insert into incoming_ref_detail( incomingRefDetailIncomingRefID, incomingRefDetailCode, T_OrderHeaderLabNumber, incomingRefDetailAddress, incomingRefDetailPhone, incomingRefDetailM_CityID, incomingRefDetailM_DistrictID, incomingRefDetailM_KelurahanID, incomingRefDetailIPAddress, incomingRefDetailBaseName, incomingRefDetailIsDefault, incomingRefDetailUserID, incomingRefDetailLastUpdated, incomingRefDetailCreated) values(?,?,?,?,?,?,?,?,?,?,?,?,now(),now())"; $query = $this->db_onedev->query($sql, array( $deliveryorderid, $code, $name, $address, $phone, $cityid, $districtid, $kelurahanid, $ipadrress, $basename, $isdefault, $userid ) ); if (!$query) { $this->sys_error_db("incoming_ref_detail insert",$this->db_onedev); exit; } $last_id = $this->db_onedev->insert_id(); if ($isdefault == "Y" ) { $sql = "update incoming_ref_detail set incomingRefDetailIsDefault= 'N' where incomingRefDetailID <> ? "; $this->db_onedev->query($sql,array($last_id)); } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); }else{ $errors = array(); if($exist_code != 0){ array_push($errors,array('field'=>'code','msg'=>'Kode sudah ada yang pakai dong')); } $result = array ("total" => -1,"errors" => $errors, "records" => 0); $this->sys_ok($result); } }else{ $query = "SELECT COUNT(*) as exist FROM incoming_ref_detail WHERE incomingRefDetailIsActive = 'Y' AND incomingRefDetailCode = '{$code}' AND incomingRefDetailID <> {$prm['xid']}"; //echo $query; $exist_code = $this->db_onedev->query($query)->row()->exist; // echo $exist_code; if($exist_code == 0){ $sql = "UPDATE incoming_ref_detail SET incomingRefDetailIncomingRefID = '{$deliveryorderid}', incomingRefDetailCode = '{$code}', T_OrderHeaderLabNumber = '{$name}', incomingRefDetailAddress = '{$address}', incomingRefDetailPhone = '{$phone}', incomingRefDetailM_CityID = '{$cityid}', incomingRefDetailM_DistrictID = '{$districtid}', incomingRefDetailM_KelurahanID = '{$kelurahanid}', incomingRefDetailIPAddress = '{$ipadrress}', incomingRefDetailBaseName = '{$basename}', incomingRefDetailIsDefault = '{$isdefault}', incomingRefDetailUserID = '{$userid}' WHERE incomingRefDetailID = '{$prm['xid']}'"; //echo $sql; $query = $this->db_onedev->query($sql); if ($isdefault == "Y" ) { $sql = "update incoming_ref_detail set incomingRefDetailIsDefault= 'N' where incomingRefDetailID <> ? "; $this->db_onedev->query($sql,array($prm['xid'])); } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); }else{ $errors = array(); if($exist_code != 0){ array_push($errors,array('field'=>'code','msg'=>'Kode sudah ada yang pakai dong')); } $result = array ("total" => -1,"errors" => $errors, "records" => 0); $this->sys_ok($result); } } } } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function deletedeliveryorder() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $id = $prm['id']; $sql = "update incoming_ref SET incomingRefincomingRefT_RefDeliveryIsActive = 'N', incomingRefincomingRefT_RefDeliveryLastUpdated = now() WHERE incomingRefID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("incoming_ref delete"); exit; } $sql = "update incoming_ref_detail SET incomingRefDetailIsActive = 'N', incomingRefDetailLastUpdated = now() WHERE incomingRefDetailIncomingRefID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("incoming_ref_detail delete"); exit; } $sql = "CALL `sp_refdeliveryorderdetail_delete`(".$id.",".$userid.")"; $query = $this->db_onedev->query($sql); if (!$query) { $this->sys_error_db("incoming_ref_detail delete"); exit; } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function deletedeliveryorderdetail() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $sql = "update incoming_ref_detail SET incomingRefDetailIsActive = 'N', incomingRefDetailLastUpdated = now() WHERE incomingRefDetailID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("incoming_ref_detail delete"); exit; } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function searchdeliveryorder(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM incoming_ref WHERE incomingRefincomingRefT_RefDeliveryName like ? AND incomingRefincomingRefT_RefDeliveryIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("incoming_ref count",$this->db_onedev); exit; } $sql = " SELECT incomingRefID, incomingRefincomingRefT_RefDeliveryName FROM incoming_ref WHERE incomingRefincomingRefT_RefDeliveryName like ? AND incomingRefincomingRefT_RefDeliveryIsActive = 'Y' ORDER BY incomingRefincomingRefT_RefDeliveryName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("incoming_ref rows",$this->db_onedev); exit; } } function searchdeliveryorderbyname(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM incoming_ref WHERE incomingRefincomingRefT_RefDeliveryName like ? AND incomingRefincomingRefT_RefDeliveryIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("incoming_ref count",$this->db_onedev); exit; } $sql = " SELECT incomingRefID, incomingRefincomingRefT_RefDeliveryName FROM incoming_ref WHERE incomingRefincomingRefT_RefDeliveryName like ? AND incomingRefincomingRefT_RefDeliveryIsActive = 'Y' ORDER BY incomingRefincomingRefT_RefDeliveryName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("incoming_ref rows",$this->db_onedev); exit; } } function searchcity(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_city WHERE M_CityName like ? AND M_CityIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_city count",$this->db_onedev); exit; } $sql = " SELECT * FROM m_city WHERE M_CityName like ? AND M_CityIsActive = 'Y' ORDER BY M_CityName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_city rows",$this->db_onedev); exit; } } function searchdistrict(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_district WHERE M_DistrictName like ? AND M_DistrictM_CityID = '{$id}' AND M_DistrictIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_district count",$this->db_onedev); exit; } $sql = " SELECT * FROM m_district WHERE M_DistrictName like ? AND M_DistrictM_CityID = '{$id}' AND M_DistrictIsActive = 'Y' ORDER BY M_DistrictName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_district rows",$this->db_onedev); exit; } } function searchkelurahan(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_kelurahan WHERE M_KelurahanName like ? AND M_KelurahanM_DistrictID = '{$id}' AND M_KelurahanIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_district count",$this->db_onedev); exit; } $sql = " SELECT * FROM m_kelurahan WHERE M_KelurahanName like ? AND M_KelurahanM_DistrictID = '{$id}' AND M_KelurahanIsActive = 'Y' ORDER BY M_KelurahanName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_district rows",$this->db_onedev); exit; } } }