İlk temizlik tamamlandı bir önceki projeden
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\RegisterCreator\DocumentProcessors;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
|
||||
|
||||
class DocumentProcedureProcessor extends AbstractDocumentProcessor
|
||||
{
|
||||
public function process(array $weldLogData, array $document, Worksheet $sheet, int &$currentRow, array $settings): int
|
||||
{
|
||||
$this->initialize($weldLogData, $document, $sheet, $currentRow, $settings);
|
||||
|
||||
$procedures = [];
|
||||
if (!empty($document['title2'])) {
|
||||
$procedures = array_map('trim', explode(",", $document['title2']));
|
||||
}
|
||||
|
||||
// Prepare procedures with dates for sorting
|
||||
$proceduresWithDates = [];
|
||||
foreach ($procedures as $procedureNo) {
|
||||
$procedure = db("document_procedures")->where("document_no", $procedureNo)->first();
|
||||
if (!$procedure) continue;
|
||||
|
||||
$proceduresWithDates[] = [
|
||||
'procedure' => $procedure,
|
||||
'date' => $procedure->publish_date ?? ''
|
||||
];
|
||||
}
|
||||
|
||||
// Sort by publish_date (oldest first) - reverse insertion order
|
||||
usort($proceduresWithDates, function($a, $b) {
|
||||
$timestampA = !empty($a['date']) ? strtotime($a['date']) : 0;
|
||||
$timestampB = !empty($b['date']) ? strtotime($b['date']) : 0;
|
||||
return $timestampA <=> $timestampB;
|
||||
});
|
||||
|
||||
foreach ($proceduresWithDates as $procData) {
|
||||
$procedure = $procData['procedure'];
|
||||
$normalized = $this->normalizeSearchTerm($procedure->document_no);
|
||||
$search = $this->searchFiles("storage/documents/{$document['path']}/*{$normalized}*.pdf");
|
||||
$document['title2'] = $procedure->document_no;
|
||||
$this->document = $document;
|
||||
$documentDate = $procData['date'];
|
||||
|
||||
$newRow = $this->addRowToExcel($search, $procedure->document_no, $documentDate);
|
||||
if ($newRow > $currentRow) { $currentRow = $newRow; }
|
||||
}
|
||||
return $currentRow;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user