Opportunity Read Only

I want to make the entire opportunity read-only after the opportunity has been marked closed-won.  What is the best way to do this?

Thank you,

   Jake

Parents
  • Hi Jake Vernon

    Can you check this code and let me know:

    In custom/modules/Opportunities/clients/base/views/record/record.js

    Under Initialize function add following code:

    this.on('render', this.hideAllfields, this); 
    this.events['change input[name=sales_stage]'] = 'hideAllfields';

    Now outside of Initialize function add this code:

    hideAllfields: function(){
              var ssValue = this.model.get('sales_stage');
              if(ssValue == 'Closed Won'){
                   _.each(this.fields, function(field) {                         
                        $('input[name='+field.def.name+']').prop("readonly",true);                
                        $('[data-fieldname="'+field.def.name+'"] input[data-type=date]').prop("readonly",true);                
                        if (_.isEqual(field.def.name, 'sales_stage')) {                           
                             $('input[name='+field.def.name+']').prop("readonly",false);      
                             $('[data-fieldname="'+field.def.name+'"] input[data-type=date]').prop("readonly",false); 
                        }     
                   }, this);
              }else{
                   _.each(this.fields, function(field) {
                        $('input[name='+field.def.name+']').prop("readonly",false);
                        $('[data-fieldname="'+field.def.name+'"] input[data-type=date]').prop("readonly",false);                               
                   }, this);
                   
              }
              
         },

    Hope this Helps..!!

    Best Regards

    S Ramana Raju

Reply
  • Hi Jake Vernon

    Can you check this code and let me know:

    In custom/modules/Opportunities/clients/base/views/record/record.js

    Under Initialize function add following code:

    this.on('render', this.hideAllfields, this); 
    this.events['change input[name=sales_stage]'] = 'hideAllfields';

    Now outside of Initialize function add this code:

    hideAllfields: function(){
              var ssValue = this.model.get('sales_stage');
              if(ssValue == 'Closed Won'){
                   _.each(this.fields, function(field) {                         
                        $('input[name='+field.def.name+']').prop("readonly",true);                
                        $('[data-fieldname="'+field.def.name+'"] input[data-type=date]').prop("readonly",true);                
                        if (_.isEqual(field.def.name, 'sales_stage')) {                           
                             $('input[name='+field.def.name+']').prop("readonly",false);      
                             $('[data-fieldname="'+field.def.name+'"] input[data-type=date]').prop("readonly",false); 
                        }     
                   }, this);
              }else{
                   _.each(this.fields, function(field) {
                        $('input[name='+field.def.name+']').prop("readonly",false);
                        $('[data-fieldname="'+field.def.name+'"] input[data-type=date]').prop("readonly",false);                               
                   }, this);
                   
              }
              
         },

    Hope this Helps..!!

    Best Regards

    S Ramana Raju

Children