275 lines
7.9 KiB
PHP
275 lines
7.9 KiB
PHP
<?php
|
|
class Reminder extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function index()
|
|
{
|
|
echo "Reminder API";
|
|
}
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
}
|
|
public function first_reminder(){
|
|
$XEmailOutboxSubject = 'Reminder Pelunasan';
|
|
$sql = "SELECT f_bill.*,
|
|
DATE_FORMAT(F_BillDueDate,'%d-%m-%Y') jatuhtempo,
|
|
CONCAT('Rp. ',FORMAT(F_BillTotal,0),',00') nominal,
|
|
CorporateName
|
|
FROM f_bill
|
|
JOIN corporate ON CorporateID = F_BillCorporateID
|
|
WHERE
|
|
F_BillIsActive = 'Y'
|
|
and F_BillIsLunas = 'N'
|
|
and F_BillIsNotif = 'Y'
|
|
and ( F_BillDueDate - interval 7 DAY) = date(now())
|
|
group by F_BillID";
|
|
|
|
$qry = $this->db_onedev->query($sql);
|
|
if ($qry) {
|
|
$rows_bill = $qry->result_array();
|
|
foreach ($rows_bill as $r) {
|
|
$pid = $r["F_BillID"];
|
|
$recipients = $this->db_onedev->query("SELECT CorporateName as name, F_BillPICEmail as email
|
|
FROM f_bill JOIN corporate ON CorporateID = F_BillCorporateID WHERE F_BillID = '{$pid}'")->result_array();
|
|
$XEmailOutboxRecipients = json_encode($recipients);
|
|
$XEmailOutboxIsHtml = 'Y';
|
|
$pname = $r["F_BillPIC"];
|
|
$jatuhtempo = $r["jatuhtempo"];
|
|
$nominal = $r["nominal"];
|
|
$terbilang = $this->numberToWords($r["F_BillTotal"]) . ' rupiah';
|
|
$nomor = $r["F_BillNo"];
|
|
$XEmailOutboxBody = "<h4>Reminder Pelunasan</h4>
|
|
<p>Bapak/Ibu yang terhormat {$pname}</p>
|
|
<p>Dalam kesempatan ini kami ingin menyampaikan bahwa tagihan dengan data sebagai berikut :</p>
|
|
<table>
|
|
<tbody>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>Nominal</p>
|
|
</td>
|
|
<td>
|
|
<p>:</p>
|
|
</td>
|
|
<td>
|
|
<p>{$nominal}</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>Terbilang</p>
|
|
</td>
|
|
<td>
|
|
<p>:</p>
|
|
</td>
|
|
<td>
|
|
<p>{$terbilang}</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>Nomor Invoice</p>
|
|
</td>
|
|
<td>
|
|
<p>:</p>
|
|
</td>
|
|
<td>
|
|
<p>{$nomor}</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Akan jatuh tempo pada {$jatuhtempo}</p>
|
|
<p>Demikian pemberitahuan dari kami, mohon dapat melakukan pembayaran tepat pada waktunya. Terima kasih</p>
|
|
<p> </p>
|
|
<p>Hormat kami</p>
|
|
<p><br /><br /></p>
|
|
|
|
|
|
<table>
|
|
";
|
|
$XEmailOutboxType = 'KEU';
|
|
$sql = "insert into x_email_outbox(XEmailOutboxSubject,
|
|
XEmailOutboxRecipients,
|
|
XEmailOutboxIsHtml,
|
|
XEmailOutboxBody,
|
|
XEmailOutboxType) values(?,?,?,?,?)";
|
|
$this->db_onedev->query($sql,array($XEmailOutboxSubject,$XEmailOutboxRecipients,$XEmailOutboxIsHtml,$XEmailOutboxBody,$XEmailOutboxType));
|
|
// echo $query;
|
|
$rows = $this->db_onedev->query($query);
|
|
|
|
}
|
|
$result = array(
|
|
"total" => count($rows_bill) ,
|
|
"records" => $rows_bill
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
public function final_reminder(){
|
|
$XEmailOutboxSubject = 'Reminder Pelunasan';
|
|
$sql = "SELECT f_bill.*,
|
|
DATE_FORMAT(F_BillDueDate,'%d-%m-%Y') jatuhtempo,
|
|
CONCAT('Rp. ',FORMAT(F_BillTotal,0),',00') nominal,
|
|
CorporateName
|
|
FROM f_bill
|
|
JOIN corporate ON CorporateID = F_BillCorporateID
|
|
WHERE
|
|
F_BillIsActive = 'Y'
|
|
and F_BillIsLunas = 'N'
|
|
and F_BillIsNotif = 'Y'
|
|
and F_BillDueDate = date(now())
|
|
group by F_BillID";
|
|
|
|
$qry = $this->db_onedev->query($sql);
|
|
if ($qry) {
|
|
$rows_bill = $qry->result_array();
|
|
foreach ($rows_bill as $r) {
|
|
$pid = $r["F_BillID"];
|
|
$recipients = $this->db_onedev->query("SELECT CorporateName as name, F_BillPICEmail as email
|
|
FROM f_bill JOIN corporate ON CorporateID = F_BillCorporateID WHERE F_BillID = '{$pid}'")->result_array();
|
|
$XEmailOutboxRecipients = json_encode($recipients);
|
|
$XEmailOutboxIsHtml = 'Y';
|
|
$pname = $r["F_BillPIC"];
|
|
$jatuhtempo = $r["jatuhtempo"];
|
|
$nominal = $r["nominal"];
|
|
$terbilang = $this->numberToWords($r["F_BillTotal"]) . ' rupiah';
|
|
$nomor = $r["F_BillNo"];
|
|
$XEmailOutboxBody = "<h4>Reminder Pelunasan</h4>
|
|
<p>Bapak/Ibu yang terhormat {$pname}</p>
|
|
<p>Dalam kesempatan ini kami ingin menyampaikan bahwa tagihan telah jatuh tempo hari ini dengan data sebagai berikut :</p>
|
|
<table>
|
|
<tbody>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>Nominal</p>
|
|
</td>
|
|
<td>
|
|
<p>:</p>
|
|
</td>
|
|
<td>
|
|
<p>{$nominal}</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>Terbilang</p>
|
|
</td>
|
|
<td>
|
|
<p>:</p>
|
|
</td>
|
|
<td>
|
|
<p>{$terbilang}</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<p>Nomor Invoice</p>
|
|
</td>
|
|
<td>
|
|
<p>:</p>
|
|
</td>
|
|
<td>
|
|
<p>{$nomor}</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Kami masih belum menerima pembayaran di rekening kami sampai tanggal jatuh tempo tersebut, mohon dapat segera melakukan pembayaran.</p>
|
|
<p>Demikian pemberitahuan dari kami, terima kasih.</p>
|
|
<p> </p>
|
|
<p>Hormat kami</p>
|
|
<p><br /><br /></p>
|
|
|
|
|
|
<table>
|
|
";
|
|
$XEmailOutboxType = 'KEU';
|
|
$sql = "insert into x_email_outbox(XEmailOutboxSubject,
|
|
XEmailOutboxRecipients,
|
|
XEmailOutboxIsHtml,
|
|
XEmailOutboxBody,
|
|
XEmailOutboxType) values(?,?,?,?,?)";
|
|
$this->db_onedev->query($sql,array($XEmailOutboxSubject,$XEmailOutboxRecipients,$XEmailOutboxIsHtml,$XEmailOutboxBody,$XEmailOutboxType));
|
|
// echo $query;
|
|
$rows = $this->db_onedev->query($query);
|
|
|
|
}
|
|
$result = array(
|
|
"total" => count($rows_bill) ,
|
|
"records" => $rows_bill
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
function numberToWords($number) {
|
|
$words = array(
|
|
'0' => 'nol',
|
|
'1' => 'satu',
|
|
'2' => 'dua',
|
|
'3' => 'tiga',
|
|
'4' => 'empat',
|
|
'5' => 'lima',
|
|
'6' => 'enam',
|
|
'7' => 'tujuh',
|
|
'8' => 'delapan',
|
|
'9' => 'sembilan',
|
|
'10' => 'sepuluh',
|
|
'11' => 'sebelas',
|
|
'12' => 'dua belas',
|
|
'13' => 'tiga belas',
|
|
'14' => 'empat belas',
|
|
'15' => 'lima belas',
|
|
'16' => 'enam belas',
|
|
'17' => 'tujuh belas',
|
|
'18' => 'delapan belas',
|
|
'19' => 'sembilan belas',
|
|
'20' => 'dua puluh',
|
|
'30' => 'tiga puluh',
|
|
'40' => 'empat puluh',
|
|
'50' => 'lima puluh',
|
|
'60' => 'enam puluh',
|
|
'70' => 'tujuh puluh',
|
|
'80' => 'delapan puluh',
|
|
'90' => 'sembilan puluh',
|
|
'100' => 'seratus',
|
|
'1000' => 'seribu'
|
|
);
|
|
|
|
if ($number < 21) {
|
|
return $words[$number];
|
|
} elseif ($number < 100) {
|
|
return $words[10 * floor($number/10)] . (($number % 10 > 0) ? ' ' . $words[$number % 10] : '');
|
|
} elseif ($number < 200) {
|
|
return 'seratus' . (($number - 100 > 0) ? ' ' . $this->numberToWords($number - 100) : '');
|
|
} elseif ($number < 1000) {
|
|
return $words[floor($number / 100)] . ' ratus' . (($number % 100 > 0) ? ' ' . $this->numberToWords($number % 100) : '');
|
|
} elseif ($number < 2000) {
|
|
return 'seribu' . (($number - 1000 > 0) ? ' ' . $this->numberToWords($number - 1000) : '');
|
|
} elseif ($number < 1000000) {
|
|
return $this->numberToWords(floor($number / 1000)) . ' ribu' . (($number % 1000 > 0) ? ' ' . $this->numberToWords($number % 1000) : '');
|
|
} elseif ($number < 1000000000) {
|
|
return $this->numberToWords(floor($number / 1000000)) . ' juta' . (($number % 1000000 > 0) ? ' ' . $this->numberToWords($number % 1000000) : '');
|
|
} elseif ($number < 1000000000000) {
|
|
return $this->numberToWords(floor($number / 1000000000)) . ' miliar' . (($number % 1000000000 > 0) ? ' ' . $this->numberToWords($number % 1000000000) : '');
|
|
}
|
|
|
|
return $number;
|
|
}
|
|
|
|
}
|