new: add warning icon for tariffs without price list in offer form select

This commit is contained in:
Valentin Lab
2026-03-16 16:41:17 +01:00
parent 2563398df2
commit d8f95c667c
3 changed files with 10 additions and 1 deletions

View File

@@ -19,6 +19,7 @@ class Offers
'tariffs' => Tariffs::getOptions(), 'tariffs' => Tariffs::getOptions(),
'tariff_statuses' => Tariffs::getStatusMap(), 'tariff_statuses' => Tariffs::getStatusMap(),
'tariff_status_labels' => Tariffs::getStatuses(), 'tariff_status_labels' => Tariffs::getStatuses(),
'tariff_pricelist_counts' => Tariffs::getPriceListCountMap(),
'variations' => Variations::getOptions(), 'variations' => Variations::getOptions(),
]; ];
} }

View File

@@ -69,6 +69,11 @@ class Tariffs
return Tariff::pluck('status_id', 'id')->toArray(); return Tariff::pluck('status_id', 'id')->toArray();
} }
public static function getPriceListCountMap()
{
return Tariff::withCount('price_lists')->pluck('price_lists_count', 'id')->toArray();
}
public static function getModel() public static function getModel()
{ {
return Tariff::query(); return Tariff::query();

View File

@@ -158,13 +158,16 @@
var tariffStatuses = {!! json_encode($tariff_statuses ?? (object)[]) !!}; var tariffStatuses = {!! json_encode($tariff_statuses ?? (object)[]) !!};
var tariffStatusLabels = {!! json_encode($tariff_status_labels ?? []) !!}; var tariffStatusLabels = {!! json_encode($tariff_status_labels ?? []) !!};
var tariffStatusColors = {0: '#28a745', 1: '#ffc107', 2: '#6c757d', 3: '#dc3545'}; var tariffStatusColors = {0: '#28a745', 1: '#ffc107', 2: '#6c757d', 3: '#dc3545'};
var tariffPLCounts = {!! json_encode($tariff_pricelist_counts ?? (object)[]) !!};
function formatTariff(item) { function formatTariff(item) {
if (!item.id) return item.text; if (!item.id) return item.text;
var statusId = tariffStatuses[item.id]; var statusId = tariffStatuses[item.id];
var color = tariffStatusColors[statusId] || '#6c757d'; var color = tariffStatusColors[statusId] || '#6c757d';
var label = tariffStatusLabels[statusId] || ''; var label = tariffStatusLabels[statusId] || '';
return $('<span style="display:flex;justify-content:space-between;align-items:center;width:100%;">' + item.text + '<span class="badge" style="background:' + color + ';color:#fff;font-size:0.75em;margin-left:8px;">' + label + '</span></span>'); var plCount = tariffPLCounts[item.id] || 0;
var warning = plCount == 0 ? '<span style="margin-left:4px;cursor:help;" title="Aucune liste de prix"><i class="fas fa-exclamation-triangle text-danger" style="font-size:1.4em;vertical-align:-2px;"></i></span>' : '';
return $('<span style="display:flex;justify-content:space-between;align-items:center;width:100%;">' + item.text + '<span>' + warning + '<span class="badge" style="background:' + color + ';color:#fff;font-size:0.75em;margin-left:4px;">' + label + '</span></span></span>');
} }
$('#tariff_id').select2('destroy').select2({ $('#tariff_id').select2('destroy').select2({