This commit is contained in:
2024-10-24 15:41:24 +04:00
parent 3e7d64b782
commit e7ea3ba909
+20 -15
View File
@@ -30,7 +30,7 @@ foreach ($jsonEntries as $entry) {
} }
// Validate and insert product // Validate and insert product
$productId = insertProduct($data['product'], $pdo); $productId = insertProduct($data['product'], $pdo);
if ($productId && validateJson($data)) { if ($productId && validateJson($data)) {
// Insert reports, parts, analyses, and results // Insert reports, parts, analyses, and results
@@ -38,13 +38,13 @@ foreach ($jsonEntries as $entry) {
$reportId = insertReport($report, $productId, $labId, $pdo); $reportId = insertReport($report, $productId, $labId, $pdo);
foreach ($report['parts'] as $part) { foreach ($report['parts'] as $part) {
$partId = insertPart($part, $reportId, $pdo); $partId = insertPart($part, $reportId, $productId, $pdo);
foreach ($part['analyses'] as $analysis) { foreach ($part['analyses'] as $analysis) {
$analysisId = insertAnalysis($analysis, $partId, $pdo); $analysisId = insertAnalysis($analysis, $partId, $productId, $pdo);
foreach ($analysis['results'] as $result) { 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 // Check if the part already exists
$query = "SELECT idparts FROM parts WHERE partsCode = :partsCode AND idreports = :idreports"; $query = "SELECT idparts FROM parts WHERE partsCode = :partsCode AND idreports = :idreports";
$stmt = $pdo->prepare($query); $stmt = $pdo->prepare($query);
@@ -164,13 +164,14 @@ function insertPart($part, $reportId, $pdo) {
if ($partId) { if ($partId) {
// Part already exists, return the existing ID // Part already exists, return the existing ID
return $partId; return $partId;
} else { } else {
// Insert new part // Insert new part
$query = "INSERT INTO parts (partsCode, partsDescription, partsColor, partsMaterial, idreports) $query = "INSERT INTO parts (partsCode, partsDescription, partsColor, partsMaterial, idreports, idproducts)
VALUES (:partsCode, :partsDescription, :partsColor, :partsMaterial, :idreports)"; VALUES (:partsCode, :partsDescription, :partsColor, :partsMaterial, :idreports, :idproducts)";
$stmt = $pdo->prepare($query); $stmt = $pdo->prepare($query);
$stmt->execute([ $stmt->execute([
'idproducts' => $productId,
'partsCode' => $part['partsCode'], 'partsCode' => $part['partsCode'],
'partsDescription' => $part['partsDescription'], 'partsDescription' => $part['partsDescription'],
'partsColor' => $part['partsColor'], 'partsColor' => $part['partsColor'],
@@ -182,26 +183,27 @@ function insertPart($part, $reportId, $pdo) {
} }
function insertAnalysis($analysis, $partId, $pdo) { function insertAnalysis($analysis, $partId, $productId, $pdo) {
$query = "INSERT INTO analysis_project (result_TestName, test_Rating, test_Rating2, requirements, reference, analysisgroupcode, idPart) $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, :idparts)"; VALUES (:result_TestName, :test_Rating, :test_Rating2, :requirements, :reference, :analysisgroupcode, :idpart , :idproducts)";
$stmt = $pdo->prepare($query); $stmt = $pdo->prepare($query);
$stmt->execute([ $stmt->execute([
'idproducts' => $productId,
'result_TestName' => $analysis['result_TestName'], 'result_TestName' => $analysis['result_TestName'],
'test_Rating' => $analysis['test_Rating'], 'test_Rating' => $analysis['test_Rating'],
'test_Rating2' => $analysis['test_Rating2'], 'test_Rating2' => $analysis['test_Rating2'],
'requirements' => $analysis['requirements'], 'requirements' => $analysis['requirements'],
'reference' => $analysis['reference'], 'reference' => $analysis['reference'],
'analysisgroupcode' => $analysis['analysisgroupcode'], 'analysisgroupcode' => $analysis['analysisgroupcode'],
'idparts' => $partId, 'idpart' => $partId,
]); ]);
return $pdo->lastInsertId(); return $pdo->lastInsertId();
} }
function insertResult($result, $analysisId, $pdo) { 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) $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)"; 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 = $pdo->prepare($query);
$stmt->execute([ $stmt->execute([
@@ -216,6 +218,9 @@ function insertResult($result, $analysisId, $pdo) {
'requirements' => $result['requirements'], 'requirements' => $result['requirements'],
'reference' => $result['reference'], 'reference' => $result['reference'],
'idanalysis_project' => $analysisId, 'idanalysis_project' => $analysisId,
'idpart' => $partId,
'idproducts' => $productId,
'idreports' => $reportId,
]); ]);
} }