Location

Échéances et règlements

Suivez les échéances et enregistrez les règlements déjà reçus.

@if (feedback(); as feedback) {

{{ feedback.message }}

}
@if (!scheduleReady() && scheduleError()) { } @else if (!scheduleReady()) {
@for (placeholder of [1, 2, 3]; track placeholder) { }
} @else { @if (scheduleLoading()) { } @if (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) { } @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) ) { }
}
} }

Encaissements

Règlements enregistrés

@if ( !workspace.rentPaymentLoadState().loaded && workspace.rentPaymentLoadState().error ) { } @else if (!workspace.rentPaymentLoadState().loaded) {
@for (placeholder of [1, 2]; track placeholder) { }
} @else { @if (workspace.rentPaymentLoadState().loading) { } @if (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)) { }
}
} }