57 lines
2.7 KiB
TypeScript
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
|