Update simpan email baru saat kirim email

This commit is contained in:
mikael-zakaria 2026-02-05 15:45:36 +07:00
parent 7d456e67f6
commit 85a173fea8

View File

@ -1288,7 +1288,7 @@ class Activities extends Controller {
$query = $db->query($sql);
// Untuk Simpan Email Otomatis
// $this->syncEmails($tos, $ccs, $bccs);
$this->syncEmails($tos, $ccs, $bccs);
$data = [
'replyto' => $replyto,
@ -1327,42 +1327,42 @@ class Activities extends Controller {
}
// Untuk Simpan Email Otomatis
// public function syncEmails($tos="", $ccs="", $bccs="") {
// $db = \Config\Database::connect();
public function syncEmails($tos="", $ccs="", $bccs="") {
$db = \Config\Database::connect();
// // Khusus Untuk Simpan email yg dimasukkan
// $allEmails = $tos .",". $ccs .",". $bccs;
// // pecah jadi array
// $emailArr = array_filter(array_map('trim', explode(',', $allEmails)));
// // optional: lowercase biar konsisten
// $emailArr = array_map('strtolower', $emailArr);
// // buang duplikat di request
// $emailArr = array_unique($emailArr);
// Khusus Untuk Simpan email yg dimasukkan
$allEmails = $tos .",". $ccs .",". $bccs;
// pecah jadi array
$emailArr = array_filter(array_map('trim', explode(',', $allEmails)));
// optional: lowercase biar konsisten
$emailArr = array_map('strtolower', $emailArr);
// buang duplikat di request
$emailArr = array_unique($emailArr);
// // GUARD CLAUSE (WAJIB)
// if (empty($emailArr)) {
// return;
// }
// GUARD CLAUSE (WAJIB)
if (empty($emailArr)) {
return;
}
// // CEK email
// $placeholders = implode(',', array_fill(0, count($emailArr), '?'));
// $sql = "SELECT email FROM emails WHERE email IN ($placeholders)";
// $query = $db->query($sql, array_values($emailArr));
// $existingEmails = array_column($query->getResultArray(), 'email');
// $newEmails = array_diff($emailArr, $existingEmails);
// CEK email
$placeholders = implode(',', array_fill(0, count($emailArr), '?'));
$sql = "SELECT email FROM emails WHERE email IN ($placeholders)";
$query = $db->query($sql, array_values($emailArr));
$existingEmails = array_column($query->getResultArray(), 'email');
$newEmails = array_diff($emailArr, $existingEmails);
// if (!empty($newEmails)) {
// $values = [];
// $binds = [];
if (!empty($newEmails)) {
$values = [];
$binds = [];
// foreach ($newEmails as $email) {
// $values[] = "(?, NULL)";
// $binds[] = $email;
// }
// $sql = "INSERT INTO emails (email, enddate) VALUES " . implode(',', $values);
// $db->query($sql, $binds);
// }
// }
foreach ($newEmails as $email) {
$values[] = "(?, NULL)";
$binds[] = $email;
}
$sql = "INSERT INTO emails (email, enddate) VALUES " . implode(',', $values);
$db->query($sql, $binds);
}
}
public function export(){
$db = \Config\Database::connect();