From 4b864cc658f6ca05ff0c7e2b4df80af39714e884 Mon Sep 17 00:00:00 2001 From: kapsona777 Date: Thu, 24 Oct 2024 11:24:43 +0400 Subject: [PATCH 1/6] first check --- public/userarea/apilogic/process_import.php | 431 ++++++++++---------- 1 file changed, 210 insertions(+), 221 deletions(-) diff --git a/public/userarea/apilogic/process_import.php b/public/userarea/apilogic/process_import.php index 0bb510e..e3de31f 100644 --- a/public/userarea/apilogic/process_import.php +++ b/public/userarea/apilogic/process_import.php @@ -1,235 +1,224 @@ connect_error) { - die("Connection failed: " . $conn->connect_error); +try { + $pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass); + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch (PDOException $e) { + die("Connection failed: " . $e->getMessage()); } -// Recover processed JSON +// Fetch unprocessed JSON files $query = "SELECT * FROM temp_json_queue WHERE processed = 0"; -$result = $conn->query($query); +$stmt = $pdo->prepare($query); +$stmt->execute(); +$jsonEntries = $stmt->fetchAll(PDO::FETCH_ASSOC); -if (!$result) { - die("Database query error: " . $conn->error); -} - -if ($result->num_rows > 0) { - while ($row = $result->fetch_assoc()) { - $uuid = $row['uuid']; - $lab_id = $row['lab_id']; - $json_data = $row['json_data']; - $data = json_decode($json_data, true); - - - if (json_last_error() !== JSON_ERROR_NONE) { - continue; - } - - // 1. Insert data in products - $product = $data['product']; - $products_refnumber = isset($product['products_refnumber']) ? $conn->real_escape_string($product['products_refnumber']) : null; - $products_description = isset($product['products_description']) ? $conn->real_escape_string($product['products_description']) : null; - $products_style = isset($product['products_style']) ? $conn->real_escape_string($product['products_style']) : null; - $products_styledescription = isset($product['products_styledescription']) ? $conn->real_escape_string($product['products_styledescription']) : null; - $products_sku = isset($product['products_sku']) ? $conn->real_escape_string($product['products_sku']) : null; - $products_color = isset($product['products_color']) ? $conn->real_escape_string($product['products_color']) : null; - $products_season = isset($product['products_season']) ? $conn->real_escape_string($product['products_season']) : null; - $products_market = isset($product['products_market']) ? $conn->real_escape_string($product['products_market']) : null; - $products_order = isset($product['products_order']) ? $conn->real_escape_string($product['products_order']) : null; - $product_buyer = isset($product['product_buyer']) ? $conn->real_escape_string($product['product_buyer']) : null; - $product_claimedfiber = isset($product['product_claimedfiber']) ? $conn->real_escape_string($product['product_claimedfiber']) : null; - $products_fibercontentresult = isset($product['products_fibercontentresult']) ? $conn->real_escape_string($product['products_fibercontentresult']) : null; - $namesupplier = isset($product['namesupplier']) ? $conn->real_escape_string($product['namesupplier']) : null; - $agerange = isset($product['agerange']) ? $conn->real_escape_string($product['agerange']) : null; - $products_billto = isset($product['products_billto']) ? $conn->real_escape_string($product['products_billto']) : null; - $products_billtocde = isset($product['products_billtocde']) ? $conn->real_escape_string($product['products_billtocde']) : null; - $products_codeanddesc = isset($product['products_codeanddesc']) ? $conn->real_escape_string($product['products_codeanddesc']) : null; - $products_division = isset($product['products_division']) ? $conn->real_escape_string($product['products_division']) : null; - $products_phase = isset($product['products_phase']) ? $conn->real_escape_string($product['products_phase']) : null; - $timestampinsert = isset($product['timestampinsert']) ? $conn->real_escape_string($product['timestampinsert']) : null; - $products_country = isset($product['products_country']) ? $conn->real_escape_string($product['products_country']) : null; - $products_region = isset($product['products_region']) ? $conn->real_escape_string($product['products_region']) : null; - $dateprod = isset($product['dateprod']) ? $conn->real_escape_string($product['dateprod']) : null; - $dateinlab = isset($product['dateinlab']) ? $conn->real_escape_string($product['dateinlab']) : null; - $dateoutlab = isset($product['dateoutlab']) ? $conn->real_escape_string($product['dateoutlab']) : null; - $labservice = isset($product['labservice']) ? $conn->real_escape_string($product['labservice']) : null; - - // Recover id products - $query_product = "INSERT INTO products ( - products_refnumber, products_description, products_style, products_styledescription, products_sku, - products_color, products_season, products_market, products_order, product_buyer, product_claimedfiber, - products_fibercontentresult, namesupplier, agerange, products_billto, products_billtocde, - products_codeanddesc, products_division, products_phase, timestampinsert, products_country, products_region, - dateprod, dateinlab, dateoutlab, labservice, idcompany - ) VALUES ( - '$products_refnumber', '$products_description', '$products_style', '$products_styledescription', '$products_sku', - '$products_color', '$products_season', '$products_market', '$products_order', '$product_buyer', '$product_claimedfiber', - '$products_fibercontentresult', '$namesupplier', '$agerange', '$products_billto', '$products_billtocde', - '$products_codeanddesc', '$products_division', '$products_phase', '$timestampinsert', '$products_country', '$products_region', - '$dateprod', '$dateinlab', '$dateoutlab', '$labservice', $idcompany - ) ON DUPLICATE KEY UPDATE - products_description = '$products_description', products_style = '$products_style', - products_styledescription = '$products_styledescription', products_sku = '$products_sku', - products_color = '$products_color', products_season = '$products_season', products_market = '$products_market', - products_order = '$products_order', product_buyer = '$product_buyer', product_claimedfiber = '$product_claimedfiber', - products_fibercontentresult = '$products_fibercontentresult', namesupplier = '$namesupplier', - agerange = '$agerange', products_billto = '$products_billto', products_billtocde = '$products_billtocde', - products_codeanddesc = '$products_codeanddesc', products_division = '$products_division', - products_phase = '$products_phase', timestampinsert = '$timestampinsert', products_country = '$products_country', - products_region = '$products_region', dateprod = '$dateprod', dateinlab = '$dateinlab', dateoutlab = '$dateoutlab', - labservice = '$labservice'"; - - if ($conn->query($query_product)) { - $idproducts = $conn->insert_id; - - // 2.Insert Reports - foreach ($product['reports'] as $report) { - $reportsNumberLab = $conn->real_escape_string($report['reportsNumberLab']); - $reportDateIn = isset($report['reportDateIn']) ? $conn->real_escape_string($report['reportDateIn']) : null; - $reportsDateOut = isset($report['reportsDateOut']) ? $conn->real_escape_string($report['reportsDateOut']) : null; - $reportsDateDue = isset($report['reportsDateDue']) ? $conn->real_escape_string($report['reportsDateDue']) : null; - $reportsRating = isset($report['reportsRating']) ? $conn->real_escape_string($report['reportsRating']) : null; - $reportsRating2 = isset($report['reportsRating2']) ? $conn->real_escape_string($report['reportsRating2']) : null; - $pdffilename = isset($report['pdffilename']) ? $conn->real_escape_string($report['pdffilename']) : null; - $reports_LabName = isset($report['reports_LabName']) ? $conn->real_escape_string($report['reports_LabName']) : null; - $reports_testype = isset($report['reports_testype']) ? $conn->real_escape_string($report['reports_testype']) : null; - $reports_invoicenumber = isset($report['reports_invoicenumber']) ? $conn->real_escape_string($report['reports_invoicenumber']) : null; - $reports_invoiceamount = isset($report['reports_invoiceamount']) ? $conn->real_escape_string($report['reports_invoiceamount']) : null; - $reports_invoiceadate = isset($report['reports_invoiceadate']) ? $conn->real_escape_string($report['reports_invoiceadate']) : null; - - - $query_report = "INSERT INTO reports ( - idproducts, reportsNumberLab, reportDateIn, reportsDateOut, reportsDateDue, - reportsRating, reportsRating2, pdffilename, reports_LabName, reports_testype, - reports_invoicenumber, reports_invoiceamount, reports_invoiceadate, idcompany - ) VALUES ( - $idproducts, '$reportsNumberLab', '$reportDateIn', '$reportsDateOut', '$reportsDateDue', - '$reportsRating', '$reportsRating2', '$pdffilename', '$reports_LabName', '$reports_testype', - '$reports_invoicenumber', '$reports_invoiceamount', '$reports_invoiceadate', $idcompany - ) ON DUPLICATE KEY UPDATE - reportDateIn = '$reportDateIn', reportsDateOut = '$reportsDateOut', reportsDateDue = '$reportsDateDue', - reportsRating = '$reportsRating', reportsRating2 = '$reportsRating2', pdffilename = '$pdffilename', - reports_LabName = '$reports_LabName', reports_testype = '$reports_testype', - reports_invoicenumber = '$reports_invoicenumber', reports_invoiceamount = '$reports_invoiceamount', - reports_invoiceadate = '$reports_invoiceadate'"; - - if ($conn->query($query_report)) { - $idreports = $conn->insert_id; - - // 3. Insert Parts - foreach ($report['parts'] as $part) { - $partsCode = $conn->real_escape_string($part['partsCode']); - $partsDescription = isset($part['partsDescription']) ? $conn->real_escape_string($part['partsDescription']) : null; - $partsColor = isset($part['partsColor']) ? $conn->real_escape_string($part['partsColor']) : null; - $partsMaterial = isset($part['partsMaterial']) ? $conn->real_escape_string($part['partsMaterial']) : null; - - - $query_part = "INSERT INTO parts ( - idreports, idproducts, partsCode, partsDescription, partsColor, partsMaterial, idcompany - ) VALUES ( - $idreports, $idproducts, '$partsCode', '$partsDescription', '$partsColor', '$partsMaterial', $idcompany - ) ON DUPLICATE KEY UPDATE - partsDescription = '$partsDescription', partsColor = '$partsColor', partsMaterial = '$partsMaterial'"; - - if ($conn->query($query_part)) { - $idPart = $conn->insert_id; - - // 4. Insert `analyses` - foreach ($part['analyses'] as $analysis) { - $result_TestName = $conn->real_escape_string($analysis['result_TestName']); - $test_Rating = isset($analysis['test_Rating']) ? $conn->real_escape_string($analysis['test_Rating']) : null; - $test_Rating2 = isset($analysis['test_Rating2']) ? $conn->real_escape_string($analysis['test_Rating2']) : null; - $requirements = isset($analysis['requirements']) ? $conn->real_escape_string($analysis['requirements']) : null; - $reference = isset($analysis['reference']) ? $conn->real_escape_string($analysis['reference']) : null; - $analysisgroupcode = isset($analysis['analysisgroupcode']) ? $conn->real_escape_string($analysis['analysisgroupcode']) : null; - $packagecode = isset($analysis['packagecode']) ? $conn->real_escape_string($analysis['packagecode']) : null; - - // Connessione al database già esistente - $idanalysisvocabulary = null; - $temp_TestName = null; - $requires_intervention = 0; - - // Controllo nella tabella analysisvocabulary - $sql_vocabulary = "SELECT idanalysisvocabulary - FROM analysisvocabulary - WHERE analysiscode = '$analysisgroupcode' - AND preferred = 'Y' - LIMIT 1"; - $result_vocabulary = $conn->query($sql_vocabulary); - - if ($result_vocabulary && $result_vocabulary->num_rows > 0) { - // Prende l'idanalysisvocabulary se presente - $row = $result_vocabulary->fetch_assoc(); - $idanalysisvocabulary = $row['idanalysisvocabulary']; - $analysis['result_TestName'] = $idanalysisvocabulary; - } else { - // Se non presente, necessita di intervento e salva in temp_TestName - $temp_TestName = $conn->real_escape_string($analysis['result_TestName']); - $requires_intervention = 1; - } - - // Inserimento nella tabella analysis_project con il flag di intervento - $query_analysis = "INSERT INTO analysis_project ( - test_Rating, test_Rating2, requirements, reference, analysisgroupcode, idPart, - idreports, idproducts, idcompany, requires_intervention, temp_TestName - ) VALUES ( - '$test_Rating', '$test_Rating2', '$requirements', '$reference', '$analysisgroupcode', - '$idPart', '$idreports', '$idproducts', $idcompany, $requires_intervention, '$temp_TestName' - ) ON DUPLICATE KEY UPDATE - test_Rating = '$test_Rating', test_Rating2 = '$test_Rating2', - requires_intervention = $requires_intervention, temp_TestName = '$temp_TestName'"; - - - if ($conn->query($query_analysis)) { - $idAnalysis_Project = $conn->insert_id; - - // 5. Insert results - foreach ($analysis['results'] as $result) { - $result_AnalytsName = $conn->real_escape_string($result['result_AnalytsName']); - $result_AnalytsRating = isset($result['result_AnalytsRating']) ? $conn->real_escape_string($result['result_AnalytsRating']) : null; - $result_Value = isset($result['result_Value']) ? $conn->real_escape_string($result['result_Value']) : null; - $result_Comment = isset($result['result_Comment']) ? $conn->real_escape_string($result['result_Comment']) : null; - $test_Rating = isset($result['test_Rating']) ? $conn->real_escape_string($result['test_Rating']) : null; - $test_Rating2 = isset($result['test_Rating2']) ? $conn->real_escape_string($result['test_Rating2']) : null; - $result_UnitofMeasure = isset($result['result_UnitofMeasure']) ? $conn->real_escape_string($result['result_UnitofMeasure']) : null; - $cas = isset($result['cas']) ? $conn->real_escape_string($result['cas']) : null; - $requirements = isset($result['requirements']) ? $conn->real_escape_string($result['requirements']) : null; - $reference = isset($result['reference']) ? $conn->real_escape_string($result['reference']) : null; - - - $query_result = "INSERT INTO result_project ( - idPart, idAnalysis, idproducts, idreports, result_AnalytsName, result_AnalytsRating, - result_Value, result_Comment, test_Rating, test_Rating2, result_UnitofMeasure, cas, - requirements, reference, idcompany - ) VALUES ( - $idPart, $idAnalysis_Project, $idproducts, $idreports, '$result_AnalytsName', '$result_AnalytsRating', - '$result_Value', '$result_Comment', '$test_Rating', '$test_Rating2', '$result_UnitofMeasure', '$cas', - '$requirements', '$reference', $idcompany - ) ON DUPLICATE KEY UPDATE - result_AnalytsName = '$result_AnalytsName', result_AnalytsRating = '$result_AnalytsRating', - result_Value = '$result_Value', result_Comment = '$result_Comment', test_Rating = '$test_Rating', - test_Rating2 = '$test_Rating2', result_UnitofMeasure = '$result_UnitofMeasure', cas = '$cas', - requirements = '$requirements', reference = '$reference'"; - - $conn->query($query_result); - } - } - } - } +foreach ($jsonEntries as $entry) { + $data = json_decode($entry['json_data'], true); + + // Validate lab reference + $labId = getLaboratoryId($data['reflab'], $pdo); + if (!$labId) { + markForIntervention($entry['id'], $pdo); + continue; + } + + // Validate and insert product + $productId = insertProduct($data['product'], $pdo); + + if ($productId) { + // Insert reports, parts, analyses, and results + foreach ($data['product']['reports'] as $report) { + $reportId = insertReport($report, $productId, $labId, $pdo); + + foreach ($report['parts'] as $part) { + $partId = insertPart($part, $reportId, $pdo); + + foreach ($part['analyses'] as $analysis) { + $analysisId = insertAnalysis($analysis, $partId, $pdo); + + foreach ($analysis['results'] as $result) { + insertResult($result, $analysisId, $pdo); } } } - - // Change into processed - $update_query = "UPDATE temp_json_queue SET processed = 1 WHERE uuid = '$uuid'"; - $conn->query($update_query); } + + markAsProcessed($entry['id'], $pdo); + } else { + markForIntervention($entry['id'], $pdo); } -} else { - echo "No unprocessed JSON data found."; } -$conn->close(); +// Function definitions + +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) { + $query = "SELECT idproducts FROM products WHERE products_refnumber = :refnumber"; + $stmt = $pdo->prepare($query); + $stmt->execute(['refnumber' => $product['products_refnumber']]); + $productId = $stmt->fetchColumn(); + + if (!$productId) { + $query = "INSERT INTO products (products_refnumber, products_description, products_style, products_sku, products_color, products_season, products_market, products_order, product_buyer, product_claimedfiber, products_fibercontentresult, dateprod, namesupplier, agerange, products_billto, products_billtocde, products_codeanddesc, products_division, products_phase, products_country, products_region) + VALUES (:refnumber, :description, :style, :sku, :color, :season, :market, :order, :buyer, :claimedfiber, :fibercontentresult, :dateprod, :supplier, :agerange, :billto, :billtocde, :codeanddesc, :division, :phase, :country, :region)"; + $stmt = $pdo->prepare($query); + $stmt->execute([ + 'refnumber' => $product['products_refnumber'], + 'description' => $product['products_description'], + 'style' => $product['products_style'], + 'sku' => $product['products_sku'], + 'color' => $product['products_color'], + 'season' => $product['products_season'], + 'market' => $product['products_market'], + 'order' => $product['products_order'], + 'buyer' => $product['product_buyer'], + 'claimedfiber' => $product['product_claimedfiber'], + 'fibercontentresult' => $product['products_fibercontentresult'], + 'dateprod' => $product['dateprod'], + 'supplier' => $product['namesupplier'], + 'agerange' => $product['agerange'], + 'billto' => $product['products_billto'], + 'billtocde' => $product['products_billtocde'], + 'codeanddesc' => $product['products_codeanddesc'], + 'division' => $product['products_division'], + 'phase' => $product['products_phase'], + 'country' => $product['products_country'], + 'region' => $product['products_region'], + ]); + return $pdo->lastInsertId(); + } + return $productId; // Return existing product ID +} + +function insertReport($report, $productId, $labId, $pdo) { + // Check if the report already exists + $query = "SELECT idreports FROM reports WHERE reportsNumberLab = :reportsNumberLab AND idLabs = :idlaboratories"; + $stmt = $pdo->prepare($query); + $stmt->execute([ + 'reportsNumberLab' => $report['reportsNumberLab'], + 'idlaboratories' => $labId + ]); + $reportId = $stmt->fetchColumn(); + + if ($reportId) { + // Report already exists, return the existing ID + return $reportId; + } else { + // 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) + VALUES (:reportsNumberLab, :reportDateIn, :reportsDateOut, :reportsDateDue, :reportsRating, :reportsRating2, :pdffilename, :reports_LabName, :reports_testype, :reports_invoicenumber, :reports_invoiceamount, :reports_invoiceadate, :idproducts, :idlaboratories)"; + + $stmt = $pdo->prepare($query); + $stmt->execute([ + 'reportsNumberLab' => $report['reportsNumberLab'], + 'reportDateIn' => $report['reportDateIn'], + 'reportsDateOut' => $report['reportsDateOut'], + 'reportsDateDue' => $report['reportsDateDue'], + 'reportsRating' => $report['reportsRating'], + 'reportsRating2' => $report['reportsRating2'], + 'pdffilename' => $report['pdffilename'], + 'reports_LabName' => $report['reports_LabName'], + 'reports_testype' => $report['reports_testype'], + 'reports_invoicenumber' => $report['reports_invoicenumber'], + 'reports_invoiceamount' => $report['reports_invoiceamount'], + 'reports_invoiceadate' => $report['reports_invoiceadate'], + 'idproducts' => $productId, + 'idlaboratories' => $labId, + ]); + return $pdo->lastInsertId(); + } +} + +function insertPart($part, $reportId, $pdo) { + // Check if the part already exists + $query = "SELECT idparts FROM parts WHERE partsCode = :partsCode AND idreports = :idreports"; + $stmt = $pdo->prepare($query); + $stmt->execute([ + 'partsCode' => $part['partsCode'], + 'idreports' => $reportId + ]); + $partId = $stmt->fetchColumn(); + + if ($partId) { + // Part already exists, return the existing ID + return $partId; + } else { + // Insert new part + $query = "INSERT INTO parts (partsCode, partsDescription, partsColor, partsMaterial, idreports) + VALUES (:partsCode, :partsDescription, :partsColor, :partsMaterial, :idreports)"; + + $stmt = $pdo->prepare($query); + $stmt->execute([ + 'partsCode' => $part['partsCode'], + 'partsDescription' => $part['partsDescription'], + 'partsColor' => $part['partsColor'], + 'partsMaterial' => $part['partsMaterial'], + 'idreports' => $reportId, + ]); + return $pdo->lastInsertId(); + } +} + + +function insertAnalysis($analysis, $partId, $pdo) { + $query = "INSERT INTO analysis_project (result_TestName, test_Rating, test_Rating2, requirements, reference, analysisgroupcode, idPart) + VALUES (:result_TestName, :test_Rating, :test_Rating2, :requirements, :reference, :analysisgroupcode, :idparts)"; + + $stmt = $pdo->prepare($query); + $stmt->execute([ + 'result_TestName' => $analysis['result_TestName'], + 'test_Rating' => $analysis['test_Rating'], + 'test_Rating2' => $analysis['test_Rating2'], + 'requirements' => $analysis['requirements'], + 'reference' => $analysis['reference'], + 'analysisgroupcode' => $analysis['analysisgroupcode'], + 'idparts' => $partId, + ]); + return $pdo->lastInsertId(); +} + +function insertResult($result, $analysisId, $pdo) { + $query = "INSERT INTO result_project (result_AnalytsName, result_AnalytsRating, result_Value, result_Comment, test_Rating, test_Rating2, result_UnitofMeasure, cas, requirements, reference, idanalysis_project) + VALUES (:result_AnalytsName, :result_AnalytsRating, :result_Value, :result_Comment, :test_Rating, :test_Rating2, :result_UnitofMeasure, :cas, :requirements, :reference, :idanalysis_project)"; + + $stmt = $pdo->prepare($query); + $stmt->execute([ + 'result_AnalytsName' => $result['result_AnalytsName'], + 'result_AnalytsRating' => $result['result_AnalytsRating'], + 'result_Value' => $result['result_Value'], + 'result_Comment' => $result['result_Comment'], + 'test_Rating' => $result['test_Rating'], + 'test_Rating2' => $result['test_Rating2'], + 'result_UnitofMeasure' => $result['result_UnitofMeasure'], + 'cas' => $result['cas'], + 'requirements' => $result['requirements'], + 'reference' => $result['reference'], + 'idanalysis_project' => $analysisId, + ]); +} + +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) { + $query = "UPDATE temp_json_queue SET processed = 2 WHERE id = :id"; + $stmt = $pdo->prepare($query); + $stmt->execute(['id' => $id]); +} +?> From 3e7d64b782a04f20b10522d6647e03d3a3cc8adf Mon Sep 17 00:00:00 2001 From: kapsona777 Date: Thu, 24 Oct 2024 11:44:31 +0400 Subject: [PATCH 2/6] updated validation of json --- public/userarea/apilogic/process_import.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/public/userarea/apilogic/process_import.php b/public/userarea/apilogic/process_import.php index e3de31f..e239943 100644 --- a/public/userarea/apilogic/process_import.php +++ b/public/userarea/apilogic/process_import.php @@ -32,7 +32,7 @@ foreach ($jsonEntries as $entry) { // Validate and insert product $productId = insertProduct($data['product'], $pdo); - if ($productId) { + if ($productId && validateJson($data)) { // Insert reports, parts, analyses, and results foreach ($data['product']['reports'] as $report) { $reportId = insertReport($report, $productId, $labId, $pdo); @@ -58,6 +58,15 @@ foreach ($jsonEntries as $entry) { // Function definitions +function validateJson($json){ + $checkData = json_encode($json); + if(json_decode($checkData) !== null){ + return true; + } else { + return false; + } +} + function getLaboratoryId($reflab, $pdo) { $query = "SELECT idlab FROM laboratories WHERE reflab = :reflab"; $stmt = $pdo->prepare($query); From e7ea3ba909ce0b648be492278c690e1797ec07c8 Mon Sep 17 00:00:00 2001 From: kapsona777 Date: Thu, 24 Oct 2024 15:41:24 +0400 Subject: [PATCH 3/6] ids fix --- public/userarea/apilogic/process_import.php | 35 ++++++++++++--------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/public/userarea/apilogic/process_import.php b/public/userarea/apilogic/process_import.php index e239943..93d9a6d 100644 --- a/public/userarea/apilogic/process_import.php +++ b/public/userarea/apilogic/process_import.php @@ -30,7 +30,7 @@ foreach ($jsonEntries as $entry) { } // Validate and insert product - $productId = insertProduct($data['product'], $pdo); + $productId = insertProduct($data['product'], $pdo); if ($productId && validateJson($data)) { // Insert reports, parts, analyses, and results @@ -38,13 +38,13 @@ foreach ($jsonEntries as $entry) { $reportId = insertReport($report, $productId, $labId, $pdo); foreach ($report['parts'] as $part) { - $partId = insertPart($part, $reportId, $pdo); + $partId = insertPart($part, $reportId, $productId, $pdo); foreach ($part['analyses'] as $analysis) { - $analysisId = insertAnalysis($analysis, $partId, $pdo); + $analysisId = insertAnalysis($analysis, $partId, $productId, $pdo); foreach ($analysis['results'] as $result) { - insertResult($result, $analysisId, $pdo); + insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo); } } } @@ -151,7 +151,7 @@ function insertReport($report, $productId, $labId, $pdo) { } } -function insertPart($part, $reportId, $pdo) { +function insertPart($part, $reportId,$productId, $pdo) { // Check if the part already exists $query = "SELECT idparts FROM parts WHERE partsCode = :partsCode AND idreports = :idreports"; $stmt = $pdo->prepare($query); @@ -164,13 +164,14 @@ function insertPart($part, $reportId, $pdo) { 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) - VALUES (:partsCode, :partsDescription, :partsColor, :partsMaterial, :idreports)"; + $query = "INSERT INTO parts (partsCode, partsDescription, partsColor, partsMaterial, idreports, idproducts) + VALUES (:partsCode, :partsDescription, :partsColor, :partsMaterial, :idreports, :idproducts)"; $stmt = $pdo->prepare($query); $stmt->execute([ + 'idproducts' => $productId, 'partsCode' => $part['partsCode'], 'partsDescription' => $part['partsDescription'], 'partsColor' => $part['partsColor'], @@ -182,26 +183,27 @@ function insertPart($part, $reportId, $pdo) { } -function insertAnalysis($analysis, $partId, $pdo) { - $query = "INSERT INTO analysis_project (result_TestName, test_Rating, test_Rating2, requirements, reference, analysisgroupcode, idPart) - VALUES (:result_TestName, :test_Rating, :test_Rating2, :requirements, :reference, :analysisgroupcode, :idparts)"; +function insertAnalysis($analysis, $partId, $productId, $pdo) { + $query = "INSERT INTO analysis_project (result_TestName, test_Rating, test_Rating2, requirements, reference, analysisgroupcode, idpart, idproducts) + VALUES (:result_TestName, :test_Rating, :test_Rating2, :requirements, :reference, :analysisgroupcode, :idpart , :idproducts)"; $stmt = $pdo->prepare($query); $stmt->execute([ + 'idproducts' => $productId, 'result_TestName' => $analysis['result_TestName'], 'test_Rating' => $analysis['test_Rating'], 'test_Rating2' => $analysis['test_Rating2'], 'requirements' => $analysis['requirements'], 'reference' => $analysis['reference'], 'analysisgroupcode' => $analysis['analysisgroupcode'], - 'idparts' => $partId, + 'idpart' => $partId, ]); return $pdo->lastInsertId(); } -function insertResult($result, $analysisId, $pdo) { - $query = "INSERT INTO result_project (result_AnalytsName, result_AnalytsRating, result_Value, result_Comment, test_Rating, test_Rating2, result_UnitofMeasure, cas, requirements, reference, idanalysis_project) - VALUES (:result_AnalytsName, :result_AnalytsRating, :result_Value, :result_Comment, :test_Rating, :test_Rating2, :result_UnitofMeasure, :cas, :requirements, :reference, :idanalysis_project)"; +function insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo) { + $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) + VALUES (:result_AnalytsName, :result_AnalytsRating, :result_Value, :result_Comment, :test_Rating, :test_Rating2, :result_UnitofMeasure, :cas, :requirements, :reference, :idanalysis_project, :idpart, :idproducts, :idreports)"; $stmt = $pdo->prepare($query); $stmt->execute([ @@ -216,6 +218,9 @@ function insertResult($result, $analysisId, $pdo) { 'requirements' => $result['requirements'], 'reference' => $result['reference'], 'idanalysis_project' => $analysisId, + 'idpart' => $partId, + 'idproducts' => $productId, + 'idreports' => $reportId, ]); } From da95ee6c2f64df1ece55a1733817790a51e7aa19 Mon Sep 17 00:00:00 2001 From: Claudio Date: Thu, 24 Oct 2024 15:54:28 +0200 Subject: [PATCH 4/6] added intervnetion page --- public/userarea/importify/delete_json.php | 41 +++++ .../userarea/importify/interventionlist.php | 148 ++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 public/userarea/importify/delete_json.php create mode 100644 public/userarea/importify/interventionlist.php diff --git a/public/userarea/importify/delete_json.php b/public/userarea/importify/delete_json.php new file mode 100644 index 0000000..9a288dd --- /dev/null +++ b/public/userarea/importify/delete_json.php @@ -0,0 +1,41 @@ +connect_error) { + echo "error"; // Errore di connessione + exit; + } + + // Prepara la query di cancellazione + $sql = "DELETE FROM temp_json_queue WHERE id = ?"; + + // Utilizza una prepared statement per evitare SQL injection + $stmt = $conn->prepare($sql); + $stmt->bind_param("i", $id); + + // Esegui la query e verifica il risultato + if ($stmt->execute()) { + // Imposta header per evitare output non necessari + header('Content-Type: text/plain'); + echo "success"; // Cancellazione riuscita + } else { + echo "error"; // Errore durante la cancellazione + } + + // Chiude la connessione e la prepared statement + $stmt->close(); + $conn->close(); +} else { + echo "error"; // Errore: nessun ID passato +} diff --git a/public/userarea/importify/interventionlist.php b/public/userarea/importify/interventionlist.php new file mode 100644 index 0000000..e63eb58 --- /dev/null +++ b/public/userarea/importify/interventionlist.php @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + + +
+
+
+
+
+

Intervention necessary

+
+
+
+ +
+
+
+
+
Records
+
+ + + + + + + + + + + + connect_error) { + die("Connection failed: " . $conn->connect_error); + } + + // Query for rows with processed = 2 + $sql = "SELECT * FROM temp_json_queue WHERE processed = 2"; + $result = $conn->query($sql); + + if ($result->num_rows > 0) { + while ($row = $result->fetch_assoc()) { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + } else { + echo ""; + } + + $conn->close(); + ?> + +
IDUUIDLab IDReceived AtActions
" . $row['id'] . "" . $row['uuid'] . "" . $row['lab_id'] . "" . $row['received_at'] . " + Import + +
No records found
+
+
+
+
+
+ +
+
+
+ + +
+
+ + + + + + \ No newline at end of file From 01b543dd741bd2f533007ba7743bcab09dfde429 Mon Sep 17 00:00:00 2001 From: kapsona777 Date: Fri, 25 Oct 2024 14:24:22 +0400 Subject: [PATCH 5/6] fix idreport in analysis table and uuid in all table as importcode --- public/userarea/apilogic/process_import.php | 47 ++++++++++++--------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/public/userarea/apilogic/process_import.php b/public/userarea/apilogic/process_import.php index 93d9a6d..4c1ebe6 100644 --- a/public/userarea/apilogic/process_import.php +++ b/public/userarea/apilogic/process_import.php @@ -21,6 +21,7 @@ $jsonEntries = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($jsonEntries as $entry) { $data = json_decode($entry['json_data'], true); + $uuid = $entry['uuid']; // Validate lab reference $labId = getLaboratoryId($data['reflab'], $pdo); @@ -30,21 +31,21 @@ foreach ($jsonEntries as $entry) { } // Validate and insert product - $productId = insertProduct($data['product'], $pdo); + $productId = insertProduct($data['product'], $pdo, $uuid); if ($productId && validateJson($data)) { // Insert reports, parts, analyses, and results foreach ($data['product']['reports'] as $report) { - $reportId = insertReport($report, $productId, $labId, $pdo); + $reportId = insertReport($report, $productId, $labId, $pdo, $uuid); foreach ($report['parts'] as $part) { - $partId = insertPart($part, $reportId, $productId, $pdo); + $partId = insertPart($part, $reportId, $productId, $pdo, $uuid); foreach ($part['analyses'] as $analysis) { - $analysisId = insertAnalysis($analysis, $partId, $productId, $pdo); + $analysisId = insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid); foreach ($analysis['results'] as $result) { - insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo); + insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo, $uuid); } } } @@ -74,15 +75,15 @@ function getLaboratoryId($reflab, $pdo) { return $stmt->fetchColumn(); } -function insertProduct($product, $pdo) { +function insertProduct($product, $pdo, $uuid) { $query = "SELECT idproducts FROM products WHERE products_refnumber = :refnumber"; $stmt = $pdo->prepare($query); $stmt->execute(['refnumber' => $product['products_refnumber']]); $productId = $stmt->fetchColumn(); if (!$productId) { - $query = "INSERT INTO products (products_refnumber, products_description, products_style, products_sku, products_color, products_season, products_market, products_order, product_buyer, product_claimedfiber, products_fibercontentresult, dateprod, namesupplier, agerange, products_billto, products_billtocde, products_codeanddesc, products_division, products_phase, products_country, products_region) - VALUES (:refnumber, :description, :style, :sku, :color, :season, :market, :order, :buyer, :claimedfiber, :fibercontentresult, :dateprod, :supplier, :agerange, :billto, :billtocde, :codeanddesc, :division, :phase, :country, :region)"; + $query = "INSERT INTO products (products_refnumber, products_description, products_style, products_sku, products_color, products_season, products_market, products_order, product_buyer, product_claimedfiber, products_fibercontentresult, dateprod, namesupplier, agerange, products_billto, products_billtocde, products_codeanddesc, products_division, products_phase, products_country, products_region, importcode) + VALUES (:refnumber, :description, :style, :sku, :color, :season, :market, :order, :buyer, :claimedfiber, :fibercontentresult, :dateprod, :supplier, :agerange, :billto, :billtocde, :codeanddesc, :division, :phase, :country, :region, :importcode)"; $stmt = $pdo->prepare($query); $stmt->execute([ 'refnumber' => $product['products_refnumber'], @@ -106,13 +107,14 @@ function insertProduct($product, $pdo) { 'phase' => $product['products_phase'], 'country' => $product['products_country'], 'region' => $product['products_region'], + 'importcode' => $uuid ]); return $pdo->lastInsertId(); } return $productId; // Return existing product ID } -function insertReport($report, $productId, $labId, $pdo) { +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); @@ -127,8 +129,8 @@ function insertReport($report, $productId, $labId, $pdo) { return $reportId; } else { // 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) - VALUES (:reportsNumberLab, :reportDateIn, :reportsDateOut, :reportsDateDue, :reportsRating, :reportsRating2, :pdffilename, :reports_LabName, :reports_testype, :reports_invoicenumber, :reports_invoiceamount, :reports_invoiceadate, :idproducts, :idlaboratories)"; + $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([ @@ -146,12 +148,13 @@ function insertReport($report, $productId, $labId, $pdo) { 'reports_invoiceadate' => $report['reports_invoiceadate'], 'idproducts' => $productId, 'idlaboratories' => $labId, + 'importcode' => $uuid ]); return $pdo->lastInsertId(); } } -function insertPart($part, $reportId,$productId, $pdo) { +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); @@ -166,8 +169,8 @@ function insertPart($part, $reportId,$productId, $pdo) { return $partId; } else { // Insert new part - $query = "INSERT INTO parts (partsCode, partsDescription, partsColor, partsMaterial, idreports, idproducts) - VALUES (:partsCode, :partsDescription, :partsColor, :partsMaterial, :idreports, :idproducts)"; + $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([ @@ -177,19 +180,21 @@ function insertPart($part, $reportId,$productId, $pdo) { 'partsColor' => $part['partsColor'], 'partsMaterial' => $part['partsMaterial'], 'idreports' => $reportId, + 'importcode' => $uuid ]); return $pdo->lastInsertId(); } } -function insertAnalysis($analysis, $partId, $productId, $pdo) { - $query = "INSERT INTO analysis_project (result_TestName, test_Rating, test_Rating2, requirements, reference, analysisgroupcode, idpart, idproducts) - VALUES (:result_TestName, :test_Rating, :test_Rating2, :requirements, :reference, :analysisgroupcode, :idpart , :idproducts)"; +function insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid) { + $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, + 'idreports' => $reportId, 'result_TestName' => $analysis['result_TestName'], 'test_Rating' => $analysis['test_Rating'], 'test_Rating2' => $analysis['test_Rating2'], @@ -197,13 +202,14 @@ function insertAnalysis($analysis, $partId, $productId, $pdo) { 'reference' => $analysis['reference'], 'analysisgroupcode' => $analysis['analysisgroupcode'], 'idpart' => $partId, + 'importcode' => $uuid ]); return $pdo->lastInsertId(); } -function insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo) { - $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) - VALUES (:result_AnalytsName, :result_AnalytsRating, :result_Value, :result_Comment, :test_Rating, :test_Rating2, :result_UnitofMeasure, :cas, :requirements, :reference, :idanalysis_project, :idpart, :idproducts, :idreports)"; +function insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo, $uuid) { + $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([ @@ -221,6 +227,7 @@ function insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo 'idpart' => $partId, 'idproducts' => $productId, 'idreports' => $reportId, + 'importcode' => $uuid ]); } From fae8d17316dc19e14c2a81983bcf071400845e0e Mon Sep 17 00:00:00 2001 From: kapsona777 Date: Fri, 25 Oct 2024 16:08:59 +0400 Subject: [PATCH 6/6] checking vocabularies --- public/userarea/apilogic/process_import.php | 169 +++++++++++++++++--- 1 file changed, 147 insertions(+), 22 deletions(-) diff --git a/public/userarea/apilogic/process_import.php b/public/userarea/apilogic/process_import.php index 4c1ebe6..e5c929a 100644 --- a/public/userarea/apilogic/process_import.php +++ b/public/userarea/apilogic/process_import.php @@ -22,6 +22,85 @@ $jsonEntries = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($jsonEntries as $entry) { $data = json_decode($entry['json_data'], true); $uuid = $entry['uuid']; + $analysis = array(); + $compounds = array(); + + // check for result_TestName + foreach ($data['product']['reports'] as $report) { + foreach ($report['parts'] as $part) { + foreach ($part['analyses'] as $analysis) { + $analysisgroupcode = $analysis['analysisgroupcode']; + $result_TestName = $analysis['result_TestName']; + // groupcode validation + if($analysisgroupcode == '-' || $analysisgroupcode == '' || $analysisgroupcode == ' '){ + $analysisgroupcode = 'NO_GROUPCODE'; + } + // check in vocabulary + $query = "SELECT idanalysisvocabulary FROM analysisvocabulary WHERE analysiscode LIKE '$analysisgroupcode'"; + $stmt = $pdo->prepare($query); + $result = $stmt->execute(); + $result = $stmt->fetchColumn(); + 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){ + // add 0 to analysis array + array_push($analysis, 0); + }else{ + // add 1 to analysis array + array_push($analysis, 1); + } + }else{ + // add 1 to analysis array + array_push($analysis, 1); + } + } + } + } + + // check for result_AnalytsName + foreach ($data['product']['reports'] as $report) { + foreach ($report['parts'] as $part) { + foreach ($part['analyses'] as $analysis) { + foreach ($analysis['results'] as $result) { + $result_AnalytsName = $result['result_AnalytsName']; + $cas = $result['cas']; + + // cas validation + if($cas == '-' || $cas == '' || $cas == ' '){ + $cas = 'NO_CAS'; + } + + // check in vocabulary + $query = "SELECT idcompoundsvocabulary FROM compundsvocabulary WHERE cascompoundvocabulary LIKE '%$cas%'"; + $stmt = $pdo->prepare($query); + $result = $stmt->execute(); + $result = $stmt->fetchColumn(); + 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){ + // add 0 to compounds array + array_push($compounds, 0); + }else{ + // add 1 to compounds array + array_push($compounds, 1); + } + }else{ + // add 1 to compounds array + array_push($compounds, 1); + } + + } + } + } + } // Validate lab reference $labId = getLaboratoryId($data['reflab'], $pdo); @@ -30,31 +109,77 @@ foreach ($jsonEntries as $entry) { continue; } - // Validate and insert product - $productId = insertProduct($data['product'], $pdo, $uuid); - - if ($productId && validateJson($data)) { - // Insert reports, parts, analyses, and results - foreach ($data['product']['reports'] as $report) { - $reportId = insertReport($report, $productId, $labId, $pdo, $uuid); - - foreach ($report['parts'] as $part) { - $partId = insertPart($part, $reportId, $productId, $pdo, $uuid); - - foreach ($part['analyses'] as $analysis) { - $analysisId = insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid); - - foreach ($analysis['results'] as $result) { - insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo, $uuid); + if(validateJson($data) && !in_array(0, $analysis) && !in_array(0, $compounds)){ + // Validate and insert product + $productId = insertProduct($data['product'], $pdo, $uuid); + + if ($productId) { + // Insert reports, parts, analyses, and results + foreach ($data['product']['reports'] as $report) { + $reportId = insertReport($report, $productId, $labId, $pdo, $uuid); + + foreach ($report['parts'] as $part) { + $partId = insertPart($part, $reportId, $productId, $pdo, $uuid); + + foreach ($part['analyses'] as $analysis) { + $result_TestName = $analysis['result_TestName']; + $groupcode = $analysis['analysisgroupcode']; + + $query = "SELECT idanalysisvocabulary FROM analysisvocabulary WHERE analysiscode LIKE '$groupcode'"; + $stmt = $pdo->prepare($query); + $res = $stmt->execute(); + $res = $stmt->fetchColumn(); + if($res){ + $analysisCodeId = $res; + }else{ + $query = "SELECT idanalysisvocabulary FROM analysisvocabulary WHERE nameanalysisvoc LIKE '$result_TestName'"; + $stmt = $pdo->prepare($query); + $res = $stmt->execute(); + $res = $stmt->fetchColumn(); + if($res){ + $analysisCodeId = $res; + }else{ + $analysisCodeId = 'NO ANALYSIS ID FOUND'; + } + } + + $analysisId = insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid, $analysisCodeId); + + foreach ($analysis['results'] as $result) { + $result_AnalytsName = $result['result_AnalytsName']; + $cas = $result['cas']; + + $query = "SELECT idcompoundsvocabulary FROM compundsvocabulary WHERE cascompoundvocabulary LIKE '%$cas%'"; + $stmt = $pdo->prepare($query); + $res = $stmt->execute(); + $res = $stmt->fetchColumn(); + if($res){ + $compoundId = $res; + }else{ + $query = "SELECT idcompoundsvocabulary FROM compundsvocabulary WHERE namecompoundsvocabulary LIKE '$result_AnalytsName'"; + $stmt = $pdo->prepare($query); + $res = $stmt->execute(); + $res = $stmt->fetchColumn(); + if($res){ + $compoundId = $res; + }else{ + $compoundId = 'NO COMPOUND ID FOUND'; + } + } + insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo, $uuid, $compoundId); + } } } } + + markAsProcessed($entry['id'], $pdo); + } else { + markForIntervention($entry['id'], $pdo); } - - markAsProcessed($entry['id'], $pdo); } else { markForIntervention($entry['id'], $pdo); } + } // Function definitions @@ -187,7 +312,7 @@ function insertPart($part, $reportId,$productId, $pdo, $uuid) { } -function insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid) { +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)"; @@ -195,7 +320,7 @@ function insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid) $stmt->execute([ 'idproducts' => $productId, 'idreports' => $reportId, - 'result_TestName' => $analysis['result_TestName'], + 'result_TestName' => $analysisCodeId, 'test_Rating' => $analysis['test_Rating'], 'test_Rating2' => $analysis['test_Rating2'], 'requirements' => $analysis['requirements'], @@ -207,13 +332,13 @@ function insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid) return $pdo->lastInsertId(); } -function insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo, $uuid) { +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' => $result['result_AnalytsName'], + 'result_AnalytsName' => $compoundId, 'result_AnalytsRating' => $result['result_AnalytsRating'], 'result_Value' => $result['result_Value'], 'result_Comment' => $result['result_Comment'],