@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. |
| {{ $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 |
|
@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
|
{{ $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
|
|
@endforeach
| {{ __('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
|
|
1st
|
|
|
|
|
|
|
|
|
|
|
@push('styles')
@endpush
@push('scripts')
@endpush