Location
Échéances et règlements
Suivez les échéances et enregistrez les règlements déjà reçus.
@if (feedback(); as feedback) {
@if (!scheduleReady() && scheduleError()) {
Chargement impossible
{{ scheduleError() }}
} @else if (!scheduleReady()) {
@for (placeholder of [1, 2, 3]; track placeholder) {
}
} @else {
@if (scheduleLoading()) {
}
@if (scheduleError()) {
{{ scheduleError() }}
}
@if (emptyState(); as emptyState) {
Mise en location
Aucune échéance de loyer ni aucun règlement
@if (emptyState.kind === 'create') {
Créez un bail pour générer les échéances de loyer attendues.
} @else if (emptyState.kind === 'target') {
{{
emptyState.target.kind === 'finalize'
? 'Ce bail est prêt à être finalisé.'
: 'Un bail reste à compléter.'
}}
{{ emptyState.target.apartmentName }}
} @else if (emptyState.kind === 'choices') {
Plusieurs baux peuvent avancer. Choisissez celui à poursuivre.
@for (target of emptyState.targets; track target.leaseId) {
-
{{ target.apartmentName }}
}
} @else {
Les échéances sont créées automatiquement pour les baux actifs.
}
} @else if (emptyReadinessError(); as emptyReadinessError) {
Vérification impossible
{{ emptyReadinessError }}
} @else if (emptyReadinessLoading()) {
Mise en location
Vérification du bail en cours
} @else if (
!scheduleError() &&
!scheduleLoading() &&
paymentReady() &&
workspace.rentDues().length === 0
) {
Aucune échéance de loyer
Les échéances sont créées automatiquement pour les baux actifs.
} @else if (
workspace.rentDues().length > 0 ||
(!scheduleError() && !scheduleLoading() && paymentReady())
) {
@for (rentDue of displayedRentDues(); track rentDue.id) {
{{ settlementLabel(rentDue.settlement) }}
{{ timingLabel(rentDue.timing) }}
{{ formatEuro(rentDue.total) }}
{{ apartmentName(rentDue) }}
{{ monthLabel(rentDue.month) }}
- Loyer
- {{ formatEuro(rentDue.rent) }}
- Charges
- {{ formatEuro(rentDue.charges) }}
- Déjà réglé
- {{ formatEuro(rentDue.allocatedAmount) }}
- Restant à régler
- {{ formatEuro(rentDue.remainingAmount) }}
- Échéance
- {{ civilDate(rentDue.dueDate) }}
@if (rentDue.correctionRequired) {
} @else {
@if (rentDue.settlement !== 'PAID') {
} @else {
}
}
@if (
!rentDue.correctionRequired &&
workspace.rentReceiptDownloadError(rentDue.id)
) {
{{ workspace.rentReceiptDownloadError(rentDue.id) }}
}
}
}
}
Encaissements
Règlements enregistrés
@if (
!workspace.rentPaymentLoadState().loaded && workspace.rentPaymentLoadState().error
) {
{{ workspace.rentPaymentLoadState().error }}
} @else if (!workspace.rentPaymentLoadState().loaded) {
@for (placeholder of [1, 2]; track placeholder) {
}
} @else {
@if (workspace.rentPaymentLoadState().loading) {
}
@if (workspace.rentPaymentLoadState().error) {
{{ workspace.rentPaymentLoadState().error }}
}
@if (
paymentReady() && !emptyOnboardingActive() && displayedPayments().length === 0
) {
Aucun règlement enregistré.
} @else {
@for (payment of displayedPayments(); track payment.id) {
{{ paymentStatusLabel(payment.status) }}
{{ formatEuro(payment.amount) }}
Reçu le {{ civilDate(payment.receivedAt) }}
- Affecté
- {{ formatEuro(payment.allocatedAmount) }}
- Remboursé
- {{ formatEuro(payment.refundedAmount) }}
- Solde non affecté
- {{ formatEuro(payment.unallocatedBalance) }}
@if (payment.allocations.length > 0) {
Affectations
@for (
allocation of payment.allocations;
track allocation.id
) {
-
{{ allocationLabel(allocation) }}{{
formatEuro(allocation.amount)
}}
}
}
@if (payment.refunds.length > 0) {
Remboursements
@for (refund of payment.refunds; track refund.id) {
-
{{ civilDate(refund.refundedAt) }}{{
formatEuro(refund.amount)
}}
}
}
@if (payment.reversal; as reversal) {
Contrepassé le
{{ civilDate(reversal.reversedAt) }}
{{ reversalReasonLabel(reversal) }}
@if (reversal.reasonStatus === 'locked') {
}
}
@if (payment.status === 'CONFIRMED') {
@if (canAllocate(payment)) {
}
@if (payment.unallocatedBalance > 0) {
}
}
@if (workspace.paymentReceiptDownloadError(payment.id)) {
{{ workspace.paymentReceiptDownloadError(payment.id) }}
}
}
}
}