5.8 KiB
5.8 KiB
Allokerede Timer - Ny Funktionalitet ⏱️
Oversigt
Den nye funktionalitet i Tilbudgivern gør det muligt at registrere både estimerede timer og allokerede timer for hver arbejdsopgave i et projekt. Dette giver bedre projektstyring og sporbarhed.
Funktioner
🎯 Dobbelt Timer Sporing
- Estimerede Timer: De oprindelige beregnede timer for hver opgave
- Allokerede Timer: De faktisk tildelte/planlagte timer til opgaven
📊 Visuel Opdeling
- Side-om-side input felter for estimerede og allokerede timer
- Forskellige farver for at skelne mellem de to typer
- Automatisk beregning af totaler for begge kategorier
💾 Database Struktur
Nye kolonner tilføjet til project_labor tabellen:
allocated_hours_breakdown(LONGTEXT) - JSON struktur med allokerede timerspecial_conditions(TEXT) - Særlige arbejdsforhold
Hvordan Det Virker
Frontend (LaborInput.js)
// Hver arbejdsopgave har nu både estimerede og allokerede timer
const workBreakdown = [
{
task: 'Forberedelse og opstilling',
hours: 8, // Estimeret
allocatedHours: 6, // Allokeret
description: 'Afdækning, værktøj, sikkerhed'
}
];
Database Struktur
// work_breakdown (eksisterende)
[
{
"task": "Forberedelse og opstilling",
"hours": 8,
"rate": 580,
"cost": 4640,
"notes": "Afdækning, værktøj, sikkerhed"
}
]
// allocated_hours_breakdown (ny)
[
{
"task": "Forberedelse og opstilling",
"allocatedHours": 6,
"rate": 580,
"cost": 3480,
"notes": "Afdækning, værktøj, sikkerhed"
}
]
API Endpoints
POST /api/customer-projects/:projectId/labor
{
"laborEntries": [
{
"taskDescription": "Forberedelse og opstilling",
"estimatedHours": 8,
"allocatedHours": 6,
"hourlyRate": 580,
"notes": "Afdækning, værktøj, sikkerhed"
}
],
"carpenterCount": 2,
"specialConditions": "Adgang kun via stige",
"totalAllocatedHours": 24
}
Brugergrænsefladen
Timer Input Sektion
┌─────────────────────────────────────────┐
│ Antal tømrere: [2] │
│ Total arbejdstimer (estimeret): [32] │
│ Total allokerede timer: [28] │
│ Timepris (kr): [580] │
└─────────────────────────────────────────┘
Arbejdsfordeling
┌─────────────────────────────────────────┐
│ Forberedelse og opstilling │
│ ┌─────────┐ ┌─────────┐ │
│ │Estimeret│ │Allokeret│ │
│ │ [8] │ │ [6] │ │
│ └─────────┘ └─────────┘ │
│ [Afdækning, værktøj, sikkerhed_______] │
└─────────────────────────────────────────┘
Sammendrag
┌─────────────────────────────────────────┐
│ Total estimerede timer: 32 timer │
│ Total allokerede timer: 28 timer │
└─────────────────────────────────────────┘
Fordele
🎯 Bedre Planlægning
- Sammenlign estimater med faktisk allokering
- Identificer over/under-estimering
- Forbedre fremtidige estimater
📈 Projektstyring
- Spor afvigelser mellem plan og virkelighed
- Juster ressourcer baseret på allokering
- Dokumenter særlige forhold
💰 Økonomisk Kontrol
- Separat kostberegning for estimerede vs allokerede timer
- Bedre budgetkontrol
- Mere præcise tilbud til kunder
CSS Styling
Nye Klasser
.hours-inputs- Container for timer input felter.hour-input-group- Gruppe for ét timer input.hours-input.allocated- Styling for allokerede timer.total-row.allocated- Styling for allokerede totaler
Farver
- Estimerede timer: Standard grøn (
#d4edda) - Allokerede timer: Blå (
#d1ecf1)
Implementering Status
✅ Færdige Komponenter
- Database struktur udvidet
- Frontend LaborInput komponent opdateret
- Backend API udvidet til at håndtere begge timer typer
- CSS styling tilføjet
- Automatisk beregning af totaler
🔄 Lagret Data
- Estimerede timer gemmes i
work_breakdown - Allokerede timer gemmes i
allocated_hours_breakdown - Særlige forhold gemmes i
special_conditions
🎨 Visuel Design
- Side-om-side layout for timer input
- Forskellige farver for estimerede vs allokerede
- Klarere labels og beskrivelser
- Responsive design der fungerer på alle skærmstørrelser
Migration af Eksisterende Data
Eksisterende projekter vil fungere normalt:
allocatedHoursfelter starter tomme- Eksisterende
work_breakdownforbliver uændret - Bruger kan udfylde allokerede timer efter behov
Fremtidige Muligheder
📊 Rapportering
- Sammenlign estimerede vs allokerede timer på tværs af projekter
- Identificer mønstre i afvigelser
- Forbedre estimering accuracy
⏰ Tidssporing
- Integration med time tracking systemer
- Faktisk tid brugt vs allokeret tid
- Real-time opdateringer under projektet
📈 Analytics
- Dashboard med timer fordeling
- Trends i arbejdsfordeling
- Performance metrics for teams
Status: ✅ Implementeret og klar til brug
Den nye funktionalitet er nu fuldt implementeret og giver dig mulighed for at spore både estimerede og allokerede timer for alle arbejdsopgaver i dine projekter!