75 lines
1.5 KiB
PHP
75 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* @var $job InvoiceJob
|
|
*/
|
|
|
|
/*
|
|
echo "==========================\n";
|
|
echo "in send-invoice-email-runner\n";
|
|
echo "==========================\n";
|
|
*/
|
|
|
|
$started = new DateTime("now");
|
|
if(!$job->started) {
|
|
$job->started = $started->format("Y-m-d H:i:s");
|
|
$job->reconnectDB();
|
|
$job->save();
|
|
}
|
|
|
|
$job_return = new stdClass();
|
|
$job_return->sent = 0;
|
|
|
|
$pdfs_sent = 0;
|
|
$defer = false;
|
|
$timeout = false;
|
|
|
|
if($job->result) {
|
|
$job_return = json_decode($job->result);
|
|
if(json_last_error() === JSON_ERROR_NONE) {
|
|
$pdfs_sent = $job_return->sent;
|
|
} else {
|
|
$job_return = new stdClass();
|
|
$job_return->sent = 0;
|
|
}
|
|
}
|
|
|
|
|
|
$ic = new InvoiceController(false);
|
|
$ic->reconnectDB();
|
|
|
|
// main loop
|
|
do {
|
|
$now = new DateTime("now");
|
|
if($now->format("Y-m-d H:i:s") > $job->to_date." 23:59:59") {
|
|
$timeout = true;
|
|
break;
|
|
}
|
|
|
|
$email_return = $ic->_sendEmailInvoices(300);
|
|
if($email_return["defer"]) {
|
|
$defer = true;
|
|
}
|
|
$sent = $email_return["sent"];
|
|
$pdfs_sent += $sent;
|
|
$job_return->sent = $pdfs_sent;
|
|
$job->result = json_encode($job_return);
|
|
//$job->return = json_encode(["sent" => $sent]);
|
|
$job->reconnectDB();
|
|
$job->save();
|
|
} while($sent);
|
|
|
|
// prepare job update
|
|
if($timeout) {
|
|
$job->status = "timeout";
|
|
} elseif($defer) {
|
|
echo "email runner: deferring to next run\n";
|
|
$job->status = "defer";
|
|
} else {
|
|
$finished = new DateTime("now");
|
|
$job->finished = $finished->format("Y-m-d H:i:s");
|
|
$job->status = "finished";
|
|
}
|
|
|
|
$job->reconnectDB();
|
|
$job->save();
|