diff --git a/app/Controllers/JobWorker.php b/app/Controllers/JobWorker.php
index 5c099fe8..a0d5f694 100644
--- a/app/Controllers/JobWorker.php
+++ b/app/Controllers/JobWorker.php
@@ -6,6 +6,7 @@ namespace App\Controllers;
use App\Models\JobModel;
+use App\Models\FileModel;
class JobWorker extends AdminController
{
const STATUS_DONE = 'done';
@@ -287,23 +288,24 @@ class JobWorker extends AdminController
try
{
$response = $jobHandler($payload,$job->id);
+ $job_status = self::STATUS_DONE;
}
catch(\Exception $e)
{
$job_status = self::STATUS_FAILED;
$runtime = $runtime === null ? microtime(true) - $start : $runtime;
- $response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString()];
+ $response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString(),'scope' => 'task failed'];
}
$runtime = microtime(true) - $start;
- $job_status = self::STATUS_DONE;
+
}
catch (\Exception $e)
{
//die();
$job_status = self::STATUS_FAILED;
$runtime = $runtime === null ? microtime(true) - $start : $runtime;
- $response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString()];
+ $response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString(),'scope' => 'worker failed'];
}
$db->query("UPDATE jobs SET status=?, run_time=?, response=? WHERE id=? AND uuid=?", [
@@ -313,6 +315,21 @@ class JobWorker extends AdminController
$job->id,$job->uuid
]);
+ //update file status if this job is directly linked with a file id
+
+ if($job_status == self::STATUS_FAILED)
+ {
+ //get file from job payload
+ if(array_key_exists('file_id', $payload) && $payload['file_id'] != NULL && $payload['file_id'] != "" && is_numeric($payload['file_id']) && count($payload) == 1)
+ {
+ $fileModel = new FileModel();
+ $fileModel->where('id', $payload['file_id'])
+ ->set(['status' => 'failed','reason' => json_encode(['error_type' => 0,'error_summary' => [0],'error_data' => 'System Error, please contact Admin/Support team']) ])
+ ->update();
+ }
+
+ }
+
// echo "Job $job->id $job_status. Response - $response \n";
// echo "Job $job->id $job_status \n";
SELF::streamOutput("Job $job->id $job_status \n");
diff --git a/app/Views/employee_upload.php b/app/Views/employee_upload.php
index 9d40885e..cc94977d 100644
--- a/app/Views/employee_upload.php
+++ b/app/Views/employee_upload.php
@@ -476,6 +476,10 @@ function fetchFileError(file_id) {
var err_id = parseInt(key);
var err_count = file_error_data['error_summary'][key];
switch (err_id) {
+ case 0:
+ file_error_html +=
+ ""+file_error_data['error_data']+"";
+ break;
case 1:
file_error_html +=
"Mandatory values missing " +
@@ -562,7 +566,7 @@ function fetchFileError(file_id) {
// console.log('file_error_html_2', file_error_html)
}
- if (err_id != 5 && err_id != 6) {
+ if (err_id != 5 && err_id != 6 && err_id != 0) {
file_error_html += (file_error_html != "" ?
"