Validate Discount amount with Unit price in Quote line items

Hi,

I am using sugar 7.9 version. I am trying to validate the quote line item based on the below criteria.

If Discount amount is greater than Unit price then I need to show a error message like `Total Discount amount should be less than or equal to the Unit price`.

I tried to achieve this using

'validation' => array(
'type' => 'range',
'min' => '0',
'max' => '$discount_price,
),

It's not working as expected. 

But both the fields are in currency datatype. So I am not sure How to achieve this validation.

Thanks in advance

Parents
  • You are missing a quote after $discount_price but I'm not sure that will address your problem.

    I'm not sure you can use variables like we do in sugar logic.

    All the examples I have seen of range have hardcoded numbers.

    The validations that use another field are all dates and have a compareto parameter to get the field value, for example in Meetings the date_start has the following:

          'validation' =>

          array (

            'type' => 'isbefore',

            'compareto' => 'date_end',

            'blank' => false,

          ),

    Perhaps you could put a validation on the total_amount field to check that it's greater than -1, which is greater than or equal to zero (if the discount is higher than the unit price you'll get a negative total_amount).

          'validation' =>

          array (

            'type' => 'range',

            'greaterthan' => -1,

          ),

    HTH

    FrancescaS

Reply
  • You are missing a quote after $discount_price but I'm not sure that will address your problem.

    I'm not sure you can use variables like we do in sugar logic.

    All the examples I have seen of range have hardcoded numbers.

    The validations that use another field are all dates and have a compareto parameter to get the field value, for example in Meetings the date_start has the following:

          'validation' =>

          array (

            'type' => 'isbefore',

            'compareto' => 'date_end',

            'blank' => false,

          ),

    Perhaps you could put a validation on the total_amount field to check that it's greater than -1, which is greater than or equal to zero (if the discount is higher than the unit price you'll get a negative total_amount).

          'validation' =>

          array (

            'type' => 'range',

            'greaterthan' => -1,

          ),

    HTH

    FrancescaS

Children