Value
Last updated
Last updated
include ForestAdmin::Types
@create_agent.add_chart('monthlyRecuringRevenue') do |context, result_builder|
aggregation = Aggregation.new(operation: 'Sum', field: 'amount')
filter = Filter.new(condition_tree: ConditionTreeLeaf.new('status', Operators::EQUAL, 'paid'))
result = context.datasource.get_collection('payment').aggregate(filter, aggregation)
result_builder.value(result[0]['value'])
end
# DSL syntax
@create_agent.chart :monthlyRecuringRevenue do
aggregation = Aggregation.new(operation: 'Sum', field: 'amount')
filter = Filter.new(condition_tree: ConditionTreeLeaf.new('status', Operators::EQUAL, 'paid'))
result = context.datasource.get_collection('payment').aggregate(context.caller, filter, aggregation)
value result[0]['value']
endinclude ForestAdmin::Types
@create_agent.customize_collection('customer') do |collection|
collection.add_chart('monthlyRecuringRevenue') do |context, result_builder|
aggregation = Aggregation.new(operation: 'Count', field: 'id')
filter = Filter.new(
condition_tree: ConditionTreeBranch.new(
'And',
[
ConditionTreeLeaf.new('status', Operators::EQUAL, 'paid'),
ConditionTreeLeaf.new('customer:id', Operators::EQUAL, context.get_record_id)
]
)
)
result = context.datasource.get_collection('payment').aggregate(filter, aggregation)
result_builder.value(result[0]['value'])
end
end
# DSL syntax
@create_agent.collection :customer do |collection|
collection.chart :monthlyRecuringRevenue do
aggregation = Aggregation.new(operation: 'Count', field: 'id')
filter = Filter.new(
condition_tree: ConditionTreeBranch.new(
'And',
[
ConditionTreeLeaf.new('status', Operators::EQUAL, 'paid'),
ConditionTreeLeaf.new('customer:id', Operators::EQUAL, context.record_id)
]
)
)
result = context.datasource.get_collection('payment').aggregate(context.caller, filter, aggregation)
value result[0]['value']
end
end@create_agent.add_chart('appointments') do |_context, result_builder|
result_builder.value(784, 760)
end@create_agent.chart :appointments do
value 784, 760
end