From 229916def2b56eedfc3a31724860c7e7dda38b96 Mon Sep 17 00:00:00 2001 From: Abdul Rahman <81605929+abdulrahmancodes@users.noreply.github.com> Date: Wed, 31 Dec 2025 18:28:20 +0530 Subject: [PATCH] Fix: Change opportunity kanban view aggregate operation from MIN to SUM (#16879) Closes #16806 --- .../get-available-aggregations-from-object-fields.util.ts | 3 +++ .../views/opportunity-by-stage.view.ts | 2 +- .../utils/view/compute-standard-opportunity-views.util.ts | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util.ts index 3c872a5246..32a3a45bb3 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util.ts @@ -161,6 +161,7 @@ export const getAvailableAggregationsFromObjectFields = ( description: `Maximal amount contained in the field ${field.name}`, fromField: field.name, fromSubFields: getSubfieldsForAggregateOperation(field.type), + subFieldForNumericOperation: 'amountMicros', fromFieldType: field.type, aggregateOperation: AggregateOperations.MAX, }; @@ -170,6 +171,7 @@ export const getAvailableAggregationsFromObjectFields = ( description: `Sum of amounts contained in the field ${field.name}`, fromField: field.name, fromSubFields: getSubfieldsForAggregateOperation(field.type), + subFieldForNumericOperation: 'amountMicros', fromFieldType: field.type, aggregateOperation: AggregateOperations.SUM, }; @@ -179,6 +181,7 @@ export const getAvailableAggregationsFromObjectFields = ( description: `Average amount contained in the field ${field.name}`, fromField: field.name, fromSubFields: getSubfieldsForAggregateOperation(field.type), + subFieldForNumericOperation: 'amountMicros', fromFieldType: field.type, aggregateOperation: AggregateOperations.AVG, }; diff --git a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/opportunity-by-stage.view.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/opportunity-by-stage.view.ts index 8d7f72950b..0e68f90d2c 100644 --- a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/opportunity-by-stage.view.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/opportunity-by-stage.view.ts @@ -44,7 +44,7 @@ export const opportunitiesByStageView = ({ key: null, position: 2, icon: 'IconLayoutKanban', - kanbanAggregateOperation: AggregateOperations.MIN, + kanbanAggregateOperation: AggregateOperations.SUM, kanbanAggregateOperationFieldMetadataId: opportunityObjectMetadata.fields.find( (field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.amount, diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts index 524cd37825..445b962858 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts @@ -34,7 +34,7 @@ export const computeStandardOpportunityViews = ( position: 2, icon: 'IconLayoutKanban', mainGroupByFieldName: 'stage', - kanbanAggregateOperation: AggregateOperations.MIN, + kanbanAggregateOperation: AggregateOperations.SUM, kanbanAggregateOperationFieldName: 'amount', }, }),