I am trying to overwrite one of the function: calculateRowAmount of CreateReturnRequestController to have a custom logic.
Here are the steps followed.
Created definition.xml by creating new folder myextension\backoffice\resources\widgets\mycreatereturn
*
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget-definition id="org.myextension.widgets.mycreatereturnrequest" extends="de.hybris.ordermanagementbackoffice.widgets.createreturnrequest"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.hybris.com/schema/cockpitng/widget-definition.xsd">
<name>Extended Create returns</name>
<defaultTitle>Extended Create returns</defaultTitle>
<sockets>
<input type="de.hybris.platform.core.model.order.OrderModel" id="inputObject"/>
<output type="java.lang.String" id="confirm"/>
</sockets>
<keywords>
<keyword>myextension</keyword>
</keywords>
<controller class="org.myextension.widgets.mycreatereturn.MyCreateReturnRequestController" />
</widget-definition>
Created new Class : MyCreateReturnRequestController in myextension\backoffice\src
package org.myextension.widgets.mycreatereturn;
import java.math.BigDecimal;
import java.math.RoundingMode;
import de.hybris.platform.omsbackoffice.widgets.returns.createreturnrequest.CreateReturnRequestController;
import de.hybris.platform.omsbackoffice.widgets.returns.dtos.ReturnEntryToCreateDto;
import org.zkoss.zul.Row;
public class MyCreateReturnRequestController extends CreateReturnRequestController
{
@Override
protected void calculateRowAmount(Row myRow, ReturnEntryToCreateDto myReturnEntry, int qtyEntered) {
BigDecimal newAmount = new BigDecimal(myReturnEntry.getRefundEntry().getOrderEntry().getTotalPrice().doubleValue());
myReturnEntry.setQuantityToReturn(qtyEntered);
myReturnEntry.getRefundEntry().setAmount(newAmount);
this.applyToRow(newAmount.setScale(2, RoundingMode.CEILING).doubleValue(), 7, myRow);
this.calculateTotalRefundAmount();
}
protected void selectAllEntries() {
super.selectAllEntries();
}
}
Updated myextension-backoffice-widgets.xml with below code
http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation=">
<widget-extension id="csCollapsibleContainer">
<remove widgetId="omsCreateReturnRequestPopup"/>
<widget id="myCreateReturnRequestPopup" widgetDefinitionId="org.myextension.widgets.mycreatereturnrequest" slotId="cockpitWidgetChildrenInvisible"
title="My Create Return Request" template="true">
<instance-settings socketEventRoutingMode="LAST_USED">
<create onInit="false" reuseExisting="true">
<all-incoming-events/>
</create>
<close>
<all-outgoing-events/>
</close>
<select onInit="false">
<all-incoming-events/>
</select>
</instance-settings>
<setting key="widgetStyleClass" type="String"></setting>
<setting key="__externalLocationPath" type="String">extension://customersupportbackoffice</setting>
<setting key="widgetStyleAttribute" type="String"></setting>
<setting key="_width" type="String">1200px</setting>
<setting key="_height" type="String">650px</setting>
<virtual-sockets />
</widget>
</widget-extension>
<widget-connection sourceWidgetId="myextension-explorer-tree" outputId="nodeSelected" targetWidgetId="myextension-tree-node-adapter" inputId="input"/>
<widget-connection sourceWidgetId="myextension-tree-node-adapter" outputId="true" targetWidgetId="myextension-typecode-extractor" inputId="genericInput"/>
<widget-connection sourceWidgetId="myextension-tree-node-adapter" outputId="true" targetWidgetId="myextension-search-enabler" inputId="genericInput"/>
<widget-connection sourceWidgetId="myextension-tree-node-adapter" outputId="false" targetWidgetId="myextension-search-disabler" inputId="genericInput"/>
<widget-connection sourceWidgetId="myextension-typecode-extractor" outputId="genericOutput" targetWidgetId="myextension-search-logic" inputId="type"/>
<widget-connection sourceWidgetId="myextension-search-enabler" outputId="genericOutput" targetWidgetId="myextension-text-search" inputId="enabled"/>
<widget-connection sourceWidgetId="myextension-search-disabler" outputId="genericOutput" targetWidgetId="myextension-text-search" inputId="enabled"/>
<widget-connection sourceWidgetId="myextension-text-search" outputId="query" targetWidgetId="myextension-search-logic" inputId="searchtext"/>
<widget-connection sourceWidgetId="myextension-search-logic" outputId="pageable" targetWidgetId="myextension-simple-list" inputId="pageable"/>
<widget-connection sourceWidgetId="STUB_de.hybris.ordermanagementbackoffice.actions.returns.createreturnrequestaction" outputId="createReturnRequestContext" targetWidgetId="myCreateReturnRequestPopup" inputId="inputObject"/>
</widgets>
Ant all, restarted the server , did reset every thing from backoffice orchestration.
I verified that mycustom widget is existing by trying to add a widget (+) by searching from widget list.
but I don't see that my custom function is being executed. in fact looks like custom widget not been injected.
widget.xml (opened up from orchestration) I don't see the omsCreateReturnRequestPopup not myCreateReturnRequestPopup.
when I try to execute the Returns, I was able to hit the brake point in CreateReturnRequestController but not in myeReturnRequestController.
I would appreciate any help.