Initial import
This commit is contained in:
180
application/controllers/fix/Perubahan_sample.php
Normal file
180
application/controllers/fix/Perubahan_sample.php
Normal file
@@ -0,0 +1,180 @@
|
||||
<?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";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user