PreorderBilling
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
/**
|
||||
* @var $job InvoiceJob
|
||||
*/
|
||||
|
||||
/*
|
||||
echo "==========================\n";
|
||||
echo "in send-preorder-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 PreorderBillingInvoiceController(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();
|
||||
Reference in New Issue
Block a user