added api to temp and process api
This commit is contained in:
parent
787e2837d4
commit
836eb5881f
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
// Connessione al database
|
||||
include('../../Connections/repnew.php');
|
||||
// Inizia la sessione per gestire le variabili di sessione
|
||||
$conn = new mysqli($servername, $username, $password, $database);
|
||||
|
||||
// Verifica la connessione
|
||||
@ -27,6 +28,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
// Estrai alcune informazioni dal JSON
|
||||
$product_refnumber = $decoded_data['product']['products_refnumber']; // Numero prodotto
|
||||
$report_number = $decoded_data['product']['reports'][0]['reportsNumberLab']; // Numero report
|
||||
$rating = $decoded_data['product']['reports'][0]['reportsRating']; // Rating del report (es. Pass/Fail)
|
||||
$saved_at = date("Y-m-d H:i:s"); // Data del salvataggio
|
||||
|
||||
// Query per inserire i dati nella tabella temp_json_queue
|
||||
@ -34,12 +36,20 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$stmt->bind_param("sss", $uuid, $lab_id, $json_data);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
// Imposta una variabile di sessione per notificare l'importazione del report
|
||||
$_SESSION['new_report'] = [
|
||||
'report_number' => $report_number,
|
||||
'rating' => $rating,
|
||||
'timestamp' => time() // Puoi usare un timestamp per gestire la scadenza della notifica
|
||||
];
|
||||
|
||||
echo json_encode([
|
||||
"status" => "success",
|
||||
"message" => "Data successfully saved.",
|
||||
"uuid" => $uuid,
|
||||
"product_refnumber" => $product_refnumber, // Numero del prodotto
|
||||
"report_number" => $report_number, // Numero del report
|
||||
"rating" => $rating, // Rating del report
|
||||
"saved_at" => $saved_at // Data del salvataggio
|
||||
]);
|
||||
} else {
|
||||
|
||||
15
public/userarea/apilogic/check-new-report-session.php
Normal file
15
public/userarea/apilogic/check-new-report-session.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if (isset($_SESSION['new_report'])) {
|
||||
echo json_encode([
|
||||
"status" => "new_report",
|
||||
"report_number" => $_SESSION['new_report']['report_number'],
|
||||
"rating" => $_SESSION['new_report']['rating']
|
||||
]);
|
||||
|
||||
// Resetta la variabile di sessione per evitare duplicati
|
||||
unset($_SESSION['new_report']);
|
||||
} else {
|
||||
echo json_encode(["status" => "no_new_report"]);
|
||||
}
|
||||
235
public/userarea/apilogic/process_import.php
Normal file
235
public/userarea/apilogic/process_import.php
Normal file
@ -0,0 +1,235 @@
|
||||
<?php
|
||||
// Database connection
|
||||
$idcompany = 1;
|
||||
include('../../Connections/repnew.php');
|
||||
$conn = new mysqli($servername, $username, $password, $database);
|
||||
|
||||
if ($conn->connect_error) {
|
||||
die("Connection failed: " . $conn->connect_error);
|
||||
}
|
||||
|
||||
// Recover processed JSON
|
||||
$query = "SELECT * FROM temp_json_queue WHERE processed = 0";
|
||||
$result = $conn->query($query);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Change into processed
|
||||
$update_query = "UPDATE temp_json_queue SET processed = 1 WHERE uuid = '$uuid'";
|
||||
$conn->query($update_query);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "No unprocessed JSON data found.";
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
@ -95,4 +95,4 @@ include(BASE_PATH . "/public/userarea/include/generalsettings.php");
|
||||
|
||||
include(BASE_PATH . "/public/userarea/include/class/company.php");
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user