@php use App\Support\MecReportType; use App\Support\ProcurementMethodCatalog; $isPmrA2 = MecReportType::isPmr((string) ($reportType ?? '')); $aaIssuedDatePrefill = $reportAaIssuedDatePrefill ?? ''; $a2Payload = $reportPayload ?? report_wizard_payload_array(is_array($report ?? null) ? $report : null); $aaIssuedDateDisplay = trim((string) report_wizard_old('part_a.procurement.aa_issued_date', $aaIssuedDatePrefill, $a2Payload)); if ($aaIssuedDateDisplay === '' && $aaIssuedDatePrefill !== '') { $aaIssuedDateDisplay = $aaIssuedDatePrefill; } $procurementMethodNodes = $procurementMethodNodes ?? ProcurementMethodCatalog::activeNodesForJs(); $tenderBase = 'report.part_a.procurement.tender_process_rows'; $tenderRowsRaw = report_wizard_old('part_a.procurement.tender_process_rows', data_get($reportPayload ?? report_wizard_payload_array(is_array($report ?? null) ? $report : null), 'part_a.procurement.tender_process_rows', []), $reportPayload ?? null); $tenderRows = is_array($tenderRowsRaw) ? array_values($tenderRowsRaw) : []; if (count($tenderRows) === 0 && ($report ?? null)) { $legacyM = data_get($report, 'part_a.procurement.procurement_method'); $legacyB = data_get($report, 'part_a.procurement.bidders_prequalified_count'); $legacyL = data_get($report, 'part_a.procurement.loa_work_award_date'); if ( (is_string($legacyM) && trim($legacyM) !== '') || $legacyB !== null && $legacyB !== '' || (is_string($legacyL) && trim($legacyL) !== '') ) { $tenderRows[] = [ 'tender_number' => '', 'description' => '', 'tender_bid_opening_date' => '', 'procurement_method' => is_string($legacyM) ? $legacyM : '', 'bidders_prequalified_count' => $legacyB, 'ts_date' => '', 'ts_cost' => '', 'bid_amount' => '', 'variance' => '', 'loa_work_award_date' => is_string($legacyL) ? $legacyL : '', 'observation' => '', ]; } } if (count($tenderRows) === 0) { $tenderRows[] = [ 'tender_number' => '', 'description' => '', 'tender_bid_opening_date' => '', 'procurement_method' => '', 'bidders_prequalified_count' => '', 'ts_date' => '', 'ts_cost' => '', 'bid_amount' => '', 'variance' => '', 'loa_work_award_date' => '', 'observation' => '', ]; } $tenderOrdinalLabel = static function (int $rowOneBased): string { if ($rowOneBased < 1) { $rowOneBased = 1; } $n = $rowOneBased; $mod100 = $n % 100; if ($mod100 >= 11 && $mod100 <= 13) { return $n.'th'; } return match ($n % 10) { 1 => $n.'st', 2 => $n.'nd', 3 => $n.'rd', default => $n.'th', }; }; $tenderFormTotals = \App\Services\ReportPreviewPresenter::tenderProcessCostTotals($tenderRows); $tenderFormTotTs = \App\Services\ReportPreviewPresenter::tenderProcessTotalDisplay($tenderFormTotals['ts_cost']); $tenderFormTotBid = \App\Services\ReportPreviewPresenter::tenderProcessTotalDisplay($tenderFormTotals['bid_amount']); $tenderFormTotVar = \App\Services\ReportPreviewPresenter::tenderProcessVariancePctInputDisplay($tenderFormTotals['variance']); $tenderFormTotVarNeg = $tenderFormTotals['variance'] !== null && $tenderFormTotals['variance'] < 0; @endphp {{-- Part A §2 — Procurement Process Details --}}
a. {{ $isPmrA2 ? 'Date of A.A. / Donor Approval Issued' : 'Date of last A.A' }} @error('report.part_a.procurement.aa_issued_date') {{ $message }} @enderror
b.
{{ __('Download Excel format') }}
@foreach ($tenderRows as $rIdx => $tRow) @php $tRow = is_array($tRow) ? $tRow : []; $dotBase = $tenderBase.'.'.$rIdx.'.'; $tenderNoOrdinal = $tenderOrdinalLabel($rIdx + 1); $desc = old($dotBase.'description', $tRow['description'] ?? ''); $tbo = old($dotBase.'tender_bid_opening_date', $tRow['tender_bid_opening_date'] ?? ''); $pm = old($dotBase.'procurement_method', $tRow['procurement_method'] ?? ''); $pm = is_string($pm) ? $pm : ''; $pmLeafId = old($dotBase.'procurement_method_leaf_id', $tRow['procurement_method_leaf_id'] ?? ''); $pmLeafId = is_numeric($pmLeafId) ? (int) $pmLeafId : null; $pmPathIds = ProcurementMethodCatalog::pathIdsForStoredValue($pm, $pmLeafId); $pmDisplay = $pm !== '' ? ProcurementMethodCatalog::displayValue($pm) : ''; $bc = old($dotBase.'bidders_prequalified_count', $tRow['bidders_prequalified_count'] ?? ''); $tsDate = old($dotBase.'ts_date', $tRow['ts_date'] ?? ''); $tsCostRow = old($dotBase.'ts_cost', $tRow['ts_cost'] ?? ''); $bidAmt = old($dotBase.'bid_amount', $tRow['bid_amount'] ?? ''); $varianceNum = \App\Services\ReportPreviewPresenter::tenderProcessRowVariance($tsCostRow, $bidAmt); $variance = $varianceNum !== null ? \App\Services\ReportPreviewPresenter::tenderProcessVariancePctInputDisplay($varianceNum) : ''; $varianceIsNeg = $varianceNum !== null && $varianceNum < 0; $loa = old($dotBase.'loa_work_award_date', $tRow['loa_work_award_date'] ?? ''); $obs = old($dotBase.'observation', $tRow['observation'] ?? ''); @endphp @endforeach
{{ $isPmrA2 ? 'Component / Package/ Activity Tender' : 'Sequence of Tender' }} Description {{ $isPmrA2 ? 'Date of Tender Opening' : 'Date of Tender Bid Opening' }} Procurement Method {{ $isPmrA2 ? 'No. of Bidders / Pre-Qualified Contractors' : 'No. of Bidders/Pre-Qualified Contractors' }} T.S Date T.S Cost Bid Amount {{ __('Variance (%)') }} {{ $isPmrA2 ? 'Date of LOA / Work Award' : 'Date of LOA/Work Award' }} Remarks
{{ $tenderNoOrdinal }}
@error($dotBase.'tender_number') {{ $message }} @enderror
@error($dotBase.'description') {{ $message }} @enderror @error($dotBase.'tender_bid_opening_date') {{ $message }} @enderror
@error($dotBase.'procurement_method') {{ $message }} @enderror
@error($dotBase.'bidders_prequalified_count') {{ $message }} @enderror @error($dotBase.'ts_date') {{ $message }} @enderror @error($dotBase.'ts_cost') {{ $message }} @enderror @error($dotBase.'bid_amount') {{ $message }} @enderror @error($dotBase.'variance') {{ $message }} @enderror @error($dotBase.'loa_work_award_date') {{ $message }} @enderror @error($dotBase.'observation') {{ $message }} @enderror
{{ __('Total') }} {{ $tenderFormTotTs }} {{ $tenderFormTotBid }} {{ $tenderFormTotVar }}
c. {{ $isPmrA2 ? 'Reason for Delay from A.A. / Procurement Plan / Donor NOL to LOA / Contract / Agreement' : 'Reason for delay (A.A vs LOA)' }} @error('report.part_a.procurement.delay_reason_aa_vs_loa') {{ $message }} @enderror
{{ $isPmrA2 ? 'Any Mis-Procurement / Procurement Delay / Contractual Issue observed.' : 'Any Mis-Procurement' }} @error('report.part_a.procurement.mis_procurement_other') {{ $message }} @enderror
@push('styles') @endpush @push('scripts') @endpush