diff --git a/test/vuex/ais-monitoring-transaction-v4/Transaction.php b/test/vuex/ais-monitoring-transaction-v4/Transaction.php
new file mode 100644
index 0000000..ef56078
--- /dev/null
+++ b/test/vuex/ais-monitoring-transaction-v4/Transaction.php
@@ -0,0 +1,804 @@
+db_onedev = $this->load->database("onedev", true);
+ $this->db_log = $this->load->database("log", true);
+ $this->load->helper(array('form', 'url'));
+ }
+
+ public function error_log($data,$userid=999)
+ {
+
+ $sql = "INSERT INTO ais_error_log (
+ AisErrorLogFnName,
+ AisErrorLogMessage,
+ AisErrorLogQuery,
+ AisErrorLogJson,
+ AisErrorLogUserID,
+ AisErrorLogCreated
+ )
+ VALUES(
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ NOW()
+ )";
+ $qry = $this->db_log->query($sql, array($data['fn_name'],$data['message'],$data['query'],$data['json'],$userid));
+ //echo $this->db_log->last_query();
+ return true;
+ }
+
+ /**
+ * Generic POST request function
+ * @param string $url API endpoint URL
+ * @param array $data Request payload
+ * @param array $headers Custom headers (optional)
+ * @return array Response from API
+ */
+ public function post_request($url, $data = array(), $headers = array())
+ {
+ // Default headers
+ $default_headers = array(
+ 'Content-Type: application/json'
+ );
+
+ // Merge custom headers with default headers
+ $final_headers = array_merge($default_headers, $headers);
+
+ // Initialize cURL
+ $ch = curl_init();
+
+ // Set cURL options
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $final_headers);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($ch, CURLOPT_TIMEOUT, 30);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
+
+ // Execute cURL request
+ $response = curl_exec($ch);
+ $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ $error = curl_error($ch);
+
+ // Close cURL
+ curl_close($ch);
+
+ // Prepare result
+ $result = array(
+ 'success' => false,
+ 'http_code' => $http_code,
+ 'response' => null,
+ 'error' => null
+ );
+
+ if ($error) {
+ $result['error'] = $error;
+ } else {
+ $result = json_decode($response, true);
+ $result['success'] = true;
+ }
+
+ return $result;
+ }
+
+ public function get_request($url, $headers = array())
+ {
+ // Retrieve configuration
+ $config = $this->get_config();
+ $token = $config['AisConfigAuthToken'] ?? 'default-token';
+ $header_token = $config['AisConfigHeaderToken'];
+
+ // Default headers based on the curl command
+ $default_headers = array(
+ 'Header-Token: ' . $header_token,
+ 'Authorization: Bearer ' . $token
+ );
+
+ // Merge custom headers with default headers
+ $final_headers = array_merge($default_headers, $headers);
+
+ // Initialize cURL
+ $ch = curl_init();
+
+ // Set cURL options
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_HTTPGET, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $final_headers);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($ch, CURLOPT_TIMEOUT, 30);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
+
+ // Execute cURL request
+ $response = curl_exec($ch);
+ $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ $error = curl_error($ch);
+
+ // Close cURL
+ curl_close($ch);
+
+ // Prepare result
+ $result = array(
+ 'success' => false,
+ 'http_code' => $http_code,
+ 'response' => null,
+ 'error' => null
+ );
+
+ if ($error) {
+ $result['error'] = $error;
+ } else {
+ $decoded = json_decode($response, true);
+ $result['response'] = $decoded;
+ // Check if response is successful based on http code
+ if ($http_code === 200) {
+ $result['success'] = true;
+ }
+ }
+
+ return $result;
+ }
+
+ function get_config()
+ {
+ $sql = "SELECT * FROM ais_config LIMIT 1";
+ $qry = $this->db_onedev->query($sql);
+ $dt_config = $qry->row_array();
+ return $dt_config;
+ }
+
+ /**
+ * POST request to auth API
+ * @param string $username Username for authentication
+ * @param string $password Password for authentication
+ * @return array Response from API
+ */
+ public function post_auth()
+ {
+ $dt_config = $this->get_config();
+ $baseUrl = $dt_config['AisConfigBaseUrl'];
+ $url = $baseUrl.'/api/auth/auth.php';
+ $headers = array(
+ 'Header-Token: '.$dt_config['AisConfigHeaderToken']
+ );
+
+ $username = $dt_config['AisConfigUsername'];
+ $password = $dt_config['AisConfigPassword'];
+
+ $data = array(
+ 'username' => $username,
+ 'password' => $password
+ );
+
+ $result = $this->post_request($url, $data, $headers);
+ $sql = "INSERT INTO ais_login_log(
+ AisLoginLogUsername,
+ AisLoginLogPassword,
+ AisLoginLogHeaderToken,
+ AisLoginLogResult,
+ AisLoginLogCreated
+ )
+ VALUES(
+ ?,
+ ?,
+ ?,
+ ?,
+ NOW()
+ )";
+ $qry = $this->db_log->query($sql, array($username,$password,$dt_config['AisConfigHeaderToken'],json_encode($result)));
+
+
+ if(!$qry){
+ $this->error_log(array('fn_name'=>'post_auth','message'=>'ais_login_log insert','query'=>$sql,'json'=>json_encode($result)),999);
+ exit;
+ }
+ //print_r($result);
+ //exit;
+ // Check if success
+ if(!$result['success']){
+ $this->error_log(array('fn_name'=>'post_auth','message'=>'failed auth','query'=>'','json'=>json_encode($result)),999);
+ $errors = array('status' => 'error','message' => 'Gagal Login');
+ return $errors;
+
+ }else{
+ // Update token
+ $token = $result['data']['token'];;
+ $sql = "UPDATE ais_config SET AisConfigAuthToken = ? WHERE AisConfigID = 1";
+ $qry = $this->db_onedev->query($sql, array($token));
+ //echo $this->db_onedev->last_query();
+ //exit;
+ if(!$qry){
+ $this->error_log(array('fn_name'=>'post_auth','message'=>'ais_config update','query'=>$sql,'json'=>''),999);
+ $errors = array('status' => 'error','message' => 'Gagal Update Token');
+ return $errors;
+
+ }
+
+ return $result;
+ }
+ }
+
+ function post_transaction($labnum='',$xdate=null)
+ {
+ // Auth Login
+ $login = $this->post_auth();
+ if (!$login['success']) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 'failed auth', 'query' => '', 'json' => json_encode($login)), 555);
+ $errors = array('status' => 'error', 'message' => 'Gagal Login');
+ echo json_encode($errors);
+ exit;
+ }
+ // Get config
+ $dt_config = $this->get_config();
+ $baseUrl = $dt_config['AisConfigBaseUrl'];
+ $url = $baseUrl . '/api/transaction_full/transaksi.php';
+
+ $headers = array(
+ 'Header-Token: ' . $dt_config['AisConfigHeaderToken'],
+ 'Authorization: Bearer ' . $dt_config['AisConfigAuthToken']
+ );
+
+
+
+ if($labnum == ''){
+ $xdate = $xdate == null ? date('Y-m-d') : $xdate;
+ }
+ // Get data
+ $sql = "SELECT T_OrderHeaderID,
+ T_OrderHeaderTotal as Total,
+ T_OrderHeaderLabNumber as RegID,
+ Mgm_McuM_BranchID as mgm_mcu_m_branch_id,
+ M_PatientNoReg as MEDRECID,
+ T_OrderHeaderDate as Tanggal,
+ T_OrderHeaderDate as PulangTanggal,
+ IF(Mgm_McuM_BranchID = 100,'',CorporateCode) as PerusahaanID,
+ IF(Mgm_McuM_BranchID = 100,'',CorporateCode) as AsuransiID,
+ T_PriceHeaderCode as GroupTarifID,
+ M_PatientName as Nama,
+ M_PatientIdentifierValue as NIK,
+ DATE_FORMAT(M_PatientDOB, '%Y-%m-%d %H:%i:%s') as TglLahir,
+ IF(M_PatientGender = 'male','L','P') as JnsKelamin,
+ '' as NomorPolis,
+ '' as NomerJaminan,
+ '2' as JenisRegID,
+ IF(Mgm_McuM_BranchID = 100,0,1) as JenisPasienID,
+ 'LAB-WESTERINDO-01' as DepartemenID,
+ 'Y' as Pulang,
+ 'Y' as BolehPulang,
+ '' as Catatan,
+ 'Y' as Verified,
+ 'LABKLINIK' as KelasID,
+ M_UserEmail as LoginBuat,
+ T_OrderHeaderCreated as TanggalBuat,
+ branch_order.M_BranchAis_branch_code as BranchCode,
+ CorporateTypeais_pillar_code as PillarCode,
+ '4569' as SiteCenterCode,
+ M_UserEmail as VerifiedBy,
+ T_OrderHeaderCreated as VerifiedDate,
+ '' as TrxLayanan,
+ '' as TrxItem,
+ '' as TrxItemReturn,
+ '' as RegpasNominal,
+ '' as Trxtt,
+ '' as TrxBayar,
+ '' as TrxLain,
+ '' as PaketDispenser
+ FROM t_orderheader
+ JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
+ JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
+ JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
+ JOIN corporate_type ON CorporateTypeID = CorporateTypeID
+ JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID -- AND Mgm_McuID = 1566
+ JOIN t_priceheader ON Mgm_McuT_PriceHeaderID = T_PriceHeaderID
+ JOIN m_user ON T_OrderHeaderCreatedUserID = M_UserID
+ LEFT JOIN cpone_log.ais_transaction ON Ais_TransactionOrderHeaderLabNumber = T_OrderHeaderLabNumber AND
+ Ais_TransactionStatus = 'success'
+ WHERE T_OrderHeaderIsActive = 'Y' AND
+ T_OrderHeaderLabNumber = ? AND
+ Ais_TransactionID IS NULL
+ GROUP BY T_OrderHeaderID
+ LIMIT 100";
+ $qry = $this->db_onedev->query($sql, array($labnum));
+ //echo $this->db_onedev->last_query();
+ //exit;
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 't_orderheader select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+ $raw_data = $qry->result_array();
+
+ $data = array();
+ foreach ($raw_data as $key => $row) {
+
+ $row['TrxLayanan'] = [];
+ $row['TrxItem'] = [];
+ $row['TrxItemReturn'] = [];
+ $row['RegpasNominal'] = [];
+ $row['Trxtt'] = null;
+ $row['TrxBayar'] = [];
+ $row['TrxLain'] = null;
+ $row['PaketDispenser'] = null;
+
+ $layanan = [];
+ $sql = "SELECT * FROM (
+ SELECT T_OrderDetailID as TrxLayananID,
+ case
+ when Nat_GroupID = 1 then '1100'
+ when Nat_GroupID = 2 then '1200'
+ when Nat_GroupID = 3 then '1200'
+ when Nat_GroupID = 4 then '1303'
+ end as ProfitCostCenterCode,
+ '' as TrxDepartemenID,
+ T_OrderDetailCreated as TanggalBuat,
+ T_OrderDetailT_TestSasCode as LayananID,
+ T_OrderDetailT_TestName as LayananName,
+ doctorlab.M_DoctorCode as DokterID,
+ 0 as ShareRS,
+ 0 as ShareDokter,
+ 0 as ShareExternal,
+ 0 as ShareLain2,
+ '' as PihakExternal,
+ '' as PihakLain2,
+ 'Percentage' as ShareTipe,
+ T_OrderDetailPrice as Harga,
+ 1 as Jumlah,
+ 1 as Rate,
+ 'N' as FOC,
+ T_OrderDetailDiscTotal as Diskon,
+ 'Absolute' as TipeDiskon,
+ '' as DepartemenID,
+ IF(Mgm_McuM_BranchID = 100,T_OrderDetailTotal,0) as DitanggungPasien,
+ IF(Mgm_McuM_BranchID = 100,0,T_OrderDetailTotal) as DitanggungPenjamin,
+ 0 as MarkUpCito,
+ 'N' as Cito,
+ T_PacketSasCode as PaketID,
+ 'LABKLINIK' as KelasID,
+ '' as TrxLayananDetail,
+ 'Y' as Tagihkan
+ FROM t_orderdetail
+ JOIN t_test ON T_TestID = T_OrderDetailT_TestID AND T_TestIsActive = 'Y'
+ JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y'
+ JOIN nat_group ON Nat_GroupID = Nat_TestNat_GroupID AND Nat_GroupIsActive = 'Y'
+ JOIN t_orderdetailorder ON T_OrderDetailT_OrderDetailOrderID = T_OrderDetailOrderID AND
+ T_OrderDetailOrderIsPacket = 'Y' AND T_OrderDetailOrderIsActive = 'Y'
+ JOIN t_packet ON T_OrderDetailOrderT_PacketID = T_PacketID
+ JOIN t_packetdetail ON T_PacketDetailT_PacketID = T_PacketID AND T_PacketDetailT_TestID = T_OrderDetailT_TestID AND
+ T_PacketDetailIsActive = 'Y'
+ JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailOrderT_OrderHeaderID
+ JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID
+ JOIN m_doctor doctorlab ON T_OrderHeaderPjM_DoctorID = M_DoctorID
+ LEFT JOIN f_payment ON T_OrderHeaderID = F_PaymentT_OrderHeaderID AND F_PaymentIsActive = 'Y'
+ WHERE
+ T_OrderDetailT_OrderHeaderID = ? AND
+ T_OrderDetailIsActive = 'Y'
+ UNION
+ SELECT T_OrderDetailID as TrxLayananID,
+ Nat_GroupID as ProfitCostCenterCode,
+ '' as TrxDepartemenID,
+ T_OrderDetailCreated as TanggalBuat,
+ T_OrderDetailT_TestSasCode as LayananID,
+ T_OrderDetailT_TestName as LayananName,
+ doctorlab.M_DoctorCode as DokterID,
+ 0 as ShareRS,
+ 0 as ShareDokter,
+ 0 as ShareExternal,
+ 0 as ShareLain2,
+ '' as PihakExternal,
+ '' as PihakLain2,
+ 'Percentage' as ShareTipe,
+ T_OrderDetailPrice as Harga,
+ 1 as Jumlah,
+ 1 as Rate,
+ 'N' as FOC,
+ T_OrderDetailDiscTotal as Diskon,
+ 'Absolute' as TipeDiskon,
+ '' as DepartemenID,
+ IF(Mgm_McuM_BranchID = 100,T_OrderDetailTotal,0) as DitanggungPasien,
+ IF(Mgm_McuM_BranchID = 100,0,T_OrderDetailTotal) as DitanggungPenjamin,
+ 0 as MarkUpCito,
+ 'N' as Cito,
+ '' as PaketID,
+ 'LABKLINIK' as KelasID,
+ NULL as TrxLayananDetail,
+ 'Y' as Tagihkan
+ FROM `t_orderdetailorder`
+ JOIN t_orderdetail ON T_OrderdetailT_OrderHeaderID = T_OrderDetailOrderT_OrderHeaderID AND
+ T_OrderDetailIsActive = 'Y' AND T_OrderDetailT_OrderDetailOrderID = T_OrderDetailOrderID
+ JOIN t_test ON T_TestID = T_OrderDetailT_TestID AND T_TestIsActive = 'Y'
+ JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y'
+ JOIN nat_group ON Nat_GroupID = Nat_TestNat_GroupID AND Nat_GroupIsActive = 'Y'
+ JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailOrderT_OrderHeaderID
+ JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID
+ JOIN m_doctor doctorlab ON T_OrderHeaderPjM_DoctorID = M_DoctorID
+ LEFT JOIN f_payment ON T_OrderHeaderID = F_PaymentT_OrderHeaderID AND F_PaymentIsActive = 'Y'
+ WHERE `T_OrderDetailOrderT_OrderHeaderID` = ? AND `T_OrderDetailOrderIsPacket` = 'N' AND
+ T_OrderDetailOrderIsActive = 'Y'
+ ) AS t_orderdetailorder";
+ $qry = $this->db_onedev->query($sql, array($row['T_OrderHeaderID'],$row['T_OrderHeaderID']));
+
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 't_orderdetail select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+ $total_layanan_debug = 0;
+ $layanan = $qry->result_array();
+ $raw_data[$key]['TrxLayanan'] = [];
+ if(count($layanan) > 0){
+ foreach($layanan as $key_layanan => $row_layanan){
+ $total_layanan_debug += $row_layanan['Harga'];
+ $layanan[$key_layanan]['TrxLayananDetail'] = [];
+ $sql = "SELECT M_DoctorCode, M_DoctorID
+ FROM `so_resultentry`
+ JOIN t_orderdetail ON ? = So_ResultEntryT_OrderDetailID AND T_OrderDetailIsActive = 'Y'
+ JOIN m_doctor ON M_DoctorID = So_ResultEntryM_DoctorID AND M_DoctorIsActive = 'Y'
+ WHERE `So_ResultEntryT_OrderHeaderID` = ? AND
+ `So_ResultEntryIsActive` = 'Y' AND `So_ResultEntryM_DoctorID` > '0'
+ LIMIT 1
+ ";
+ $qry = $this->db_onedev->query($sql, array($row_layanan['TrxLayananID'],$row['T_OrderHeaderID']));
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 'so_resultentry select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+ $get_resultentry = $qry->result_array();
+ if (count($get_resultentry) > 0) {
+ $row_layanan['DokterID'] = $get_resultentry[0]['M_DoctorCode'];
+ }
+ $raw_data[$key]['TrxLayanan'][] = $row_layanan;
+ }
+ }
+
+ $regpasnominal = [];
+ $jumlah_layanan_lab = 0;
+ $sql = "SELECT IFNULL(SUM(T_OrderDetailTotal),0) as total_layanan_lab
+ FROM t_orderdetail
+ JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y'
+ JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y'
+ JOIN nat_group ON Nat_GroupID = Nat_TestNat_GroupID AND Nat_GroupIsActive = 'Y' AND
+ Nat_GroupID = 1
+ WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailIsActive = 'Y'
+ ";
+ $qry = $this->db_onedev->query($sql, array($row['T_OrderHeaderID']));
+ //echo $this->db_onedev->last_query();
+ //exit;
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 't_orderdetail lab select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+
+ $get_layanan_lab = $qry->row_array();
+ $jumlah_layanan_lab = $get_layanan_lab['total_layanan_lab'];
+
+ $jumlah_layanan_radiologi = 0;
+ $sql = "SELECT IFNULL(SUM(T_OrderDetailTotal),0) as total_layanan_radiologi
+ FROM t_orderdetail
+ JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y'
+ JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y'
+ JOIN nat_group ON Nat_GroupID = Nat_TestNat_GroupID AND Nat_GroupIsActive = 'Y' AND
+ Nat_GroupID = 3
+ WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailIsActive = 'Y'
+ ";
+ $qry = $this->db_onedev->query($sql, array($row['T_OrderHeaderID']));
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 't_orderdetail radiologi select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+ $get_layanan_radiologi = $qry->row_array();
+ $jumlah_layanan_radiologi = $get_layanan_radiologi['total_layanan_radiologi'];
+
+ $jumlah_layanan_lain = 0;
+ $sql = "SELECT IFNULL(SUM(T_OrderDetailTotal),0) as total_layanan_lain
+ FROM t_orderdetail
+ JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y'
+ JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y'
+ JOIN nat_group ON Nat_GroupID = Nat_TestNat_GroupID AND Nat_GroupIsActive = 'Y' AND
+ Nat_GroupID IN (2,4)
+ WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailIsActive = 'Y'
+ ";
+ $qry = $this->db_onedev->query($sql, array($row['T_OrderHeaderID']));
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 't_orderdetail lain select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+
+
+ $get_layanan_lain = $qry->row_array();
+ $jumlah_layanan_lain = $get_layanan_lain['total_layanan_lain'];
+
+ $total_layanan = 0;
+ $sql = "SELECT SUM(T_OrderDetailTotal) as total_layanan, Mgm_McuM_BranchID as BranchID
+ FROM t_orderdetail
+ JOIN t_orderheader ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID
+ JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID
+ WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailIsActive = 'Y'
+ ";
+ $qry = $this->db_onedev->query($sql, array($row['T_OrderHeaderID']));
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 't_orderdetail total layanan select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+ $total_layanan = $qry->row_array();
+ $total_layanan = $total_layanan['total_layanan'];
+
+
+ $total_bayar = 0;
+ $sql = "SELECT F_PaymentTotal as total
+ FROM f_payment
+ WHERE F_PaymentT_OrderHeaderID = ? AND F_PaymentIsActive = 'Y'
+ ";
+ $qry = $this->db_onedev->query($sql, array($row['T_OrderHeaderID']));
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 'f_payment select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+
+ $get_total_bayar = $qry->result_array();
+ if (count($get_total_bayar) > 0) {
+ foreach($get_total_bayar as $key_total_bayar => $row_total_bayar){
+ $total_bayar += $row_total_bayar['total'];
+ }
+ }
+
+
+
+ $mgm_mcu_m_branch_id = $row['mgm_mcu_m_branch_id'];
+
+ $total_ditanggung_pasien = $mgm_mcu_m_branch_id == 100 ? $total_layanan : 0;
+ $total_ditanggung_penjamin = $mgm_mcu_m_branch_id == 100 ? 0 : $total_layanan;
+
+ $regpasnominal = array(
+ "BiayaParamedik" => "0.00",
+ "ParamedikDitanggungPasien" => "0.00",
+ "ParamedikDitanggungPenjamin" => "0.00",
+ "BiayaAdministrasi" => "0",
+ "AdmDitanggungPasien" => "0.00",
+ "AdmDitanggungPenjamin" => "0.00",
+ "BiayaMaterai" => "0.00",
+ "BiayaMateraiDitanggungPasien" => "0.00",
+ "BiayaMateraiDitanggungPenjamin" => "0.00",
+ "JumlahLayanan" => $jumlah_layanan_lain,
+ "JumlahLayananRadiologi" => $jumlah_layanan_radiologi,
+ "JumlahLayananLaboratorium" => $jumlah_layanan_lab,
+ "JumlahItem" => 0,
+ "JumlahItemRetur" => 0,
+ "JumlahTT" => "0.00",
+ "JumlahBiayaLain" => "0.00",
+ "JumlahBayar" => $total_bayar,
+ "TipeDiskonGlobal" => "Absolute",
+ "DiskonGlobal" => "0.00",
+ "TotalDitanggungPasien" => $total_ditanggung_pasien,
+ "TotalDitanggungPenjamin" => $total_ditanggung_penjamin
+ );
+
+ $raw_data[$key]['RegpasNominal'] = array(
+ $regpasnominal
+ );
+
+ //echo $total_bayar;
+ $raw_data[$key]['TrxBayar'] = null;
+ if($total_bayar > 0){
+ $sql = "SELECT M_PatientNoReg as MEDRECID,
+ F_PaymentDetailID as BayarID,
+ IFNULL(F_PaymentDetailAmount,0) as Jumlah,
+ F_PaymentDetailCreated as Tanggal,
+ 'Pelunasan' as JenisBayarID,
+ CONCAT(F_PaymentNumber,'.',F_PaymentDetailID) as KwitansiID,
+ CONCAT(F_PaymentDetailM_PaymentTypeID,F_PaymentDetailM_BankAccountID) as TipeBayarID,
+ 'N' as Dibatalkan
+ FROM f_paymentdetail
+ JOIN f_payment ON F_PaymentDetailF_PaymentID = F_PaymentID AND F_PaymentIsActive = 'Y'
+ JOIN t_orderheader ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
+ JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID AND M_PatientIsActive = 'Y'
+ WHERE
+ F_PaymentT_OrderHeaderID = ? AND F_PaymentDetailIsActive = 'Y'
+ GROUP BY F_PaymentDetailID";
+ $qry = $this->db_onedev->query($sql, array($row['T_OrderHeaderID']));
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 'f_payment select', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ exit;
+ }
+ //echo $this->db_onedev->last_query();
+ //exit;
+ $bayar = $qry->result_array();
+
+ $raw_data[$key]['TrxBayar'] = $bayar;
+ }
+
+ $raw_data[$key]['Trxtt'] = null;
+ $raw_data[$key]['TrxLain'] = null;
+ $raw_data[$key]['PaketDispenser'] = null;
+ $errors = [];
+
+ //echo json_encode($raw_data[$key]);
+ //exit;
+ $result = $this->post_request($url, $raw_data[$key], $headers);
+
+
+ if ($result['status'] == '400') {
+ $sql = "INSERT INTO ais_transaction(
+ Ais_TransactionOrderHeaderLabNumber,
+ Ais_TransactionJson,
+ Ais_TransactionStatus,
+ Ais_TransactionResponse,
+ Ais_TransactionUrl,
+ Ais_TransactionUserID,
+ Ais_TransactionCreated
+ )
+ VALUES(
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ NOW()
+ )";
+ $qry = $this->db_log->query($sql, array(
+ $row['RegID'],
+ json_encode($raw_data[$key]),
+ 'error',
+ json_encode($result),
+ $url,
+ 555
+ ));
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 'ais_transaction insert', 'query' => $this->db_log->last_query(), 'json' => json_encode($result)), 999);
+ exit;
+ }
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 'transaction insert', 'query' => $this->db_onedev->last_query(), 'json' => json_encode($result)), 999);
+
+ $errors[] = array('RegID' => $row['RegID'], 'error' => $result['message']);
+
+
+ }else{
+ //echo 'insert ais_transaction';
+ $sql = "INSERT INTO ais_transaction(
+ Ais_TransactionOrderHeaderLabNumber,
+ Ais_TransactionJson,
+ Ais_TransactionStatus,
+ Ais_TransactionResponse,
+ Ais_TransactionUrl,
+ Ais_TransactionUserID,
+ Ais_TransactionCreated
+ )
+ VALUES(
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ NOW()
+ )";
+ $qry = $this->db_log->query($sql, array(
+ $row['RegID'],
+ json_encode($raw_data[$key]),
+ 'success',
+ json_encode($result),
+ $url,
+ 555
+ ));
+
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'post_transaction', 'message' => 'ais_transaction insert', 'query' => $this->db_log->last_query(), 'json' => json_encode($result)), 999);
+ exit;
+ }
+ }
+
+
+
+ }
+
+ if(count($errors) > 0){
+ $success = array('status' => 'error', 'message' => 'Gagal Post Transaction', 'errors' => $errors);
+ echo json_encode($success);
+ exit;
+ }else{
+ $success = array('status' => 'success', 'message' => 'Berhasil Post Transaction');
+ echo json_encode($success);
+ exit;
+ }
+
+ }
+
+ function get_transaction()
+ {
+ // Get id from query parameter
+ $id = $this->input->get('id');
+
+ if (empty($id)) {
+ $errors = array('status' => 'error', 'message' => 'ID parameter is required');
+ echo json_encode($errors);
+ exit;
+ }
+
+ $login = $this->post_auth();
+ if (!$login['success']) {
+ $this->error_log(array('fn_name' => 'get_transaction_auth', 'message' => 'failed auth', 'query' => '', 'json' => json_encode($login)), 999);
+ $errors = array('status' => 'error', 'message' => 'Gagal Login');
+ echo json_encode($errors);
+ exit;
+ }
+
+ $dt_config = $this->get_config();
+ $baseUrl = $dt_config['AisConfigBaseUrl'];
+ $url = $baseUrl . '/api/transaksi?id=' . $id;
+
+
+ $result = $this->get_request($url);
+ if (!$result['success']) {
+ $this->error_log(array('fn_name' => 'get_transaction', 'message' => 'failed get transaction', 'query' => '', 'json' => json_encode($result)), 999);
+ $errors = array('status' => 'error', 'message' => 'Gagal Get Transaction');
+ echo json_encode($errors);
+ exit;
+ }
+
+ $data = $result['response']['data'] ?? null;
+ // $data = json_encode($data);
+ $success = array('status' => 'success', 'message' => 'Berhasil Get Transaction', 'data' => $data);
+ echo json_encode($success);
+ exit;
+
+ }
+
+
+ function monitoring_transaction()
+ {
+
+ $sql = "SELECT
+ oh.T_OrderHeaderM_PatientID AS patient_id,
+ p.M_PatientName AS patient_name,
+ oh.T_OrderHeaderLabNumber AS lab_number,
+ b.M_BranchCode AS branch_code,
+ oh.T_OrderHeaderTotal AS total,
+ at.Ais_TransactionStatus,
+ IF(at.Ais_TransactionID IS NULL, 'N', 'Y') AS ais_status
+ FROM t_orderheader oh
+ JOIN m_patient p ON p.M_PatientID = oh.T_OrderHeaderM_PatientID
+ JOIN m_branch b ON b.M_BranchID = oh.T_OrderHeaderM_BranchID
+ LEFT JOIN " . $this->db_log->database . ".ais_transaction at ON at.Ais_TransactionOrderHeaderLabNumber = oh.T_OrderHeaderLabNumber
+ ";
+
+ // Ambil start_date dan end_date dari query parameter
+ $start_date = $this->input->get('start_date');
+ $end_date = $this->input->get('end_date');
+ $params = [];
+
+ if ($start_date && $end_date) {
+ $sql .= " WHERE DATE(oh.T_OrderHeaderDate) BETWEEN ? AND ?";
+ $params = [$start_date, $end_date];
+ } else {
+ // Gunakan default jika tidak ada input tanggal
+ $sql .= " WHERE date(oh.T_OrderHeaderDate) BETWEEN '2024-08-01' AND '2024-08-03'";
+ }
+
+ $qry = $this->db_onedev->query($sql, $params);
+ if (!$qry) {
+ $this->error_log(array('fn_name' => 'monitoring_transaction', 'message' => 'select monitoring data failed', 'query' => $this->db_onedev->last_query(), 'json' => ''), 999);
+ echo json_encode(array('status' => 'error', 'message' => 'Gagal mengambil data monitoring.'));
+ exit;
+ }
+
+ $data = $qry->result_array();
+ echo json_encode(array('status' => 'success', 'message' => 'Berhasil mengambil data monitoring.', 'data' => $data));
+ exit;
+ }
+
+
+}
diff --git a/test/vuex/ais-monitoring-transaction-v4/api/patient.js b/test/vuex/ais-monitoring-transaction-v4/api/patient.js
new file mode 100644
index 0000000..bca7293
--- /dev/null
+++ b/test/vuex/ais-monitoring-transaction-v4/api/patient.js
@@ -0,0 +1,269 @@
+const URL = "/one-api/ais/transactionv4/";
+const URL_MASTERDATA = "/one-api/ais/masterdata/";
+
+function getTransactionBaseUrl(isStemcell) {
+ return isStemcell === 'Y'
+ ? "/one-api/ais/transactionv5/"
+ : "/one-api/ais/transactionv4/";
+}
+
+export async function search(prm) {
+ try {
+ var resp = await axios.post(URL + 'patient/search', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+
+export async function download_data(token,prm) {
+ try {
+ var resp = await axios.post(URL_YANKES + 'trx_order/get_order',{});
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch(e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
+
+ export async function sendresult(prm) {
+ try {
+ var resp = await axios.post(URL_YANKES + 'trx_order/sendresultorder',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch(e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
+
+
+ export async function getlogs(prm) {
+ try {
+ var resp = await axios.post(URL_YANKES + 'trx_order/getlogs',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch(e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
+
+ export async function monitoring_transaction(prm) {
+ try {
+ prm.token = one_token()
+ var resp = await axios.get(URL+'monitoring_transaction', { params: prm});
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
+
+export async function get_corporate() {
+ try {
+ var resp = await axios.get(URL+'get_corporate');
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function get_json_response(prm) {
+ try {
+ var resp = await axios.get(URL+'get_json_response', { params: prm });
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function post_transaction_by_labnumber(prm) {
+ try {
+ console.log('in post_transaction_by_labnumber');
+ var resp = await axios.post(getTransactionBaseUrl(prm.is_stemcell) + 'post_transaction_by_labnumber', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function re_post_transaction_by_labnumber(prm) {
+ try {
+ var resp = await axios.post(getTransactionBaseUrl(prm.is_stemcell) + 're_post_transaction_by_labnumber', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function delete_transaction_by_labnumber(prm) {
+ try {
+ prm.token = one_token()
+ var resp = await axios.post(getTransactionBaseUrl(prm.is_stemcell) + 'delete_transaction_by_labnumber', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function get_medrec_by_noreg(prm) {
+ try {
+ var resp = await axios.post(URL_MASTERDATA+'get_medrec_by_noreg', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function post_medrec_by_noreg(prm) {
+ try {
+ var resp = await axios.post(URL_MASTERDATA+'post_medrec_by_noreg', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function re_post_medrec_by_noreg(prm) {
+ try {
+ var resp = await axios.post(URL_MASTERDATA+'re_post_medrec_by_noreg', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function check_exist_transaction(prm) {
+ try {
+ var resp = await axios.post(URL+'check_exist_transaction', prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ return resp.data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
diff --git a/test/vuex/ais-monitoring-transaction-v4/api/payment.js b/test/vuex/ais-monitoring-transaction-v4/api/payment.js
new file mode 100644
index 0000000..1a942b6
--- /dev/null
+++ b/test/vuex/ais-monitoring-transaction-v4/api/payment.js
@@ -0,0 +1,170 @@
+const URL = "/one-api/mockup/fo/cashiernewpayment-v22/";
+var token = one_token()
+
+export async function getlanguages(token) {
+ try {
+ var resp = await axios.post(URL + 'payment/getlanguages',{token:token});
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function lookup_type(token) {
+ try {
+ var resp = await axios.post(URL + 'payment/lookup_type',{token:token});
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+
+export async function lookup_banks(token) {
+ try {
+ var resp = await axios.post(URL + 'payment/lookup_banks',{token:token});
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+
+export async function lookup_accounts(token) {
+ try {
+ var resp = await axios.post(URL + 'payment/lookup_accounts',{token:token});
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+
+export async function searchcard(token,prm) {
+ try {
+ var resp = await axios.post(URL + 'payment/searchcard',{token:token,search:prm});
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch(e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
+
+export async function pay(prm) {
+ try {
+ var resp = await axios.post(URL + 'payment/pay',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function delete_note(prm) {
+ try {
+ var resp = await axios.post(URL + 'payment/delete_note',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+
+export async function getLocations(prm) {
+ try {
+ prm.token = token
+ var resp = await axios.post(URL + 'payment/getLocations', prm);
+
+ return resp.data
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ }
+ }
+ }
+
+
+ export async function save_control(prm) {
+ try {
+ var resp = await axios.post(URL + 'payment/save_control', prm);
+
+ return resp.data
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ }
+ }
+}
+
+
+
diff --git a/test/vuex/ais-monitoring-transaction-v4/api/test.js b/test/vuex/ais-monitoring-transaction-v4/api/test.js
new file mode 100644
index 0000000..3af3f70
--- /dev/null
+++ b/test/vuex/ais-monitoring-transaction-v4/api/test.js
@@ -0,0 +1,193 @@
+const URL = "/one-api/mockup/fo/supervisor_v8/";
+
+
+export async function lookup(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/lookup_test',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function checkstatus(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/checkstatus',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function getcitos(prm){
+ try {
+ var resp = await axios.post(URL +'supervisor/getcitos',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function getnewprice(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/getnewprice',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function lookup_promises(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/lookup_promises',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+
+export async function savetestadditionalverification(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/save_test_additional_verification',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+}
+
+export async function searchtest(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/search_test',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch(e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
+
+ export async function savetestadditional(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/save_test_additional',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch(e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
+
+ export async function checkpromisetests(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/checkpromisetests',prm);
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
+
+ export async function getchildrenprofil(prm) {
+ try {
+ var resp = await axios.post(URL + 'supervisor/getchildrenprofil',{token:prm.token,data:prm.new});
+ if (resp.status != 200) {
+ return {
+ status: "ERR",
+ message: resp.statusText
+ };
+ }
+ let data = resp.data;
+ return data;
+ } catch (e) {
+ return {
+ status: "ERR",
+ message: e.message
+ };
+ }
+ }
\ No newline at end of file
diff --git a/test/vuex/ais-monitoring-transaction-v4/components/oneFoCashierList.vue b/test/vuex/ais-monitoring-transaction-v4/components/oneFoCashierList.vue
new file mode 100644
index 0000000..25fe208
--- /dev/null
+++ b/test/vuex/ais-monitoring-transaction-v4/components/oneFoCashierList.vue
@@ -0,0 +1,32 @@
+
+ {{ props.item.patient_name }} {{ props.item.lab_number }} {{ props.item.corporate_name }} {{ props.item.mgm_mcu_name }} Pillar : {{ props.item.ais_pillar_name }}
+
+
+
+ NOTA
+ TIPE PEMBAYARAN
+ JUMLAH
+ USER
+ AKSI
+
+
+ {{note.note_number}}
+ {{note.paymenttypes_name}}
+ {{convertMoney(note.note_amount)}}
+ {{note.note_user}}
+
+
+
+
+
+
+
+
+ Tidak ada data
+
+ Pembayaran Berhasil
+
+ Peringatan !
+ Berhasil !
+
+ Belum ada pengiriman hasil
+ Kwitansi
+ Unduh Berhasil
+
+ Peringatan !
+ Berhasil !
+
+ Kartu Kontrol
+ SAMPLE STATION
+ LOKASI
+
+
+
+
+
+
+ Pillar belum disetting
+ {{ props.item.branch_name }} ({{ props.item.branch_code_lab }})
+
+
+ {{ formatNumber(props.item.total_amount) }}
+
+
+
+
+
+
+
+ Pilih transaksi untuk melihat log
+
+
+
+
+ {{ JSON.stringify(log.transaction_json, null, 2) }}
+ {{ JSON.stringify(log.transaction_response, null, 2) }}
+ Pemeriksaan
+ Tambah Pemeriksaan
+
+
+
+
+
+
+
+
+ {{ props.item.pxname }}
+
+ {{ convertMoney(props.item.bruto) }}
+ {{ convertMoney(props.item.discount) }}
+
+ {{ convertMoney(props.item.total) }}
+ {{ convertMoney(props.item.total) }}
+ {{totalRetur(props.item)}}
+
+
Janji hasil sebelum tambahan adalah
Janji hasil setelah tambahan adalah
+ +