Skip to Content
0
Former Member
Nov 15, 2017 at 04:37 PM

Customer Support Back Office : extension to omsCreateReturnRequestPopup is not working

671 Views

I am trying to overwrite one of the function: calculateRowAmount of CreateReturnRequestController to have a custom logic.

Here are the steps followed.

  1. 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>


  1. 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();
     
        }
     
         }
    
    
  2. 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>
    
    
    
  3. Ant all, restarted the server , did reset every thing from backoffice orchestration.

  4. 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.