181 lines
6.3 KiB
PHP
181 lines
6.3 KiB
PHP
<?php
|
|
|
|
class Perubahan_sample extends MY_Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
function get_rows($sql, $prm = false)
|
|
{
|
|
}
|
|
function index()
|
|
{
|
|
}
|
|
public function cek($day = 7)
|
|
{
|
|
$sql = "select
|
|
T_OrderHeaderID,
|
|
T_OrderHeaderDate,
|
|
T_OrderHeaderLabNumber,
|
|
T_OrderSampleT_SampleTypeID,
|
|
T_OrderSampleSamplingDate,
|
|
T_OrderSampleSamplingTime,
|
|
T_OrderSampleReceiveDate,
|
|
T_OrderSampleReceiveTime,
|
|
T_SampleTypeName,
|
|
T_OrderSampleID,
|
|
T_SampleTypeName,
|
|
T_OrderSampleIsActive
|
|
from
|
|
t_orderheader
|
|
join t_ordersample on T_OrderHeaderID = T_OrderSampleT_OrderHeaderID
|
|
and T_OrderSampleT_SampleTypeID in ( 122, 259 )
|
|
and T_OrderHeaderID in
|
|
(
|
|
select
|
|
distinct T_OrderSampleT_OrderHeaderID
|
|
from
|
|
t_ordersample
|
|
join t_orderheader on T_OrderSampleT_OrderHeaderID = T_OrderHeaderID
|
|
and T_OrderHeaderDate + interval $day day > 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 "<tr><td colspan=4> Total : <b>$total_diff</b> dari " . count($dup_rows)
|
|
. " ($day hari terakhir) </td>\n";
|
|
foreach ($dup_rows as $r) {
|
|
$this->detail($r);
|
|
}
|
|
echo "</table>";
|
|
}
|
|
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 "<script>document.location.href='/one-api/fix/perubahan_sample/cek'</script>";
|
|
}
|
|
function detail($r)
|
|
{
|
|
$sampling_date = $r["T_OrderSampleReceiveDate"] . " " . $r["T_OrderSampleReceiveTime"];
|
|
$org_sampling_date = $r["OrgT_OrderSampleReceiveDate"] . " " . $r["OrgT_OrderSampleReceiveTime"];
|
|
echo "<tr>";
|
|
echo "<td>" . $r["T_OrderHeaderLabNumber"] . "</td>";
|
|
echo "<td> $sampling_date </td>";
|
|
if ($sampling_date > $org_sampling_date) {
|
|
$url_ubah = "window.location.href='./do_ubah/" . $r["T_OrderSampleID"] . "/" . $r["OrgT_OrderSampleID"] . "'";
|
|
echo "<td> <button onClick=\"$url_ubah\">Ubah sesuai origin => </td> </td>";
|
|
} else {
|
|
echo "<td> </td>";
|
|
}
|
|
echo "<td> $org_sampling_date </td>";
|
|
echo "</tr>";
|
|
}
|
|
function header()
|
|
{
|
|
echo '<style>
|
|
th, td {
|
|
padding: 15px;
|
|
text-align: left;
|
|
}
|
|
tr:nth-child(even) {background-color: #f2f2f2;}
|
|
table {
|
|
border: solid 1px ;
|
|
min-width:600px;
|
|
}
|
|
</style>
|
|
';
|
|
echo '<table>';
|
|
echo '<tr>';
|
|
echo "<td>Lab No.</td>
|
|
<td>Sampling Rcv Date</td>
|
|
<td> === </td>
|
|
<td>Sampling Rcv Date Origin</td>
|
|
</tr>\n";
|
|
}
|
|
}
|