Question

Add discount to opportunity product

I am trying to add a discount field to the opportunity product. I want this discount to affect the amount field. Amount is already a calculated field which uses the price and quanity in a replacing module (OpportunityProductPageV2), so I want this discount logic to take place in a replacing module. I have tried creating this replacing module but I receive no response from it, or any errors.

 

The OpportunityProductPageV2 I created.

define("OpportunityProductPageV2", [], function() {
    return {
        // Edit page object schema name.
        entitySchemaName: "Opportunity",
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        // The attributes property of the view model.
        attributes: {
			"Amount": {
				dependencies: [
					{
						columns: ["Price", "Quantity", "UsrDiscount"],
						methodName: "recalculateAmount"
					}
				]
			}
        },
        // Collection of the edit page view model methods.
        methods: {
            // Overriding the base Terrasoft.BasePageV2.onEntityInitialized method, which 
            // is triggerd after the edit page object schema has been initialized.
            onEntityInitialized: function() {
                // Method parent implementation is called.
                this.callParent(arguments);
                // Calling the handler method, which calculates the value in the [UsrBalance] column.
                this.recalculateAmount();
            },
            // Handler method that calculates the value in the [UsrBalance] column.
            recalculateAmount: function() {
            	// Getting individual opportunity product values
            	var quanity = this.get("Quanity");
            	var price = this.get("Price");
            	var discountPercent = this.get("UsrDiscount");
 
            	// If there is no discount no point in recalculating
            	if (discountPercent === 0) {
            		return;
            	}
            	// Calculating the new price with the discount
            	var totalPrice = quanity * price;
            	var discountDecimal = parseFloat(discountPercent) / 100.0;
            	var discountedPrice = totalPrice - (totalPrice * discountDecimal);
 
            	if (discountedPrice) {
            		this.set("Amount", discountedPrice);
 
            }
        },
        // Visual display of the [UsrBalance] column on the edit page.
        diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
    };
});

The parent object inheritance is set to OpportunityProductPageV2. 

Any help is appreciated, thanks!

Like 0

Like

1 comments

The code is not valid. Please make sure that all open { have their closed }.

http://prntscr.com/pk8r0h

entitySchemaName in the OpportunityProductPageV2 should be OpportunityProductInterest

 

 

Show all comments