diff --git a/cron.php b/cron.php index d46d8313..61f5c850 100644 --- a/cron.php +++ b/cron.php @@ -17,6 +17,10 @@ $sql_companies = mysqli_query($mysqli,"SELECT * FROM companies, settings WHERE c while($row = mysqli_fetch_array($sql_companies)){ $company_id = $row['company_id']; $company_name = $row['company_name']; + $config_company_phone = $row['config_company_phone']; + if(strlen($config_company_phone)>2){ + $config_company_phone = substr($row['config_company_phone'],0,3)."-".substr($row['config_company_phone'],3,3)."-".substr($row['config_company_phone'],6,4); + } $config_enable_cron = $row['config_enable_cron']; $config_invoice_overdue_reminders = $row['config_invoice_overdue_reminders']; $config_invoice_prefix = $row['config_invoice_prefix']; @@ -61,7 +65,8 @@ while($row = mysqli_fetch_array($sql_companies)){ } //PAST DUE INVOICE ALERTS - $invoiceAlertArray = [$config_invoice_overdue_reminders]; + //$invoiceAlertArray = [$config_invoice_overdue_reminders]; + $invoiceAlertArray = [3,8,14,30,60,90,120]; foreach($invoiceAlertArray as $day){ @@ -81,11 +86,51 @@ while($row = mysqli_fetch_array($sql_companies)){ $invoice_status = $row['invoice_status']; $invoice_date = $row['invoice_date']; $invoice_due = $row['invoice_due']; + $invoice_url_key = $row['invoice_url_key']; $invoice_amount = $row['invoice_amount']; $client_id = $row['client_id']; $client_name = $row['client_name']; + $client_email = $row['client_email']; + mysqli_query($mysqli,"INSERT INTO alerts SET alert_type = 'Invoice', alert_message = 'Invoice $invoice_number for $client_name in the amount of $invoice_amount is overdue by $day days', alert_date = NOW(), company_id = $company_id"); + + $mail = new PHPMailer(true); + + try{ + + //Mail Server Settings + + $mail->SMTPDebug = 2; // Enable verbose debug output + $mail->isSMTP(); // Set mailer to use SMTP + $mail->Host = $config_smtp_host; // Specify main and backup SMTP servers + $mail->SMTPAuth = true; // Enable SMTP authentication + $mail->Username = $config_smtp_username; // SMTP username + $mail->Password = $config_smtp_password; // SMTP password + $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted + $mail->Port = $config_smtp_port; // TCP port to connect to + + //Recipients + $mail->setFrom($config_mail_from_email, $config_mail_from_name); + $mail->addAddress("$client_email", "$client_name"); // Add a recipient + + // Content + $mail->isHTML(true); // Set email format to HTML + + $mail->Subject = "Overdue Invoice $invoice_number"; + $mail->Body = "Hello $client_name,

According to our records, we have not received payment for invoice $invoice_number. Please submit your payment as soon as possible. If you have any questions please contact us at $config_company_phone. +

+ Please view the details of the invoice below.

Invoice: $invoice_number
Issue Date: $invoice_date
Total: $$invoice_amount
Due Date: $invoice_due


To view your invoice online click here


~
$company_name
$config_company_phone"; + + $mail->send(); + + mysqli_query($mysqli,"INSERT INTO history SET history_date = CURDATE(), history_status = 'Sent', history_description = 'Cron Emailed Overdue Invoice!', history_created_at = NOW(), invoice_id = $invoice_id, company_id = $company_id"); + + }catch (Exception $e) { + echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; + mysqli_query($mysqli,"INSERT INTO history SET history_date = CURDATE(), history_status = 'Sent', history_description = 'Cron Failed to send Overdue Invoice!', history_created_at = NOW(), invoice_id = $new_invoice_id, company_id = $company_id"); + } //End Mail Try + } }