SHARE
TWEET

Untitled

a guest Nov 22nd, 2019 86 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  sap.ui.define([
  2.     "it/q8/supply/controller/BaseController",
  3.     'sap/ui/model/json/JSONModel',
  4.     "sap/ui/model/Filter",
  5.     "sap/m/MessageBox",
  6.     'sap/ui/core/Fragment',
  7.     "sap/ui/model/FilterOperator"
  8. ], function(Controller, JSONModel, Filter, FilterOperator, MessageBox, Fragment) {
  9.     "use strict";
  10.  
  11.     return Controller.extend("it.q8.supply.controller.Configuration", {
  12.  
  13.         __targetName: "Configuration",
  14.         inputId: '',
  15.         __currApp: "",
  16.         __currTab: "Base",
  17.         __counterCreateRequests: [],
  18.         __counterUpdateRequests: [],
  19.        
  20.         onActivateSetTimeout: function (controller) {
  21.            
  22.            
  23.             var oView = controller.getView();
  24.             this._timer = setInterval (function  (controller) {
  25.                 controller.loadAllChainModels(oView);
  26.             } , 6000, this);
  27.         },
  28.  
  29.         onRouteMatched: function(oEvent) {
  30.             if(this._reload === undefined ) this._reload = "true";
  31.             else location.reload();
  32.             this.getView().getModel("temp").setProperty("/currApp", "APP");
  33.             var oView = this.getView();
  34.             this.__currApp = oEvent.getParameters().name;
  35.             var sTab = oEvent.getParameters().arguments.currentFilter;
  36.             this.getView().byId('ConfigurationIconTabBar').setSelectedKey(sTab);
  37.             this.__currTab = sTab;
  38.             if (this.__currTab === 'All'){
  39.                 this.__currTab = 'Base';
  40.             }
  41.            
  42.             //Leggi il tile corrente come currApp
  43.             oView.bindElement("filters>/Configuration/" + this.__currTab);
  44.                 //var view = this.getView();
  45.            
  46.             this.__counterCreateRequests['success'] = 0;
  47.             this.__counterCreateRequests['error'] = 0;
  48.            
  49.             this.__counterUpdateRequests['success'] = 0;
  50.             this.__counterUpdateRequests['error'] = 0;
  51.            
  52.             // add tooltip
  53.             var oBaseMockModel = this.getView().getModel("oMockModel").getProperty('/Base');
  54.             var oMaterialMockModel = this.getView().getModel("oMockModel").getProperty('/Material');
  55.             var oMovementAssociationMockModel = this.getView().getModel("oMockModel").getProperty('/MovementAssociation');
  56.            
  57.             if( oBaseMockModel !== undefined && oBaseMockModel.length > 0 && oMaterialMockModel !== undefined && oMaterialMockModel.length > 0 && oMovementAssociationMockModel !== undefined && oMovementAssociationMockModel.length > 0 ) {                      
  58.                 var oTable = this.getView().byId("BaseTable");
  59.                 this._addTooltip(this, oTable);                
  60.                 var oTable = this.getView().byId("MaterialTable");
  61.                 this._addTooltip(this, oTable);                
  62.                 var oTable = this.getView().byId("MovementAssociationTable");
  63.                 this._addTooltip(this, oTable);
  64.                 }else{
  65.                     var oGBinding = new sap.ui.model.Binding(this.getView().getModel("oGDataModel"), "/Configuration", this.getView().getModel("oGDataModel").getContext("/"));
  66.                     oGBinding.attachChange(function() {                    
  67.                             var oTable = this.getView().byId("BaseTable");
  68.                             this._addTooltip(this, oTable);                
  69.                             var oTable = this.getView().byId("MaterialTable");
  70.                             this._addTooltip(this, oTable);                
  71.                             var oTable = this.getView().byId("MovementAssociationTable");
  72.                             this._addTooltip(this, oTable);
  73.                     }, this);  
  74.             }
  75.            
  76.             this.onActivateSetTimeout(this);
  77.         },
  78.        
  79.         onSelectTabConfiguration: function(oEvent) {
  80.             var oItems = oEvent.getSource().getItems(),
  81.                 sSelectedId = oEvent.getSource().getSelectedKey();
  82.            
  83.             var bSaved = this.getView().getModel('temp').getProperty('/' + this.__currApp + '/' + this.__currTab +'/isEditModeOn');
  84.            
  85.             if (!bSaved){
  86.                 for (var i = 0; i < oItems.length; i++) {
  87.                     var oItem = oItems[i];
  88.                     if (oItem.mProperties.key === sSelectedId) {
  89.                         var sNameTab = oItem.data("nameTab");
  90.                         this.__currTab = sNameTab;
  91.                         var sCurrApp = this.__currApp;
  92.                         this.getView().bindElement("filters>/" + sCurrApp + "/" + sNameTab);
  93.                         break;
  94.                     }
  95.                 }
  96.             }else{
  97.                 this._onMessageWarningDialog("TabUnsaved");
  98.                 oEvent.getSource().setSelectedKey(this.__currTab);
  99.             }
  100.            
  101.         },
  102.  
  103.        
  104.        
  105.        
  106.         handleValueHelpNetworkConfiguration: function(oEvent) {
  107.  
  108.             var sNameMultiInput = oEvent.getSource().data("MultiInputName");
  109.             var sNameDialog = sNameMultiInput + "Dialog";
  110.             var sMultiInputId = sNameMultiInput + "Id";
  111.             this._inputId = oEvent.getSource().getId();
  112.             var sPathDialog = "it.q8.supply.view.configuration.fragment.dialog." + sNameDialog;
  113.             this._oNameMessageDialog = sap.ui.xmlfragment(sPathDialog, this);
  114.             this.getView().addDependent(this._oNameMessageDialog);
  115.             this._oNameMessageDialog.open();
  116.         },
  117.            
  118.        
  119.         handleValueHelpOkNetworkConfiguration: function(oEvent, sValue ) {
  120.            
  121.             var oModel = this.getView().getModel('oMockModel').getProperty("/" + this.__currTab);
  122.             var oRowModel = this.getView().getModel("oMockModel").getProperty("/Base");
  123.             var oTable = this.byId(this.__currTab + 'Table');
  124.             var oNetworkInput = this.getView().byId(this._inputId);
  125.             var oRow = oNetworkInput.getParent();
  126.             var oRows = oTable.getItems();
  127.             var i = _.findIndex(oRows, oRow);
  128.             var oSelectedItem = oEvent.getParameter("selectedItem");
  129.             oModel[i].UPDATETYPE = 'updated';              
  130.            
  131.             if (oSelectedItem) {
  132.                 var sNewValue= oSelectedItem.getTitle();
  133.                 oNetworkInput.setValue(sNewValue);
  134.                 var oBWModel = this.getView().getModel('oBWModel').getProperty('/Network');
  135.                 var oNetworkJson = {};
  136.                 oNetworkJson['NETWORKDESCRIPTION'] = sNewValue;
  137.                 var sNetworkCode = _.where ( oBWModel, oNetworkJson)[0].NETWORK;
  138.                 oModel[i].NETWORK = sNetworkCode;
  139.             }
  140.            
  141.            
  142.         },
  143.        
  144.         onInputType: function(oEvent) {
  145.            
  146.             var fieldName = oEvent.getSource().data('fieldName');
  147.             var bTyping = oEvent.getSource().data('typing');
  148.             var oRowModel = this.getView().getModel("oMockModel").getProperty("/Base");
  149.             var oUsersEntry = this.getView().getModel('temp').getProperty('/Configuration/Base/UsersEntry');
  150.             var oMaxLengthJson = {};
  151.             oMaxLengthJson['FIELDNAME'] = 'NETWORKDESCRIPTION';
  152.             var sMaxLength = _.where ( oUsersEntry, oMaxLengthJson )[0]['MAXLENGTH'];
  153.             var oRows = oEvent.getSource().getParent().getParent().getItems();
  154.             var oRow = oEvent.getSource().getParent();
  155.             var inputValue = oEvent.getSource().getValue();
  156.             var i = _.findIndex(oRows, oRow);
  157.             var aNetworkCodes = [];
  158.            
  159.             var oCurrObj = this.getView().getModel("oMockModel").getProperty(oRow.getBindingContextPath());
  160.            
  161.             oCurrObj[fieldName] = inputValue;
  162.             oCurrObj.UPDATETYPE = 'updated';
  163.             if (oEvent.getSource().data('typing') === false ){
  164.                 oEvent.getSource().data('typing', true);
  165.                 for(var j = 0 ; j < oRowModel.length ; j++){
  166.                     aNetworkCodes.push(Number(oRowModel[j].NETWORK));
  167.                     var sNetworkCode = String ((_.max(aNetworkCodes)) + 1 );
  168.                 }
  169.                 oRowModel[i].NETWORK = sNetworkCode;   
  170.             }
  171.             var sNetworkDescription = oRow.getCells()[2].getValue();
  172.                 if (sNetworkDescription.length > sMaxLength){
  173.                     oEvent.getSource().setValueState('Error');
  174.                 }else{
  175.                     oEvent.getSource().setValueState('None');  
  176.                 }
  177.         },
  178.        
  179.         onInputTypeNewRow: function(oEvent) {
  180.             var oUsersEntry = this.getView().getModel('temp').getProperty('/Configuration/Base/UsersEntry');
  181.             var oInputNetwork = oEvent.getSource();
  182.             var sNetworkDescription = oInputNetwork.getValue();
  183.             var oMaxLengthJson = {};
  184.             oMaxLengthJson['FIELDNAME'] = 'NETWORKDESCRIPTION';
  185.             var sMaxLength = _.where ( oUsersEntry, oMaxLengthJson )[0]['MAXLENGTH'];
  186.             if (sNetworkDescription.length > sMaxLength){
  187.                 oEvent.getSource().setValueState('Error');
  188.             }else{
  189.                 oEvent.getSource().setValueState('None');  
  190.             }
  191.            
  192.            
  193.         },
  194.        
  195.         handleValueHelpConfiguration: function(oEvent) {
  196.  
  197.             var sNameMultiInput = oEvent.getSource().data("MultiInputName"),
  198.                 sNameDialog = sNameMultiInput + "Dialog",
  199.                 sMultiInputId = sNameMultiInput + "Id";
  200.  
  201.             var sPathDialog = "configuration.fragment.dialog." + sNameDialog;
  202.  
  203.             this.handleValueHelp(oEvent, sPathDialog, sNameDialog);
  204.             this.checkExistToken(sMultiInputId, sNameDialog);
  205.  
  206.         },
  207.  
  208.        
  209.         handleValueHelpSearchConfiguration: function(oEvent) {
  210.             var sValue = oEvent.getParameter("value");
  211.             var sCode = oEvent.getSource().data('fieldDescription');
  212.             var sFieldName = oEvent.getSource().data("fieldName");
  213.            
  214.             var filters = [
  215.                 new Filter(sFieldName, sap.ui.model.FilterOperator.Contains, sValue),
  216.                 new Filter(sCode, sap.ui.model.FilterOperator.Contains, sValue)
  217.             ];
  218.             var oFilter = new Filter({
  219.                 filters: filters,
  220.                 and: false
  221.             });
  222.            
  223.            
  224.             this.handleValueHelpSearch(oEvent, oFilter);
  225.         },
  226.  
  227.         handleValueHelpOkConfiguration: function(oEvent) {
  228.            
  229.             var sFieldName = oEvent.getSource().data("fieldName"),
  230.                 sNameTab = this.__currTab,
  231.                 aTokenItem,
  232.                 oView = this.getView(),
  233.                 sPathContext = oView.getBindingContext("filters").sPath + "/values/" + sFieldName,
  234.                 aParameters;
  235.            
  236.             var oProductInput = this.byId(this.inputId);
  237.             aParameters = oEvent.getParameters();
  238.             aTokenItem = this.handleValueHelpOk(oEvent, oProductInput, aParameters, sFieldName);
  239.            
  240.             oEvent.getSource().getBinding("items").filter([]);
  241.             this.getView().getModel("filters").setProperty(sPathContext, aTokenItem);
  242.             this.onSearchField();
  243.  
  244.         },
  245.  
  246.         handleValueHelpCloseConfiguration: function(oEvent) {
  247.             this._setBaseDescriptionVisibility(false);
  248.             this.handleValueHelpClose(oEvent);
  249.         },
  250.  
  251.         /*      onTokenChange: function(oEvent) {
  252.             var oView = this.getView(),
  253.                 sPathContext = oView.getBindingContext("filters").sPath + "/values/BaseBaseCodeMultiInput";
  254.                
  255.                 var aTokenItem = this.getView().getModel("filters").getProperty(sPathContext);
  256.                 aTokenItem.push({
  257.                     key:"",
  258.                     text:""
  259.                 });
  260.                 this.getView().getModel("filters").setProperty(sPathContext, aTokenItem);
  261.         },*/
  262.  
  263.        
  264.  
  265.         ///////////////////////////////////////////////////////////
  266.        
  267.        
  268.         //                      EVENTI                           //
  269.            
  270.        
  271.         ///////////////////////////////////////////////////////////
  272.  
  273.    
  274.         onEdit: function() {
  275.             var oTable = this.byId(this.__currTab + 'Table'),
  276.                 oBinding = oTable.getBindingInfo("items").binding,
  277.                 sPath = oBinding.sPath,
  278.                 oCloneModel = JSON.parse(JSON.stringify(this.getView().getModel("oMockModel").getProperty(sPath))),
  279.                 oRows = oTable.getSelectedItems(),
  280.                 aModifiedIndexs = [],
  281.                 iModifiedIndex;
  282.            
  283.  
  284.                 this.getView().getModel("temp").setProperty("/notModifiedModel", oCloneModel);
  285.                
  286.             if(oTable._getSelectAllCheckbox().getProperty('selected') || oRows.length > 0){
  287.                  this._setEditMode(true, oRows);
  288.             }else{
  289.                 //apri il message box che avvisa che non sono stati selezionati item
  290.                 this._handleWarningMessageBoxPress();
  291.             }
  292.            
  293.             var oHeaderTable = this.byId(this.__currTab + 'Header' + 'Table');
  294.             oHeaderTable.setMode('None');
  295.         },
  296.  
  297.         onSearchField: function(oEvent) {
  298.             var sCurrApp = this.__currApp,
  299.                 sNameTab = this.__currTab,
  300.                 aTokenFieldNames,
  301.                 aRelevantFlagFieldNames,
  302.                 aTokenFilters = [],
  303.                 aRelevantFlagFilters = [],
  304.                 aAllFilters = [],
  305.                 oAllFilters,
  306.                 sSearchFieldValue = '',
  307.             //  sIdTable = oEvent.getSource().getParent().getParent().data("nameTab") + "Table",
  308.             //  oTable = this.getView().byId(sIdTable);
  309.                 oTable = this.byId(this.__currTab + 'Table');
  310.  
  311.             //PRENDO I NOMI DEI FILTRI DAL FILTRO DEI MODELLI
  312.             //NE ESISTE UNO PER OGNI APP/TAB
  313.             aTokenFieldNames = this._returnFieldNameArray(sCurrApp, sNameTab, 'TOKENFIELDSNAME');
  314.             aRelevantFlagFieldNames = this._returnFieldNameArray(sCurrApp, sNameTab, 'RELEVANTFLAGFIELDNAME');
  315.  
  316.             //RITORNO L'ARRAY DEI FILTRI COSTRUITO SUI VALORI PRESENTI NEL MODELLO DEI FILTRI PER I MULTIINPUT
  317.             aTokenFilters = this._returnTokenFilters(aTokenFieldNames, sCurrApp, sNameTab);
  318.             if (aTokenFilters && aTokenFilters.length !== 0) {
  319.                 aAllFilters.push(aTokenFilters);
  320.             }
  321.  
  322.             //RITORNO L'ARRAY DEI FILTRI COSTRUITO SUI VALORI PRESENTI NEL MODELLO DEI FILTRI PER I SELECTEDBUTTON
  323.             aRelevantFlagFilters = this._returnRelevantFlagFilters(aRelevantFlagFieldNames, sCurrApp, sNameTab);
  324.             if (aRelevantFlagFilters && aRelevantFlagFilters.length !== 0) {
  325.                 aAllFilters.push(aRelevantFlagFilters);
  326.             }
  327.  
  328.             //RITORNO L'ARRAY DEI FILTRI COSTRUITO SUL VALORE PRESENTE NEL MODELLO DEI FILTRI PER IL SEARCHFIELD
  329.             sSearchFieldValue = this._returnSearchFieldFilters(sCurrApp, sNameTab, 'SEARCHFIELD');
  330.             if (sSearchFieldValue && sSearchFieldValue !== '') {
  331.                 aAllFilters.push(sSearchFieldValue);
  332.             }
  333.  
  334.             if (aAllFilters.length !== 0) {
  335.                 oAllFilters = new Filter({
  336.                     filters: aAllFilters,
  337.                     and: true
  338.                 });
  339.             } else {
  340.                 oAllFilters = [];
  341.             }
  342.             oTable.getBinding("items").filter(oAllFilters);
  343.            
  344.             //add tooltips
  345.             this._addTooltip(this, oTable);
  346.         },
  347.        
  348.         onSaveInTable: function(){
  349.            
  350.             var sNameTab = this.__currTab;
  351.             var oTable = this.byId(sNameTab + 'Table'),
  352.                 oBinding = oTable.getBindingInfo("items").binding,
  353.                 sPath = oBinding.sPath,
  354.                 oCurrModel = JSON.parse(JSON.stringify(this.getView().getModel("oMockModel").getProperty(sPath))),
  355.                 oCloneModel = this.getView().getModel("temp").getProperty("/notModifiedModel"),
  356.                 updateModel = this.getView().getModel("oMockModel").getProperty("/Base"),
  357.                 bSaveOk = true;
  358.                 //this.getView().getModel("temp").setProperty("/notModifiedModel", oCurrModel);
  359.                 this.getView().getModel("oMockModel").setProperty("/Base", updateModel);
  360.                 var oRows = oTable.getItems();
  361.                 /*  this._setOnSendChangesMode(true);*/
  362.                 this._sNameMessageDialog.destroy();
  363.                 if (sNameTab === 'Base'){
  364.                     for(var i = 0 ; i < oRows.length ; i++){
  365.                         var oCell = oRows[i].getCells()[2];
  366.                         var sValueState = oCell.getValueState();
  367.                         if (sValueState === 'Error'){
  368.                             this._handleWarningMessageBoxPress("ImpossibleToSaveConfigurationBase");
  369.                             var bSaveOk = false;
  370.                             break;
  371.                         }                        
  372.                     }
  373.                 }
  374.                 if(bSaveOk){
  375.                     this.createBusyDialog();
  376.                     this.onSendChanges();
  377.                     this._setEditMode(false, oRows);   
  378.                     var oHeaderTable = this.byId(this.__currTab + 'Header' + 'Table');
  379.                     oHeaderTable.setMode('MultiSelect');
  380.                 }
  381.             },
  382.            
  383.             onOpenSaveDialog: function (oEvent){
  384.                
  385.                 var sNameButton=oEvent.getSource().data('dialogName');
  386.                 var sNameMessageDialog = sNameButton + "Dialog";
  387.                 var sDialogId = sNameButton + "Id";
  388.                 var sPathDialog = "it.q8.supply.view.configuration.fragment.dialog." + sNameMessageDialog;
  389.                 this._sNameMessageDialog = sap.ui.xmlfragment(sPathDialog, this);
  390.                 this.getView().addDependent(this._sNameMessageDialog);
  391.                 this._sNameMessageDialog.open();
  392.             },
  393.            
  394.             onCloseSaveDialog: function (oEvent){
  395.  
  396.                 var oDialog=oEvent.getSource().getParent();
  397.                 oDialog.destroy(); 
  398.             },  
  399.                
  400.                
  401.         provaUpdate: function(){
  402.             var view = this.getView(),
  403.                 key = "I201",
  404.                 entitySet = 'YSUP_PLANTSet';
  405.             var json = {"NETWORK":"ZE", "FLAGRELEVANT":"Z"};
  406.            
  407.             var controller = this;
  408.            
  409.             this.onUpdateOData(entitySet, key, json,
  410.             function(oData, response){
  411.                 return res = 1;
  412.             },
  413.             function(oData, response){
  414.                 return res = 0;
  415.             });
  416.         },
  417.        
  418.         provaSave: function(){
  419.             var view = this.getView(),
  420.                 key = "I201",
  421.                 entitySet = 'YSUP_PLANTSet';
  422.                 var json = [
  423.                             {   "BASECODE": "I201",
  424.                                 "BASEDESCRIPTION": "Napoli Nazionale",
  425.                                 "NETWORK": "NA",
  426.                                 "FLAGRELEVANT": "X"
  427.                             },
  428.                             {   "BASECODE": "I102",
  429.                                 "BASEDESCRIPTION": "Milazzo Marketing",
  430.                                 "NETWORK": "",
  431.                                 "FLAGRELEVANT": "X"
  432.                             }
  433.                         ];
  434.            
  435.             var controller = this;
  436.            
  437.             this.onNewEntryOData(entitySet, json,
  438.             function(oData, response){
  439.                 return res = 1;
  440.             },
  441.             function(oData, response){
  442.                 return res = 0;
  443.             });
  444.         },
  445.        
  446.         provaDelete: function(){
  447.             var view = this.getView(),
  448.             key = "I500",
  449.             entitySet = 'YSUP_PLANTSet';
  450.            
  451.             var controller = this;
  452.            
  453.             this.onDeleteEntryOData(entitySet, key,
  454.             function(oData, response){
  455.                 return res = 1;
  456.             },
  457.             function(oData, response){
  458.                 return res = 0;
  459.             });
  460.         },
  461.        
  462.         onCancelEditMode: function(){
  463.             var sNameTab = this.__currTab;
  464.             var oTable = this.byId(sNameTab + 'Table'),
  465.                 oBinding = oTable.getBindingInfo("items").binding,
  466.                 sPath = oBinding.sPath,
  467.                 oCurrModel = this.getView().getModel("temp").getProperty("/notModifiedModel");
  468.                 this.getView().getModel("oMockModel").setProperty(sPath, oCurrModel);
  469.            
  470.             var oRows = oTable.getItems();
  471.             this._setEditMode(false, oRows);
  472.             var oHeaderTable = this.byId(this.__currTab + 'Header' + 'Table');
  473.             oHeaderTable.setMode('MultiSelect');
  474.         },
  475.        
  476.        
  477.         onTokenChange: function (oEvent){
  478.             var oFilterModel = this.getView().getModel("filters");
  479.             var sCurrApp = this.__currApp;
  480.             var sNameTab = this.__currTab;
  481.             var sFieldName = oEvent.getSource().data("fieldName");
  482.             var sTokenType = oEvent.getParameter('type');
  483.             if (sTokenType === 'removed') {
  484.                 var sText = oEvent.getParameters().token.getText();
  485.                 var sKey = oEvent.getParameters().token.getKey();
  486.                 var oJson = {text: sText, key: sKey};
  487.                 var oTempFilterModel = oFilterModel.getProperty("/" + sCurrApp + "/" + sNameTab + "/values/" + sFieldName);
  488.                 oTempFilterModel = _.reject(oTempFilterModel, oJson);
  489.                 oFilterModel.setProperty("/" + sCurrApp + "/" + sNameTab + "/values/" + sFieldName, oTempFilterModel);
  490.             }
  491.                      
  492.               this.onSearchField();
  493.         },
  494.        
  495.        
  496.         onSelectCheckBox: function(oEvent) {
  497.            
  498.             var sNameTab = this.__currTab
  499.             if (sNameTab === 'Movement') {
  500.                 sNameTab = 'MovementAssociation';
  501.             }
  502.             var oRowModel = this.getView().getModel("oMockModel").getProperty( "/" + sNameTab);
  503.             var oRows = oEvent.getSource().getParent().getParent().getItems();
  504.             var oRow = oEvent.getSource().getParent();
  505.             var boxValue = oEvent.getSource().getSelected();
  506.             var i = _.findIndex(oRows, oRow);
  507.            
  508.             var oCurrObj = this.getView().getModel("oMockModel").getProperty(oRow.getBindingContextPath());
  509.            
  510.             if( boxValue === true){
  511.                 oCurrObj.FLAGRELEVANT = 'X';
  512.             }
  513.             else{
  514.                 oCurrObj.FLAGRELEVANT = '';
  515.             }
  516.            
  517.             this.getView().getModel("oMockModel").setProperty("/" + sNameTab, oRowModel);
  518.             oCurrObj.UPDATETYPE = 'updated';
  519.         },
  520.        
  521.         onSelectionChangeAll : function(oEvent) {
  522.        
  523.             var oItems = this.getView().byId(this.__currTab +'Table').getItems();
  524.             var bSelected = oEvent.getSource()._getSelectAllCheckbox().getSelected();
  525.             oItems.forEach(function(oRow) {
  526.                  oRow.setSelected(bSelected);
  527.             });
  528.             this.onSelectionChange();
  529.         },
  530.        
  531.         onSelectionChange: function(oEvent) {
  532.            
  533.             var oItems = this.byId(this.__currTab + 'Table').getItems();
  534.             var flagSelected = false;
  535.             oItems.forEach(function(oRow) {
  536.                 flagSelected = flagSelected || oRow.isSelected();
  537.             });
  538.             if (flagSelected) {
  539.                 this.getView().getModel("temp").setProperty("/" + this.__currApp + "/" + this.__currTab + "/selectedModeOn", true);
  540.             } else {
  541.                 this.getView().getModel("temp").setProperty("/" + this.__currApp + "/" + this.__currTab + "/selectedModeOn", false);
  542.             }
  543.         },
  544.        
  545.  
  546.         onSendChanges: function(oEvent){
  547.            
  548.             var sNameTab = this.__currTab;
  549.             if (sNameTab === 'All'){
  550.                 var sNameTab = 'Base';
  551.             }
  552.             var oModel = this.getView().getModel("oMockModel").getProperty("/" + sNameTab);
  553.             var oBaseModel = this.getView().getModel("oMockModel").getProperty("/Base");
  554.             var oTable = this.byId(sNameTab + 'Table');
  555.             var sNameOData = this.getView().getModel('temp').getProperty('/Configuration')['oDataMapping'];
  556.             var sNameApp = {};
  557.             sNameApp.nameApp = '/'+ this.__currTab;
  558.             var aObj=_.where(sNameOData, sNameApp);
  559.             var oJson = aObj[0];
  560.             var sNameOData=oJson.nameOData;
  561.             var sModel=this.getView().getModel("temp").getProperty("/sModelName");
  562.             var aNetworkCodes = [];
  563.             var aUpdateRows = [];
  564.             var aNewRows = [];
  565.  
  566.         /* a NetworkCode is assigned at each updatedRows           
  567.             for(var i = 0 ; i < oBaseModel.length ; i++){
  568.                 aNetworkCodes.push(Number(oBaseModel[i].NETWORK));
  569.                 var sNetworkCode = String ((_.max(aNetworkCodes)) + 1 );
  570.             }
  571.             for (var j = 0; j < aUpdateRows.length; j++){
  572.                 aUpdateRows[0].NETWORK = sNetworkCode;
  573.                 sNetworkCode = String( Number (sNetworkCode) + 1 );
  574.                 aUpdateRows[j].NETWORK = sNetworkCode;
  575.             }*/
  576.            
  577.             for( var i = 0; i < oModel.length; i++ ){
  578.                 var copy = JSON.parse(JSON.stringify(oModel[i]));
  579.                 if( oModel[i]["UPDATETYPE"] === "updated" ) { delete copy["UPDATETYPE"], aUpdateRows.push( copy ) }
  580.                 if( oModel[i]["UPDATETYPE"] === "new" ) { delete copy["UPDATETYPE"], aNewRows.push( copy ) }
  581.                 oModel[i]["UPDATETYPE"] = null;
  582.             }
  583.             if((aUpdateRows.length === 0) && (aNewRows.length === 0)){
  584.                 this.destroyBusyDialog();
  585.                 this._onMessageWarningDialog("NoChanges");
  586.                
  587.             }
  588.            
  589.             var total = aNewRows.length + aUpdateRows.length;
  590.            
  591.             for( var i=0; i < aNewRows.length; i++ ){
  592.                 var oNewJson =  aNewRows[i];
  593.                 var oDataModel = this.getView().getModel(sModel);
  594.                
  595.                 // create transcoding
  596.                 var copy = JSON.parse(JSON.stringify(oNewJson));
  597.                 delete copy["NETWORKDESCRIPTION"];
  598.                 delete copy["FLAGRELEVANT"];
  599.                 delete copy ['SIGN'];
  600.                 delete copy ['NETWORK'];
  601.                 var sNameODataTra = sNameOData.substring(0, 6) + "TRA" + sNameOData.substring(6);
  602.                 sNameODataTra= sNameODataTra.replace("PLA", "BAS");
  603.                
  604.                 this._createOData(this.__currTab, oDataModel, sNameOData, oNewJson, total, sNameODataTra, copy);
  605.             }
  606.            
  607.             //modify NewRows for BE
  608.             var oParam = ['DEMAND', 'MAX' , 'MIN' ];
  609.             var oNewRow = { BASECODE : '',
  610.                             MATERIALCODE: '',
  611.                             BASEDESCRIPTION: "", MATERIALDESCRIPTION: "", PROPERTY : '', VALUE: ''};
  612.             var aRowsBE = [];
  613.             for (var i = 0 ; i < aNewRows.length ; i++){
  614.                 for (var j = 0 ; j < oParam.length ; j++){
  615.                     oNewRow["BASECODE"]= aNewRows[i].BASECODE;
  616.                     oNewRow["BASEDESCRIPTION"]= aNewRows[i].BASEDESCRIPTION;
  617.                     oNewRow["MATERIALDESCRIPTION"]= aNewRows[i].MATERIALDESCRIPTION;
  618.                     oNewRow["MATERIALCODE"]= aNewRows[i].MATERIALCODE;
  619.                     var sParam = oParam [j];
  620.                     var sValue = aNewRows[i][sParam];
  621.                     oNewRow["PROPERTY"] = sParam;
  622.                     oNewRow["VALUE"] = "0";
  623.                     aRowsBE.push(oNewRow);
  624.                     oNewRow = { BASECODE : '',
  625.                                 MATERIALCODE: '',
  626.                                 BASEDESCRIPTION: "", MATERIALDESCRIPTION: "", PROPERTY : '', VALUE: ''};
  627.                    
  628.                 }
  629.             }
  630.             //create Parameters from Material Tab
  631.             if (this.__currTab === 'Material'){
  632.                 for( var i=0; i < aRowsBE.length; i++ ){
  633.                     var oNewJson =  aRowsBE[i];
  634.                     var oDataModel = this.getView().getModel(sModel);
  635.                     var oCopy = JSON.parse(JSON.stringify(oNewJson));
  636.                     delete oCopy["NETWORKDESCRIPTION"];
  637.                     delete oCopy["FLAGRELEVANT"];
  638.                     delete oCopy ['SIGN'];
  639.                     delete oCopy ['NETWORK'];
  640.                     var sNameODataParam = sNameOData.replace("MAT", "PARAM");
  641.                    
  642.                    
  643.                    
  644.                    
  645.                     this._createODataParam(this.__currTab, oDataModel, sNameODataParam, oCopy);
  646.                 }
  647.             }
  648.            
  649.            
  650.             // update configuration
  651.             var arrKeys = [];
  652.             arrKeys["Base"] = "BASECODE";
  653.             arrKeys["MovementAssociation"] = ["BASECODE", "MOVEMENTCODE"];
  654.             arrKeys["Material"] = ["BASECODE", "MATERIALCODE"];
  655.             for( var i=0; i < aUpdateRows.length; i++ ){
  656.                 var oUpdateJson = aUpdateRows[i];
  657.                 var copy = JSON.parse(JSON.stringify(oUpdateJson));
  658.                 delete copy["CHANGEDAT"];
  659.                 delete copy ["CHANGEDON"];
  660.                 delete copy ["CHANGEDBY"];
  661.                 var key = arrKeys[this.__currTab];
  662.                 var oDataModel = this.getView().getModel(sModel);
  663.                 this._updateOData(this.__currTab, oDataModel, sNameOData, key, copy, total);
  664.             }
  665.         },
  666.        
  667.        
  668. ////////////////////////////NEW ROWS ////////////////////////////////
  669.        
  670.         onAdd: function (oEvent) {
  671.            
  672.             this.getView().getModel("temp").setProperty("/Configuration/" + this.__currTab + "/isAddModeOn", true);
  673.             this.getView().getModel("temp").setProperty("/Configuration/"  + this.__currTab + "/selectedModeOn", false);
  674.             var oTable = this.getView().byId(this.__currTab + 'Table');
  675.             var oHeaderTable = this.getView().byId(this.__currTab + 'Header' + 'Table');
  676.             oHeaderTable.setMode('None');
  677.             oTable.setMode('None');
  678.             var sNameTab = this.__currTab;
  679.             var oCurrModel = JSON.parse(JSON.stringify(this.getView().getModel("oMockModel").getProperty('/'+ sNameTab)));
  680.             this.getView().getModel("temp").setProperty("/notModifiedModel", oCurrModel);
  681.             var sNameButton=oEvent.getSource().data('dialogName');
  682.             var sNameDialog = sNameButton + "Dialog";
  683.             var sDialogId = sNameButton + "Id";
  684.             var sPathDialog = "it.q8.supply.view.configuration.fragment.dialog." + sNameDialog;
  685.             this._sNameDialog = sap.ui.xmlfragment(sPathDialog, this);
  686.             this.getView().addDependent(this._sNameDialog);
  687.            
  688.             if(sNameTab === 'MovementAssociation'){
  689.                 var oSelect = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1];
  690.                 var oList = oSelect.getList();
  691.                 oList.setShowSecondaryValues(true);
  692.             }
  693.            
  694.             this._sNameDialog.open();      
  695.         },
  696.        
  697.        
  698.          onOpenDialog: function (oEvent){
  699.              
  700.             var oView = this.getView();
  701.             //this.loadAllGatewayModels(oView);
  702.             var sNameButton=oEvent.getSource().data('dialogName');
  703.             var sNameMessageDialog = sNameButton + "Dialog";
  704.             var sDialogId = sNameButton + "Id";
  705.             var sPathDialog = "it.q8.supply.view.configuration.fragment.dialog." + sNameMessageDialog;
  706.             this._sNameMessageDialog = sap.ui.xmlfragment(sPathDialog, this);
  707.             this.getView().addDependent(this._sNameMessageDialog);
  708.            
  709.             //distinct su network
  710.             if (sNameMessageDialog === 'BaseNewRowNetworkHelpDialog'){
  711.                 var sInputValue = oEvent.getSource().getValue();
  712.                 this.inputId = oEvent.getSource().getId();
  713.                 var tab = this.__currTab === undefined ? "" : "/" + this.__currTab ;
  714.                 if(tab === "") var sPath = this.getView().byId(this.__currApp + "Table").getBinding("items").sPath;
  715.                 else var sPath = this.getView().byId(tab.replace("/", "") + "Table").getBinding("items").sPath;
  716.                 var values = this.getView().getModel("oMockModel").getProperty(sPath);
  717.                 var fieldName = this._sNameMessageDialog.data("fieldName");
  718.                 if( this.getView().getModel("temp").getProperty("/InputFilters") === undefined) this.getView().getModel("temp").setProperty("/InputFilters",[]);  
  719.                 if( this.getView().getModel("temp").getProperty("/InputFilters/" + this.__currApp ) === undefined) this.getView().getModel("temp").setProperty("/InputFilters/" + this.__currApp,[]);  
  720.                 if( this.getView().getModel("temp").getProperty("/InputFilters/" + this.__currApp + "/" + this.__currTab)  === undefined ) this.getView().getModel("temp").setProperty("/InputFilters/" + this.__currApp + tab, []);
  721.                 if( this.getView().getModel("temp").getProperty("/InputFilters/" + this.__currApp + tab + "/" + fieldName) === undefined){
  722.                     this.getView().getModel("temp").setProperty("/InputFilters/" + this.__currApp + tab + "/" + fieldName, []);
  723.                     var res = this._distinctValues( values, fieldName);            
  724.                     this.getView().getModel("temp").setProperty("/InputFilters/" + this.__currApp + tab + "/" + fieldName, res);
  725.                 }
  726.                 var dialog = this._sNameMessageDialog;
  727.                 var fieldName1 = "{" + fieldName + "}";
  728.                 var standardListItemTemplate = new sap.m.StandardListItem( {title: fieldName1 } );            
  729.                 dialog.setModel(this.getView().getModel("temp"));
  730.                 dialog.bindAggregation("items",{path:"/InputFilters/" + this.__currApp + tab + "/" + fieldName , template:standardListItemTemplate });
  731.                 this._sNameMessageDialog.open(sInputValue);
  732.                 }else{
  733.                     this._sNameMessageDialog.open();
  734.                 }
  735.         },
  736.        
  737.        
  738.        
  739.         onCloseDialog: function (oEvent){
  740.             var oDialog=oEvent.getSource().getParent();
  741.             this._setBaseDescriptionVisibility(false);
  742.             this.getView().byId(this.__currTab + 'Table').setMode('MultiSelect');
  743.             this.getView().byId( this.__currTab + 'Header' + 'Table').setMode('MultiSelect');
  744.             oDialog.destroy(); 
  745.         },
  746.        
  747.     /*  onCloseMessageDialog: function (oEvent){
  748.             var oDialog=oEvent.getSource().getParent();
  749.             this._setBaseDescriptionVisibility(true);
  750.             oDialog.destroy(); 
  751.         },*/ //non c'è più la messageDialog (troppi salva)
  752.        
  753.        
  754.  
  755.         onCloseConfirmCreateOrModifyDialog: function(oEvent){
  756.             this.getView().getModel("temp").setProperty("/ResolvedScrap", []);
  757.             this.getView().getModel("temp").setProperty("/ConfirmSuccessText", "");
  758.             this.getView().getModel("temp").setProperty("/ResolvedScrapVisibility", false);
  759.             this.onCloseSaveDialog(oEvent);
  760.         },
  761.        
  762.         onSelect: function (oEvent, sNameDialog){
  763.            
  764.             this._setBaseDescriptionVisibility(true);
  765.            
  766.         },
  767.    
  768.          handleValueHelpOkNewRow: function (oEvent,sNameDialog){
  769.                
  770.             var oInput = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1];
  771.             var aListItems = oEvent.getSource().getItems();
  772.             var sTab = this.__currTab;
  773.             var sApp = this.__currApp;
  774.             for (var i = 0 ; i < aListItems.length; i++){
  775.                 if (aListItems[i].getSelected() === true ){
  776.                     var sTitle = aListItems[i].getTitle();
  777.                     oInput.setValue(sTitle);
  778.                     var sCode = aListItems[i].getDescription();
  779.                     oInput.setDescription(sCode);
  780.                     var oTempObj = {};
  781.                     var sTabCode = sTab.toUpperCase() + 'CODE';
  782.                     oTempObj[sTabCode]= sCode;
  783.                     this.getView().getModel("temp").setProperty("/" + sApp + "/" + sTab + "/NewRows", oTempObj);
  784.                 }
  785.             }
  786.             this._setBaseDescriptionVisibility(true);
  787.         },
  788.        
  789.         handleValueHelpOkNewRowNetwork: function (oEvent,sNameDialog){
  790.            
  791.             var oNetworkInput = this._sNameDialog.getContent()[1].getItems()[0].getItems()[1];
  792.             var aListItems = oEvent.getSource().getItems();
  793.             for (var i = 0 ; i < aListItems.length; i++){
  794.                 if (aListItems[i].getSelected() === true) {
  795.                     var sTitle = aListItems[i].getTitle();
  796.                     oNetworkInput.setValue(sTitle);
  797.                 }
  798.             }
  799.             this._setBaseDescriptionVisibility(true);
  800.         },
  801.        
  802.        
  803.         handleValueHelpNewRow: function (oEvent,sNameMessageDialog){
  804.            
  805.             this.onOpenDialog(oEvent,sNameMessageDialog);
  806.            
  807.         },
  808.        
  809.         /*
  810.         handleValueHelpNewRowBase: function(oEvent, oNameMessageDialog){
  811.             // open della lista delle basi il materiale selezionato è salvato in
  812.             var sMaterialDescription = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1].getValue();
  813.             var sMaterialCode = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1].getDescription();
  814.            
  815.             // 1) prendo active base
  816.             var activeBase = this.getView().getModel("temp").getProperty("/activeBase");
  817.             // 2) prendo base/mat da BW/Material/BASE
  818.             var matBase = this.getView().getModel("oBWModel").getProperty("/Material");
  819.             // 3) prendo le basi associate a questo materiale dalla tabella
  820.             var aItems = this.getView().byId("MaterialTable").getItems();
  821.             var sBases = [];
  822.             aItems.forEach( x => {if(sMaterialDescription=== x.getCells()[3].getText()) sBases.push(  x.getCells()[0].getText() ) } );
  823.             // 2) - 1) -3)
  824.             var res =  this.arrayStringCopy(matBase);
  825.             var aFilters = [];
  826.            
  827.             activeBase.forEach( function(x) {                      
  828.                 aFilters.push( new Filter('BASECODE', sap.ui.model.FilterOperator.EQ, x.BASECODE) );  
  829.             });
  830.             // inserisco i filtri attivi in or
  831.             var activeBaseFilters = [];
  832.             activeBaseFilters.push( new Filter({ filters: aFilters, and:false }) );
  833.            
  834.             aFilters = [];
  835.            
  836.             sBases.forEach( function(x){
  837.                 aFilters.push( new Filter('BASECODE', sap.ui.model.FilterOperator.NE, x) );
  838.             });
  839.             // inserisco i filtri delle basi in tabella in and
  840.             var baseInTable = [];
  841.             baseInTable.push( new Filter({ filters: aFilters, and:true }) );
  842.            
  843.             aFilters = [];
  844.            
  845.             // solo le associabili al quel materiale selezionato
  846.             // CERCO IL MATERIALE UGUALE A SMATERIALDESCRIPTION E SALVO LA BASE
  847.             matBase.forEach( x => { if( x.MATERIALCODE === sMaterialCode) aFilters.push( new Filter('BASECODE', sap.ui.model.FilterOperator.NE, x.BASECODE) ); } );
  848.             var asscoiateBAses = [];
  849.             asscoiateBAses.push( new Filter({ filters: aFilters, and:true }) );
  850.  
  851.             // creo il filtro finale
  852.             var totalFilters = [];
  853.             totalFilters.push(new Filter({ filters: activeBaseFilters, and:true }));
  854.             totalFilters.push(new Filter({ filters: baseInTable, and:true }));
  855.             totalFilters.push(new Filter({ filters: asscoiateBAses, and:true }));
  856.            
  857.             // apply filters
  858.            
  859.             this.onOpenDialog(oEvent,oNameMessageDialog);
  860.             this._sNameMessageDialog.getBinding('items').filter(totalFilters);
  861.         },
  862.         */
  863.        
  864.         handleValueHelpNewRowBase: function(oEvent, sNameMessageDialog){
  865.            
  866.            
  867.             this.onOpenDialog(oEvent,sNameMessageDialog);
  868.             var sTab = this.__currTab;
  869.             var sApp = this.__currApp;
  870.             var oModel = this.getView().getModel('oMockModel').getProperty('/' + sTab);
  871.             var oModelBase = this.getView().getModel('oMockModel').getProperty('/Base');
  872.             this.getView().getModel('temp').setProperty("/activeBase", _.where(oModelBase, {FLAGRELEVANT:'X'} ));
  873.            
  874.             var aFilters = [],
  875.                 aFilter = [];
  876.            
  877.             //Pre filtro il modello già sul materiale scelto
  878.             if(sTab === 'Material'){
  879.                 var sMaterialDescription = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1].getValue();
  880.                 var sMaterialCode = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1].getDescription();
  881.                
  882.                 var oJson = {
  883.                     MATERIALCODE : sMaterialCode
  884.                 };
  885.                 oModel =  _.where (oModel, oJson);
  886.             }else if(sTab === 'MovementAssociation'){ //Pre filtro il modello già sul movimento scelto
  887.                 var sMovementDescription = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1].getSelectedItem().getText();
  888.                 var oJson = {
  889.                         MOVEMENTCODE : sMovementDescription
  890.                     };
  891.                     oModel =  _.where (oModel, oJson);
  892.             }
  893.            
  894.             //Le basi già presenti in tabella non vengono mostrate
  895.             for (var i = 0 ; i < oModel.length ; i++){
  896.                  var sBaseCode = oModel[i].BASECODE;
  897.                  aFilter.push(new Filter('BASECODE', sap.ui.model.FilterOperator.NE, sBaseCode));
  898.             }
  899.             if(aFilter.length !== 0){
  900.                 aFilters.push(new Filter({
  901.                     filters: aFilter,
  902.                     and:true
  903.                 }));
  904.                 aFilter = [];  
  905.             }
  906.            
  907.             //per il tab material  di tutte le basi possibili si mostrano solo le rilevanti (per movement association si fa lo stesso utilizzando il temp>activeBase)
  908.             if (sTab === 'Material'){
  909.                 for (var i = 0 ; i < oModelBase.length ; i++){
  910.                      if(oModelBase[i].FLAGRELEVANT === 'X'){
  911.                          var sRelevantBaseCode = oModelBase[i].BASECODE;
  912.                          aFilter.push(new Filter('BASECODE', sap.ui.model.FilterOperator.EQ, sRelevantBaseCode));
  913.                      }
  914.                 }
  915.             }
  916.             if(aFilter.length !== 0){
  917.                 aFilters.push(new Filter({
  918.                     filters: aFilter,
  919.                     and:false
  920.                 }));
  921.                 aFilter = [];  
  922.             }
  923.            
  924.             // per il tab 'Material' di tutte le basi rilevanti si mostrano solo quelle associabili al materiale selezionato
  925.             if (sTab === 'Material'){
  926.                 var oJson = {};
  927.                 var oBWModel = this.getView().getModel('oBWModel').getProperty('/' + sTab);
  928.                 var sMaterialCode = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1].getDescription();
  929.                 sMaterialCode = sMaterialCode * 1;
  930.                 aFilter.push(new Filter('MATERIALCODE', sap.ui.model.FilterOperator.EQ, sMaterialCode));               
  931.             }
  932.             if(aFilter.length !== 0){
  933.                 aFilters.push(new Filter({
  934.                     filters: aFilter,
  935.                     and:false
  936.                 }));
  937.                 aFilter = [];  
  938.             }
  939.            
  940.            
  941.            
  942.             if (aFilters.length !== 0){
  943.                 var oFilter = new Filter({
  944.                     filters: aFilters,
  945.                     and: true
  946.                 });
  947.                 this._sNameMessageDialog.getBinding('items').filter(oFilter);
  948.             }
  949.            
  950.            
  951.             // per i Tab Material e MovementAssociation si controlla la coerenza tra i token esistenti nella multiinput e gli oggetti selezionati nella multiselect
  952.             if (sTab === 'Material' || sTab === 'MovementAssociation'){
  953.                 var oMultiInput = this._sNameDialog.getContent()[1].getItems()[1];
  954.                 var oTokens = oMultiInput.getTokens(); 
  955.                 var oItems= this._sNameMessageDialog.getItems();
  956.                 this._checkExistToken(oItems, oTokens);
  957.             }
  958.            
  959.             var sFieldName = oEvent.getSource().data('fieldName');
  960.             this.getView().getModel('temp').setProperty('/' + this.__currTab + sFieldName + 'DefaultFilter', oFilter);
  961.         },
  962.        
  963.    
  964.         handleValueHelpOkNewRowBaseDescription: function(oEvent){
  965.            
  966.             var aItems = oEvent.getSource().getItems();
  967.             var oInput = this._sNameDialog.getContent()[1].getItems()[1];
  968.             var aTokenItems = [];
  969.             var aBaseCode = [];
  970.             var aTokens = [];
  971.             var sTab = this.__currTab;
  972.             var sApp = this.__currApp;
  973.             for (var i = 0 ; i < aItems.length; i++){
  974.                  if (aItems[i].getSelected() === true){
  975.                  var sTitle = aItems[i].getTitle();
  976.                  var oTokenItem = { text: sTitle };
  977.                  aTokenItems.push(oTokenItem);
  978.                  var oToken = new sap.m.Token(oTokenItem);
  979.                  aTokens.push(oToken);
  980.                  if (sTab === 'MovementAssociation'){
  981.                      var sBaseCode=aItems[i].getDescription();
  982.                      var oTempObj = {
  983.                              BASECODE: sBaseCode
  984.                      }
  985.                      aBaseCode.push(oTempObj);
  986.                      this.getView().getModel("temp").setProperty("/" + sApp + "/" + sTab + "/NewRows", aBaseCode);
  987.                  }
  988.                  }
  989.             }
  990.             oInput.setTokens(aTokens);             
  991.         },
  992.        
  993.        
  994.         handleValueHelpNewRowClose: function (oEvent) {
  995.             var oDialog = oEvent.getSource();
  996.             //this._setBaseDescriptionVisibility(false);
  997.             oDialog.destroy();
  998.         },
  999.        
  1000.    
  1001.         onSaveNewMovement: function (oEvent,sNameDialog, sNameMessageDialog){
  1002.            
  1003.             var sTab = this.__currTab;
  1004.             var sApp = this.__currApp;
  1005.             this.getView().getModel("temp").setProperty("/" + sApp + "/" + sTab + "/isEditModeOn", true);
  1006.             var oBaseCode = this.getView().getModel("temp").getProperty("/" + sApp + "/" + sTab + "/NewRows");
  1007.             var oMovement = this.getView().getModel('oMockModel').getProperty('/Movement');
  1008.             var oSelect = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1];
  1009.             var oMultiInput = this._sNameDialog.getContent()[1].getItems()[1];
  1010.             var aSelectedBases= oMultiInput.getTokens();
  1011.             var aBase=[];
  1012.             var aNewRows = [];
  1013.             if (oSelect.getSelectedItem()!== null){
  1014.                 var sMovementCode = oSelect.getSelectedItem().getText();
  1015.                 var oJson = {};
  1016.                 oJson['MOVEMENTCODE']= sMovementCode;
  1017.                 var aAssociatedObj =_.where(oMovement, oJson);
  1018.                 var sMovementDescription =  aAssociatedObj[0].MOVEMENTDESCRIPTION;
  1019.                 var sSign = aAssociatedObj[0].SIGN;
  1020.                 for (var i = 0 ; i < aSelectedBases.length; i++){
  1021.                         var oNewBaseJson = {
  1022.                                    BASEDESCRIPTION: aSelectedBases[i].getText(),
  1023.                                    BASECODE: oBaseCode[i].BASECODE
  1024.                                    };
  1025.                         aBase.push(oNewBaseJson);
  1026.                     }
  1027.        
  1028.                         for (var j = 0 ; j < aBase.length; j++){
  1029.                              var oNewRowJson = {
  1030.                                            MOVEMENTCODE: sMovementCode,
  1031.                                            MOVEMENTDESCRIPTION: sMovementDescription,
  1032.                                            SIGN: sSign,
  1033.                                            BASEDESCRIPTION: aBase[j].BASEDESCRIPTION,
  1034.                                            BASECODE: aBase[j].BASECODE,
  1035.                                            FLAGRELEVANT: "X",
  1036.                                            UPDATETYPE: 'new'};
  1037.                              aNewRows.push(oNewRowJson);
  1038.                            
  1039.                         }
  1040.             }
  1041.                     this._onSaveNewRow(aNewRows);
  1042.                
  1043.         },
  1044.    
  1045.    
  1046.         onSaveMaterialNewRow: function (oEvent, sNameDialog, sNameMessageDialog){
  1047.            
  1048.             var sTab = this.__currTab;
  1049.             var sApp = this.__currApp;
  1050.             this.getView().getModel("temp").setProperty("/" + sApp + "/" + sTab + "/isEditModeOn", true);
  1051.             var oMaterial=this.getView().getModel('oMockModel').getProperty('/' + sTab);
  1052.             var oBaseModel = this.getView().getModel('oBWModel').getProperty('/Base');
  1053.             var oMaterialInput = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1];
  1054.             var oBaseInput = this._sNameDialog.getContent()[1].getItems()[1];
  1055.             var aSelectedBases= oBaseInput.getTokens();
  1056.             var aBase=[];
  1057.             var aNewRows = [];
  1058.             var oTabCode = this.getView().getModel("temp").getProperty("/" + sApp + "/" + sTab + "/NewRows");
  1059.             var sMaterialCode = oTabCode.MATERIALCODE;
  1060.             var sMaterialDescription =  oMaterialInput.getValue();
  1061.             for (var i = 0 ; i < aSelectedBases.length; i++){
  1062.                 var sBaseDescription = oBaseInput.getTokens()[i].getText();
  1063.                 var oJson = {};
  1064.                 oJson['BASEDESCRIPTION']= sBaseDescription;
  1065.                 var oBaseCode = _.where (oBaseModel, oJson);
  1066.                 var sBaseCode = oBaseCode[0].BASECODE;
  1067.                 var oNewBaseJson = {
  1068.                            BASECODE: sBaseCode,
  1069.                            BASEDESCRIPTION: sBaseDescription
  1070.                            };
  1071.                 aBase.push(oNewBaseJson);
  1072.             }
  1073.    
  1074.                     for (var j = 0 ; j < aBase.length; j++){
  1075.                          var oNewRowJson = {  
  1076.                                        BASECODE: aBase[j].BASECODE,
  1077.                                        BASEDESCRIPTION : aBase[j].BASEDESCRIPTION,
  1078.                                        MATERIALCODE: sMaterialCode,
  1079.                                        MATERIALDESCRIPTION: sMaterialDescription,
  1080.                                        FLAGRELEVANT: "X",
  1081.                                        UPDATETYPE: 'new'};
  1082.                          aNewRows.push(oNewRowJson);
  1083.                        
  1084.                     }
  1085.                
  1086.                     this._onSaveNewRow(aNewRows);
  1087.         },
  1088.        
  1089.         onSaveBaseNewRow: function (oEvent, sNameDialog, sNameMessageDialog){
  1090.            
  1091.             var sTab = this.__currTab;
  1092.             var sApp = this.__currApp;
  1093.             this.getView().getModel("temp").setProperty("/" + sApp + "/" + sTab + "/isEditModeOn", true);
  1094.             var oBaseModel = this.getView().getModel('oMockModel').getProperty('/Base');
  1095.             var oSelectBase = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1];
  1096.             var oSelectNetwork = this._sNameDialog.getContent()[1].getItems()[0].getItems()[1];
  1097.             var oTabCode = this.getView().getModel("temp").getProperty("/" + sApp + "/" + sTab + "/NewRows");
  1098.             var oNetworkModel = this.getView().getModel('oBWModel').getProperty('/Network');
  1099.             var sBaseDescription = oSelectBase.getValue();
  1100.             var sNetwork = oSelectNetwork.getValue();
  1101.             var oNetworkJson = {};
  1102.             oNetworkJson['NETWORKDESCRIPTION'] = sNetwork;
  1103.             var oNetworkCode = _.where ( oNetworkModel, oNetworkJson);
  1104.             var aNetworkCodes=[];
  1105.             if (oNetworkCode.length !== 0 ){
  1106.                 var sNetworkCode = oNetworkCode[0].NETWORK;
  1107.                 }else {
  1108.                 if (sNetwork === ''){
  1109.                     var sNetworkCode = '';
  1110.                 }else{
  1111.                     for(var i = 0 ; i < oBaseModel.length ; i++){
  1112.                         aNetworkCodes.push(Number(oBaseModel[i].NETWORK));
  1113.                         var sNetworkCode = String (_.max(aNetworkCodes) + 1 );
  1114.                     }
  1115.                 }
  1116.             }
  1117.             var sBaseCode = oTabCode.BASECODE;
  1118.             var aNewRows = [];
  1119.             var oNewRowJson = {
  1120.                         BASECODE : sBaseCode,
  1121.                         BASEDESCRIPTION : sBaseDescription,
  1122.                         NETWORKDESCRIPTION : sNetwork,
  1123.                         NETWORK: sNetworkCode,
  1124.                         FLAGRELEVANT : "X",
  1125.                         UPDATETYPE : 'new'};
  1126.             aNewRows.push(oNewRowJson);
  1127.            
  1128.             this._onSaveNewRow(aNewRows);
  1129.            
  1130.                    
  1131.         },
  1132.        
  1133.        
  1134.        
  1135.         _onSaveNewRow: function (aNewRows) {
  1136.            
  1137.             var sApp = this.__currApp;
  1138.             var validityFlag = true;
  1139.             var validityRow = this._rowValidity();
  1140.             var sTabName = this._sNameDialog.data('tabName');
  1141.             validityFlag = validityFlag = validityFlag && validityRow;
  1142.             if (validityFlag) {
  1143.                 var oUpdateModel = this.getView().getModel("oMockModel").getProperty("/" + sTabName );
  1144.                 aNewRows.forEach(function(x) {
  1145.                     oUpdateModel.unshift(x);
  1146.                 });
  1147.                 this.getView().getModel("oMockModel").setProperty("/" + sTabName , oUpdateModel);
  1148.             }else {
  1149.               if (sTabName === 'Base'){
  1150.                   this._handleWarningMessageBoxPress("ImpossibleToSaveConfigurationBase");
  1151.               } else {
  1152.                 this._handleWarningMessageBoxPress("ImpossibleToSaveConfiguration");
  1153.             }
  1154.             }
  1155.             this._sNameDialog.destroy();
  1156.             this._sNameMessageDialog.destroy();
  1157.             this._setBaseDescriptionVisibility(false);
  1158.         },
  1159.        
  1160.        
  1161.         _rowValidity: function() {
  1162.            
  1163.             var bFlag = true;
  1164.             var sTabName = this.__currTab;
  1165.             var oUsersEntry = this.getView().getModel('temp').getProperty('/Configuration/Base/UsersEntry');
  1166.             var oMaxLengthJson = {};
  1167.             oMaxLengthJson['FIELDNAME'] = 'NETWORKDESCRIPTION';
  1168.             var sMaxLength = _.where ( oUsersEntry, oMaxLengthJson )[0]['MAXLENGTH'];
  1169.            
  1170.             if (sTabName === 'Base') {
  1171.                 var oInputNetwork = this._sNameDialog.getContent()[1].getItems()[0].getItems()[1];
  1172.                 var sInputBase = this._sNameDialog.getContent()[0].getItems()[0].getItems()[1].getValue(); //BASE
  1173.                 var sInputNetwork = oInputNetwork.getValue(); //BASE
  1174.                 if (sInputBase === '' || sInputNetwork.length > sMaxLength  ){
  1175.                     bFlag = false;
  1176.                 }
  1177.            
  1178.             }
  1179.             if (sTabName === 'Material') {
  1180.                 var aTokens= this._sNameDialog.getContent()[1].getItems()[1].getTokens(); //MATERIAL, MOVEMENT
  1181.                 var oDescription =  this._sNameDialog.getContent()[0].getItems()[0].getItems()[1]; //MATERIAL, MOVEMENT
  1182.                 var sInputValue = oDescription.getValue(); //MATERIAL
  1183.                 if (aTokens.length === 0 || sInputValue === '' ){
  1184.                     bFlag = false;
  1185.                 }
  1186.             }
  1187.             if (sTabName === 'MovementAssociation') {
  1188.                 var aTokens= this._sNameDialog.getContent()[1].getItems()[1].getTokens(); //MATERIAL, MOVEMENT
  1189.                 var oDescription =  this._sNameDialog.getContent()[0].getItems()[0].getItems()[1]; //MATERIAL, MOVEMENT
  1190.                 var oSelectedItem = oDescription.getSelectedItem(); //MOVEMENT
  1191.                 if (aTokens.length === 0 || oSelectedItem.length === 0 ){
  1192.                     bFlag = false;
  1193.                 }
  1194.             }  
  1195.             return bFlag;
  1196.         },
  1197.    
  1198.         ///////////////////////////////////////////////////////////
  1199.        
  1200.        
  1201.         //                  FUNZIONI PRIVATE                     //
  1202.            
  1203.        
  1204.         ///////////////////////////////////////////////////////////
  1205.  
  1206.         //RITORNO L'ARRAY DEI FILTRI COSTRUITO SUI VALORI PRESENTI NEL MODELLO DEI FILTRI PER I MULTIINPUT
  1207.         _returnTokenFilters: function(aTokenFieldNames, sCurrApp, sNameTab) {
  1208.             //Gestione Token
  1209.             var aTokenFilters = [];
  1210.  
  1211.             for (var i = 0; i < aTokenFieldNames.length; i++) {
  1212.                 var aFilters = [];
  1213.                 var sFieldName = aTokenFieldNames[i];
  1214.                 var aFilterModel = this.getView().getModel("filters").getProperty("/" + sCurrApp + "/" + sNameTab + "/values/" + sFieldName);
  1215.                 if (aFilterModel && aFilterModel.length !== 0) {
  1216.                     for (var j = 0; j < aFilterModel.length; j++) {
  1217.                         var currValue = aFilterModel[j].text;
  1218.                         aFilters.push(new Filter(sFieldName, sap.ui.model.FilterOperator.EQ, currValue));
  1219.                     }
  1220.                     var oFilter = new Filter({
  1221.                         filters: aFilters,
  1222.                         and: false
  1223.                     });
  1224.                     aTokenFilters.push(oFilter);
  1225.                 }
  1226.             }
  1227.             return (aTokenFilters.length !== 0) ? new Filter({
  1228.                 filters: aTokenFilters,
  1229.                 and: true
  1230.             }) : null;
  1231.            
  1232.         },
  1233.  
  1234.         //RITORNO L'ARRAY DEI FILTRI COSTRUITO SUI VALORI PRESENTI NEL MODELLO DEI FILTRI PER I SELECTEDBUTTON
  1235.         _returnRelevantFlagFilters: function(aRelevantFlagFieldNames, sCurrApp, sNameTab) {
  1236.  
  1237.             var aRelevantFlagFilters = [];
  1238.  
  1239.             for (var i = 0; i < aRelevantFlagFieldNames.length; i++) {
  1240.                 var aFilters = [];
  1241.                 var sFieldName = aRelevantFlagFieldNames[i];
  1242.                 var aFilterModel = this.getView().getModel("filters").getProperty("/" + sCurrApp + "/" + sNameTab + "/values/" + sFieldName);
  1243.                 var currValue = aFilterModel;
  1244.                 if (currValue !== 'ALL') {
  1245.                     aFilters.push(new Filter(sFieldName, sap.ui.model.FilterOperator.EQ, currValue));
  1246.                     var oFilter = new Filter({
  1247.                         filters: aFilters,
  1248.                         and: false
  1249.                     });
  1250.                     aRelevantFlagFilters.push(oFilter);
  1251.                 }
  1252.             }
  1253.             return (aRelevantFlagFilters.length !== 0) ? new Filter({
  1254.                 filters: aRelevantFlagFilters,
  1255.                 and: true
  1256.             }) : null;
  1257.         },
  1258.  
  1259.         //RITORNO L'ARRAY DEI FILTRI COSTRUITO SUL VALORE PRESENTE NEL MODELLO DEI FILTRI PER IL SEARCHFIELD
  1260.         //DEVE COSTRUIRE UN ARRAY DI FILTRI SU TUTTI I CAMPI DEL MODELLO CONTROLLANDO SE IL VALORE � CONTENUTO
  1261.         //IN UNO DEI CAMPI
  1262.         _returnSearchFieldFilters: function(sCurrApp, sNameTab, sFilterField) {
  1263.  
  1264.             var sValue = this.getView().getModel("filters").getProperty("/" + sCurrApp + "/" + sNameTab + "/values/" + sFilterField),
  1265.                 aTokenFieldNames,
  1266.                 aRelevantFlagFieldNames,
  1267.                 aAllFieldName,
  1268.                 sFieldName,
  1269.                 aAllFilters = [];
  1270.  
  1271.             aTokenFieldNames = this._returnFieldNameArray(sCurrApp, sNameTab, 'TOKENFIELDSNAME');
  1272.             aRelevantFlagFieldNames = this._returnFieldNameArray(sCurrApp, sNameTab, 'RELEVANTFLAGFIELDNAME');
  1273.             aAllFieldName = aTokenFieldNames.concat(aRelevantFlagFieldNames);
  1274.  
  1275.             if (sValue !== '') {
  1276.                 for (var i = 0; i < aAllFieldName.length; i++) {
  1277.                     sFieldName = aAllFieldName[i];
  1278.                     aAllFilters.push(new Filter(sFieldName, sap.ui.model.FilterOperator.Contains, sValue));
  1279.                 }
  1280.             }
  1281.             return (sValue !== '') ? new Filter({
  1282.                 filters: aAllFilters,
  1283.                 and: false
  1284.             }) : null;
  1285.  
  1286.         },
  1287.  
  1288.         _returnFieldNameArray: function(sCurrApp, sNameTab, sGroupFieldType) {
  1289.  
  1290.             return this.getView().getModel("filters").getProperty("/" + sCurrApp + "/" + sNameTab + "/values/" + sGroupFieldType);
  1291.  
  1292.         },
  1293.        
  1294.         _setEditMode: function(isEditModeOn, oRows){
  1295.             var oTempModel = this.getView().getModel("temp"),
  1296.                 oTable = this.byId(this.__currTab + 'Table'),
  1297.                 sTableMode = (isEditModeOn === true) ? "None" : "MultiSelect",
  1298.                 aModifiedIndexs = [],
  1299.                 iModifiedIndex;
  1300.                
  1301.             oTempModel.setProperty("/" + this.__currApp + "/" + this.__currTab + "/isEditModeOn", isEditModeOn);
  1302.             this.getView().getModel("temp").setProperty("/" + this.__currApp + "/" + this.__currTab + "/selectedModeOn", false);
  1303.             oTable.setMode(sTableMode);
  1304.            
  1305.             aModifiedIndexs = this._returnModifiedIndex(oRows[0]);
  1306.              
  1307.             for (var i = 0 ; i < oRows.length ; i++){          
  1308.                 for(var j = 0 ; j < aModifiedIndexs.length ; j ++){
  1309.                     iModifiedIndex = aModifiedIndexs[j];
  1310.                     oRows[i].getCells()[iModifiedIndex].setEditable(isEditModeOn);
  1311.                     if(oRows[i].getCells()[iModifiedIndex].data('typing') !== undefined){
  1312.                         oRows[i].getCells()[iModifiedIndex].data('typing', false);
  1313.                        
  1314.                     }
  1315.                 }
  1316.             }  
  1317.            
  1318.         },
  1319.        
  1320.         _handleWarningMessageBoxPress: function(keyText) {
  1321.             var bCompact = !!this.getView().$().closest(".sapUiSizeCompact").length,
  1322.                 oBundle = this.getView().getModel("i18n").getResourceBundle(),
  1323.                 text = oBundle.getText(keyText);
  1324.  
  1325.             sap.m.MessageBox.warning(
  1326.                 text, {
  1327.                     styleClass: bCompact ? "sapUiSizeCompact" : ""
  1328.                 }
  1329.             );
  1330.         },
  1331.        
  1332.         _returnModifiedIndex: function(oRow){
  1333.             var oCells = oRow.getCells(),
  1334.                 oCell,
  1335.                 aModifiedIndex = [];
  1336.             for(var i = 0 ; i < oCells.length ; i++){
  1337.                 oCell = oCells[i];
  1338.                 if(oCell.data("beModified") === 'true'){
  1339.                     aModifiedIndex.push(i);
  1340.                 }
  1341.             }
  1342.             return aModifiedIndex;
  1343.         },
  1344.        
  1345.  
  1346.         _setBaseDescriptionVisibility: function(isTrue){
  1347.            
  1348.             var oTempModel = this.getView().getModel("temp");
  1349.             oTempModel.setProperty("/enableBaseDescription", isTrue);
  1350.            
  1351.         },
  1352.        
  1353.     /*  _setOnSendChangesMode: function(bMode){
  1354.            
  1355.             var oTempModel = this.getView().getModel("temp");
  1356.             oTempModel.setProperty("/"+ this.__currApp + "/" + this.__currTab + "/enableSendChangesModeOn", bMode);
  1357.             this.getView().byId('onSendChangesConfigurationButton').setProperty('enabled', bMode);
  1358.            
  1359.         }, */
  1360.        
  1361.         _updateOData: function(tab, oModel, sEntitySet, keys, oNewJson, total){
  1362.            
  1363.             this._thatoModel = oModel;
  1364.             this._thatsEntitySet = sEntitySet;
  1365.             this._thatkeys = keys;
  1366.             this._thatoNewJson = oNewJson;
  1367.             this._thattotal = total
  1368.            
  1369.             var controller = this,
  1370.                 aResolvedScrap = {};
  1371.            
  1372.             var key;
  1373.             if( keys.length === 2 ) key = keys[0] + "='" + oNewJson[keys[0]] + "'," + keys[1] + "='" + oNewJson[keys[1]] + "'" ;
  1374.             else key = "'" + oNewJson[keys] + "'" ;
  1375.             oModel.update( sEntitySet + "(" + key + ")", oNewJson, {
  1376.                 success: function(oData, response){
  1377.                     controller.__counterUpdateRequests['success']++;
  1378.                     var sum  = controller.__counterCreateRequests['success'] + controller.__counterCreateRequests['error'] +
  1379.                     controller.__counterUpdateRequests['success'] + controller.__counterUpdateRequests['error'];
  1380.                     if(sum === total){ 
  1381.                         controller.destroyBusyDialog();
  1382.                         controller._onMessageSuccessDialog();
  1383.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Configuration");
  1384.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Transcoding");
  1385.                         controller.getView().byId(tab + "Table").getBinding("items");
  1386.                         controller.__counterCreateRequests['success'] = 0;
  1387.                         controller.__counterCreateRequests['error'] = 0;
  1388.                         controller.__counterUpdateRequests['success'] = 0;
  1389.                         controller.__counterUpdateRequests['error'] = 0;
  1390.                         /*
  1391.                          * IN TEORIA DA ELIMINARE. VEDERE DA ANDREA
  1392.                         if(controller._thatoNewJson.FLAGRELEVANT === "X"){
  1393.                             var aScarpRevolved = controller.checkScrapResolved('Relevance');
  1394.                             if(aScarpRevolved.length !== 0){
  1395.                                 for(var i = 0 ; i < aScarpRevolved.lenght ; i++){
  1396.                                     //Richiama BE di risoluzione scarti
  1397.                                 }
  1398.                             }
  1399.                         }
  1400.                          */
  1401.                        
  1402.                         //Configuration,    Base
  1403.                         //                  BASECODE,
  1404.                         //                  BASECODE: "I103"
  1405.                         //                  BASEDESCRIPTION: "MFG MERIDIONALE ALCOLICI"
  1406.                         //                  FLAGRELEVANT: ""
  1407.                         //                  NETWORK: "2"
  1408.                         //                  NETWORKDESCRIPTION: "Silone"
  1409.                         //Configuration,    Material
  1410.                         //                  ["BASECODE", "MATERIALCODE"]
  1411.                         //                  BASECODE: "I102"
  1412.                         //                  BASEDESCRIPTION: "Milazzo Marketing"
  1413.                         //                  FLAGRELEVANT: "X"
  1414.                         //                  MATERIALCODE: "000000000000301551"
  1415.                         //                  MATERIALDESCRIPTION: " BASRAH  HEAVY CRUDE  OIL"
  1416.                         //Configuration,    MovementAssociation
  1417.                         //                  ["BASECODE", "MOVEMENTCODE"]
  1418.                         //                  BASECODE: "I102"
  1419.                         //                  BASEDESCRIPTION: "Milazzo Marketing"
  1420.                         //                  FLAGRELEVANT: ""
  1421.                         //                  MOVEMENTCODE: "YCC"
  1422.                         //                  MOVEMENTDESCRIPTION: "Movimento 3 (Carico 2)"
  1423.                         //                  SIGN: "+"
  1424.                        
  1425.                     }
  1426.                 },
  1427.                 error: function(oData, response){
  1428.                     controller.__counterUpdateRequests['error']++;
  1429.                     var sum  = controller.__counterCreateRequests['success'] + controller.__counterCreateRequests['error'] +
  1430.                     controller.__counterUpdateRequests['success'] + controller.__counterUpdateRequests['error'];
  1431.                     if(sum === total){ 
  1432.                         controller.destroyBusyDialog();
  1433.                         controller._onMessageErrorDialog();
  1434.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Configuration");
  1435.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Transcoding");
  1436.                         controller.__counterCreateRequests['success'] = 0;
  1437.                         controller.__counterCreateRequests['error'] = 0;
  1438.                         controller.__counterUpdateRequests['success'] = 0;
  1439.                         controller.__counterUpdateRequests['error'] = 0;
  1440.                     }
  1441.                 }
  1442.             });
  1443.         },
  1444.        
  1445.         _createODataParam: function(tab, oModel, sEntitySetParam, oNewJsonParam){
  1446.            
  1447.             oModel.create( sEntitySetParam, oNewJsonParam, {
  1448.                 success: function(oData, response){ console.log("success");
  1449.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Parameters");},
  1450.                 error: function(oData, response){ console.log("error");
  1451.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Parameters");}
  1452.             });
  1453.         },
  1454.        
  1455.         _createOData: function(tab, oModel, sEntitySet, oNewJson, total, sEntitySetTranscoding, oNewJsonTranscoding){
  1456.            
  1457.             this._thatoModel = oModel;
  1458.             this._thatsEntitySet = sEntitySet;
  1459.             this._thatoNewJson = oNewJson;
  1460.             this._thattotal = total
  1461.            
  1462.             var controller = this;
  1463.            
  1464.             oModel.create( sEntitySet, oNewJson, {
  1465.                 success: function(oData, response){
  1466.                     controller.__counterCreateRequests['success']++;
  1467.                     var sum  = controller.__counterCreateRequests['success'] + controller.__counterCreateRequests['error'] +
  1468.                     controller.__counterUpdateRequests['success'] + controller.__counterUpdateRequests['error'];
  1469.                     if(sum === total){ 
  1470.                         controller.destroyBusyDialog();
  1471.                         controller._onMessageSuccessDialog();
  1472.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Configuration");
  1473.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Transcoding");
  1474.                         controller.getView().byId(tab + "Table").getBinding("items");
  1475.                         controller.__counterCreateRequests['success'] = 0;
  1476.                         controller.__counterCreateRequests['error'] = 0;
  1477.                         controller.__counterUpdateRequests['success'] = 0;
  1478.                         controller.__counterUpdateRequests['error'] = 0;
  1479.                         controller.checkScrapResolved('ExistenceRelevance');
  1480.                     }
  1481.                     oModel.create( sEntitySetTranscoding, oNewJsonTranscoding, {
  1482.                         success: function(oData, response){ console.log("success"); },
  1483.                         error: function(oData, response){ console.log("error"); }
  1484.                     });
  1485.  
  1486.                 },
  1487.                 error: function(oData, response){
  1488.                     controller.__counterCreateRequests['error']++;
  1489.                     var sum  = controller.__counterCreateRequests['success'] + controller.__counterCreateRequests['error'] +
  1490.                     controller.__counterUpdateRequests['success'] + controller.__counterUpdateRequests['error'];
  1491.                     if(sum === total){ 
  1492.                         controller.destroyBusyDialog();
  1493.                         controller._onMessageErrorDialog();
  1494.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Configuration");
  1495.                         controller.loadSingleModel(controller.getView(), "GATEWAYMODEL", "Transcoding");
  1496.                         controller.__counterCreateRequests['success'] = 0;
  1497.                         controller.__counterCreateRequests['error'] = 0;
  1498.                         controller.__counterUpdateRequests['success'] = 0;
  1499.                         controller.__counterUpdateRequests['error'] = 0;
  1500.                     }
  1501.                 }
  1502.             });
  1503.            
  1504.            
  1505.            
  1506.         },
  1507.        
  1508.         _onMessageSuccessDialog: function() {
  1509.             var controller = this;
  1510.             var sum  = controller.__counterCreateRequests['success'] + controller.__counterCreateRequests['error'] +
  1511.             controller.__counterUpdateRequests['success'] + controller.__counterUpdateRequests['error'];
  1512.             var totalCreate = controller.__counterCreateRequests['success'] + controller.__counterCreateRequests['error'];
  1513.             var totalUpdate = controller.__counterUpdateRequests['success'] + controller.__counterUpdateRequests['error'];
  1514.            
  1515.             this._sNameMessageDialog = sap.ui.xmlfragment("it.q8.supply.view.configuration.fragment.dialog.ConfirmCreateOrModifyDialog", this);
  1516.             this.getView().addDependent(this._sNameMessageDialog);
  1517.             this._sNameMessageDialog.open();
  1518.            
  1519.             var sText = "Record creati: " + controller.__counterCreateRequests['success'] + " su " + totalCreate +
  1520.             ", Record modificati: " + controller.__counterUpdateRequests['success'] + " su " + totalUpdate;
  1521.            
  1522.             this.getView().getModel("temp").setProperty("/ConfirmSuccessText", sText);
  1523.            
  1524.             /*
  1525.             var dialog = new sap.m.Dialog({
  1526.                 title: 'Success',
  1527.                 type: 'Message',
  1528.                 state: 'Success',
  1529.                 content: new sap.m.Text({
  1530.                     text: "Righe create: " + controller.__counterCreateRequests['success'] + " su " + totalCreate +
  1531.                     ", Righe modificate: " + controller.__counterUpdateRequests['success'] + " su " + totalUpdate
  1532.                 }),
  1533.                 beginButton: new sap.m.Button({
  1534.                     text: 'OK',
  1535.                     press: function () {
  1536.                         dialog.close();
  1537.                     }
  1538.                 }),
  1539.                 afterClose: function() {
  1540.                     dialog.destroy();
  1541.                 }
  1542.             });
  1543.             */
  1544.             //dialog.open();
  1545.         },
  1546.        
  1547.         _onMessageErrorDialog: function() {
  1548.            
  1549.             var controller = this;
  1550.             var sum  = controller.__counterCreateRequests['success'] + controller.__counterCreateRequests['error'] +
  1551.             controller.__counterUpdateRequests['success'] + controller.__counterUpdateRequests['error'];
  1552.             var totalCreate = controller.__counterCreateRequests['success'] + controller.__counterCreateRequests['error'];
  1553.             var totalUpdate = controller.__counterUpdateRequests['success'] + controller.__counterUpdateRequests['error'];
  1554.             var dialog = new sap.m.Dialog({
  1555.                 title: 'Error',
  1556.                 type: 'Message',
  1557.                 state: 'Error',
  1558.                 content: new sap.m.Text({
  1559.                     text: "Righe create: " + controller.__counterCreateRequests['success'] + " su " + totalCreate +
  1560.                     ", Righe modificate: " + controller.__counterUpdateRequests['success'] + " su " + totalUpdate
  1561.                 }),
  1562.                 beginButton: new sap.m.Button({
  1563.                     text: 'OK',
  1564.                     press: function () {
  1565.                         dialog.close();
  1566.                     }
  1567.                 }),
  1568.                 afterClose: function() {
  1569.                     dialog.destroy();
  1570.                 }
  1571.             });
  1572.  
  1573.             dialog.open();
  1574.         },
  1575.        
  1576.         _onMessageWarningDialog: function(sKeyText) {
  1577.            
  1578.             var controller = this;
  1579.             var oBundle = this.getView().getModel("i18n").getResourceBundle();
  1580.             var sText = oBundle.getText(sKeyText);
  1581.             var dialog = new sap.m.Dialog({
  1582.                 title: 'Warning',
  1583.                 type: 'Message',
  1584.                 state: 'Warning',
  1585.                 content: new sap.m.Text({
  1586.                     text: sText
  1587.                 }),
  1588.                 beginButton: new sap.m.Button({
  1589.                     text: 'OK',
  1590.                     press: function () {
  1591.                         dialog.close();
  1592.                     }
  1593.                 }),
  1594.                 afterClose: function() {
  1595.                     dialog.destroy();
  1596.                 }
  1597.             });
  1598.  
  1599.             dialog.open();
  1600.         },
  1601.        
  1602.         /*
  1603.             This function adds a tooltip to codes in table
  1604.          */
  1605.         _addTooltip: function(controller, oTable){
  1606.             var aItems = oTable.getItems();
  1607.             if(aItems.length > 0){
  1608.                 var indexes = [];
  1609.                 aItems[0].getCells().forEach( x=> {if(x.getBindingInfo('value') !== undefined) {
  1610.                     var sPath = x.getBindingInfo("value").binding.sPath;
  1611.                     if( sPath.endsWith("DESCRIPTION")) indexes.push( aItems[0].getCells().indexOf(x) )
  1612.                     }
  1613.                 });
  1614.                 // for every row
  1615.                 for(var i= 0; i < aItems.length; i++){
  1616.                     // for every description
  1617.                     for(var j = 0; j < indexes.length; j++){                       
  1618.                         aItems[i].getCells()[ indexes[j] ].addEventDelegate({
  1619.                             onmouseover: function (oEvent) {
  1620.                             //  if( this.getView().byId(this.__currTab + "Table").getMode() === "MultiSelect") {                                   
  1621.                                     var input = oEvent.srcControl;
  1622.                                     var tab = input.getBindingInfo("value").binding.sPath;
  1623.                                     var path = tab.replace("DESCRIPTION", "");
  1624.                                     path = path[0] + path.substr(1, path.length).toLowerCase();
  1625.                                     var oModel = this.getView().getModel("oMockModel").getProperty("/" + path);
  1626.                                     var json = {};
  1627.                                     json[tab] = input.getValue();
  1628.                                     var res = _.findWhere(oModel, json);
  1629.                                     res = res !== undefined ? "Codice: " + res[path.toUpperCase() + "CODE"] : "Codice non disponibile";
  1630.                                     input.setTooltip(res);
  1631.                             //  }
  1632.                             }
  1633.                         }, controller);
  1634.                     }
  1635.                 }
  1636.             }  
  1637.         },
  1638.        
  1639.         onNavBack:function(oEvent){
  1640.            
  1641.             var controller = this;
  1642.            
  1643.             controller.getRouter().navTo("homepage");
  1644.         }
  1645.        
  1646.     });
  1647. });
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top