Merge branch 'Lasha_Kapanadze_process_import_branch' of http://192.168.1.93:8418/solocla/Moncler-Portal
This commit is contained in:
commit
f32a6c5cea
@ -1,235 +1,370 @@
|
|||||||
<?php
|
<?php
|
||||||
// Database connection
|
|
||||||
$idcompany = 1;
|
|
||||||
include('../../Connections/repnew.php');
|
include('../../Connections/repnew.php');
|
||||||
$conn = new mysqli($servername, $username, $password, $database);
|
// Database connection
|
||||||
|
$host = $servername;
|
||||||
|
$db = $database;
|
||||||
|
$user = $username;
|
||||||
|
$pass = $password;
|
||||||
|
|
||||||
if ($conn->connect_error) {
|
try {
|
||||||
die("Connection failed: " . $conn->connect_error);
|
$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";
|
$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) {
|
foreach ($jsonEntries as $entry) {
|
||||||
die("Database query error: " . $conn->error);
|
$data = json_decode($entry['json_data'], true);
|
||||||
}
|
$uuid = $entry['uuid'];
|
||||||
|
$analysis = array();
|
||||||
|
$compounds = array();
|
||||||
|
|
||||||
if ($result->num_rows > 0) {
|
// check for result_TestName
|
||||||
while ($row = $result->fetch_assoc()) {
|
foreach ($data['product']['reports'] as $report) {
|
||||||
$uuid = $row['uuid'];
|
foreach ($report['parts'] as $part) {
|
||||||
$lab_id = $row['lab_id'];
|
foreach ($part['analyses'] as $analysis) {
|
||||||
$json_data = $row['json_data'];
|
$analysisgroupcode = $analysis['analysisgroupcode'];
|
||||||
$data = json_decode($json_data, true);
|
$result_TestName = $analysis['result_TestName'];
|
||||||
|
// groupcode validation
|
||||||
|
if($analysisgroupcode == '-' || $analysisgroupcode == '' || $analysisgroupcode == ' '){
|
||||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
$analysisgroupcode = 'NO_GROUPCODE';
|
||||||
continue;
|
}
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 1. Insert data in products
|
// check for result_AnalytsName
|
||||||
$product = $data['product'];
|
foreach ($data['product']['reports'] as $report) {
|
||||||
$products_refnumber = isset($product['products_refnumber']) ? $conn->real_escape_string($product['products_refnumber']) : null;
|
foreach ($report['parts'] as $part) {
|
||||||
$products_description = isset($product['products_description']) ? $conn->real_escape_string($product['products_description']) : null;
|
foreach ($part['analyses'] as $analysis) {
|
||||||
$products_style = isset($product['products_style']) ? $conn->real_escape_string($product['products_style']) : null;
|
foreach ($analysis['results'] as $result) {
|
||||||
$products_styledescription = isset($product['products_styledescription']) ? $conn->real_escape_string($product['products_styledescription']) : null;
|
$result_AnalytsName = $result['result_AnalytsName'];
|
||||||
$products_sku = isset($product['products_sku']) ? $conn->real_escape_string($product['products_sku']) : null;
|
$cas = $result['cas'];
|
||||||
$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
|
// cas validation
|
||||||
$query_product = "INSERT INTO products (
|
if($cas == '-' || $cas == '' || $cas == ' '){
|
||||||
products_refnumber, products_description, products_style, products_styledescription, products_sku,
|
$cas = 'NO_CAS';
|
||||||
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)) {
|
// check in vocabulary
|
||||||
$idproducts = $conn->insert_id;
|
$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);
|
||||||
|
}
|
||||||
|
|
||||||
// 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;
|
// Validate lab reference
|
||||||
$reportsRating = isset($report['reportsRating']) ? $conn->real_escape_string($report['reportsRating']) : null;
|
$labId = getLaboratoryId($data['reflab'], $pdo);
|
||||||
$reportsRating2 = isset($report['reportsRating2']) ? $conn->real_escape_string($report['reportsRating2']) : null;
|
if (!$labId) {
|
||||||
$pdffilename = isset($report['pdffilename']) ? $conn->real_escape_string($report['pdffilename']) : null;
|
markForIntervention($entry['id'], $pdo);
|
||||||
$reports_LabName = isset($report['reports_LabName']) ? $conn->real_escape_string($report['reports_LabName']) : null;
|
continue;
|
||||||
$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;
|
if(validateJson($data) && !in_array(0, $analysis) && !in_array(0, $compounds)){
|
||||||
$reports_invoiceadate = isset($report['reports_invoiceadate']) ? $conn->real_escape_string($report['reports_invoiceadate']) : null;
|
// 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);
|
||||||
|
|
||||||
$query_report = "INSERT INTO reports (
|
foreach ($part['analyses'] as $analysis) {
|
||||||
idproducts, reportsNumberLab, reportDateIn, reportsDateOut, reportsDateDue,
|
$result_TestName = $analysis['result_TestName'];
|
||||||
reportsRating, reportsRating2, pdffilename, reports_LabName, reports_testype,
|
$groupcode = $analysis['analysisgroupcode'];
|
||||||
reports_invoicenumber, reports_invoiceamount, reports_invoiceadate, idcompany
|
|
||||||
) VALUES (
|
$query = "SELECT idanalysisvocabulary FROM analysisvocabulary WHERE analysiscode LIKE '$groupcode'";
|
||||||
$idproducts, '$reportsNumberLab', '$reportDateIn', '$reportsDateOut', '$reportsDateDue',
|
$stmt = $pdo->prepare($query);
|
||||||
'$reportsRating', '$reportsRating2', '$pdffilename', '$reports_LabName', '$reports_testype',
|
$res = $stmt->execute();
|
||||||
'$reports_invoicenumber', '$reports_invoiceamount', '$reports_invoiceadate', $idcompany
|
$res = $stmt->fetchColumn();
|
||||||
) ON DUPLICATE KEY UPDATE
|
if($res){
|
||||||
reportDateIn = '$reportDateIn', reportsDateOut = '$reportsDateOut', reportsDateDue = '$reportsDateDue',
|
$analysisCodeId = $res;
|
||||||
reportsRating = '$reportsRating', reportsRating2 = '$reportsRating2', pdffilename = '$pdffilename',
|
}else{
|
||||||
reports_LabName = '$reports_LabName', reports_testype = '$reports_testype',
|
$query = "SELECT idanalysisvocabulary FROM analysisvocabulary WHERE nameanalysisvoc LIKE '$result_TestName'";
|
||||||
reports_invoicenumber = '$reports_invoicenumber', reports_invoiceamount = '$reports_invoiceamount',
|
$stmt = $pdo->prepare($query);
|
||||||
reports_invoiceadate = '$reports_invoiceadate'";
|
$res = $stmt->execute();
|
||||||
|
$res = $stmt->fetchColumn();
|
||||||
|
if($res){
|
||||||
|
$analysisCodeId = $res;
|
||||||
|
}else{
|
||||||
|
$analysisCodeId = 'NO ANALYSIS ID FOUND';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($conn->query($query_report)) {
|
$analysisId = insertAnalysis($analysis, $partId, $productId, $reportId, $pdo, $uuid, $analysisCodeId);
|
||||||
$idreports = $conn->insert_id;
|
|
||||||
|
|
||||||
// 3. Insert Parts
|
foreach ($analysis['results'] as $result) {
|
||||||
foreach ($report['parts'] as $part) {
|
$result_AnalytsName = $result['result_AnalytsName'];
|
||||||
$partsCode = $conn->real_escape_string($part['partsCode']);
|
$cas = $result['cas'];
|
||||||
$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 = "SELECT idcompoundsvocabulary FROM compundsvocabulary WHERE cascompoundvocabulary LIKE '%$cas%'";
|
||||||
$query_part = "INSERT INTO parts (
|
$stmt = $pdo->prepare($query);
|
||||||
idreports, idproducts, partsCode, partsDescription, partsColor, partsMaterial, idcompany
|
$res = $stmt->execute();
|
||||||
) VALUES (
|
$res = $stmt->fetchColumn();
|
||||||
$idreports, $idproducts, '$partsCode', '$partsDescription', '$partsColor', '$partsMaterial', $idcompany
|
if($res){
|
||||||
) ON DUPLICATE KEY UPDATE
|
$compoundId = $res;
|
||||||
partsDescription = '$partsDescription', partsColor = '$partsColor', partsMaterial = '$partsMaterial'";
|
}else{
|
||||||
|
$query = "SELECT idcompoundsvocabulary FROM compundsvocabulary WHERE namecompoundsvocabulary LIKE '$result_AnalytsName'";
|
||||||
if ($conn->query($query_part)) {
|
$stmt = $pdo->prepare($query);
|
||||||
$idPart = $conn->insert_id;
|
$res = $stmt->execute();
|
||||||
|
$res = $stmt->fetchColumn();
|
||||||
// 4. Insert `analyses`
|
if($res){
|
||||||
foreach ($part['analyses'] as $analysis) {
|
$compoundId = $res;
|
||||||
$result_TestName = $conn->real_escape_string($analysis['result_TestName']);
|
}else{
|
||||||
$test_Rating = isset($analysis['test_Rating']) ? $conn->real_escape_string($analysis['test_Rating']) : null;
|
$compoundId = 'NO COMPOUND ID FOUND';
|
||||||
$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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
insertResult($result, $analysisId, $partId, $productId, $reportId, $pdo, $uuid, $compoundId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Change into processed
|
markAsProcessed($entry['id'], $pdo);
|
||||||
$update_query = "UPDATE temp_json_queue SET processed = 1 WHERE uuid = '$uuid'";
|
} else {
|
||||||
$conn->query($update_query);
|
markForIntervention($entry['id'], $pdo);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
markForIntervention($entry['id'], $pdo);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
echo "No unprocessed JSON data found.";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$conn->close();
|
// 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);
|
||||||
|
$stmt->execute(['reflab' => $reflab]);
|
||||||
|
return $stmt->fetchColumn();
|
||||||
|
}
|
||||||
|
|
||||||
|
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, 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'],
|
||||||
|
'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'],
|
||||||
|
'importcode' => $uuid
|
||||||
|
]);
|
||||||
|
return $pdo->lastInsertId();
|
||||||
|
}
|
||||||
|
return $productId; // Return existing product ID
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
$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, 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'],
|
||||||
|
'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,
|
||||||
|
'importcode' => $uuid
|
||||||
|
]);
|
||||||
|
return $pdo->lastInsertId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
$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, idproducts, importcode)
|
||||||
|
VALUES (:partsCode, :partsDescription, :partsColor, :partsMaterial, :idreports, :idproducts, :importcode)";
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare($query);
|
||||||
|
$stmt->execute([
|
||||||
|
'idproducts' => $productId,
|
||||||
|
'partsCode' => $part['partsCode'],
|
||||||
|
'partsDescription' => $part['partsDescription'],
|
||||||
|
'partsColor' => $part['partsColor'],
|
||||||
|
'partsMaterial' => $part['partsMaterial'],
|
||||||
|
'idreports' => $reportId,
|
||||||
|
'importcode' => $uuid
|
||||||
|
]);
|
||||||
|
return $pdo->lastInsertId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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,
|
||||||
|
'idreports' => $reportId,
|
||||||
|
'result_TestName' => $analysisCodeId,
|
||||||
|
'test_Rating' => $analysis['test_Rating'],
|
||||||
|
'test_Rating2' => $analysis['test_Rating2'],
|
||||||
|
'requirements' => $analysis['requirements'],
|
||||||
|
'reference' => $analysis['reference'],
|
||||||
|
'analysisgroupcode' => $analysis['analysisgroupcode'],
|
||||||
|
'idpart' => $partId,
|
||||||
|
'importcode' => $uuid
|
||||||
|
]);
|
||||||
|
return $pdo->lastInsertId();
|
||||||
|
}
|
||||||
|
|
||||||
|
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,
|
||||||
|
'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,
|
||||||
|
'idpart' => $partId,
|
||||||
|
'idproducts' => $productId,
|
||||||
|
'idreports' => $reportId,
|
||||||
|
'importcode' => $uuid
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
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]);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|||||||
41
public/userarea/importify/delete_json.php
Normal file
41
public/userarea/importify/delete_json.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
// Include connection and session files
|
||||||
|
include('../include/headscript.php');
|
||||||
|
include("../class/company.php");
|
||||||
|
$conn = new mysqli($servername, $username, $password, $database);
|
||||||
|
// Verifica se l'id è stato passato tramite POST
|
||||||
|
// Verifica se l'id è stato passato tramite POST
|
||||||
|
if (isset($_POST['id'])) {
|
||||||
|
$id = intval($_POST['id']); // Assicura che l'id sia un intero
|
||||||
|
|
||||||
|
// Connessione al database
|
||||||
|
$conn = new mysqli($servername, $username, $password, $database);
|
||||||
|
|
||||||
|
// Verifica della connessione
|
||||||
|
if ($conn->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
|
||||||
|
}
|
||||||
148
public/userarea/importify/interventionlist.php
Normal file
148
public/userarea/importify/interventionlist.php
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
<?php include('../include/headscript.php'); ?>
|
||||||
|
<?php include("../class/company.php"); ?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimal-ui">
|
||||||
|
<?php include('../include/seo.php'); ?>
|
||||||
|
|
||||||
|
<link rel="shortcut icon" href="../assets/images/favicon.ico">
|
||||||
|
<link href="../assets/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../assets/css/icons.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="../assets/css/style.css" rel="stylesheet" type="text/css">
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/boxicons@2.0.7/css/boxicons.min.css" rel="stylesheet">
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@10/dist/sweetalert2.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@10/dist/sweetalert2.min.css">
|
||||||
|
<script src="../assets/js/jquery.min.js"></script>
|
||||||
|
<style>
|
||||||
|
/* Custom styles here */
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="fixed-left">
|
||||||
|
|
||||||
|
<div id="wrapper">
|
||||||
|
<?php include('../include/navigationbar.php'); ?>
|
||||||
|
|
||||||
|
<div class="content-page">
|
||||||
|
<div class="content">
|
||||||
|
|
||||||
|
<?php include('../include/topbar.php'); ?>
|
||||||
|
|
||||||
|
<div class="page-content-wrapper ">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="page-title-box">
|
||||||
|
<h4 class="page-title">Intervention necessary</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xl-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="header-title pb-3 mt-0">Records</h5>
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-striped table-custom">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>ID</th>
|
||||||
|
<th>UUID</th>
|
||||||
|
<th>Lab ID</th>
|
||||||
|
<th>Received At</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
// Database connection
|
||||||
|
$conn = new mysqli($servername, $username, $password, $database);
|
||||||
|
if ($conn->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 "<tr>";
|
||||||
|
echo "<td>" . $row['id'] . "</td>";
|
||||||
|
echo "<td>" . $row['uuid'] . "</td>";
|
||||||
|
echo "<td>" . $row['lab_id'] . "</td>";
|
||||||
|
echo "<td>" . $row['received_at'] . "</td>";
|
||||||
|
echo "<td>
|
||||||
|
<a href='importjson.php?id=" . $row['id'] . "' class='btn btn-success btn-sm'>Import</a>
|
||||||
|
<button class='btn btn-danger btn-sm' onclick='deleteRow(" . $row['id'] . ")'><i class='bx bx-trash'></i></button>
|
||||||
|
</td>";
|
||||||
|
echo "</tr>";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo "<tr><td colspan='5'>No records found</td></tr>";
|
||||||
|
}
|
||||||
|
|
||||||
|
$conn->close();
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div> <!-- container -->
|
||||||
|
</div> <!-- Page content Wrapper -->
|
||||||
|
</div> <!-- content -->
|
||||||
|
|
||||||
|
<?php include('../include/footer.php'); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function deleteRow(id) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Are you sure?',
|
||||||
|
text: "This action cannot be undone!",
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonText: 'Yes, delete it!',
|
||||||
|
cancelButtonText: 'No, cancel!',
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
$.ajax({
|
||||||
|
url: 'delete_json.php',
|
||||||
|
type: 'POST',
|
||||||
|
data: {
|
||||||
|
id: id
|
||||||
|
},
|
||||||
|
success: function(response) {
|
||||||
|
console.log(response); // Controlla cosa viene restituito
|
||||||
|
if (response.trim() == "success") {
|
||||||
|
Swal.fire('Deleted!', 'The record has been deleted.', 'success').then(() => {
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Swal.fire('Error!', 'There was a problem deleting the record.', 'error');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
error: function() {
|
||||||
|
Swal.fire('Error!', 'Could not reach the server.', 'error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
Loading…
x
Reference in New Issue
Block a user