Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 61.58 KB | None | 0 0
  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. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement