Initial commit
This commit is contained in:
95
services/devisActionsService.ts
Normal file
95
services/devisActionsService.ts
Normal file
@@ -0,0 +1,95 @@
|
||||
import { apiService } from './api';
|
||||
|
||||
interface DevisRenewalRequest {
|
||||
devisId: string;
|
||||
nouveaueDateValidite: string;
|
||||
modifications?: string;
|
||||
}
|
||||
|
||||
interface DevisArchiveRequest {
|
||||
devisId: string;
|
||||
motif: string;
|
||||
}
|
||||
|
||||
interface ClientFollowUpRequest {
|
||||
devisId: string;
|
||||
clientId: string;
|
||||
type: 'email' | 'telephone' | 'courrier';
|
||||
message: string;
|
||||
}
|
||||
|
||||
interface ChantierCreationRequest {
|
||||
devisId: string;
|
||||
dateDebutSouhaitee: string;
|
||||
notes?: string;
|
||||
}
|
||||
|
||||
interface FactureCreationRequest {
|
||||
devisId: string;
|
||||
type: 'FACTURE' | 'ACOMPTE';
|
||||
pourcentage?: number; // Pour les acomptes
|
||||
}
|
||||
|
||||
class DevisActionsService {
|
||||
/**
|
||||
* Renouveler un devis expiré
|
||||
*/
|
||||
async renewDevis(request: DevisRenewalRequest): Promise<void> {
|
||||
try {
|
||||
await apiService.api.post(`/devis/${request.devisId}/renew`, request);
|
||||
} catch (error) {
|
||||
console.error('Erreur lors du renouvellement du devis:', error);
|
||||
throw new Error('Impossible de renouveler le devis. Veuillez réessayer.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Archiver un devis
|
||||
*/
|
||||
async archiveDevis(request: DevisArchiveRequest): Promise<void> {
|
||||
try {
|
||||
await apiService.api.post(`/devis/${request.devisId}/archive`, request);
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de l\'archivage du devis:', error);
|
||||
throw new Error('Impossible d\'archiver le devis. Veuillez réessayer.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Effectuer un suivi client
|
||||
*/
|
||||
async followUpClient(request: ClientFollowUpRequest): Promise<void> {
|
||||
try {
|
||||
await apiService.api.post(`/devis/${request.devisId}/follow-up`, request);
|
||||
} catch (error) {
|
||||
console.error('Erreur lors du suivi client:', error);
|
||||
throw new Error('Impossible d\'effectuer le suivi client. Veuillez réessayer.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Créer un chantier à partir d'un devis accepté
|
||||
*/
|
||||
async createChantierFromDevis(request: ChantierCreationRequest): Promise<void> {
|
||||
try {
|
||||
await apiService.api.post(`/devis/${request.devisId}/create-chantier`, request);
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la création du chantier:', error);
|
||||
throw new Error('Impossible de créer le chantier. Veuillez réessayer.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Créer une facture à partir d'un devis accepté
|
||||
*/
|
||||
async createFactureFromDevis(request: FactureCreationRequest): Promise<void> {
|
||||
try {
|
||||
await apiService.api.post(`/devis/${request.devisId}/create-facture`, request);
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la création de la facture:', error);
|
||||
throw new Error('Impossible de créer la facture. Veuillez réessayer.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new DevisActionsService();
|
||||
Reference in New Issue
Block a user