All checks were successful
Optimized Build and Deploy / remote-build-and-deploy (push) Successful in 2m15s
Frontend: - Se reemplazó el componente Table por DataGrid para habilitar ordenamiento y filtrado nativo en cliente. - Se agregó la UI para filtrar por rango de "Fecha de Estado". - Se corrigió el tipado de columnas de fecha (`type: 'date'`) implementando un `valueGetter` personalizado que parsea año/mes/día localmente para evitar errores de filtrado por diferencia de Zona Horaria (UTC vs Local). - Se actualizó `stockBobinaService` para enviar los parámetros `fechaEstadoDesde` y `fechaEstadoHasta`. Backend: - Se actualizó `StockBobinasController` para recibir los nuevos parámetros de fecha. - Se modificó `StockBobinaRepository` implementando la lógica SQL para los nuevos filtros.
88 lines
3.9 KiB
TypeScript
88 lines
3.9 KiB
TypeScript
import apiClient from '../apiClient';
|
|
import type { StockBobinaDto } from '../../models/dtos/Impresion/StockBobinaDto';
|
|
import type { CreateStockBobinaDto } from '../../models/dtos/Impresion/CreateStockBobinaDto';
|
|
import type { UpdateStockBobinaDto } from '../../models/dtos/Impresion/UpdateStockBobinaDto';
|
|
import type { CambiarEstadoBobinaDto } from '../../models/dtos/Impresion/CambiarEstadoBobinaDto';
|
|
import type { CreateStockBobinaLoteDto } from '../../models/dtos/Impresion/CreateStockBobinaLoteDto';
|
|
import type { UpdateFechaRemitoLoteDto } from '../../models/dtos/Impresion/UpdateFechaRemitoLoteDto';
|
|
|
|
interface GetAllStockBobinasParams {
|
|
idTipoBobina?: number | null;
|
|
nroBobinaFilter?: string | null;
|
|
idPlanta?: number | null;
|
|
idEstadoBobina?: number | null;
|
|
remitoFilter?: string | null;
|
|
fechaDesde?: string | null; // "yyyy-MM-dd"
|
|
fechaHasta?: string | null; // "yyyy-MM-dd"
|
|
fechaEstadoDesde?: string | null; // "yyyy-MM-dd"
|
|
fechaEstadoHasta?: string | null; // "yyyy-MM-dd"
|
|
}
|
|
|
|
const getAllStockBobinas = async (filters: GetAllStockBobinasParams): Promise<StockBobinaDto[]> => {
|
|
const params: Record<string, string | number | boolean> = {};
|
|
if (filters.idTipoBobina) params.idTipoBobina = filters.idTipoBobina;
|
|
if (filters.nroBobinaFilter) params.nroBobina = filters.nroBobinaFilter; // El backend espera nroBobina
|
|
if (filters.idPlanta) params.idPlanta = filters.idPlanta;
|
|
if (filters.idEstadoBobina) params.idEstadoBobina = filters.idEstadoBobina;
|
|
if (filters.remitoFilter) params.remito = filters.remitoFilter; // El backend espera remito
|
|
if (filters.fechaDesde) params.fechaDesde = filters.fechaDesde;
|
|
if (filters.fechaHasta) params.fechaHasta = filters.fechaHasta;
|
|
if (filters.fechaEstadoDesde) params.fechaEstadoDesde = filters.fechaEstadoDesde;
|
|
if (filters.fechaEstadoHasta) params.fechaEstadoHasta = filters.fechaEstadoHasta;
|
|
|
|
const response = await apiClient.get<StockBobinaDto[]>('/stockbobinas', { params });
|
|
return response.data;
|
|
};
|
|
|
|
const getStockBobinaById = async (idBobina: number): Promise<StockBobinaDto> => {
|
|
const response = await apiClient.get<StockBobinaDto>(`/stockbobinas/${idBobina}`);
|
|
return response.data;
|
|
};
|
|
|
|
const ingresarBobina = async (data: CreateStockBobinaDto): Promise<StockBobinaDto> => {
|
|
const response = await apiClient.post<StockBobinaDto>('/stockbobinas', data);
|
|
return response.data;
|
|
};
|
|
|
|
const updateDatosBobinaDisponible = async (idBobina: number, data: UpdateStockBobinaDto): Promise<void> => {
|
|
await apiClient.put(`/stockbobinas/${idBobina}/datos`, data);
|
|
};
|
|
|
|
const cambiarEstadoBobina = async (idBobina: number, data: CambiarEstadoBobinaDto): Promise<void> => {
|
|
await apiClient.put(`/stockbobinas/${idBobina}/cambiar-estado`, data);
|
|
};
|
|
|
|
const deleteIngresoBobina = async (idBobina: number): Promise<void> => {
|
|
await apiClient.delete(`/stockbobinas/${idBobina}`);
|
|
};
|
|
|
|
const verificarRemitoExistente = async (idPlanta: number, remito: string, fechaRemito?: string | null): Promise<StockBobinaDto[]> => {
|
|
const params: { idPlanta: number; remito: string; fechaRemito?: string } = { idPlanta, remito };
|
|
if (fechaRemito) {
|
|
params.fechaRemito = fechaRemito;
|
|
}
|
|
const response = await apiClient.get<StockBobinaDto[]>('/stockbobinas/verificar-remito', { params });
|
|
return response.data;
|
|
};
|
|
|
|
const ingresarLoteBobinas = async (data: CreateStockBobinaLoteDto): Promise<void> => {
|
|
await apiClient.post('/stockbobinas/lote', data);
|
|
};
|
|
|
|
const actualizarFechaRemitoLote = async (data: UpdateFechaRemitoLoteDto): Promise<void> => {
|
|
await apiClient.put('/stockbobinas/actualizar-fecha-remito', data);
|
|
};
|
|
|
|
const stockBobinaService = {
|
|
getAllStockBobinas,
|
|
getStockBobinaById,
|
|
ingresarBobina,
|
|
updateDatosBobinaDisponible,
|
|
cambiarEstadoBobina,
|
|
deleteIngresoBobina,
|
|
verificarRemitoExistente,
|
|
ingresarLoteBobinas,
|
|
actualizarFechaRemitoLote,
|
|
};
|
|
|
|
export default stockBobinaService; |