where("test_package_no", $testPackageNo)->first(); $wpsData = db("w_p_s")->where("details", $testPackage->wps_no)->first(); $naksCertificates = []; if($wpsData) { $naksCertificates = explode(" + ", $wpsData->naks_certificate_no); } // 1. Naks Technology if (strpos($docPath, "Naks Technology") !== false) { foreach($naksCertificates as $cert) { $search = $this->alternativeGlob("storage/documents/{$docPath}/*{$cert}*.pdf"); $document['title3'] = $this->extractFileName($search[0] ?? '', $docPath); $this->addRow($search, $document, $fullFolder, $cert, $wpsData->date ?? date('Y-m-d'), $rowNo, $sheet, $currentRow, $override); } } // 2. Naks_Welder elseif (strpos($docPath, "Naks_Welder") !== false) { $welders = $this->getWeldersForTp($testPackageNo); foreach($welders as $welder) { $search = $this->alternativeGlob("storage/documents/{$docPath}/*{$welder}*.pdf"); $document['title2'] = $welder; $document['title3'] = $this->extractFileName($search[0] ?? '', $docPath); $welderDate = db("naks_welders")->where("naks_certificate_no", $welder)->first()?->period_of_validity ?? date('Y-m-d'); $this->addRow($search, $document, $fullFolder, $welder, $welderDate, $rowNo, $sheet, $currentRow, $override); } } // 3. Naks_Equipments elseif (strpos($docPath, "Naks_Equipments") !== false) { foreach($naksCertificates as $cert) { $search = $this->alternativeGlob("storage/documents/{$docPath}/*{$cert}*.pdf"); $document['title3'] = $cert; $docDate = db("naks_welders")->where("welder_id", $cert)->first()?->period_of_validity ?? date('Y-m-d'); $this->addRow($search, $document, $fullFolder, $cert, $docDate, $rowNo, $sheet, $currentRow, $override); } } // 4. Naks_Consumables elseif (strpos($docPath, "Naks_Consumables") !== false) { $naksConsumables = db("naks_consumables")->whereIn("naks_certificate_no", $naksCertificates)->pluck("batch_number")->toArray(); foreach($naksConsumables as $consumable) { $search = $this->alternativeGlob("storage/documents/{$docPath}/*{$consumable}*.pdf"); $docDate = db("naks_welders")->where("welder_id", $consumable)->first()?->period_of_validity ?? date('Y-m-d'); $this->addRow($search, $document, $fullFolder, $consumable, $docDate, $rowNo, $sheet, $currentRow, $override); } } // 5. Welding Experts elseif (strpos($docPath, "Welding Experts") !== false) { $search = $this->alternativeGlob("storage/documents/{$docPath}/*{$docTitle}*.pdf"); $expert = db("register_of_experts")->where("certificate_no", $docTitle)->first(); $docDate = $expert?->permit_date ?? date('Y-m-d'); $document['title2'] = e2("welding_expert_register_title"); $this->addRow($search, $document, $fullFolder, $docTitle, $docDate, $rowNo, $sheet, $currentRow, $override); } // 6. WPQ elseif (strpos($docPath, "WPQ") !== false) { $wpqs = db("welder_tests")->whereIn("wpq_document_no", [ $testPackage->wpq_report_1, $testPackage->wpq_report_2, ])->get(); foreach($wpqs as $wpq) { $search = $this->alternativeGlob("storage/documents/{$docPath}/*{$wpq->wpq_document_no}*.pdf"); $document['title3'] = $wpq->wpq_document_no; $docDate = $wpq->naks_validity; $this->addRow($search, $document, $fullFolder, $wpq->wpq_document_no, $docDate, $rowNo, $sheet, $currentRow, $override); } } // 7. WPS elseif (strpos($docPath, "WPS") !== false) { $search = $this->alternativeGlob("storage/documents/{$docPath}/*{$wpsData->details}*.pdf"); $document['title3'] = $wpsData->details; $docDate = $wpsData->date; $this->addRow($search, $document, $fullFolder, $wpsData->details, $docDate, $rowNo, $sheet, $currentRow, $override); } // 8. PQR elseif (strpos($docPath, "PQR") !== false) { $pqr = db("prosedure_qualification_records")->where("pqr_no", $wpsData->pqr_no)->first(); if($pqr) { $search = $this->alternativeGlob("storage/documents/{$docPath}/*{$pqr->pqr_no}*.pdf"); $document['title2'] = $pqr->pqr_no; $docDate = $pqr->approved_date; $this->addRow($search, $document, $fullFolder, $pqr->pqr_no, $docDate, $rowNo, $sheet, $currentRow, $override); } } return $rowNo; } private function getWeldersForTp($tpNo) { $logs = db("weld_logs")->where("test_package_no", $tpNo)->get(); $welders = []; foreach($logs as $log) { if($log->welder_1) $welders[] = $log->certificate_no_1; if($log->welder_2) $welders[] = $log->certificate_no_2; } return array_unique(array_filter($welders)); } }