pub struct ExpenseUseCases { /* private fields */ }Implementations§
Source§impl ExpenseUseCases
impl ExpenseUseCases
pub fn new(repository: Arc<dyn ExpenseRepository>) -> Self
pub fn with_accounting_service( repository: Arc<dyn ExpenseRepository>, accounting_service: Arc<ExpenseAccountingService>, ) -> Self
pub async fn create_expense( &self, dto: CreateExpenseDto, ) -> Result<ExpenseResponseDto, String>
pub async fn get_expense( &self, id: Uuid, ) -> Result<Option<ExpenseResponseDto>, String>
pub async fn list_expenses_by_building( &self, building_id: Uuid, ) -> Result<Vec<ExpenseResponseDto>, String>
pub async fn list_expenses_paginated( &self, page_request: &PageRequest, organization_id: Option<Uuid>, ) -> Result<(Vec<ExpenseResponseDto>, i64), String>
Sourcepub async fn mark_as_paid(&self, id: Uuid) -> Result<ExpenseResponseDto, String>
pub async fn mark_as_paid(&self, id: Uuid) -> Result<ExpenseResponseDto, String>
Marquer une charge comme payée
Crée automatiquement l’écriture comptable de paiement (FIN - Financier)
pub async fn mark_as_overdue( &self, id: Uuid, ) -> Result<ExpenseResponseDto, String>
pub async fn cancel_expense( &self, id: Uuid, ) -> Result<ExpenseResponseDto, String>
pub async fn reactivate_expense( &self, id: Uuid, ) -> Result<ExpenseResponseDto, String>
pub async fn unpay_expense( &self, id: Uuid, ) -> Result<ExpenseResponseDto, String>
Sourcepub async fn create_invoice_draft(
&self,
dto: CreateInvoiceDraftDto,
) -> Result<InvoiceResponseDto, String>
pub async fn create_invoice_draft( &self, dto: CreateInvoiceDraftDto, ) -> Result<InvoiceResponseDto, String>
Créer une facture brouillon avec gestion TVA
Sourcepub async fn update_invoice_draft(
&self,
invoice_id: Uuid,
dto: UpdateInvoiceDraftDto,
) -> Result<InvoiceResponseDto, String>
pub async fn update_invoice_draft( &self, invoice_id: Uuid, dto: UpdateInvoiceDraftDto, ) -> Result<InvoiceResponseDto, String>
Modifier une facture brouillon ou rejetée
Sourcepub async fn submit_for_approval(
&self,
invoice_id: Uuid,
_dto: SubmitForApprovalDto,
) -> Result<InvoiceResponseDto, String>
pub async fn submit_for_approval( &self, invoice_id: Uuid, _dto: SubmitForApprovalDto, ) -> Result<InvoiceResponseDto, String>
Soumettre une facture pour validation (Draft → PendingApproval)
Sourcepub async fn approve_invoice(
&self,
invoice_id: Uuid,
dto: ApproveInvoiceDto,
) -> Result<InvoiceResponseDto, String>
pub async fn approve_invoice( &self, invoice_id: Uuid, dto: ApproveInvoiceDto, ) -> Result<InvoiceResponseDto, String>
Approuver une facture (PendingApproval → Approved)
Crée automatiquement l’écriture comptable correspondante (ACH - Achats)
Sourcepub async fn reject_invoice(
&self,
invoice_id: Uuid,
dto: RejectInvoiceDto,
) -> Result<InvoiceResponseDto, String>
pub async fn reject_invoice( &self, invoice_id: Uuid, dto: RejectInvoiceDto, ) -> Result<InvoiceResponseDto, String>
Rejeter une facture avec raison (PendingApproval → Rejected)
Sourcepub async fn get_pending_invoices(
&self,
organization_id: Uuid,
) -> Result<PendingInvoicesListDto, String>
pub async fn get_pending_invoices( &self, organization_id: Uuid, ) -> Result<PendingInvoicesListDto, String>
Récupérer toutes les factures en attente d’approbation (pour syndics)
Sourcepub async fn get_invoice(
&self,
id: Uuid,
) -> Result<Option<InvoiceResponseDto>, String>
pub async fn get_invoice( &self, id: Uuid, ) -> Result<Option<InvoiceResponseDto>, String>
Récupérer une facture avec tous les détails (enrichi)
Auto Trait Implementations§
impl Freeze for ExpenseUseCases
impl !RefUnwindSafe for ExpenseUseCases
impl Send for ExpenseUseCases
impl Sync for ExpenseUseCases
impl Unpin for ExpenseUseCases
impl !UnwindSafe for ExpenseUseCases
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Chain<T> for T
impl<T> Chain<T> for T
§impl<T> Fake for T
impl<T> Fake for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.