added full logic of intervention
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
include('../../Connections/repnew.php');
|
||||
header('Content-Type: application/json');
|
||||
// Database connection
|
||||
$host = $servername;
|
||||
$db = $database;
|
||||
@@ -13,15 +14,22 @@ try {
|
||||
die("Connection failed: " . $e->getMessage());
|
||||
}
|
||||
|
||||
// Fetch unprocessed JSON files
|
||||
$query = "SELECT * FROM temp_json_queue WHERE processed = 0";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute();
|
||||
$jsonEntries = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$method = $_POST['method'];
|
||||
if ($method == 'intervention') {
|
||||
$query = "SELECT * FROM temp_json_queue WHERE processed = 2";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute();
|
||||
$jsonEntries = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
} else {
|
||||
$query = "SELECT * FROM temp_json_queue WHERE processed = 0";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute();
|
||||
$jsonEntries = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
foreach ($jsonEntries as $entry) {
|
||||
$data = json_decode($entry['json_data'], true);
|
||||
$uuid = $entry['uuid'];
|
||||
$uuid = $entry['uuid'];
|
||||
$analysisArr = array();
|
||||
$compoundsArr = array();
|
||||
|
||||
@@ -32,7 +40,7 @@ foreach ($jsonEntries as $entry) {
|
||||
$analysisgroupcode = $analysis['analysisgroupcode'];
|
||||
$result_TestName = $analysis['result_TestName'];
|
||||
// groupcode validation
|
||||
if($analysisgroupcode == '-' || $analysisgroupcode == '' || $analysisgroupcode == ' '){
|
||||
if ($analysisgroupcode == '-' || $analysisgroupcode == '' || $analysisgroupcode == ' ') {
|
||||
$analysisgroupcode = 'NO_GROUPCODE';
|
||||
}
|
||||
// check in vocabulary
|
||||
@@ -40,26 +48,26 @@ foreach ($jsonEntries as $entry) {
|
||||
$stmt = $pdo->prepare($query);
|
||||
$result = $stmt->execute();
|
||||
$result = $stmt->fetchColumn();
|
||||
if(!$result){
|
||||
if (!$result) {
|
||||
// check for result_TestName
|
||||
$query = "SELECT idanalysisvocabulary FROM analysisvocabulary WHERE nameanalysisvoc LIKE '$result_TestName'";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$result = $stmt->execute();
|
||||
$result = $stmt->fetchColumn();
|
||||
if(!$result){
|
||||
if (!$result) {
|
||||
// add 0 to analysis array
|
||||
array_push($analysisArr, 0);
|
||||
}else{
|
||||
} else {
|
||||
// add 1 to analysis array
|
||||
array_push($analysisArr, 1);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
// add 1 to analysis array
|
||||
array_push($analysisArr, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// check for result_AnalytsName
|
||||
foreach ($data['product']['reports'] as $report) {
|
||||
@@ -70,7 +78,7 @@ foreach ($jsonEntries as $entry) {
|
||||
$cas = $result['cas'];
|
||||
|
||||
// cas validation
|
||||
if($cas == '-' || $cas == '' || $cas == ' '){
|
||||
if ($cas == '-' || $cas == '' || $cas == ' ') {
|
||||
$cas = 'NO_CAS';
|
||||
}
|
||||
|
||||
@@ -79,40 +87,39 @@ foreach ($jsonEntries as $entry) {
|
||||
$stmt = $pdo->prepare($query);
|
||||
$result = $stmt->execute();
|
||||
$result = $stmt->fetchColumn();
|
||||
if(!$result){
|
||||
if (!$result) {
|
||||
// check for result_AnalytsName
|
||||
$query = "SELECT idcompoundsvocabulary FROM compundsvocabulary WHERE namecompoundsvocabulary LIKE '$result_AnalytsName'";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$result = $stmt->execute();
|
||||
$result = $stmt->fetchColumn();
|
||||
if(!$result){
|
||||
if (!$result) {
|
||||
// add 0 to compounds array
|
||||
array_push($compoundsArr, 0);
|
||||
}else{
|
||||
} else {
|
||||
// add 1 to compounds array
|
||||
array_push($compoundsArr, 1);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
// add 1 to compounds array
|
||||
array_push($compoundsArr, 1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Validate lab reference
|
||||
$labId = getLaboratoryId($data['reflab'], $pdo);
|
||||
if (!$labId) {
|
||||
markForIntervention($entry['id'], $pdo);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(validateJson($data) && !in_array(0, $analysisArr) && !in_array(0, $compoundsArr)){
|
||||
}
|
||||
|
||||
if (validateJson($data) && !in_array(0, $analysisArr) && !in_array(0, $compoundsArr)) {
|
||||
// Validate and insert product
|
||||
$productId = insertProduct($data['product'], $pdo, $uuid);
|
||||
|
||||
|
||||
if ($productId) {
|
||||
// Insert reports, parts, analyses, and results
|
||||
foreach ($data['product']['reports'] as $report) {
|
||||
@@ -124,21 +131,21 @@ foreach ($jsonEntries as $entry) {
|
||||
foreach ($part['analyses'] as $analysis) {
|
||||
$result_TestName = $analysis['result_TestName'];
|
||||
$analysisgroupcode = $analysis['analysisgroupcode'];
|
||||
|
||||
|
||||
$query = "SELECT idanalysisvocabulary FROM analysisvocabulary WHERE analysiscode LIKE '$analysisgroupcode'";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$res = $stmt->execute();
|
||||
$res = $stmt->fetchColumn();
|
||||
if($res){
|
||||
$res = $stmt->fetchColumn();
|
||||
if ($res) {
|
||||
$analysisCodeId = $res;
|
||||
}else{
|
||||
} else {
|
||||
$query = "SELECT idanalysisvocabulary FROM analysisvocabulary WHERE nameanalysisvoc LIKE '$result_TestName'";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$res = $stmt->execute();
|
||||
$res = $stmt->fetchColumn();
|
||||
if($res){
|
||||
if ($res) {
|
||||
$analysisCodeId = $res;
|
||||
}else{
|
||||
} else {
|
||||
$analysisCodeId = 'NO ANALYSIS ID FOUND';
|
||||
}
|
||||
}
|
||||
@@ -153,16 +160,16 @@ foreach ($jsonEntries as $entry) {
|
||||
$stmt = $pdo->prepare($query);
|
||||
$res = $stmt->execute();
|
||||
$res = $stmt->fetchColumn();
|
||||
if($res){
|
||||
if ($res) {
|
||||
$compoundId = $res;
|
||||
}else{
|
||||
} else {
|
||||
$query = "SELECT idcompoundsvocabulary FROM compundsvocabulary WHERE namecompoundsvocabulary LIKE '$result_AnalytsName'";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$res = $stmt->execute();
|
||||
$res = $stmt->fetchColumn();
|
||||
if($res){
|
||||
if ($res) {
|
||||
$compoundId = $res;
|
||||
}else{
|
||||
} else {
|
||||
$compoundId = 'NO COMPOUND ID FOUND';
|
||||
}
|
||||
}
|
||||
@@ -182,9 +189,13 @@ foreach ($jsonEntries as $entry) {
|
||||
importHistory($pdo, $uuid);
|
||||
}
|
||||
|
||||
|
||||
die(json_encode(['code' => 'success']));
|
||||
|
||||
// Function definitions
|
||||
|
||||
function importHistory($pdo, $uuid){
|
||||
function importHistory($pdo, $uuid)
|
||||
{
|
||||
$query = "INSERT INTO template_import_his (created_at, importcode, f_status, user_id, importfilename) VALUES (:created_at, :importcode, :f_status, :user_id, :importfilename)";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute([
|
||||
@@ -196,23 +207,26 @@ function importHistory($pdo, $uuid){
|
||||
]);
|
||||
}
|
||||
|
||||
function validateJson($json){
|
||||
function validateJson($json)
|
||||
{
|
||||
$checkData = json_encode($json);
|
||||
if(json_decode($checkData) !== null){
|
||||
if (json_decode($checkData) !== null) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function getLaboratoryId($reflab, $pdo) {
|
||||
function getLaboratoryId($reflab, $pdo)
|
||||
{
|
||||
$query = "SELECT idlab FROM laboratories WHERE reflab = :reflab";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute(['reflab' => $reflab]);
|
||||
return $stmt->fetchColumn();
|
||||
}
|
||||
|
||||
function insertProduct($product, $pdo, $uuid) {
|
||||
function insertProduct($product, $pdo, $uuid)
|
||||
{
|
||||
$query = "SELECT idproducts FROM products WHERE products_refnumber = :refnumber";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute(['refnumber' => $product['products_refnumber']]);
|
||||
@@ -251,7 +265,8 @@ function insertProduct($product, $pdo, $uuid) {
|
||||
return $productId; // Return existing product ID
|
||||
}
|
||||
|
||||
function insertReport($report, $productId, $labId, $pdo, $uuid) {
|
||||
function insertReport($report, $productId, $labId, $pdo, $uuid)
|
||||
{
|
||||
// Check if the report already exists
|
||||
$query = "SELECT idreports FROM reports WHERE reportsNumberLab = :reportsNumberLab AND idLabs = :idlaboratories";
|
||||
$stmt = $pdo->prepare($query);
|
||||
@@ -268,7 +283,7 @@ function insertReport($report, $productId, $labId, $pdo, $uuid) {
|
||||
// Insert new report
|
||||
$query = "INSERT INTO reports (reportsNumberLab, reportDateIn, reportsDateOut, reportsDateDue, reportsRating, reportsRating2, pdffilename, reports_LabName, reports_testype, reports_invoicenumber, reports_invoiceamount, reports_invoiceadate, idproducts, idLabs, importcode)
|
||||
VALUES (:reportsNumberLab, :reportDateIn, :reportsDateOut, :reportsDateDue, :reportsRating, :reportsRating2, :pdffilename, :reports_LabName, :reports_testype, :reports_invoicenumber, :reports_invoiceamount, :reports_invoiceadate, :idproducts, :idlaboratories, :importcode)";
|
||||
|
||||
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute([
|
||||
'reportsNumberLab' => $report['reportsNumberLab'],
|
||||
@@ -291,7 +306,8 @@ function insertReport($report, $productId, $labId, $pdo, $uuid) {
|
||||
}
|
||||
}
|
||||
|
||||
function insertPart($part, $reportId,$productId, $pdo, $uuid) {
|
||||
function insertPart($part, $reportId, $productId, $pdo, $uuid)
|
||||
{
|
||||
// Check if the part already exists
|
||||
$query = "SELECT idparts FROM parts WHERE partsCode = :partsCode AND idreports = :idreports";
|
||||
$stmt = $pdo->prepare($query);
|
||||
@@ -304,11 +320,11 @@ function insertPart($part, $reportId,$productId, $pdo, $uuid) {
|
||||
if ($partId) {
|
||||
// Part already exists, return the existing ID
|
||||
return $partId;
|
||||
} else {
|
||||
} else {
|
||||
// Insert new part
|
||||
$query = "INSERT INTO parts (partsCode, partsDescription, partsColor, partsMaterial, idreports, idproducts, importcode)
|
||||
VALUES (:partsCode, :partsDescription, :partsColor, :partsMaterial, :idreports, :idproducts, :importcode)";
|
||||
|
||||
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute([
|
||||
'idproducts' => $productId,
|
||||
@@ -324,10 +340,11 @@ function insertPart($part, $reportId,$productId, $pdo, $uuid) {
|
||||
}
|
||||
|
||||
|
||||
function insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid, $analysisCodeId) {
|
||||
function insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid, $analysisCodeId)
|
||||
{
|
||||
$query = "INSERT INTO analysis_project (result_TestName, test_Rating, test_Rating2, requirements, reference, analysisgroupcode, idpart, idproducts, idreports, importcode)
|
||||
VALUES (:result_TestName, :test_Rating, :test_Rating2, :requirements, :reference, :analysisgroupcode, :idpart , :idproducts, :idreports, :importcode)";
|
||||
|
||||
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute([
|
||||
'idproducts' => $productId,
|
||||
@@ -344,10 +361,11 @@ function insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid,
|
||||
return $pdo->lastInsertId();
|
||||
}
|
||||
|
||||
function insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo, $uuid, $compoundId) {
|
||||
function insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo, $uuid, $compoundId)
|
||||
{
|
||||
$query = "INSERT INTO result_project (result_AnalytsName, result_AnalytsRating, result_Value, result_Comment, test_Rating, test_Rating2, result_UnitofMeasure, cas, requirements, reference, idanalysis_project, idpart, idproducts, idreports, importcode)
|
||||
VALUES (:result_AnalytsName, :result_AnalytsRating, :result_Value, :result_Comment, :test_Rating, :test_Rating2, :result_UnitofMeasure, :cas, :requirements, :reference, :idanalysis_project, :idpart, :idproducts, :idreports, :importcode)";
|
||||
|
||||
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute([
|
||||
'result_AnalytsName' => $compoundId,
|
||||
@@ -368,15 +386,16 @@ function insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo
|
||||
]);
|
||||
}
|
||||
|
||||
function markAsProcessed($id, $pdo) {
|
||||
function markAsProcessed($id, $pdo)
|
||||
{
|
||||
$query = "UPDATE temp_json_queue SET processed = 1 WHERE id = :id";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute(['id' => $id]);
|
||||
}
|
||||
|
||||
function markForIntervention($id, $pdo) {
|
||||
function markForIntervention($id, $pdo)
|
||||
{
|
||||
$query = "UPDATE temp_json_queue SET processed = 2 WHERE id = :id";
|
||||
$stmt = $pdo->prepare($query);
|
||||
$stmt->execute(['id' => $id]);
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user