erp-construccion-backend/dist/modules/purchase/services/comparativo.service.d.ts

57 lines
2.7 KiB
TypeScript

/**
* ComparativoService - Servicio de comparativos de cotizaciones
*
* Gestión de cuadros comparativos para selección de proveedores.
*
* @module Purchase
*/
import { Repository } from 'typeorm';
import { ComparativoCotizaciones, ComparativoStatus } from '../entities/comparativo-cotizaciones.entity';
import { ComparativoProveedor } from '../entities/comparativo-proveedor.entity';
import { ComparativoProducto } from '../entities/comparativo-producto.entity';
import { ServiceContext, PaginatedResult } from '../../../shared/services/base.service';
export interface CreateComparativoDto {
requisicionId?: string;
name: string;
comparisonDate: Date;
notes?: string;
}
export interface AddProveedorDto {
supplierId: string;
quotationNumber?: string;
quotationDate?: Date;
deliveryDays?: number;
paymentConditions?: string;
evaluationNotes?: string;
}
export interface AddProductoDto {
productId: string;
quantity: number;
unitPrice: number;
notes?: string;
}
export interface ComparativoFilters {
requisicionId?: string;
status?: ComparativoStatus;
dateFrom?: Date;
dateTo?: Date;
}
export declare class ComparativoService {
private readonly comparativoRepository;
private readonly proveedorRepository;
private readonly productoRepository;
constructor(comparativoRepository: Repository<ComparativoCotizaciones>, proveedorRepository: Repository<ComparativoProveedor>, productoRepository: Repository<ComparativoProducto>);
private generateCode;
findWithFilters(ctx: ServiceContext, filters?: ComparativoFilters, page?: number, limit?: number): Promise<PaginatedResult<ComparativoCotizaciones>>;
findById(ctx: ServiceContext, id: string): Promise<ComparativoCotizaciones | null>;
findWithDetails(ctx: ServiceContext, id: string): Promise<ComparativoCotizaciones | null>;
create(ctx: ServiceContext, dto: CreateComparativoDto): Promise<ComparativoCotizaciones>;
addProveedor(ctx: ServiceContext, comparativoId: string, dto: AddProveedorDto): Promise<ComparativoProveedor>;
addProducto(ctx: ServiceContext, proveedorId: string, dto: AddProductoDto): Promise<ComparativoProducto>;
startEvaluation(ctx: ServiceContext, id: string): Promise<ComparativoCotizaciones | null>;
selectWinner(ctx: ServiceContext, id: string, supplierId: string): Promise<ComparativoCotizaciones | null>;
cancel(ctx: ServiceContext, id: string): Promise<ComparativoCotizaciones | null>;
updateProveedorTotal(ctx: ServiceContext, proveedorId: string): Promise<ComparativoProveedor | null>;
softDelete(ctx: ServiceContext, id: string): Promise<boolean>;
}
//# sourceMappingURL=comparativo.service.d.ts.map