/** * RequisicionService - Servicio de requisiciones de obra * * Gestión de requisiciones de material con workflow: * draft -> submitted -> approved -> partially_served -> served * * @module Inventory */ import { Repository } from 'typeorm'; import { RequisicionObra, RequisitionStatus } from '../entities/requisicion-obra.entity'; import { RequisicionLinea } from '../entities/requisicion-linea.entity'; import { ServiceContext, PaginatedResult } from '../../../shared/services/base.service'; export interface CreateRequisicionDto { fraccionamientoId: string; requisitionDate: Date; requiredDate: Date; priority?: string; destinationWarehouseId?: string; notes?: string; } export interface AddLineaDto { productId: string; conceptoId?: string; loteId?: string; quantityRequested: number; unitId?: string; notes?: string; } export interface RequisicionFilters { fraccionamientoId?: string; status?: RequisitionStatus; priority?: string; dateFrom?: Date; dateTo?: Date; } export declare class RequisicionService { private readonly requisicionRepository; private readonly lineaRepository; constructor(requisicionRepository: Repository, lineaRepository: Repository); private generateNumber; findWithFilters(ctx: ServiceContext, filters?: RequisicionFilters, page?: number, limit?: number): Promise>; findById(ctx: ServiceContext, id: string): Promise; findWithDetails(ctx: ServiceContext, id: string): Promise; create(ctx: ServiceContext, dto: CreateRequisicionDto): Promise; addLinea(ctx: ServiceContext, requisicionId: string, dto: AddLineaDto): Promise; removeLinea(ctx: ServiceContext, requisicionId: string, lineaId: string): Promise; submit(ctx: ServiceContext, id: string): Promise; approve(ctx: ServiceContext, id: string): Promise; reject(ctx: ServiceContext, id: string, reason: string): Promise; cancel(ctx: ServiceContext, id: string): Promise; updateServedQuantity(ctx: ServiceContext, lineaId: string, quantityServed: number): Promise; private updateRequisitionStatus; softDelete(ctx: ServiceContext, id: string): Promise; } //# sourceMappingURL=requisicion.service.d.ts.map