perf: limit cut plan to active orders
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 53s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 53s
This commit is contained in:
@@ -884,6 +884,10 @@ const listProductionOrders = async (filters = {}) => {
|
||||
)`);
|
||||
}
|
||||
|
||||
if (filters.activeOnly === 'true') {
|
||||
where.push(`po.status IN ('open', 'cutting', 'sewing', 'review', 'in_progress')`);
|
||||
}
|
||||
|
||||
const result = await pool.query(`
|
||||
${baseProductionOrderSelect}
|
||||
${where.length ? `WHERE ${where.join(' AND ')}` : ''}
|
||||
|
||||
@@ -222,12 +222,13 @@ export const downloadDatabaseDiagnostic = async (): Promise<void> => {
|
||||
|
||||
export const fetchProductionOrders = async (
|
||||
dateRange: DateRange,
|
||||
filters?: { search?: string },
|
||||
filters?: { search?: string; activeOnly?: boolean },
|
||||
options?: CacheOptions
|
||||
): Promise<ProductionOrderSummary> => {
|
||||
const params = buildDateRangeParams(dateRange);
|
||||
const search = filters?.search?.trim();
|
||||
if (search) params.set('search', search);
|
||||
if (filters?.activeOnly) params.set('activeOnly', 'true');
|
||||
|
||||
const path = `/production-orders?${params.toString()}`;
|
||||
return getCachedAnalytics(path, async () => {
|
||||
|
||||
@@ -239,7 +239,7 @@ const Cutting = () => {
|
||||
setIsLoading(true);
|
||||
const [productData, productionOrderData, compositionData, stockData, supplySummary] = await Promise.all([
|
||||
fetchProductAnalytics(dateRange),
|
||||
fetchProductionOrders(allProductionOrdersRange),
|
||||
fetchProductionOrders(allProductionOrdersRange, { activeOnly: true }),
|
||||
fetchProductCompositions(),
|
||||
fetchStock(),
|
||||
fetchSupplySummary()
|
||||
@@ -794,7 +794,7 @@ const Cutting = () => {
|
||||
source: 'cut_plan'
|
||||
});
|
||||
|
||||
const refreshedOrders = await fetchProductionOrders(allProductionOrdersRange, undefined, { force: true });
|
||||
const refreshedOrders = await fetchProductionOrders(allProductionOrdersRange, { activeOnly: true }, { force: true });
|
||||
setProductionOrders(refreshedOrders.orders);
|
||||
setGenerationMessage(`${result.plan?.number || 'Plano'} criado com ${result.created.length} OPs${result.skipped.length ? ` · ${result.skipped.length} já existiam abertas` : ''}.`);
|
||||
setIsOrderPreviewOpen(false);
|
||||
|
||||
Reference in New Issue
Block a user