Custom logic for currency field type

I have a custom field and trying to implement required logic following this guide https://docs.suitecrm.com/8.x/developer/extensions/frontend/logic/field-logic/fe-extensions-required-logic.

It seems to work fine on text and integer fields types but doesn’t work on currency type. Any suggestions?

Could you please share your tried code?

$dictionary['Opportunity']['fields']['cf_test_currency_c']['logic'] = [
    'required' => [
        'key' => 'required',
        'modes' => ['edit', 'create'],
        'params' => [
            'fieldDependencies' => [
                'sales_stage'
            ],
            'activeOnFields' => [
                'sales_stage' => [
                    'Proposal'
                ],
            ],
        ],
    ]
];

Try this:

$dictionary['Opportunity']['fields']['cf_test_currency_c']['logic'] = [
    'required' => [
        'key' => 'required',
        'modes' => ['edit', 'create'],
        'params' => [
            'fieldDependencies' => [
                'sales_stage',
                'cf_test_currency_c' 
            ],
            'activeOnFields' => [
                'sales_stage' => [
                    'Proposal'
                ],
            ],
        ],
    ]
];

Thank you for your suggestion. Unfortunately issue is still there with the proposed change.

I decided to change currency to decimal and it works fine as a workaround.

Another issue now - can dropdown take multiple values as OR for required logic validation? For my example, I need to make field required when sales stage is either “Proposal” OR “Qualification”. The following code does not work. As soon as second value is added neither is accepted:

$dictionary['Opportunity']['fields']['cf_test_currency_c']['logic'] = [
    'required' => [
        'key' => 'required',
        'modes' => ['edit', 'create'],
        'params' => [
            'fieldDependencies' => [
                'sales_stage'
            ],
            'activeOnFields' => [
                'sales_stage' => [
                    'Proposal', 'Qualification'
                ],
            ],
        ],
    ]
];

Can you please try below

$dictionary['Opportunity']['fields']['cf_test_currency_c']['logic'] = [
    'required' => [
        'key' => 'required',
        'modes' => ['edit', 'create'],
        'params' => [
            'fieldDependencies' => [
                'sales_stage'
            ],
            'activeOnFields' => [
                	'sales_stage' => [
									['operator' => 'is-equal','values' => ['Prospecting','Value Proposition','Qualification']],
								],					
            ],
        ],
    ]
];
1 Like

It works thank you!

I think mentioning of “is-equal” as a valid operator to documentation would solve questions like this from others in the future :slight_smile:

Please mark answer as solution which solved your problem.