FHM09062601IBL - saveorder: simpan tests ke order_detail_order + create table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sas.fajri
2026-06-12 08:50:29 +07:00
parent 414a3765f7
commit d04d8add35
2 changed files with 66 additions and 1 deletions

View File

@@ -1096,8 +1096,47 @@ class Registrationv3 extends MY_Controller
exit;
}
//echo $last_id;
// Simpan item order ke order_detail_order
$tests = isset($prm['tests']) && is_array($prm['tests']) ? $prm['tests'] : [];
foreach ($tests as $t) {
$is_packet = ($t['is_packet'] ?? 'N') === 'Y' ? 'Y' : 'N';
$packet_type = $t['type'] ?? 'PX';
$packet_id = $is_packet === 'Y' ? intval($t['pxid'] ?? 0) : 0;
$packet_name = $is_packet === 'Y' ? ($t['test_name'] ?? '') : '';
$test_id = $is_packet === 'Y' ? 0 : intval($t['pxid'] ?? 0);
$test_name = $is_packet === 'Y' ? '' : ($t['test_name'] ?? '');
$test_sas = $t['pxsascode'] ?? '';
$child_json = isset($t['child_test']) ? json_encode($t['child_test']) : null;
$ss_pm_id = isset($t['ss_price_mou_id']) && $t['ss_price_mou_id'] ? intval($t['ss_price_mou_id']) : null;
$this->db_oneklinik->query(
"INSERT INTO one_klinik.order_detail_order
(orderDetailOrderOrderID, orderDetailOrderSsPriceMouID,
orderDetailOrderT_TestID, orderDetailOrderT_TestName, orderDetailOrderT_TestSasCode,
orderDetailOrderIsPacket, orderDetailOrderPacketType,
orderDetailOrderT_PacketID, orderDetailOrderT_PacketName,
orderDetailOrderT_PriceAmount, orderDetailOrderT_PriceDisc,
orderDetailOrderT_PriceDiscRp, orderDetailOrderT_PriceSubTotal,
orderDetailOrderT_PriceTotal, orderDetailOrderJsonChildren,
orderDetailOrderUserID)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
[
$last_id, $ss_pm_id,
$test_id, $test_name, $test_sas,
$is_packet, $packet_type,
$packet_id, $packet_name,
floatval($t['bruto'] ?? 0),
floatval($t['discountpersen'] ?? 0),
floatval($t['discountrp'] ?? 0),
floatval($t['total'] ?? 0),
floatval($t['total'] ?? 0),
$child_json,
$userid
]
);
}
$sql = "SELECT * FROM one_klinik.`order` WHERE orderID = {$last_id}";
//echo $sql;
$data_order = $this->db_oneklinik->query($sql)->row_array();
if ($queueID != "0" && trim($queueNumber) != "") {
$this->done_today_by_queue_number($queueNumber, $queueID);

View File

@@ -0,0 +1,26 @@
-- Tabel item order klinik, setara one_lab.t_orderdetailorder
CREATE TABLE `one_klinik`.`order_detail_order` (
`orderDetailOrderID` int(11) NOT NULL AUTO_INCREMENT,
`orderDetailOrderOrderID` int(11) NOT NULL DEFAULT 0 COMMENT 'ref one_klinik.order.orderID',
`orderDetailOrderSsPriceMouID` int(11) DEFAULT NULL COMMENT 'ref one_lab.ss_price_mou.Ss_PriceMouID (no FK)',
`orderDetailOrderT_TestID` int(11) NOT NULL DEFAULT 0,
`orderDetailOrderT_TestName` varchar(255) NOT NULL DEFAULT '',
`orderDetailOrderT_TestSasCode` varchar(25) NOT NULL DEFAULT '',
`orderDetailOrderIsPacket` char(1) NOT NULL DEFAULT 'N',
`orderDetailOrderPacketType` varchar(5) NOT NULL DEFAULT 'PX',
`orderDetailOrderT_PacketID` int(11) NOT NULL DEFAULT 0,
`orderDetailOrderT_PacketName` varchar(255) NOT NULL DEFAULT '',
`orderDetailOrderT_PriceAmount` double NOT NULL DEFAULT 0,
`orderDetailOrderT_PriceDisc` double NOT NULL DEFAULT 0,
`orderDetailOrderT_PriceDiscRp` double NOT NULL DEFAULT 0,
`orderDetailOrderT_PriceSubTotal` double NOT NULL DEFAULT 0,
`orderDetailOrderT_PriceTotal` double NOT NULL DEFAULT 0,
`orderDetailOrderJsonChildren` longtext DEFAULT NULL,
`orderDetailOrderIsActive` char(1) NOT NULL DEFAULT 'Y',
`orderDetailOrderUserID` int(11) DEFAULT NULL,
`orderDetailOrderCreated` datetime NOT NULL DEFAULT current_timestamp(),
`orderDetailOrderLastUpdated` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`orderDetailOrderID`),
KEY `orderDetailOrderOrderID` (`orderDetailOrderOrderID`),
KEY `orderDetailOrderIsActive` (`orderDetailOrderIsActive`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;