now()
and T_OrderHeaderIsActive = 'Y'
and T_OrderSampleT_SampleTypeID = 259
)
join t_sampletype on T_OrderSampleT_SampleTypeID = T_SampleTypeID
order by T_OrderHeaderID,T_OrderSampleT_SampleTypeID";
$qry = $this->db->query($sql);
if (!$qry) {
echo "ERR : " . $this->db->error()["message"] . "|" . $this->db->last_query();
exit;
}
$rows = $qry->result_array();
$order_122 = array_filter(
$rows,
function ($r) {
return $r["T_OrderSampleT_SampleTypeID"] == 122;
}
);
$dup_order = [];
foreach ($order_122 as $r) {
$dup_order[] = $r["T_OrderHeaderID"];
}
$dup_rows = array_filter($rows, function ($r) use ($dup_order, $order_122) {
if ($r["T_OrderSampleT_SampleTypeID"] != 259) return false;
if (in_array($r["T_OrderHeaderID"], $dup_order)) {
return true;
}
return false;
});
$dup_rows = array_map(function ($r) use ($order_122) {
$result = $r;
foreach ($order_122 as $r2) {
if ($r["T_OrderHeaderID"] == $r2["T_OrderHeaderID"]) {
$result["OrgT_OrderSampleID"] = $r2["T_OrderSampleID"];
$result["OrgT_OrderSampleReceiveDate"] = $r2["T_OrderSampleReceiveDate"];
$result["OrgT_OrderSampleReceiveTime"] = $r2["T_OrderSampleReceiveTime"];
}
}
return $result;
}, $dup_rows);
$this->header();
usort($dup_rows, function ($a, $b) {
return $a["T_OrderHeaderID"] - $b["T_OrderHeaderID"];
});
$total_diff = 0;
foreach ($dup_rows as $r) {
$sampling_date = $r["T_OrderSampleReceiveDate"] . " " . $r["T_OrderSampleReceiveTime"];
$org_sampling_date = $r["OrgT_OrderSampleReceiveDate"] . " " . $r["OrgT_OrderSampleReceiveTime"];
if ($sampling_date != "" && $sampling_date > $org_sampling_date) {
$total_diff++;
}
}
echo "
| Total : $total_diff dari " . count($dup_rows)
. " ($day hari terakhir) | \n";
foreach ($dup_rows as $r) {
$this->detail($r);
}
echo "";
}
function do_ubah($targetID, $sourceID)
{
//harus di null kan dulu
$sql = "update t_ordersample
set
T_OrderSampleReceiveDate = NULL,
T_OrderSampleReceiveTime = NULL,
T_OrderSampleReceive = 'N'
where T_OrderSampleID = $targetID
";
$qry = $this->db->query($sql);
if (!$qry) {
echo "ERR : " . $this->db->error()["message"] . "|" . $this->db->last_query();
exit;
}
$sql = "update t_ordersample target, t_ordersample source
set
target.T_OrderSampleSampling = source.T_OrderSampleSampling,
target.T_OrderSampleSamplingDate = source.T_OrderSampleSamplingDate,
target.T_OrderSampleSamplingTime = source.T_OrderSampleSamplingTime,
target.T_OrderSampleSamplingUserID = source.T_OrderSampleSamplingUserID,
target.T_OrderSampleReceive = source.T_OrderSampleReceive,
target.T_OrderSampleReceiveDate = source.T_OrderSampleReceiveDate,
target.T_OrderSampleReceiveTime = source.T_OrderSampleReceiveTime,
target.T_OrderSampleReceiveUserID = source.T_OrderSampleReceiveUserID
where target.T_OrderSampleID = $targetID and source.T_OrderSampleID = $sourceID
and $targetID > $sourceID
and source.T_OrderSampleSampling = 'Y'
and source.T_OrderSampleReceive = 'Y' ";
$qry = $this->db->query($sql);
if (!$qry) {
echo "ERR : " . $this->db->error()["message"] . "|" . $this->db->last_query();
exit;
}
echo "Sampling Time Updated.";
echo "";
}
function detail($r)
{
$sampling_date = $r["T_OrderSampleReceiveDate"] . " " . $r["T_OrderSampleReceiveTime"];
$org_sampling_date = $r["OrgT_OrderSampleReceiveDate"] . " " . $r["OrgT_OrderSampleReceiveTime"];
echo "
";
echo "| " . $r["T_OrderHeaderLabNumber"] . " | ";
echo " $sampling_date | ";
if ($sampling_date > $org_sampling_date) {
$url_ubah = "window.location.href='./do_ubah/" . $r["T_OrderSampleID"] . "/" . $r["OrgT_OrderSampleID"] . "'";
echo " | ";
} else {
echo " | ";
}
echo " $org_sampling_date | ";
echo "
";
}
function header()
{
echo '
';
echo '';
echo '';
echo "| Lab No. |
Sampling Rcv Date |
=== |
Sampling Rcv Date Origin |
\n";
}
}