db->query($sql); if (!$qry) { $sql = " CREATE TABLE `mou_hold_status_lokal` ( `MouHoldStatusLokalID` int(11) NOT NULL AUTO_INCREMENT, `MouHoldStatusLokalIsExtend` varchar(1) DEFAULT 'N', `MouHoldStatusLokalM_MouID` int(11) DEFAULT NULL, `MouHoldStatusLokalHoldDate` datetime DEFAULT NULL, `MouHoldStatusLokalF_BillID` int(11) DEFAULT NULL, `MouHoldStatusLokalDueDate` date DEFAULT NULL, PRIMARY KEY (`MouHoldStatusLokalID`), KEY `MouHoldStatusLokalM_MouID` (`MouHoldStatusLokalM_MouID`), KEY `MouHoldStatusLokalF_BillID` (`MouHoldStatusLokalF_BillID`) )"; $qry = $this->db->query($sql); if (!$qry) { $this->Log("Error Creating Table mou_hold_status_lokal"); $this->db->trans_begin(); exit(); } } } function index() { $this->check_table(); $this->log("Starting Auto On Hold Agreement. [without extend]"); $cur_date = date("Y-m-d"); $this->db->trans_begin(); $sql = " select distinct M_MouID, M_MouName , M_CompanyName, M_MouNumber, date_format(M_MouEndDate,'%d-%m-%Y') M_MouEndDate, F_BillID,F_BillDueDate from f_bill_issue join f_bill on F_BillIssueF_BillID = F_BillID and F_BillIsActive = 'Y' join m_mou on M_MouID = F_BillIssueM_MouID and F_BillIssueIsAllMou = 'N' and M_MouIsActive = 'Y' and F_BillIssueIsActive = 'Y' and F_BillIssueIsLunas = 'N' and F_BillIssueIsReceive = 'Y' and (F_BillDueDate + interval 7 day ) < ? and F_BillIssueExtendDueDate is null join m_company on M_MouM_CompanyID = M_CompanyID"; $qry = $this->db->query($sql, [$cur_date]); if (!$qry) { $message = $this->db->error()["message"] . "|" . $this->db->last_query(); $this->log($message); $this->db->trans_rollback(); exit(); } $rows = $qry->result_array(); $sql = "update m_mou set M_MouIsActive = 'H' where M_MouID = ?"; $sql_log = "insert into mou_hold_status_lokal(MouHoldStatusLokalM_MouID,MouHoldStatusLokalF_BillID,MouHoldStatusLokalDueDate, MouHoldStatusLokalHoldDate, MouHoldStatusLokalIsExtend) value(?,?,?,now(),?)"; foreach ($rows as $r) { $qry = $this->db->query($sql, [$r["M_MouID"]]); $message = "Hold Mou [{$r["M_MouID"]}] {$r["M_MouNumber"]} | {$r["M_MouName"]} from {$r["M_CompanyName"]} yg berlaku s/d {$r["M_MouEndDate"]}"; if (!$qry) { $message .= "\n" . str_repeat(" ", 20) . " => Err : " . $this->db->error()["message"]; } else { $message .= "\n" . str_repeat(" ", 20) . " => OK"; } $this->log($message); $qry = $this->db->query($sql_log, [ $r["M_MouID"], $r["F_BillID"], $r["F_BillDueDate"], "N", ]); if (!$qry) { $this->log("Error " . $this->db->error()["message"]); $this->db->trans_rollback(); exit(); } } $this->log("Starting Auto On Hold Agreement. [with extend]"); $cur_date = date("Y-m-d"); $sql = " select distinct M_MouID, M_MouName , M_CompanyName, M_MouNumber, date_format(M_MouEndDate,'%d-%m-%Y') M_MouEndDate, F_BillID, F_BillIssueExtendDueDate from f_bill_issue join f_bill on F_BillIssueF_BillID = F_BillID and F_BillIsActive = 'Y' join m_mou on M_MouID = F_BillIssueM_MouID and M_MouIsActive = 'Y' and F_BillIssueIsActive = 'Y' and F_BillIssueIsReceive = 'Y' and F_BillIssueIsLunas = 'N' and F_BillIssueIsAllMou = 'N' and F_BillIssueExtendDueDate is not null and F_BillIssueExtendDueDate < ? join m_company on M_MouM_CompanyID = M_CompanyID "; $qry = $this->db->query($sql, [$cur_date]); if (!$qry) { $message = $this->db->error()["message"] . "|" . $this->db->last_query(); $this->log($message); $this->db->trans_rollback(); exit(); } $rows = $qry->result_array(); $sql = "update m_mou set M_MouIsActive = 'H' where M_MouID = ?"; foreach ($rows as $r) { $qry = $this->db->query($sql, [$r["M_MouID"]]); $message = "Hold Mou [{$r["M_MouID"]}] {$r["M_MouNumber"]} | {$r["M_MouName"]} from {$r["M_CompanyName"]} yg berlaku s/d {$r["M_MouEndDate"]}"; if (!$qry) { $message .= "\n" . str_repeat(" ", 20) . " => Err : " . $this->db->error()["message"]; } else { $message .= "\n" . str_repeat(" ", 20) . " => OK"; } $this->log($message); $qry = $this->db->query($sql_log, [ $r["M_MouID"], $r["F_BillID"], $r["F_BillIssueExtendDueDate"], "Y", ]); if (!$qry) { $this->log("Error " . $this->db->error()["message"]); $this->db->trans_rollback(); exit(); } } if ($this->db->trans_status === false) { $this->db->trans_rollback(); $this->log( "End Auto On Hold Agreement : Error DB transaction." . $this->db->error()["message"] ); } else { $this->db->trans_commit(); $this->log("End Auto On Hold Agreement : OK"); } } }