feat: dodaj display_code polje za putne naloge (MT070626 format)
Some checks failed
ERP CI/CD Pipeline / test (push) Has been cancelled
ERP CI/CD Pipeline / Deploy (server git pull + compose) (push) Has been cancelled

- Dodano polje 'display_code' na WorkOrder model (format: 2 inicijala + ddmmyy)
- Migracije za kreiranje polja i backfill postojećih naloga
- Ažuriran WorkOrderSerializer za validaciju i serijalizaciju display_code
- Backend tasks za auto-generiranje display_code pri kreiranju
- Frontend komponente ažurirane za prikaz display_code umjesto UUID:
  * FleetDashboardShell tablica putnih naloga
  * WorkOrderDetailModal
  * TaskCreateModal
  * Sve PDF stranice
- displayIds.js utility za formatiranjeDisplay ID-eva
- Admin interface prikazuje display_code
This commit is contained in:
mariomitte
2026-07-17 23:53:47 +02:00
parent ef8718a4cf
commit bf8e25efe7
19 changed files with 377 additions and 54 deletions

View File

@@ -12,6 +12,24 @@ export function formatEntityCode(prefix, id, size = 8) {
return `${prefix}-${short}`;
}
export function generateWorkOrderDisplayCode(firstName, lastName, dateValue = new Date()) {
const firstInitial = String(firstName || '').trim().charAt(0).toUpperCase();
const lastInitial = String(lastName || '').trim().charAt(0).toUpperCase();
if (!firstInitial || !lastInitial) return '';
const parsedDate = dateValue instanceof Date ? dateValue : new Date(dateValue);
if (Number.isNaN(parsedDate.getTime())) return '';
const day = String(parsedDate.getDate()).padStart(2, '0');
const month = String(parsedDate.getMonth() + 1).padStart(2, '0');
const year = String(parsedDate.getFullYear()).slice(-2);
return `${firstInitial}${lastInitial}${day}${month}${year}`;
}
export function formatWorkOrderDisplayCode(workOrder) {
const displayCode = String(workOrder?.display_code || '').trim().toUpperCase();
if (displayCode) return displayCode;
return '-';
}
export function formatPurposeLabel(value) {
const normalized = String(value || '').trim().toLowerCase();
if (!normalized) return '';