Files
BE_IBL/application/controllers/v1/su/Test.php--241025
2026-04-15 15:23:57 +07:00

117 lines
4.3 KiB
Plaintext

<?php
class Test extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
$this->db = $this->load->database("onedev", true);
}
function index() {
$this->load->library("Resultcalc");
$id = 946;
$rows = $this->resultcalc->auto($id);
echo "<pre> $rows";
}
function testing(){
$sql = "
SELECT M_DoctorID as id, M_DoctorCode as code,CONCAT(M_DoctorPrefix,M_DoctorPrefix2,' ',M_DoctorName,' ',M_DoctorSufix,M_DoctorSufix2,M_DoctorSufix3) as name
FROM m_doctor
WHERE
M_DoctorIsActive = 'Y' LIMIT 5
";
//echo $sql;
$query = $this->db_onedev->query($sql);
$datas = $query->result_array();
echo json_encode($datas);
}
function updatedoublerecord($orderHeaderID) {
// Step 1: Retrieve active records with the specified order header ID
$this->db->where('T_OrderDetailT_OrderHeaderID', $orderHeaderID);
$this->db->where('T_OrderDetailIsActive', 'Y');
$query = $this->db->get('t_orderdetail');
$records = $query->result();
if (empty($records)) {
return 0; // No active records found
}
// Group records by T_OrderDetailT_TestID for processing
$groupedRecords = [];
foreach ($records as $record) {
$groupedRecords[$record->T_OrderDetailT_TestID][] = $record;
}
// Step 2: Initialize list to track records eligible for deactivation
$deactivateIDs = [];
foreach ($groupedRecords as $testID => $testRecords) {
$activeRecord = null;
// Step 3: Apply selection criteria to find one record to keep as active
foreach ($testRecords as $record) {
$this->db->where('So_ResultEntryT_OrderDetailID', $record->T_OrderDetailID);
$this->db->where('So_ResultEntryStatus !=', 'NEW');
$entryQuery = $this->db->get('so_resultentry');
// Check if no result entries with status != 'NEW' exist for this record
if ($entryQuery->num_rows() == 0) {
// If no activeRecord yet, apply selection conditions
if (!$activeRecord && is_null($record->T_OrderDetailResult)) {
$activeRecord = $record;
}
}
}
// If no record with NULL T_OrderDetailResult, check for T_OrderDetailVerification = 'N'
if (!$activeRecord) {
foreach ($testRecords as $record) {
if ($record->T_OrderDetailVerification === 'N') {
$activeRecord = $record;
break;
}
}
}
// If all records have T_OrderDetailVerification = 'Y', check for T_OrderDetailValidation = 'N'
if (!$activeRecord) {
foreach ($testRecords as $record) {
if ($record->T_OrderDetailValidation === 'N') {
$activeRecord = $record;
break;
}
}
}
// Collect IDs for deactivation, excluding the active record
foreach ($testRecords as $record) {
if (!$activeRecord || $record->T_OrderDetailID != $activeRecord->T_OrderDetailID) {
$deactivateIDs[] = $record->T_OrderDetailID;
}
}
// Update the chosen active record
if ($activeRecord) {
$this->db->where('T_OrderDetailID', $activeRecord->T_OrderDetailID);
$this->db->update('t_orderdetail', [
'T_OrderDetailIsActive' => 'Y',
'T_OrderDetailUserID' => 777
]);
}
}
// Step 4: Deactivate all other records for this order header and test ID combination
if (!empty($deactivateIDs)) {
$this->db->where_in('T_OrderDetailID', $deactivateIDs);
$this->db->update('t_orderdetail', ['T_OrderDetailIsActive' => 'N']);
}
return 1; // Update completed
}
}