fix(rental): harden inventory and condition reports (#7)

This commit is contained in:
nessar authored and Nessar committed 2026-08-17 14:18:16 +02:00
1 parent e4be5cd05f
commit b030ac579a
55 files changed
+1969 -217

No files matched your search

@@ -110,6 +110,16 @@
}
}
@if (type === 'ENTRY') {
<label>
Nature du complément
<select
[value]="supplementType()"
(change)="supplementType.set($any($event.target).value)"
>
<option value="GENERAL">Constat général (délai indicatif de 10 jours)</option>
<option value="HEATING">Équipement de chauffage (premier mois de chauffe)</option>
</select>
</label>
<label>
Date de demande du complément
<input
@@ -127,20 +137,50 @@
(input)="supplementAcceptedAdditions.set($any($event.target).value)"
></textarea>
</label>
@if (supplementType() === 'HEATING') {
<label>
Début réel de la période de chauffe
<input
type="date"
required
[value]="heatingPeriodStartedOn()"
(input)="heatingPeriodStartedOn.set($any($event.target).value)"
/>
</label>
}
@if (supplementIsLate()) {
<p role="alert">
La demande dépasse le délai indicatif (échéance : {{ supplementDeadline() }}). L’ajout
reste possible avec une confirmation auditée.
</p>
<label>
Motif du dépassement de délai
<textarea
required
[value]="supplementReason()"
(input)="supplementReason.set($any($event.target).value)"
></textarea>
</label>
<label>
<input
type="checkbox"
[checked]="lateWarningConfirmed()"
(change)="lateWarningConfirmed.set($any($event.target).checked)"
/>
Je confirme l’ajout malgré le dépassement du délai indicatif.
</label>
}
<label>
Début de la période de chauffe (facultatif)
<input
type="date"
[value]="heatingPeriodStartedOn()"
(input)="heatingPeriodStartedOn.set($any($event.target).value)"
/>
</label>
<label>
Motif du dépassement de délai
<textarea
[value]="supplementReason()"
(input)="supplementReason.set($any($event.target).value)"
></textarea>
Zone des prochaines photos
<select
[value]="supplementPhotoZoneId()"
(change)="supplementPhotoZoneId.set($any($event.target).value)"
>
<option value="">Choisir une zone</option>
@for (zone of value.zones; track zone.id) {
<option [value]="zone.id">{{ zone.label }}</option>
}
</select>
</label>
<label>
Photos du complément (facultatives)
@@ -152,6 +192,12 @@
(change)="selectSupplementPhotos($event)"
/>
</label>
@for (photo of supplementPhotos(); track $index; let index = $index) {
<p>
{{ photo.file.name }} — {{ photo.zoneId }}
<button type="button" (click)="removeSupplementPhoto(index)">Retirer</button>
</p>
}
<label>
Complément signé PDF (obligatoire)
<input
@@ -200,10 +246,10 @@
@for (line of section.lines; track line.reference) {
<tr>
<th>{{ line.reference }}</th>
<td>{{ line.entry | json }}</td>
<td>{{ line.exit | json }}</td>
<td>{{ line.entry }}</td>
<td>{{ line.exit }}</td>
<td>{{ line.changed ? 'Oui' : 'Non' }}</td>
<td>{{ line.absence | json }}</td>
<td>{{ line.absence }}</td>
</tr>
}
</tbody>