· 8 years ago · Feb 01, 2018, 09:12 AM
1sap.ui.define([
2 "zeccrmanagewo/view/BaseController",
3 "sap/ui/model/json/JSONModel",
4 "sap/m/MessageBox",
5 "zeccrmanagewo/util/Formatter",
6 "zeccrmanagewo/util/SearchHelp",
7 "zeccrmanagewo/util/Export",
8 "zeccrmanagewo/util/Import",
9 "zeccrmanagewo/util/zmmshpg001",
10 "zeccrmanagewo/util/zmmshpg005"
11], function(Controller, JSONModel, MessageBox, Formatter, SearchHelp, Export, Import, zmmshpg001, zmmshpg005) {
12 "use strict";
13
14 var oDataService = "/sap/opu/odata/sap/ZMMSHPG005_SRV";
15 var sEntityPath = "/ECCE001COL";
16 var _sModule = "ECCR";
17 var _oFormatter = Formatter;
18 var _bIsAttachment = false;
19 var _oBusyDialog = new sap.m.BusyDialog();
20 var _isGetDefaultData = false;
21 var sOldDocDate = ""; //store selected document date
22 var sOldAuthoizeCustomBroker = "";
23 var sOldContractItem = "";
24 var sOldChargeTo = "";
25
26 var _aAttachmentPreAlert = [];
27 var _aAttachmentSSHE = [];
28 var _aAttachmentCompleted = [];
29 var _aAttachmentAbsolute = [];
30 var _aAttachmentBilling = [];
31 var _aAttachmentDamage = [];
32 var _aAttachmentDAS = [];
33 var _aAttachmentOther = [];
34 var _aAllDeparturePort = [];
35 var _oModel = new sap.ui.model.json.JSONModel();
36 var _aPOItemsAdd = [];
37 var _aEREQItemsAdd = [];
38 var _aPackageEREQAdd = [];
39
40 var _aPOItems = [];
41 var _aEREQItems = [];
42
43 var _oModelSearchHelp = new JSONModel();
44 var _oModelDialogAdd = new sap.ui.model.json.JSONModel();
45
46 var _oModelTable = new sap.ui.model.json.JSONModel();
47 var _oModelVehicle = new sap.ui.model.json.JSONModel();
48
49 var _aAllContractItemDetail = [];
50 var _sSuffixEditable = "_Editable"; //This is the sufflix for set editable fields ex. ReqDate_Editable
51
52 var sSeletedDisplayForm = ""; //flag for print form type
53 var sSelectedSeqPrintForm = ""; //flag for print form invoice seq
54
55 //==== varaible for drobdown list
56 var _ShippingMethod = [];
57 var _AuthoizeCustomBroker = [];
58 var _ModeOfTransport = [];
59 var _SeaType = [];
60 var _OrderType = [];
61 var _CargoType = [];
62 var _DeparturePort = [];
63 var _AllocationMethod = [];
64 var _ChargeTo = [];
65 var _Project = [];
66 //====
67 var _aDeliveryBy = [];
68 var _aItemsWO = [];
69 var _aItemsWOAdd = [];
70 var _aVehicleTruck = [];
71 var _aVehicleSea = [];
72 var _aVehicleType = [];
73 var _aVehicleServiceLevel = [];
74 var _aVehicleRoute = [];
75 var _aShipmentHistory = [];
76 var _WONo = "";
77
78 /** Cost Variables **/
79 var _oModelCost = new JSONModel();
80 var _oModelCostSheet = new JSONModel();
81 var _oModelCostHeader = new JSONModel();
82 var _aCostGrandTotal = [];
83 var _aCost = [];
84 var _sWONumber = "";
85 var _bIsCost = false;
86 var _aCostWO = [];
87 var _aCostPO = [];
88 var _aCostPOItem = [];
89 var _aCostAllPO = [];
90 var _aCostAllPOItem = [];
91 var _aCostPOService = [];
92 var _aCostInvoiceSeq = [];
93 var _aCostWOTree = [];
94 var _aCostPOTree = [];
95 var _aCostPOItemTree = [];
96 /** End Cost Variables **/
97
98 /** Number Format **/
99 jQuery.sap.require("sap.ui.core.format.NumberFormat");
100 var _oNumberFormat2Decimal = sap.ui.core.format.NumberFormat.getFloatInstance({
101 decimals: 2,
102 maxFractionDigits: 2,
103 groupingEnabled: true,
104 groupingSeparator: ",",
105 decimalSeparator: "."
106 });
107 var _oNumberFormat3Decimal = sap.ui.core.format.NumberFormat.getFloatInstance({
108 decimals: 3,
109 maxFractionDigits: 3,
110 groupingEnabled: true,
111 groupingSeparator: ",",
112 decimalSeparator: "."
113 });
114
115 /** End Number Format **/
116
117 return Controller.extend("zeccrmanagewo.view.ManageWO", {
118
119 onInit: function() {
120 var oRootPath = jQuery.sap.getModulePath("zeccrmanagewo");
121 this.oMsg = new sap.ui.model.resource.ResourceModel({
122 bundleUrl: [oRootPath, "i18n/messageBundle.properties"].join("/")
123 });
124
125 //add validator to control
126 this.fnSetValidator();
127
128 this.getRouter().attachRouteMatched(this.fnHandleRouteMatched, this);
129 },
130
131 /*
132 ** Area File Uploader
133 */
134 fnOnDeleteItem: function(oEvent) {
135 // var sId = oEvent.getParameter("id").split("--")[1];
136 _bIsAttachment = true;
137 var sId = oEvent.getParameter("id").split("--vIdListAttach")[1];
138 var aData = [];
139 this.fnSetDataAttachment(sId, aData);
140 },
141 fnFindDescription: function(fFileSizeLength, sDate) {
142 sDate = _oFormatter.fnDateFormatterFromString(sDate);
143
144 return "Uploaded On : " + sDate;
145 },
146 fnReadFile: function(file, onLoadCallback) {
147 var reader = new FileReader();
148 reader.onload = onLoadCallback;
149 reader.readAsDataURL(file);
150 },
151 fnFindIcon: function(sFileExtension) {
152 var sIcon = "sap-icon://attachment";
153 switch (sFileExtension) {
154 case "image/jpeg":
155 case "image/png":
156 case "image/gif":
157 sIcon = "sap-icon://attachment-photo";
158 break;
159 case "application/msword":
160 case "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
161 sIcon = "sap-icon://doc-attachment";
162 break;
163 case "application/vnd.ms-excel":
164 case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
165 sIcon = "sap-icon://excel-attachment";
166 break;
167 case "application/pdf":
168 sIcon = "sap-icon://pdf-attachment";
169 break;
170 case "text/plain":
171 sIcon = "sap-icon://attachment-text-file";
172 break;
173 default:
174 break;
175 }
176 return sIcon;
177 },
178 fnSizeOfFile: function(bytes) {
179 if (bytes == 0) {
180 return "0.00 B";
181 }
182 var e = Math.floor(Math.log(bytes) / Math.log(1024));
183 var sSizof = (bytes / Math.pow(1024, e)).toFixed(2) + ' ' + ' KMGTP'.charAt(e) + 'B';
184 // var sSizof = Math.round((bytes / Math.pow(1024, e))) + ' ' + ' KMGTP'.charAt(e) + 'B';
185 return sSizof;
186 },
187 fnSetDataAttachment: function(sId, aData) {
188 if (sId === "PreAlertDocument") {
189 _aAttachmentPreAlert = aData;
190 } else if (sId === "SSHE") {
191 _aAttachmentSSHE = aData;
192 } else if (sId === "CompletedDocument") {
193 _aAttachmentCompleted = aData;
194 } else if (sId === "Absolute") {
195 _aAttachmentAbsolute = aData;
196 } else if (sId === "BillingInvoice") {
197 _aAttachmentBilling = aData;
198 } else if (sId === "DamageReport") {
199 _aAttachmentDamage = aData;
200 } else if (sId === "DAS") {
201 _aAttachmentDAS = aData;
202 } else if (sId === "Other") {
203 _aAttachmentOther = aData;
204 }
205 var oModelAttachment = new sap.ui.model.json.JSONModel();
206 oModelAttachment.setData({
207 PreAlert: _aAttachmentPreAlert,
208 SSHE: _aAttachmentSSHE,
209 Completed: _aAttachmentCompleted,
210 Absolute: _aAttachmentAbsolute,
211 Billing: _aAttachmentBilling,
212 Damage: _aAttachmentDamage,
213 DAS: _aAttachmentDAS,
214 Other: _aAttachmentOther
215 });
216 this.getView().setModel(oModelAttachment, "Attachment");
217 },
218 fnOnChangeUpload: function(oControlEvent) {
219 var that = this;
220
221 var oValue = oControlEvent.getParameters();
222 var sId = oValue.id.split("--ful")[1];
223 var sFileName = oValue.newValue;
224 var sIcon = "sap-icon://attachment";
225 var fFileSizeLength = 0.0;
226 var sFileExtension = oValue.files[0].type;
227 sIcon = this.fnFindIcon(sFileExtension);
228 fFileSizeLength = this.fnSizeOfFile(oValue.files[0].size);
229 // ,
230 // FileURL: ""
231 // FileSize: oValue.files[0].size,
232 var aData = [{
233 AttachmentGroup: sId,
234 ReferenceDocument: "",
235 ReferenceType: "",
236 FileMIMEType: sFileExtension,
237
238 CreatedDate: _oFormatter.fnDatePostFormatter(new Date()),
239 FileName: sFileName,
240 Icon: sIcon,
241 Description: this.fnFindDescription(fFileSizeLength, _oFormatter.fnDatePostFormatter(new Date()))
242 }];
243 this.fnReadFile(oControlEvent.getParameter("files")[0], function(e) {
244 var sSrcFile = e.target.result;
245 if (sSrcFile) {
246 aData[0].Data = sSrcFile.split(",")[1];
247 that.fnSetDataAttachment(sId, aData);
248 _bIsAttachment = true;
249
250 }
251 });
252 oControlEvent.getSource().clear();
253 },
254 fnOnFileUploaderTypeMissmatch: function(oEvent) {
255 var aFileTypes = oEvent.getSource().getFileType();
256 jQuery.each(aFileTypes, function(key, value) {
257 aFileTypes[key] = "*." + value;
258 });
259 var sSupportedFileTypes = aFileTypes.join(", ");
260 var sText = "The file type *." + oEvent.getParameter("fileType") +
261 " is not supported. Choose one of the following types: " +
262 sSupportedFileTypes;
263 this.fnOnErrorMessageBox(sText);
264 // sap.m.MessageToast.show("The file type *." + oEvent.getParameter("fileType") +
265 // " is not supported. Choose one of the following types: " +
266 // sSupportedFileTypes);
267 },
268 fnOnDisplayFileAttachment: function(oEvent) {
269 var oExport = zeccrmanagewo.util.Export;
270 var oAttachment = [];
271 var sId = oEvent.getSource().sId;
272 if (sId.search("vIdListAttachPreAlertDocument") > 0) {
273 oAttachment = _aAttachmentPreAlert[0];
274 } else if (sId.search("vIdListAttachSSHE") > 0) {
275 oAttachment = _aAttachmentSSHE[0];
276 } else if (sId.search("vIdListAttachCompletedDocument") > 0) {
277 oAttachment = _aAttachmentCompleted[0];
278 } else if (sId.search("vIdListAttachAbsolute") > 0) {
279 oAttachment = _aAttachmentAbsolute[0];
280 } else if (sId.search("vIdListAttachBillingInvoice") > 0) {
281 oAttachment = _aAttachmentBilling[0];
282 } else if (sId.search("vIdListAttachDamageReport") > 0) {
283 oAttachment = _aAttachmentDamage[0];
284 } else if (sId.search("vIdListAttachDAS") > 0) {
285 oAttachment = _aAttachmentDAS[0];
286 } else if (sId.search("vIdListAttachOther") > 0) {
287 oAttachment = _aAttachmentOther[0];
288 }
289 if (oAttachment.ReferenceDocument) {
290 var sDocument = oAttachment.ReferenceDocument;
291 var sAttachmentGroup = oAttachment.AttachmentGroup;
292 var sActionCode = "ATT";
293 var sReferenceType = "WO";
294 var sRead = "/sap/opu/odata/sap/ZMMSHPG001_SRV/UAPE008COL(ReferenceDocument='" + sDocument + "'";
295 sRead = sRead += ",ReferenceType='" + sReferenceType + "'";
296 sRead = sRead += ",AttachmentGroup='" + sAttachmentGroup + "'";
297 sRead = sRead += ",ActionCode='" + sActionCode + "')/$value";
298 sap.m.URLHelper.redirect(sRead, true);
299 } else if (oAttachment) {
300 oExport.fnDownloadFileWithBinary(oAttachment.Data, oAttachment.FileName, oAttachment.FileMIMEType);
301 }
302 },
303 /*
304 ** End Area File Uploader
305 */
306
307 /*
308 ** Area Utility function
309 */
310 fnSplitString: function(sString, cDelimeter) {
311 var aReturn = [];
312 aReturn = sString.split(cDelimeter);
313 return aReturn;
314 },
315 fnClearRequireFildLabel: function(oControl) {
316 oControl.setRequired(false);
317 },
318 fnSetRequireFildLabel: function(oControl) {
319 oControl.setRequired(true);
320 },
321
322 /*
323 ** End Area Utility function
324 */
325
326 fnHandleRouteMatched: function(oEvent) {
327
328 var sWONumber = oEvent.getParameters().arguments.wonumber;
329 sWONumber = decodeURIComponent(sWONumber);
330 _WONo = sWONumber;
331
332 //if had parameters get default
333 if (((sWONumber != null && sWONumber !== "undefined") && (sWONumber !== "" && sWONumber !== "null"))) {
334
335 //clear isAttachment flag
336 _bIsAttachment = false;
337
338 sOldDocDate = ""; //clear docdate
339 sOldAuthoizeCustomBroker = ""; //clear authorized custom broker
340 sOldContractItem = ""; // clear contract item
341 sOldChargeTo = "";
342
343 //Clear data from table
344 this.fnClearWOhistory();
345 this.fnClearAttachment();
346 this.fnClearPackageSummary();
347 this.fnClearWorkOrderData();
348
349 _aAllDeparturePort = [];
350
351 //fix by aum
352 this.bindView(sWONumber);
353
354 //set default tab to View
355 var oSeletedTab = {
356 sSelectedTabKey: "keyWorkOrderData"
357 };
358
359 var oSetTabModel = new sap.ui.model.json.JSONModel();
360 oSetTabModel.setData(oSeletedTab);
361 this.getView().setModel(oSetTabModel, "oSetTabModel");
362
363 }
364
365 },
366 bindView: function(sWorkOderNumber) {
367 if (!sWorkOderNumber) {
368 return;
369 }
370 var that = this;
371 var oData = {};
372 oData = this.fnPrepareOData("manage_wo");
373
374 oData.ActionParameter = "MWO";
375 oData.WorkOrderNo = sWorkOderNumber;
376 oData.ECCN003 = [];
377 oData.ECCN009 = [];
378 oData.ECCN010 = [];
379 oData.ECCN011 = [];
380 oData.ECCN012 = [];
381 oData.ECCN013 = [];
382 oData.ECCN015 = [];
383 oData.ECCN016 = [];
384 oData.ECCN046 = [];
385 oData.ECCN014 = [];
386 oData.ECCN017 = [];
387 oData.ECCN014[0] = {};
388 oData.ECCN014[0].ECCN008 = [];
389 oData.ECCN033 = [];
390 oData.ECCN035 = [];
391 oData.ECCN038 = [];
392 oData.ECCN039 = [];
393 oData.ECCN043 = [];
394
395 this.fnExecuteAction(oData, function(oDataResponse) {
396 //Get Data for Create Shipment
397 if (oDataResponse.MessageType === "E") {
398 that.fnOnErrorMessageBox(oDataResponse.MessageText);
399 return;
400 }
401
402 oDataResponse.Auth = "0";
403 oDataResponse.ReferenceOnly = "";
404 if (oDataResponse.Auth === "0") {
405
406 oDataResponse = that.fnSetVisibleBTNPTTEP(oDataResponse);
407
408 } else if (oDataResponse.Auth === "1") {
409 // Has Authorized Display
410 // oDataResponse.BTNClose = "D";
411 // oDataResponse.BTNReSubmit = "D";
412 // oDataResponse.BTNAPVGreenLight = "D";
413 // oDataResponse.BTNREVGreenLight = "D";
414 // oDataResponse.BTNAPVCloseActivity = "D";
415 // oDataResponse.BTNREVCloseActivity = "D";
416 // oDataResponse.BTNAckKnowledge = "D";
417 // oDataResponse.BTNSendBack = "D";
418 // oDataResponse.BTNREQGreenLight = "D";
419 // oDataResponse.BTNConfirmDelivery = "D";
420 // oDataResponse.BTNSave = "D";
421 // oDataResponse.BTNREQCloseActivities = "D";
422 // oDataResponse.BTNCancel = "D";
423 // oDataResponse = that.fnSetDisplayOnly(oDataResponse, "D");
424 } else if (oDataResponse.Auth === "2") {
425 // No Authorized
426 // oDataResponse.BTNClose = "D";
427 // oDataResponse.BTNReSubmit = "D";
428 // oDataResponse.BTNAPVGreenLight = "D";
429 // oDataResponse.BTNREVGreenLight = "D";
430 // oDataResponse.BTNAPVCloseActivity = "D";
431 // oDataResponse.BTNREVCloseActivity = "D";
432 // oDataResponse.BTNAckKnowledge = "D";
433 // oDataResponse.BTNSendBack = "D";
434 // oDataResponse.BTNREQGreenLight = "D";
435 // oDataResponse.BTNConfirmDelivery = "D";
436 // oDataResponse.BTNSave = "D";
437 // oDataResponse.BTNREQCloseActivities = "D";
438 // oDataResponse.BTNCancel = "D";
439 // oDataResponse = that.fnSetDisplayOnly(oDataResponse, "D");
440 }
441
442 that.fnPrepareModel(oDataResponse);
443 },
444 function(oError) {
445 if (oError.response) {
446 that.fnOnErrorMessageBox(oError.response.statusText);
447 } else {
448 that.fnOnErrorMessageBox(oError.message);
449 }
450 });
451 },
452 fnSetVisibleBTNPTTEP: function(oModelLocal) {
453
454 oModelLocal.BTNSaveWO = "D";
455 oModelLocal.ManualCloseWO = "D";
456 oModelLocal.BTNCorrectWO = "D";
457 oModelLocal.BTNInCorrectWO = "D";
458 oModelLocal.BTNConfirmActualCostWO = "D";
459 oModelLocal.BTNCancelWO = "D";
460 var numberOfData = "";
461 //Set Visible BTNCancelWO
462 var arrStatusBTNCancel = ["SUBM",
463 "DRFT",
464 "SENB",
465 "RFFP",
466 "RFGL",
467 "RFCA",
468 "RFCC"
469 ];
470 //Set Visible BTNSaveWO
471 var arrStatusBTNSave = ["SUBM",
472 "RSUB",
473 "ACKL",
474 "AFFP",
475 "REFP",
476 "REGL",
477 "DELI",
478 "APGL",
479 "APCA",
480 "RECA",
481 "RECC",
482 "APAC"
483 ];
484
485 if (oModelLocal.IsFC === "X") {
486 // FC
487 numberOfData = arrStatusBTNCancel.indexOf(oModelLocal.WorkOrderStatus);
488 if (numberOfData >= 0) {
489 oModelLocal.BTNCancelWO = "O";
490 }
491 } else if (oModelLocal.IsFC === "") {
492 // MML
493 numberOfData = arrStatusBTNSave.indexOf(oModelLocal.WorkOrderStatus);
494 if (numberOfData >= 0) {
495 oModelLocal.BTNSaveWO = "O";
496 }
497 }
498
499 //FC
500 if ((oModelLocal.WorkOrderStatus === "APAC" || oModelLocal.WorkOrderStatus === "RECC") && oModelLocal.IsFC === "X") {
501 oModelLocal.BTNSaveWO = "O";
502 }
503 if ((oModelLocal.WorkOrderStatus === "APCA" ||
504 oModelLocal.WorkOrderStatus === "COCC" ||
505 oModelLocal.WorkOrderStatus === "RFCC" ||
506 oModelLocal.WorkOrderStatus === "REAC" ||
507 oModelLocal.WorkOrderStatus === "REAI"
508 ) && oModelLocal.IsFC === "X") {
509 // Approved for Close Activities
510 oModelLocal.BTNManualCloseWO = "O";
511 oModelLocal.BTNCancelWO = "O";
512 if (oModelLocal.WorkOrderStatus === "RFCC") {
513 oModelLocal.BTNCorrectWO = "O";
514 oModelLocal.BTNInCorrectWO = "O";
515 oModelLocal.BTNSaveWO = "O";
516 } else if (oModelLocal.WorkOrderStatus === "REAC" ||
517 oModelLocal.WorkOrderStatus === "REAI") {
518 oModelLocal.BTNSaveWO = "O";
519 }
520 }
521 //MML
522 else if (oModelLocal.IsFC === "") {
523 if (oModelLocal.WorkOrderStatus === "APCA" ||
524 oModelLocal.WorkOrderStatus === "RECC" ||
525 oModelLocal.WorkOrderStatus === "COCC" ||
526 oModelLocal.WorkOrderStatus === "APAC" ||
527 oModelLocal.WorkOrderStatus === "SUBM") {
528
529 if (oModelLocal.WorkOrderStatus === "APAC") {
530 //Print Form
531 } else if (oModelLocal.WorkOrderStatus === "COCC" || oModelLocal.WorkOrderStatus === "SUBM") {
532 oModelLocal.BTNSaveWO = "O";
533 } else {
534 oModelLocal.BTNConfirmActualCostWO = "O";
535 oModelLocal.BTNSaveWO = "O";
536 }
537 }
538 if (oModelLocal.WorkOrderStatus === "APAC" && oModelLocal.IsFC === "X") {
539 oModelLocal.BTNSaveWO = "O";
540 }
541
542 }
543 return oModelLocal;
544 },
545 fnPrepareModel: function(oModelLocal) {
546
547 _ShippingMethod = [];
548 _AuthoizeCustomBroker = [];
549 _ModeOfTransport = [];
550 _SeaType = [];
551 _OrderType = [];
552 _CargoType = [];
553 _DeparturePort = [];
554 _AllocationMethod = [];
555 _ChargeTo = [];
556 _Project = [];
557 _aItemsWO = [];
558 _aVehicleTruck = [];
559 _aVehicleSea = [];
560 _aVehicleType = [];
561 _aVehicleServiceLevel = [];
562 _aVehicleRoute = [];
563 _ShippingMethod.push({
564 Key: "",
565 Text: ""
566 });
567 _AuthoizeCustomBroker.push({
568 Key: "",
569 Text: ""
570 });
571 _ModeOfTransport.push({
572 Key: "",
573 Text: ""
574 });
575 _SeaType.push({
576 Key: "",
577 Text: ""
578 });
579 _OrderType.push({
580 Key: "",
581 Text: ""
582 });
583 _CargoType.push({
584 Key: "",
585 Text: ""
586 });
587 _DeparturePort.push({
588 Key: "",
589 Text: ""
590 });
591
592 _AllocationMethod.push({
593 Key: "",
594 Text: ""
595 });
596 _ChargeTo.push({
597 Key: "",
598 Text: ""
599 });
600 _Project.push({
601 Key: "",
602 Text: ""
603 });
604 if (oModelLocal.ECCN017 && oModelLocal.ECCN017.results) {
605 _aItemsWO = oModelLocal.ECCN017.results;
606
607 }
608
609 if (oModelLocal.ECCN033 && oModelLocal.ECCN033.results) {
610 _aVehicleTruck = oModelLocal.ECCN033.results;
611 }
612 _aVehicleType.push({
613 Key: "",
614 VehicleKey: "",
615 LevelKey: "",
616 Text: ""
617 });
618 if (oModelLocal.ECCN038 && oModelLocal.ECCN038.results) {
619 _aVehicleType = _aVehicleType.concat(oModelLocal.ECCN038.results);
620 }
621 _aVehicleServiceLevel.push({
622 Key: "",
623 VehicleKey: "",
624 LevelKey: "",
625 Text: ""
626 });
627 if (oModelLocal.ECCN039 && oModelLocal.ECCN039.results) {
628 _aVehicleServiceLevel = _aVehicleServiceLevel.concat(oModelLocal.ECCN039.results);
629 }
630 if (oModelLocal.ECCN043 && oModelLocal.ECCN043.results) {
631 _aVehicleRoute = _aVehicleRoute.concat(oModelLocal.ECCN043.results);
632 }
633 if (oModelLocal.ECCN009 && oModelLocal.ECCN009.results) {
634 _ShippingMethod = _ShippingMethod.concat(oModelLocal.ECCN009.results);
635
636 }
637
638 if (oModelLocal.ECCN010 && oModelLocal.ECCN010.results) {
639 _ModeOfTransport = oModelLocal.ECCN010.results;
640
641 }
642 if (oModelLocal.ECCN011 && oModelLocal.ECCN011.results) {
643 _OrderType = oModelLocal.ECCN011.results;
644 // _OrderType = _OrderType.concat(oModelLocal.ECCN011.results);
645
646 }
647 if (oModelLocal.ECCN012 && oModelLocal.ECCN012.results) {
648 _AuthoizeCustomBroker = _AuthoizeCustomBroker.concat(oModelLocal.ECCN012.results);
649
650 }
651 // if (oModelLocal.ECCN008 && oModelLocal.ECCN008.results) {
652 // _SeaType = _SeaType.concat(oModelLocal.ECCN008.results);
653
654 // }
655
656 if (oModelLocal.ECCN013 && oModelLocal.ECCN013.results) {
657 _CargoType = _CargoType.concat(oModelLocal.ECCN013.results);
658
659 }
660 // oData.ECCN014[0].ECCN008
661 var sModeOfTrans = oModelLocal.ModeOfTrans; //this.getView().byId("vIdCreateWOHeaderFormModeOfTransport").getSelectedKey();
662
663 if (oModelLocal.ECCN014) {
664
665 for (var i = 0; i < oModelLocal.ECCN014.results.length; i++) {
666 if (sModeOfTrans === oModelLocal.ECCN014.results[i].Key) {
667 _DeparturePort = _DeparturePort.concat(oModelLocal.ECCN014.results[i].ECCN008.results);
668 }
669 }
670
671 }
672 if (oModelLocal.ECCN015 && oModelLocal.ECCN015.results) {
673 _AllocationMethod = _AllocationMethod.concat(oModelLocal.ECCN015.results);
674
675 }
676
677 if (oModelLocal.ECCN016 && oModelLocal.ECCN016.results) {
678 _ChargeTo = _ChargeTo.concat(oModelLocal.ECCN016.results);
679
680 }
681 if (oModelLocal.ECCN046 && oModelLocal.ECCN046.results) {
682 _Project = oModelLocal.ECCN046.results;
683
684 }
685
686 oModelLocal.ShipmentDataEdit = "O";
687 oModelLocal.VehicleTypeEdit = "R";
688 oModelLocal.ServiceLevelEdit = "R";
689 oModelLocal.RouteEdit = "R";
690 oModelLocal.VehicleCountEdit = "R";
691 oModelLocal.StandbyEdit = "O";
692 // this.fnSetHistory(oModelLocal);
693 _oModel.setData(oModelLocal);
694 this.getView().setModel(_oModel, "ManageWO");
695 this.getView().getModel("ManageWO").refresh(true); // force refresh cause Date Time Picker can't set New Value
696 var oModelSelect = new JSONModel();
697 var oItemSelectTemplate = new sap.ui.core.Item({
698 key: "{Key}",
699 text: "{Text}"
700 });
701 oModelSelect.setData({
702 ShipMethod: _ShippingMethod,
703 AuthorCusBroker: _AuthoizeCustomBroker,
704 ModeOfTrans: _ModeOfTransport,
705 OrderType: _OrderType,
706 CargoType: _CargoType,
707 DepartPort: _DeparturePort,
708 AllocaMethod: _AllocationMethod,
709 ChargeTo: _ChargeTo,
710 Project: _Project
711
712 });
713
714 this.getView().byId("vIdCreateWOHeaderFormShippingMethod").setModel(oModelSelect);
715 this.getView().byId("vIdCreateWOHeaderFormShippingMethod").bindAggregation("items", "/ShipMethod", oItemSelectTemplate);
716
717 this.getView().byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").setModel(oModelSelect);
718 this.getView().byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").bindAggregation("items", "/AuthorCusBroker",
719 oItemSelectTemplate);
720
721 this.getView().byId("vIdCreateWOHeaderFormModeOfTransport").setModel(oModelSelect);
722 this.getView().byId("vIdCreateWOHeaderFormModeOfTransport").bindAggregation("items", "/ModeOfTrans", oItemSelectTemplate);
723
724 this.getView().byId("vIdCreateWOHeaderFormOrderType").setModel(oModelSelect);
725 this.getView().byId("vIdCreateWOHeaderFormOrderType").bindAggregation("items", "/OrderType", oItemSelectTemplate);
726
727 this.getView().byId("vIdCreateWOHeaderFormCargoType").setModel(oModelSelect);
728 this.getView().byId("vIdCreateWOHeaderFormCargoType").bindAggregation("items", "/CargoType", oItemSelectTemplate);
729
730 this.getView().byId("vIdCreateWOHeaderFormDeparturePort").setModel(oModelSelect);
731 this.getView().byId("vIdCreateWOHeaderFormDeparturePort").bindAggregation("items", "/DepartPort", oItemSelectTemplate);
732
733 this.getView().byId("vIdCreateWOHeaderFormAllocationMethod").setModel(oModelSelect);
734 this.getView().byId("vIdCreateWOHeaderFormAllocationMethod").bindAggregation("items", "/AllocaMethod", oItemSelectTemplate);
735
736 this.getView().byId("vIdCreateWOHeaderFormChargeTo").setModel(oModelSelect);
737 this.getView().byId("vIdCreateWOHeaderFormChargeTo").bindAggregation("items", "/ChargeTo", oItemSelectTemplate);
738
739 this.getView().byId("vIdCreateWOHeaderFormProject").setModel(oModelSelect);
740 this.getView().byId("vIdCreateWOHeaderFormProject").bindAggregation("items", "/Project", oItemSelectTemplate);
741
742 this.fnSetVehicle(oModelLocal);
743
744 //#Bind Table Area ///Test
745 if (oModelLocal.ECCN003 != null) {
746 this.fnBindingEreqWOData(oModelLocal.ECCN003);
747 }
748
749 /*
750 ** Binding WO history
751 */
752 if (oModelLocal.ECCN035 != null) {
753 this.fnBindingWOHistoryToTable(oModelLocal.ECCN035);
754 }
755
756 /*
757 ** Binding Package Summary
758 */
759 if (oModelLocal.ECCN005 != null) {
760 this.fnBindingPackageSummaryToTable(oModelLocal.ECCN005);
761 }
762
763 /*
764 ** Binding Attachment
765 */
766 if (oModelLocal.ECCN006) {
767 this.fnBindingAttachment(oModelLocal.ECCN006);
768 }
769 },
770 fnSetVehicle: function(oModelLocal) {
771 var i = 0;
772 var bFlagEnabledService = false;
773 var bFlagEnabledRoute = false;
774 var aServiceLevelLocal = [];
775 for (i = 0; i < _aVehicleTruck.length; i++) {
776 bFlagEnabledService = false;
777 if (_aVehicleTruck[i].VehicleType && (oModelLocal.VehicleTypeEdit === "R" || oModelLocal.VehicleTypeEdit === "O")) {
778 bFlagEnabledService = true;
779 }
780 aServiceLevelLocal = [];
781 if (bFlagEnabledService) {
782 for (var j = 0; j < _aVehicleServiceLevel.length; j++) {
783 if (_aVehicleServiceLevel[j].VehicleKey === _aVehicleTruck[i].VehicleType) {
784 aServiceLevelLocal.push(_aVehicleServiceLevel[j]);
785 }
786 }
787 } else {
788 aServiceLevelLocal = _aVehicleServiceLevel;
789 }
790 _aVehicleTruck[i].ServiceLevel = aServiceLevelLocal;
791 _aVehicleTruck[i].EnabledService = bFlagEnabledService;
792 bFlagEnabledRoute = false;
793 if (_aVehicleTruck[i].LevelID && (oModelLocal.ServiceLevelEdit === "R" || oModelLocal.ServiceLevelEdit === "O")) {
794 bFlagEnabledRoute = true;
795 }
796 _aVehicleTruck[i].EnabledRoute = bFlagEnabledRoute;
797 }
798 _oModelTable.setData({
799 ShipmentData: _aItemsWO,
800 VehicleTruck: _aVehicleTruck,
801 VehicleSea: _aVehicleSea
802 });
803 this.getView().byId("vIdShipmentTableVehicleTruck").setModel(_oModelTable);
804 this.getView().byId("vIdShipmentTableVehicleTruck").bindRows("/VehicleTruck");
805 this.getView().byId("vIdShipmentTableVehicleSea").setModel(_oModelTable);
806 this.getView().byId("vIdShipmentTableVehicleSea").bindRows("/VehicleSea");
807 _oModelVehicle.setData({
808 Type: _aVehicleType,
809 ServiceLevel: _aVehicleServiceLevel,
810 Route: _aVehicleRoute
811 });
812 this.getView().setModel(_oModelVehicle, "Vehicle");
813 },
814
815 fnSetValidator: function() {
816 this.fnOnAddValidator("vIdManageWOFormCostPOService");
817 },
818
819 fnOnAddValidator: function(sId) {
820 var oView = this.getView();
821 var oControl = oView.byId(sId);
822 oControl.addValidator(function(args) {
823 var oToken = new sap.m.Token({
824 key: args.text,
825 text: args.text
826 });
827 args.asyncCallback(oToken);
828 });
829 },
830
831 /*
832 ** Binding Table Area
833 */
834 fnGetDialogAddWOData: function(bIsPO) {
835 if (bIsPO) {
836 if (this.oDialogAddPO) {
837 this.oDialogAddPO.getContent()[1].setSelectedIndex(-1);
838 return this.oDialogAddPO;
839 }
840 this.oDialogAddPO = sap.ui.xmlfragment("zeccrmanagewo.popup.DialogTableListER", this);
841 this.oDialogAddPO.setModel(this.oMsg, "Text");
842 this.oDialogAddPO.setModel(_oModelDialogAdd, "Value");
843 jQuery.sap.syncStyleClass("sapUiSizeCompact", this.getView(), this.oDialogAddPO);
844 return this.oDialogAddPO;
845 } else {
846 //
847 }
848 },
849 fnCreateDialogAddWOData: function(aItemsLocal) {
850
851 _oModelDialogAdd.setData({
852 SearchText: "",
853 Document: aItemsLocal
854 });
855
856 this.oDialogAddPO = this.fnGetDialogAddWOData(true);
857 this.oDialogAddPO.open();
858 },
859 fnExecuteAction: function(oData, fnCallback, fnCallbackError) {
860 var that = this;
861 this.fnShowBusyDialog();
862 this.getView().getModel().create(sEntityPath, oData, undefined, function(oDataResponse, oResponse) {
863 that.fnHideBusyDialog();
864 fnCallback(oDataResponse);
865 }, function(oError) {
866 that.fnHideBusyDialog();
867 fnCallbackError(oError);
868 }, true);
869 },
870
871 /**
872 ** Area Table Dialog
873 */
874 fnSearch: function(aItemsLocal, sValueKey, sKeyMap) {
875 var aItemsSearchLocal = [];
876 for (var i = 0; i < aItemsLocal.length; i++) {
877 var bFlagCode = aItemsLocal[i][sKeyMap].indexOf(sValueKey) !== -1;
878 if (bFlagCode) {
879 aItemsSearchLocal.push(aItemsLocal[i]);
880 }
881 }
882 return aItemsSearchLocal;
883 },
884 fnSetDialogSearchText: function(oEvent) {
885 var oModelData = _oModelDialogAdd.getData();
886 if (oModelData != null) {
887 oModelData.SearchText = oEvent.getParameter("newValue");
888 }
889 _oModelDialogAdd.refresh();
890 },
891 fnOnSearchItemDialog: function(oEvent) {
892 var oData = {};
893 oData = oEvent.getSource().getModel("Value").getData();
894
895 var bIsPO = false;
896
897 if (oData != null) {
898 if (oData.Document != null) {
899 if (oData.Document[0].bAddEReq) {
900 bIsPO = true;
901 }
902
903 if (bIsPO) {
904 oData.Document = this.fnSearch(_aPOItemsAdd, oData.SearchText, "eRequestNo");
905 } else {
906 oData.Document = this.fnSearch(_aEREQItemsAdd, oData.SearchText, "eRequestNumber");
907 }
908
909 _oModelDialogAdd.refresh();
910
911 }
912 }
913
914 },
915
916 fnOnOKSelectedItemDialogAdd: function(oEvent) {
917 var oTable = oEvent.getSource().getParent().getContent()[1];
918 var bIsPO = false;
919
920 var oDataTable = oTable.getModel("Value").getData().Document;
921 if (oDataTable[0].bAddEReq) {
922 bIsPO = true;
923 }
924
925 var aSelected = oTable.getSelectedIndices();
926 var aSelectedItem = [];
927
928 if (bIsPO) {
929 for (var i = 0; i < aSelected.length; i++) {
930 aSelectedItem.push(oDataTable[aSelected[i]]);
931 }
932 this.fnUpdateEreqWOData(aSelectedItem);
933 } else {
934 //xx
935 }
936
937 oEvent.getSource().getParent().close();
938 },
939
940 fnOnCloseDialog: function(oEvent) {
941 if (oEvent.getSource().getParent().isOpen()) {
942 oEvent.getSource().getParent().close();
943 }
944 },
945
946 fnOnAddWODataDialog: function(oEvent) {
947 var bIsWO = true;
948
949 var that = this;
950 var oData = {};
951 if (bIsWO) {
952 oData = this.fnGetCriteria("AddEREQ");
953
954 if (oData.ECCN003 != null) {
955 for (var i = 0; i < oData.ECCN003.length; i++) {
956 if (oData.ECCN003[i].bAddEReq) {
957 delete oData.ECCN003[i].bAddEReq;
958 }
959
960 }
961 }
962
963 }
964 this.fnExecuteAction(oData, function(oDataResponse) {
965 if (oDataResponse.MessageType === "E") {
966 that.fnOnErrorMessageBox(oDataResponse.MessageText);
967 return;
968 }
969 if (bIsWO) {
970 _aPOItemsAdd = [];
971 if (oDataResponse.ECCN003) {
972 //Set flag for check if click add e-request
973 for (var i = 0; i < oDataResponse.ECCN003.results.length; i++) {
974 oDataResponse.ECCN003.results[i].bAddEReq = true;
975 }
976 _aPOItemsAdd = oDataResponse.ECCN003.results;
977 }
978 that.fnCreateDialogAddWOData(_aPOItemsAdd);
979 }
980 }, function(oError) {
981 that.fnOnErrorMessageBox(oError.message);
982 });
983 },
984
985 fnGetCriteria: function(sAction) {
986 var oView = this.getView();
987 var oData = {};
988 var aNumber = [];
989 var i = 0;
990 oData.ECCN003 = [];
991
992 var oControlTable = this.getView().byId("vIdCreateWOTableWODataEREQ");
993 var aWorkOrderItemModel = oControlTable.getModel();
994 var aWorkOrderItemData = null;
995 if (aWorkOrderItemModel != null) {
996 aWorkOrderItemData = aWorkOrderItemModel.getData().aReqItem;
997 }
998
999 oData.ECCN003 = aWorkOrderItemData;
1000 //oData.UserName = sap.ushell.Container.getService("UserInfo").getUser().getId();
1001 if (sAction === "AddEREQ") {
1002 oData.ActionParameter = "AER";
1003
1004 }
1005 return oData;
1006 },
1007
1008 fnBindingAttachment: function(oECCN006) {
1009 var i = 0;
1010 var oItem = {};
1011 _aAttachmentPreAlert = [];
1012 _aAttachmentSSHE = [];
1013 _aAttachmentCompleted = [];
1014 _aAttachmentAbsolute = [];
1015 _aAttachmentBilling = [];
1016 _aAttachmentDamage = [];
1017 _aAttachmentDAS = [];
1018 _aAttachmentOther = [];
1019 if (oECCN006.results != null) {
1020 for (i = 0; i < oECCN006.results.length; i++) {
1021 //Attachment
1022 oItem = {};
1023 oItem = oECCN006.results[i];
1024 oItem.Icon = this.fnFindIcon(oItem.FileMIMEType);
1025 oItem.Description = this.fnFindDescription(this.fnSizeOfFile(oItem.FileSize), oItem.CreatedDate);
1026 oItem.FileName = oItem.FileName;
1027 if (oItem.AttachmentGroup === "PreAlertDocument") {
1028 _aAttachmentPreAlert.push(oItem);
1029 } else if (oItem.AttachmentGroup === "SSHE") {
1030 _aAttachmentSSHE.push(oItem);
1031 } else if (oItem.AttachmentGroup === "CompletedDocument") {
1032 _aAttachmentCompleted.push(oItem);
1033 } else if (oItem.AttachmentGroup === "Absolute") {
1034 _aAttachmentAbsolute.push(oItem);
1035 } else if (oItem.AttachmentGroup === "BillingInvoice") {
1036 _aAttachmentBilling.push(oItem);
1037 } else if (oItem.AttachmentGroup === "DamageReport") {
1038 _aAttachmentDamage.push(oItem);
1039 } else if (oItem.AttachmentGroup === "DAS") {
1040 _aAttachmentDAS.push(oItem);
1041 } else if (oItem.AttachmentGroup === "Other") {
1042 _aAttachmentOther.push(oItem);
1043 }
1044 }
1045 }
1046 var oModelAttachment = new sap.ui.model.json.JSONModel();
1047 oModelAttachment.setData({
1048 PreAlert: _aAttachmentPreAlert,
1049 SSHE: _aAttachmentSSHE,
1050 Completed: _aAttachmentCompleted,
1051 Absolute: _aAttachmentAbsolute,
1052 Billing: _aAttachmentBilling,
1053 Damage: _aAttachmentDamage,
1054 DAS: _aAttachmentDAS,
1055 Other: _aAttachmentOther
1056 });
1057 this.getView().setModel(oModelAttachment, "Attachment");
1058 },
1059 fnPressTableERImage: function(oEvent) {
1060
1061 },
1062 fnBindingEreqWOData: function(aItems) {
1063 if (aItems.results != null) {
1064 var oTable = this.getView().byId("vIdManageWOTableWODataEREQ");
1065 var oModel = new sap.ui.model.json.JSONModel();
1066
1067 oModel.setData({
1068 aReqItem: aItems.results
1069 });
1070
1071 oTable.setModel(oModel);
1072 oTable.bindRows("/aReqItem");
1073 }
1074 },
1075
1076 fnSetSelectedItemViewModel: function(aItems, sKeyName) {
1077 var aArray = [];
1078
1079 aItems.forEach(function(item) {
1080 aArray.push({
1081 Key: item.Key,
1082 Text: item.Text
1083 });
1084 });
1085
1086 var oViewModel = new sap.ui.model.json.JSONModel();
1087 oViewModel.setData({
1088 aItems: aArray
1089 });
1090 this.getView().setModel(oViewModel, sKeyName);
1091 },
1092 fnUpdateEreqWOData: function(aItems) {
1093 var oTable = this.getView().byId("vIdCreateWOTableWODataEREQ");
1094 var oModel = oTable.getModel();
1095 var oData = null;
1096 var aReqItem = [];
1097 var aErequest = [];
1098 if (oModel != null) {
1099 oData = oModel.getData();
1100 if (oData) {
1101 aReqItem = oData.aReqItem;
1102 }
1103 }
1104
1105 aErequest = aReqItem.concat(aItems);
1106
1107 var iIndex = 0;
1108 for (var i = 0; i < aErequest.length; i++) {
1109 iIndex = iIndex + 1;
1110 aErequest[i].No = iIndex.toString();
1111
1112 }
1113
1114 oModel.setData({
1115 aReqItem: aErequest
1116 });
1117
1118 oModel.refresh();
1119 },
1120
1121 fnOnRowSelectionChange: function(oEvent) {
1122 var sControlId = oEvent.getSource().sId;
1123 var aSelectedItem = [];
1124 var oControl = null;
1125 var oButtonDelete = "";
1126 var oButtonAddItem = "";
1127
1128 if (sControlId.search("vIdCreateWOTableWODataEREQ") > -1) {
1129 oControl = this.getView().byId("vIdCreateWOTableWODataEREQ");
1130 oButtonDelete = this.getView().byId("vIdDeleteItemWODataEREQ");
1131 oButtonAddItem = this.getView().byId("vIdAddItemServiceWODataEREQ");
1132 } else if (sControlId.search("vIdCreateWOTablePackage") > -1) {
1133 oControl = this.getView().byId("vIdCreateWOTablePackage");
1134 oButtonDelete = this.getView().byId("vIdDeletePackage");
1135 oButtonAddItem = this.getView().byId("vIdAddPackage");
1136 }
1137
1138 if (oControl != null) {
1139 aSelectedItem = oControl.getSelectedIndices();
1140 }
1141
1142 if (aSelectedItem.length > 0) {
1143
1144 oButtonDelete.setEnabled(true);
1145 oButtonAddItem.setEnabled(true);
1146 } else {
1147 oButtonDelete.setEnabled(false);
1148 oButtonAddItem.setEnabled(false);
1149 }
1150
1151 },
1152
1153 fnOnAddPackage: function(oEvent) {
1154 var oControlTable = this.getView().byId("vIdCreateWOTablePackage");
1155
1156 var aCopyData = [];
1157
1158 var oDataStructure = {};
1159 oDataStructure = {
1160 No: "",
1161 PackageNo: "",
1162 RefBoxNo: "",
1163 PackageUnit: "",
1164 Length: "",
1165 Width: "",
1166 Height: "",
1167 Volume: "",
1168 Weight: "",
1169 PackServices: "",
1170 RevenueTon: "",
1171 Remark: ""
1172 };
1173
1174 var aCopyModel = oControlTable.getModel().getData();
1175 if (aCopyModel != null) {
1176 if (oControlTable.getModel().getData() != null) {
1177 aCopyData = oControlTable.getModel().getData().packageItem;
1178 if (aCopyData == null) {
1179 aCopyData = [];
1180 }
1181 } else {
1182 aCopyData = [];
1183 }
1184
1185 } else {
1186 aCopyData = [];
1187 }
1188
1189 if (aCopyData.length > 0) {
1190 var itemClone = JSON.parse(JSON.stringify(aCopyData[0]));
1191
1192 //get total rows of table
1193 var sNo = aCopyData.length + 1;
1194
1195 //clear data for new items
1196 itemClone.No = sNo.toString();
1197 itemClone.Remark = "";
1198
1199 aCopyData.push(itemClone);
1200 } else {
1201 oDataStructure.No = "1";
1202 oDataStructure.PackageNumber = "1";
1203 aCopyData.push(oDataStructure);
1204 }
1205
1206 var oNewModel = new sap.ui.model.json.JSONModel();
1207 oNewModel.setData({
1208 packageItem: aCopyData
1209 });
1210
1211 oControlTable.setModel(oNewModel);
1212 oControlTable.bindRows("/packageItem");
1213
1214 //update total package number
1215 this.fnUpdateTatalPackage(aCopyData.length.toString());
1216 },
1217
1218 fnOnDeletePackage: function(oEvent) {
1219 var oControlTable = this.getView().byId("vIdCreateWOTablePackage");
1220 var aNewData = []; // for keep only rows that not selected
1221 var aSelectedItem = [];
1222 var oTableData = null;
1223 var aAllTableItem = [];
1224
1225 if (oControlTable != null) {
1226 aSelectedItem = oControlTable.getSelectedIndices();
1227 var oTableModel = oControlTable.getModel();
1228 if (oTableModel != null) {
1229 oTableData = oTableModel.getData();
1230
1231 if (oTableData != null) {
1232 aAllTableItem = oTableData.packageItem;
1233 }
1234 }
1235 }
1236
1237 for (var i = 0; i < aAllTableItem.length; i++) {
1238 if (aSelectedItem.indexOf(i) < 0) {
1239 aNewData.push(aAllTableItem[i]);
1240
1241 }
1242 }
1243
1244 //reset no for table
1245 var iNo = 0;
1246
1247 for (var i = 0; i < aNewData.length; i++) {
1248 iNo += 1;
1249 aNewData[i].No = iNo.toString();
1250 aNewData[i].PackageNumber = aNewData.length.toString();
1251 }
1252
1253 var oNewModel = new sap.ui.model.json.JSONModel();
1254 oNewModel.setData({
1255 packageItem: aNewData
1256 });
1257 oControlTable.setModel(oNewModel);
1258 oControlTable.bindRows("/packageItem");
1259
1260 //Reset AllItem to blank after re-bind to table
1261 aAllTableItem = [];
1262
1263 //update total package number
1264 this.fnUpdateTatalPackage(aNewData.length.toString());
1265
1266 },
1267
1268 fnUpdateTatalPackage: function(sAllItemPackage) {
1269 var oThisViewModel = this.getView().getModel("ManageWO");
1270 if (oThisViewModel != null) {
1271 if (oThisViewModel.getData() != null) {
1272 var oThisViewData = oThisViewModel.getData();
1273 oThisViewData.TotalPackage = sAllItemPackage;
1274 }
1275 }
1276 },
1277
1278 fnOnHandleTableItem: function(oEvent) {
1279 var sButtonId = oEvent.getSource().sId;
1280 var oControlTable = null;
1281 var aSelectedItem = [];
1282 var oTableData = null;
1283 var aAllTableItem = [];
1284
1285 oControlTable = this.getView().byId("vIdCreateWOTableWODataEREQ");
1286
1287 if (oControlTable != null) {
1288 aSelectedItem = oControlTable.getSelectedIndices();
1289 var oTableModel = oControlTable.getModel();
1290 if (oTableModel != null) {
1291 oTableData = oTableModel.getData();
1292
1293 if (oTableData != null) {
1294 aAllTableItem = oTableData.aReqItem;
1295 }
1296 }
1297 }
1298
1299 if (sButtonId.search("vIdDeleteItemWODataEREQ") > -1) { //Delete Item
1300 //Remove index from array
1301 var aNewData = []; // for keep only rows that not selected
1302
1303 for (var i = 0; i < aAllTableItem.length; i++) {
1304 if (aAllTableItem[i].DocERPFlag === "X" || aAllTableItem[i].DocERPFlag === "x") {
1305 aNewData.push(aAllTableItem[i]);
1306 } else {
1307
1308 if (aSelectedItem.indexOf(i) < 0) {
1309 aNewData.push(aAllTableItem[i]);
1310
1311 }
1312 }
1313 }
1314
1315 //reset no for table
1316 var iNo = 0;
1317 for (var i = 0; i < aNewData.length; i++) {
1318 iNo += 1;
1319 aNewData[i].No = iNo.toString();
1320 }
1321
1322 var oNewModel = new sap.ui.model.json.JSONModel();
1323 oNewModel.setData({
1324 aReqItem: aNewData
1325 });
1326 oControlTable.setModel(oNewModel);
1327 oControlTable.bindRows("/aReqItem");
1328
1329 //Reset AllItem to blank after re-bind to table
1330 aAllTableItem = [];
1331 } else if (sButtonId.search("vIdAddItemServiceWODataEREQ") > -1) //Add Item
1332 {
1333
1334 for (var i = 0; i < aSelectedItem.length; i++) {
1335
1336 var aNewItem = JSON.parse(JSON.stringify(aAllTableItem[aSelectedItem[i]]));
1337 aNewItem.CountryOfOrigin = "";
1338 aNewItem.HSCode = "";
1339 aNewItem.Goods = "";
1340 aNewItem.DocERPFlag = "";
1341
1342 //Finding new ref-item to each erequest-item
1343 var iNewRef = this.fnFindTotalRefItem(aNewItem.eRequestNo, aAllTableItem);
1344
1345 //reset ref item index of each Erequest-item
1346 iNewRef += 1;
1347 var sNewRef = iNewRef.toString();
1348 aNewItem.RefItem = this.fnZeroPad(sNewRef, 5);
1349
1350 aAllTableItem.splice(iNewRef, 0, aNewItem);
1351 }
1352
1353 //reset no for table
1354 var iNo = 0;
1355 for (var i = 0; i < aAllTableItem.length; i++) {
1356 iNo += 1;
1357 aAllTableItem[i].No = iNo.toString();
1358 }
1359
1360 oTableModel.setData({
1361 aReqItem: aAllTableItem
1362 });
1363 oTableModel.refresh();
1364
1365 //Reset AllItem to blank after re-bind to table
1366 aAllTableItem = [];
1367
1368 //Disable button "Add Item" and "Delete"
1369 this.getView().byId("vIdAddItemServiceWODataEREQ").setEnabled(false);
1370 this.getView().byId("vIdDeleteItemWODataEREQ").setEnabled(false);
1371 }
1372
1373 },
1374 fnFindTotalRefItem: function(eRequestNo, aAllTableItem) {
1375
1376 var iRefItem = 0;
1377 for (var i = 0; i < aAllTableItem.length; i++) {
1378 if (eRequestNo == aAllTableItem[i].eRequestNo) {
1379 var iCurRefItem = parseInt(aAllTableItem[i].RefItem);
1380 if (iCurRefItem > iRefItem) {
1381 iRefItem = iCurRefItem;
1382 }
1383 }
1384 }
1385
1386 return iRefItem;
1387 },
1388
1389 fnBindingPackageSummaryToTable: function(aItems) {
1390 if (aItems.results != null) {
1391 var oTable = this.getView().byId("vIdManageWOTablePackage");
1392 var oModel = new sap.ui.model.json.JSONModel();
1393 var aPackageItems = [];
1394 var iNumber = aItems.results.length;
1395
1396 aItems.results.forEach(function(oItem) {
1397 iNumber += 1;
1398 oItem.PackageNumber = aItems.results.length;
1399
1400 aPackageItems.push(oItem);
1401
1402 });
1403
1404 oModel.setData({
1405 packageItem: aPackageItems
1406 });
1407
1408 oTable.setModel(oModel);
1409 oTable.bindRows("/packageItem");
1410 }
1411
1412 },
1413
1414 fnBindingWOHistoryToTable: function(aItems) {
1415 if (aItems.results != null) {
1416 var oTable = this.getView().byId("vIdListManageWOTableWOHistory");
1417 var oModel = new sap.ui.model.json.JSONModel();
1418
1419 oModel.setData({
1420 woHistoryItem: aItems.results
1421 });
1422
1423 oTable.setModel(oModel);
1424 oTable.bindRows("/woHistoryItem");
1425 }
1426 },
1427
1428 fnChangeInputValue: function(oEvent) {
1429 var oControlContractItem = this.getView().byId("vIdCreateWOHeaderFormContractItem");
1430 var oControlContractItemDeatail = this.getView().byId("vIdCreateWOHeaderFormContractItemDetail");
1431 var oControlQuatation = this.getView().byId("vIdCreateWOHeaderFormQuotationNo");
1432 var sQuatationValue = oControlQuatation.getValue();
1433 if (sQuatationValue != null) {
1434 sQuatationValue = sQuatationValue;
1435 } else {
1436 sQuatationValue = "";
1437 }
1438
1439 if (sQuatationValue.length > 0) //Clear the value in contractitem and contractitem deatail
1440 {
1441 oControlContractItem.setValue("");
1442 oControlContractItemDeatail.setValue("");
1443 this.fnClearRequireFildLabel(oControlContractItem);
1444 this.fnClearRequireFildLabel(oControlContractItemDeatail);
1445
1446 oControlContractItem.setTooltip("");
1447 oControlContractItemDeatail.setTooltip("");
1448
1449 }
1450 },
1451
1452 fnOnChangeChageTo: function(oEvent) {
1453 var sNewChargeTo = this.getView().byId("vIdCreateWOHeaderFormChargeTo").getSelectedKey();
1454 if (sNewChargeTo !== sOldChargeTo) {
1455 var oControlChargeToName = this.getView().byId("vIdCreateWOHeaderFormChargeToName");
1456 oControlChargeToName.setValue("");
1457 }
1458 sOldChargeTo = sNewChargeTo;
1459 },
1460 fnOnChangeMOT: function(oEvent) {
1461
1462 this.fnBindingDeparturePort(_aAllDeparturePort, "vIdCreateWOHeaderFormDeparturePort");
1463
1464 //Display or hide Sub Type
1465 var oControlSubType = this.getView().byId("vIdCreateWOHeaderFormSubMot");
1466 var sSelectedModOfTrans = this.getView().byId("vIdCreateWOHeaderFormModeOfTransport").getSelectedKey();
1467 if (sSelectedModOfTrans == null) {
1468 sSelectedModOfTrans = "";
1469 }
1470
1471 if (sSelectedModOfTrans.toUpperCase() === "ES") {
1472 oControlSubType.setEnabled(true);
1473
1474 } else {
1475 oControlSubType.setEnabled(false);
1476 }
1477
1478 var oItems = null;
1479 var oModel = this.getView().getModel("oResponseModeOfTransData");
1480 if (oModel != null) {
1481 var oData = oModel.getData();
1482 if (oData != null) {
1483 oItems = oData.ECCN008;
1484 }
1485 }
1486 this.fnBindingSubMode(oItems, "vIdCreateWOHeaderFormSubMot");
1487
1488 //Clear Contract Item and Contract Item detail
1489 var oControlContractItem = this.getView().byId("vIdCreateWOHeaderFormContractItem");
1490 var oControlContractItemDetail = this.getView().byId("vIdCreateWOHeaderFormContractItemDetail");
1491 oControlContractItem.setValue();
1492 oControlContractItemDetail.setValue();
1493 oControlContractItem.setTooltip();
1494 oControlContractItemDetail.setTooltip();
1495 },
1496 fnOnChangeDocDate: function(oEvent) {
1497 var sNewDocDate = this.getView().byId("vIdCreateWOHeaderFormDocDate").getValue();
1498 if (sNewDocDate !== sOldDocDate) {
1499 var oControlContractItem = this.getView().byId("vIdCreateWOHeaderFormContractItem");
1500 var oControlContractItemDetail = this.getView().byId("vIdCreateWOHeaderFormContractItemDetail");
1501
1502 oControlContractItem.setValue("");
1503 oControlContractItemDetail.setValue("");
1504 oControlContractItem.setTooltip("");
1505 oControlContractItemDetail.setTooltip("");
1506 }
1507
1508 sOldDocDate = sNewDocDate;
1509 },
1510 fnOnChangeMML: function(oEvent) {
1511 var sNewMML = this.getView().byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").getSelectedKey();
1512 if (sNewMML !== sOldAuthoizeCustomBroker) {
1513 var oControlContractItem = this.getView().byId("vIdCreateWOHeaderFormContractItem");
1514 var oControlContractItemDetail = this.getView().byId("vIdCreateWOHeaderFormContractItemDetail");
1515
1516 oControlContractItem.setValue("");
1517 oControlContractItemDetail.setValue("");
1518 oControlContractItem.setTooltip("");
1519 oControlContractItemDetail.setTooltip("");
1520 }
1521
1522 sOldAuthoizeCustomBroker = sNewMML;
1523 },
1524
1525 fnOnSelectReferenceOnly: function(oEvent) {
1526 if (oEvent.getParameter("selected")) {
1527 this.getView().byId("vIdCreateWOHeaderFormGreenLight").setSelected(!oEvent.getParameter("selected"));
1528 this.getView().byId("vIdCreateWOHeaderFormReferenceOnly").setSelected(oEvent.getParameter("selected"));
1529 }
1530 },
1531
1532 fnOnSelectGreenLight: function(oEvent) {
1533 if (oEvent.getParameter("selected")) {
1534 this.getView().byId("vIdCreateWOHeaderFormGreenLight").setSelected(oEvent.getParameter("selected"));
1535 this.getView().byId("vIdCreateWOHeaderFormReferenceOnly").setSelected(!oEvent.getParameter("selected"));
1536 }
1537 },
1538
1539 fnBindingDeparturePort: function(oItems, sControlID) {
1540 if (oItems.results != null) {
1541 var oItemTemplate = new sap.ui.core.Item({
1542 key: "{Key}",
1543 text: "{Text}"
1544 });
1545 var aModel = [];
1546 aModel.push({
1547 Key: "",
1548 Text: ""
1549 });
1550
1551 var sSelectedMOT = this.getView().byId("vIdCreateWOHeaderFormModeOfTransport").getSelectedKey();
1552 for (var i = 0; i < oItems.results.length; i++) {
1553 if (sSelectedMOT === oItems.results[i].Key) {
1554 if (oItems.results[i].ECCN008) {
1555 if (oItems.results[i].ECCN008.results) {
1556 for (var j = 0; j < oItems.results[i].ECCN008.results.length; j++) {
1557 aModel.push({
1558 Key: oItems.results[i].ECCN008.results[j].Key,
1559 Text: oItems.results[i].ECCN008.results[j].Text
1560 });
1561 }
1562 }
1563 }
1564 }
1565 }
1566
1567 var oModel = new sap.ui.model.json.JSONModel();
1568 oModel.setData({
1569 ItemModel: aModel
1570 });
1571 var vControl = this.getView().byId(sControlID);
1572 vControl.setModel(oModel);
1573 vControl.bindAggregation("items", "/ItemModel", oItemTemplate);
1574 }
1575 },
1576
1577 fnBindingSubMode: function(oItems, sControlID) {
1578 if (oItems != null) {
1579 var oItemTemplate = new sap.ui.core.Item({
1580 key: "{Key}",
1581 text: "{Text}"
1582 });
1583 var aModel = [];
1584
1585 var aBlankSelection = this.fnGetBlankKeySelection();
1586 if (aBlankSelection.indexOf(sControlID) > -1) {
1587 aModel.push({
1588 Key: "",
1589 Text: ""
1590 });
1591 }
1592
1593 for (var i = 0; i < oItems.results.length; i++) {
1594 if (oItems.results[i].ECCN008 != null) {
1595 if (oItems.results[i].ECCN008.results != null) {
1596 for (var j = 0; j < oItems.results[i].ECCN008.results.length; j++) {
1597 aModel.push({
1598 Key: oItems.results[i].ECCN008.results[j].Key,
1599 Text: oItems.results[i].ECCN008.results[j].Text
1600 });
1601 }
1602 }
1603 }
1604
1605 }
1606 var oModel = new sap.ui.model.json.JSONModel();
1607 oModel.setData({
1608 ItemModel: aModel
1609 });
1610 var vControl = this.getView().byId(sControlID);
1611 vControl.setModel(oModel);
1612 vControl.bindAggregation("items", "/ItemModel", oItemTemplate);
1613 }
1614 },
1615
1616 fnBindSelectedHeader: function() {
1617
1618 },
1619
1620 fnBindingDropdownControl: function(oItems, sControlID) {
1621 if (oItems.results != null) {
1622 var oItemTemplate = new sap.ui.core.Item({
1623 key: "{Key}",
1624 text: "{Text}"
1625 });
1626 var aModel = [];
1627
1628 var aBlankSelection = this.fnGetBlankKeySelection();
1629 if (aBlankSelection.indexOf(sControlID) > -1) {
1630 aModel.push({
1631 Key: "",
1632 Text: ""
1633 });
1634 }
1635
1636 for (var i = 0; i < oItems.results.length; i++) {
1637 aModel.push({
1638 Key: oItems.results[i].Key,
1639 Text: oItems.results[i].Text
1640 });
1641 }
1642 var oModel = new sap.ui.model.json.JSONModel();
1643 oModel.setData({
1644 ItemModel: aModel
1645 });
1646 var vControl = this.getView().byId(sControlID);
1647 vControl.setModel(oModel);
1648 vControl.bindAggregation("items", "/ItemModel", oItemTemplate);
1649 }
1650 },
1651
1652 fnGetBlankKeySelection: function() {
1653 var aBlankSelection = ["vIdCreateWOHeaderFormShippingMethod", "vIdCreateWOHeaderFormDeparturePort",
1654 "vIdCreateWOHeaderFormCargoType", "vIdCreateWOHeaderFormSubMot"
1655 ];
1656
1657 return aBlankSelection;
1658 },
1659
1660 /**
1661 **Search help
1662 **/
1663
1664 fnOnValueHelpDialog: function(oEvent) {
1665 var oControl = oEvent.getParameter("id");
1666 var oActionParams = "";
1667 var sActionParameter = "";
1668 if (oControl.search("vIdListCreateWOFormEReqNumber") > 0) {
1669 oActionParams = zmmshpg001.getActionParameter("eRequest");
1670 sActionParameter = oActionParams.value;
1671 this.fnOnGetDataSearchHelp(_sModule, sActionParameter, oEvent.getSource());
1672 } else if (oControl.search("vIdCreateWOHeaderFormContractItemDetail") > 0) {
1673 // oActionParams = zmmshpg001.getActionParameter("Contract_Detail");
1674 // sActionParameter = oActionParams.value;
1675 // this.fnOnGetDataSearchHelp(_sModule, sActionParameter, oEvent.getSource());
1676
1677 if (_aAllContractItemDetail) {
1678 if (_aAllContractItemDetail.results) {
1679 var aItemsContractDetail = [];
1680
1681 var sSelectedMML = this.getView().byId("vIdCreateWOHeaderFormContractItem").getTooltip();
1682 for (var i = 0; i < _aAllContractItemDetail.results.length; i++) {
1683 if (sSelectedMML === _aAllContractItemDetail.results[i].Key) {
1684 if (_aAllContractItemDetail.results[i].UAPN003) {
1685 for (var j = 0; j < _aAllContractItemDetail.results[i].UAPN003.results.length; j++) {
1686 aItemsContractDetail.push({
1687 Key: _aAllContractItemDetail.results[i].UAPN003.results[j].Key,
1688 Text: _aAllContractItemDetail.results[i].UAPN003.results[j].Text
1689 });
1690 }
1691 }
1692 }
1693 }
1694
1695 var oActionParams = zmmshpg001.getActionParameter("Contract_Detail");
1696 var sType = oActionParams.value;
1697 this.fnCreateSearchHelp(sType, aItemsContractDetail, this.getView().byId("vIdCreateWOHeaderFormContractItemDetail"));
1698 }
1699 }
1700
1701 } else if (oControl.search("vIdCreateWOHeaderFormContractItem") > 0) {
1702 oActionParams = zmmshpg001.getActionParameter("Contract_Item");
1703 sActionParameter = oActionParams.value;
1704 this.fnOnGetDataSearchHelp(_sModule, sActionParameter, oEvent.getSource());
1705 } else if (oControl.search("vIdCreateWOFooterFormRequisitioner") > 0) {
1706 oActionParams = zmmshpg001.getActionParameter("Requisitioner");
1707 sActionParameter = oActionParams.value;
1708 this.fnOnGetDataSearchHelp(_sModule, sActionParameter, oEvent.getSource());
1709 }
1710
1711 },
1712 fnOnGetDataSearchHelp: function(sModule, sType, oControl) {
1713 var that = this;
1714 var oConfig = {
1715 metadataUrlParams: {},
1716 json: true,
1717 loadMetadataAsync: true,
1718 defaultBindingMode: "OneWay",
1719 defaultCountMode: "Inline",
1720 useBatch: false
1721 };
1722
1723 var oData = {
1724 ActionParameter: sType,
1725 ZMODULE: sModule
1726 };
1727
1728 var sSearchEntity = "";
1729
1730 //Check sType
1731 if (sType == "CIT" || sType == "CDE") {
1732 sSearchEntity = "/UAPE005COL";
1733 oData.MOT = (this.getView().byId("vIdCreateWOHeaderFormModeOfTransport").getSelectedKey() == null) ? "" : this.getView().byId(
1734 "vIdCreateWOHeaderFormModeOfTransport").getSelectedKey().trim();
1735 oData.DocDate = (this.getView().byId("vIdCreateWOHeaderFormDocDate").getValue() == null) ? "" : this.getView().byId(
1736 "vIdCreateWOHeaderFormDocDate").getValue().trim();
1737 oData.Contractor = (this.getView().byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").getSelectedKey() == null) ? "" : this.getView()
1738 .byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").getSelectedKey().trim();
1739 oData.UAPN009 = [];
1740 oData.UAPN009[0] = {};
1741 oData.UAPN009[0].UAPN003 = [];
1742 oData.UAPN010 = [];
1743 oData.UAPN010[0] = {};
1744 oData.UAPN010[0].UAPN003 = [];
1745 } else {
1746 sSearchEntity = "/UAPE001COL";
1747 oData.UAPN002 = [{
1748 Key: "",
1749 Text: ""
1750 }];
1751 }
1752 //End check sType
1753
1754 var oDataModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/ZMMSHPG001_SRV", oConfig);
1755 // return new Promise((resolve, reject) => {
1756 this.fnShowBusyDialog();
1757 jQuery.sap.delayedCall(100, this, function() { // for Show Busy Indicator
1758 oDataModel.create(sSearchEntity, oData, undefined, function(oDataResponse, oResponse) {
1759 that.fnHideBusyDialog();
1760
1761 if (sType == "CIT" || sType == "CDE") {
1762 if (oDataResponse.UAPN009) {
1763 if (oDataResponse.UAPN009.results[0].UAPN003) {
1764 that.fnCreateSearchHelp(sType, oDataResponse.UAPN009.results[0].UAPN003.results, oControl);
1765
1766 //Store contract item detail to temporary
1767 if (oDataResponse.UAPN010) {
1768 _aAllContractItemDetail = oDataResponse.UAPN010;
1769 }
1770
1771 }
1772
1773 }
1774 } else {
1775 if (oDataResponse.UAPN002) {
1776 that.fnCreateSearchHelp(sType, oDataResponse.UAPN002.results, oControl);
1777 } else {
1778 that.fnCreateSearchHelp(sType, [], oControl); //force show but no data
1779 }
1780 }
1781
1782 }, function(oError) {
1783 that.fnHideBusyDialog();
1784 // that.fnOnErrorMessageBox(oError.message);
1785 });
1786 });
1787 },
1788
1789 fnCreateSearchHelp: function(sType, aItems, oControl) {
1790 var that = this;
1791 //var oSearchHelp = zeccrmanagewo.util.SearchHelp;
1792 var oSearchHelp = SearchHelp;
1793 var sTitle = "";
1794 // var aFilter = [];
1795 var sCol1 = "";
1796 var sCol2 = "";
1797 var bMultiSelected = false;
1798 var bShowDescription = false;
1799
1800 if (sType === "ERQ") {
1801 sTitle = "eRequest";
1802 sCol1 = "eRequest";
1803 sCol2 = "eRequest Number";
1804 bMultiSelected = true;
1805 bShowDescription = false;
1806 _oModelSearchHelp.setProperty("/eRequestNo", aItems);
1807 } else if (sType === "CIT") {
1808 sTitle = "Contract Item";
1809 sCol1 = "No";
1810 sCol2 = "Name";
1811 bMultiSelected = false;
1812 bShowDescription = true;
1813 _oModelSearchHelp.setProperty("/eRequestNo", aItems);
1814 } else if (sType === "CDE") {
1815 sTitle = "Contract Item Detail";
1816 sCol1 = "No";
1817 sCol2 = "Name";
1818 bMultiSelected = false;
1819 bShowDescription = true;
1820 _oModelSearchHelp.setProperty("/eRequestNo", aItems);
1821 } else if (sType === "REQ") {
1822 sTitle = "Requisitioner";
1823 sCol1 = "No";
1824 sCol2 = "Name";
1825 bMultiSelected = false;
1826 bShowDescription = true;
1827 _oModelSearchHelp.setProperty("/eRequestNo", aItems);
1828 }
1829
1830 this.oDialogSearchHelp = oSearchHelp.fnOnInitDialog(sTitle, oControl, bMultiSelected, aItems, sCol1, sCol2, bShowDescription, this,
1831 function(res) {
1832 //when ok press
1833 if (sType === "CIT") {
1834 if (res !== sOldContractItem) {
1835 var oControlCIT = that.getView().byId("vIdCreateWOHeaderFormContractItemDetail");
1836 oControlCIT.setValue("");
1837 oControlCIT.setTooltip("");
1838 }
1839
1840 sOldContractItem = res;
1841 }
1842
1843 //clear value in quation number if contract item had value
1844 if (sType === "CIT") {
1845 var oControlQuatation = that.getView().byId("vIdCreateWOHeaderFormQuotationNo");
1846 oControlQuatation.setValue("");
1847 that.fnClearRequireFildLabel(oControlQuatation);
1848 }
1849
1850 },
1851 function() {
1852 //when cancel press
1853
1854 });
1855 this.oDialogSearchHelp.open();
1856 },
1857
1858 /**
1859 ** Upload and Download
1860 **/
1861 fnOnPressDownload: function(oEvent) {
1862 var aDataLocal = [];
1863 var oTable = oEvent.getSource().getParent().getParent();
1864 var oDataStructure = {};
1865 var sFileName = "";
1866 var aWorkOrderItem = [];
1867
1868 if (oTable.sId.indexOf("vIdCreateWOTableWODataEREQ") > -1) {
1869 sFileName = "eRequestTemplate";
1870 oDataStructure = {
1871 No: "",
1872 eRequestNo: "",
1873 RefItem: "",
1874 eReqDate: "",
1875 CountryOfOrigin: "",
1876 HSCode: "",
1877 GlAccount: "",
1878 QuanGoods: "",
1879 Unit: "",
1880 Goods: "",
1881 UnitPrice: "",
1882 Currency: "",
1883 TotalGoods: ""
1884 };
1885
1886 aDataLocal.push(oDataStructure);
1887 } else if (oTable.sId.indexOf("vIdCreateWOTablePackage") > -1) {
1888 sFileName = "PackageTemplate";
1889 oDataStructure = {
1890 No: "",
1891 eRequest: "",
1892 RefBoxNo: "",
1893 PackageUnit: "",
1894 Length: "",
1895 Width: "",
1896 Height: "",
1897 Weight: "",
1898 PackServices: "",
1899 Remark: ""
1900 };
1901
1902 aDataLocal.push(oDataStructure);
1903 }
1904
1905 var oExport = zeccrmanagewo.util.Export;
1906 oExport.fnOnDownLoad(aDataLocal, sFileName, "Sheet1");
1907
1908 },
1909
1910 fnOnExcelUpload: function(oEvent) {
1911 var that = this;
1912 var oItemFromTable = this.getView().byId("vIdCreateWOTableWODataEREQ");
1913 var oItemModelFromTable = oItemFromTable.getModel();
1914 var oItemDataFromTable = [];
1915 if (oItemModelFromTable != null) {
1916 if (oItemModelFromTable.getData() != null) {
1917 oItemDataFromTable = oItemModelFromTable.getData().aReqItem;
1918 }
1919 }
1920
1921 var oTable = oEvent.getSource().getParent().getParent();
1922 var oImport = zeccrmanagewo.util.Import;
1923 oImport.fnImportExcel(oEvent.getParameter("files") && oEvent.getParameter("files")[0], function(aItemsLocal) {
1924 var oData = oTable.getModel().getData();
1925 var i = 0;
1926 var iIndex = 0;
1927 var aItemsUnique = [];
1928 var oDataStructure = {};
1929 oDataStructure = {
1930 No: "",
1931 eRequestNo: "",
1932 RefItem: "",
1933 eReqDate: "",
1934 CountryOfOrigin: "",
1935 HSCode: "",
1936 QuanGoods: "",
1937 Unit: "",
1938 Goods: "",
1939 UnitPrice: "",
1940 Currency: "",
1941 TotalGoods: ""
1942 };
1943
1944 var aItemsLocalNewStructure = that.fnDestructuring(oDataStructure, aItemsLocal);
1945
1946 var sConstErequest = "";
1947 var sConstProject = "";
1948 var sConstGL = "";
1949
1950 if (oItemDataFromTable != null) {
1951 if (oItemDataFromTable.length > 0) {
1952
1953 for (var i = 0; i < aItemsLocalNewStructure.length; i++) {
1954 var oNewRecord = {
1955 No: ((aItemsLocalNewStructure[i].No == null) || (aItemsLocalNewStructure[i].No == "")) ? "" : aItemsLocalNewStructure[i].No
1956 .trim(),
1957 eRequestNo: ((aItemsLocalNewStructure[i].eRequestNo == null) || (aItemsLocalNewStructure[i].eRequestNo == "")) ? "" : aItemsLocalNewStructure[
1958 i].eRequestNo.trim(),
1959 RefItem: ((aItemsLocalNewStructure[i].RefItem == null) || (aItemsLocalNewStructure[i].RefItem == "")) ? "" : aItemsLocalNewStructure[
1960 i].RefItem.trim(),
1961 eReqDate: ((aItemsLocalNewStructure[i].eReqDate == null) || (aItemsLocalNewStructure[i].eReqDate == "")) ? "" : aItemsLocalNewStructure[
1962 i].eReqDate.trim(),
1963 CountryOfOrigin: ((aItemsLocalNewStructure[i].CountryOfOrigin == null) || (aItemsLocalNewStructure[i].CountryOfOrigin == "")) ?
1964 "" : aItemsLocalNewStructure[i].CountryOfOrigin.trim(),
1965 HSCode: ((aItemsLocalNewStructure[i].HSCode == null) || (aItemsLocalNewStructure[i].HSCode == "")) ? "" : aItemsLocalNewStructure[
1966 i].HSCode.trim(),
1967 GlAccount: ((aItemsLocalNewStructure[i].GlAccount == null) || (aItemsLocalNewStructure[i].GlAccount == "")) ? "" : aItemsLocalNewStructure[
1968 i].GlAccount.trim(),
1969 QuanGoods: ((aItemsLocalNewStructure[i].QuanGoods == null) || (aItemsLocalNewStructure[i].QuanGoods == "")) ? "" : aItemsLocalNewStructure[
1970 i].QuanGoods.trim(),
1971 Unit: ((aItemsLocalNewStructure[i].Unit == null) || (aItemsLocalNewStructure[i].Unit == "")) ? "" : aItemsLocalNewStructure[
1972 i].Unit.trim(),
1973 Goods: ((aItemsLocalNewStructure[i].Goods == null) || (aItemsLocalNewStructure[i].Goods == "")) ? "" : aItemsLocalNewStructure[
1974 i].Goods.trim(),
1975 UnitPrice: ((aItemsLocalNewStructure[i].UnitPrice == null) || (aItemsLocalNewStructure[i].UnitPrice == "")) ? "" : aItemsLocalNewStructure[
1976 i].UnitPrice.trim(),
1977 Currency: ((aItemsLocalNewStructure[i].Currency == null) || (aItemsLocalNewStructure[i].Currency == "")) ? "" : aItemsLocalNewStructure[
1978 i].Currency.trim(),
1979 TotalGoods: ((aItemsLocalNewStructure[i].TotalGoods == null) || (aItemsLocalNewStructure[i].TotalGoods == "")) ? "" : aItemsLocalNewStructure[
1980 i].TotalGoods.trim()
1981 };
1982
1983 oItemDataFromTable.push(oNewRecord);
1984 }
1985 }
1986 }
1987
1988 var sNewIndex = 0;
1989 for (var i = 0; i < oItemDataFromTable.length; i++) {
1990 oItemDataFromTable[i].No = (sNewIndex + 1).toString();
1991 sNewIndex += 1;
1992 }
1993
1994 oItemModelFromTable.setData({
1995 aReqItem: oItemDataFromTable
1996 });
1997 oItemModelFromTable.refresh();
1998
1999 });
2000 oEvent.getSource().clear();
2001 },
2002 fnOnExcelPackageUpload: function(oEvent) {
2003 var that = this;
2004 var oItemFromTable = this.getView().byId("vIdCreateWOTablePackage");
2005 var oItemModelFromTable = oItemFromTable.getModel();
2006 var oItemDataFromTable = [];
2007 if (oItemModelFromTable != null) {
2008 if (oItemModelFromTable.getData() != null) {
2009 oItemDataFromTable = oItemModelFromTable.getData().packageItem;
2010 }
2011 }
2012
2013 var oTable = oEvent.getSource().getParent().getParent();
2014 var oImport = zeccrmanagewo.util.Import;
2015 oImport.fnImportExcel(oEvent.getParameter("files") && oEvent.getParameter("files")[0], function(aItemsLocal) {
2016
2017 var i = 0;
2018
2019 var oDataStructure = {};
2020 oDataStructure = {
2021 No: "",
2022 eRequest: "",
2023 RefBoxNo: "",
2024 PackageUnit: "",
2025 Length: "",
2026 Width: "",
2027 Height: "",
2028 Weight: "",
2029 PackServices: "",
2030 Remark: ""
2031 };
2032
2033 var aItemsLocalNewStructure = that.fnDestructuring(oDataStructure, aItemsLocal);
2034
2035 for (var i = 0; i < aItemsLocalNewStructure.length; i++) {
2036 var oNewRecord = {
2037 No: ((aItemsLocalNewStructure[i].No == null) || (aItemsLocalNewStructure[i].No == "")) ? "" : aItemsLocalNewStructure[i].No
2038 .trim(),
2039 eRequest: ((aItemsLocalNewStructure[i].eRequest == null) || (aItemsLocalNewStructure[i].eRequest == "")) ? "" : aItemsLocalNewStructure[
2040 i].eRequest.trim(),
2041 RefBoxNo: ((aItemsLocalNewStructure[i].RefBoxNo == null) || (aItemsLocalNewStructure[i].RefBoxNo == "")) ? "" : aItemsLocalNewStructure[
2042 i].RefBoxNo.trim(),
2043 PackageUnit: ((aItemsLocalNewStructure[i].PackageUnit == null) || (aItemsLocalNewStructure[i].PackageUnit == "")) ? "" : aItemsLocalNewStructure[
2044 i].PackageUnit.trim(),
2045 Length: ((aItemsLocalNewStructure[i].Length == null) || (aItemsLocalNewStructure[i].Length == "")) ?
2046 "" : aItemsLocalNewStructure[i].Length.trim(),
2047 Width: ((aItemsLocalNewStructure[i].Width == null) || (aItemsLocalNewStructure[i].Width == "")) ? "" : aItemsLocalNewStructure[
2048 i].Width.trim(),
2049 Height: ((aItemsLocalNewStructure[i].Height == null) || (aItemsLocalNewStructure[i].Height == "")) ? "" : aItemsLocalNewStructure[
2050 i].Height.trim(),
2051 Weight: ((aItemsLocalNewStructure[i].Weight == null) || (aItemsLocalNewStructure[i].Weight == "")) ? "" : aItemsLocalNewStructure[
2052 i].Weight.trim(),
2053 PackServices: ((aItemsLocalNewStructure[i].PackServices == null) || (aItemsLocalNewStructure[i].PackServices == "")) ? "" : aItemsLocalNewStructure[
2054 i].PackServices.trim(),
2055 Remark: ((aItemsLocalNewStructure[i].Remark == null) || (aItemsLocalNewStructure[i].Remark == "")) ? "" : aItemsLocalNewStructure[
2056 i].Remark.trim()
2057
2058 };
2059
2060 oItemDataFromTable.push(oNewRecord);
2061 }
2062
2063 var sNewIndex = 0;
2064 for (var i = 0; i < oItemDataFromTable.length; i++) {
2065 oItemDataFromTable[i].No = (sNewIndex + 1).toString();
2066 sNewIndex += 1;
2067 }
2068
2069 oItemModelFromTable.setData({
2070 packageItem: oItemDataFromTable
2071 });
2072 oItemModelFromTable.refresh();
2073
2074 });
2075 oEvent.getSource().clear();
2076 },
2077 fnDestructuring: function(oKeys, aItemsLocal) {
2078 var aData = [];
2079 var oData = {};
2080 var aKeysObject = [];
2081 aKeysObject = Object.keys(oKeys);
2082 for (var i = 0; i < aItemsLocal.length; i++) {
2083 oData = {};
2084 for (var j = 0; j < aKeysObject.length; j++) {
2085 oData[aKeysObject[j]] = aItemsLocal[i][aKeysObject[j]];
2086 }
2087 aData.push(oData);
2088 }
2089 return aData;
2090 },
2091
2092 /*
2093 **Clear data Area
2094 */
2095 fnClearAttachment: function() {
2096 var oModelAttachment = new sap.ui.model.json.JSONModel();
2097 oModelAttachment.setData({
2098 PreAlert: [],
2099 SSHE: [],
2100 Completed: [],
2101 Absolute: [],
2102 Billing: [],
2103 Damage: [],
2104 DAS: [],
2105 Other: []
2106 });
2107 this.getView().setModel(oModelAttachment, "Attachment");
2108 },
2109 fnClearWOhistory: function() {
2110 var oTable = this.getView().byId("vIdListManageWOTableWOHistory");
2111 var oModel = new sap.ui.model.json.JSONModel();
2112
2113 oModel.setData({
2114 woHistoryItem: []
2115 });
2116
2117 oTable.setModel(oModel);
2118
2119 },
2120
2121 fnClearWorkOrderData: function() {
2122 //** Clear Erequest Table
2123 var oTable = this.getView().byId("vIdManageWOTableWODataEREQ");
2124 var oModel = new sap.ui.model.json.JSONModel();
2125
2126 oModel.setData({
2127 aReqItem: []
2128 });
2129
2130 oTable.setModel(oModel);
2131
2132 },
2133
2134 fnClearPackageSummary: function() {
2135 var oTable = this.getView().byId("vIdManageWOFormPackage");
2136 var oModel = new sap.ui.model.json.JSONModel();
2137
2138 oModel.setData({
2139 packageItem: []
2140 });
2141
2142 oTable.setModel(oModel);
2143
2144 },
2145
2146 /*
2147 ** Utility function
2148 **/
2149 fnZeroPad: function(num, numZeros) {
2150 var n = Math.abs(num);
2151 var zeros = Math.max(0, numZeros - Math.floor(n).toString().length);
2152 var zeroString = Math.pow(10, zeros).toString().substr(1);
2153 if (num < 0) {
2154 zeroString = "-" + zeroString;
2155 }
2156
2157 return zeroString + n;
2158 },
2159
2160 /*
2161 ** Area Print Form
2162 **/
2163 fnSelectedDisplayForm: function(oEvent) {
2164 var oESource = oEvent.getSource();
2165
2166 sSeletedDisplayForm = oESource.data("FormName");
2167 if (sSeletedDisplayForm == null) {
2168 sSeletedDisplayForm = "";
2169 }
2170
2171 //set Enable for select invoice seq
2172 var oViewFormSeq = this.getView().getModel("PrintFormSeq");
2173 var oViewDataFormSeq = null;
2174 if (oViewFormSeq != null) {
2175 if (oViewFormSeq.getData() != null) {
2176 oViewDataFormSeq = oViewFormSeq.getData();
2177 }
2178 }
2179
2180 if (oViewDataFormSeq != null) {
2181 if (sSeletedDisplayForm === "ECCR") {
2182 oViewDataFormSeq.sFormName = "X";
2183
2184 //setEnable to invoice seq
2185 this._oDialogConfirmPrintForm.getContent()[0].getContent()[2].setEnabled(true);
2186
2187 } else {
2188 oViewDataFormSeq.sFormName = "";
2189 //setEnable to invoice seq
2190 this._oDialogConfirmPrintForm.getContent()[0].getContent()[2].setEnabled(false);
2191
2192 }
2193 }
2194
2195 },
2196 fnOnchangeInvoiceSeq: function(oEvent) {
2197 var sSeletedInvoiceSeq = oEvent.getSource();
2198 },
2199 fnGetInvSeQuenceNumber: function(sDocument) {
2200 var oActionParams = zmmshpg005.getActionParameter("manage_printform_seq");
2201 var sActionParameter = oActionParams.value;
2202 var oData = {};
2203 oData.ZMODULE = _sModule;
2204 oData.ActionParameter = sActionParameter;
2205 oData.WorkOrderID = sDocument;
2206 oData.ECCN048 = []; // invoice sequence for print form
2207 oData.ECCN048[0] = {};
2208 oData.ECCN048[0].ECCN008 = [];
2209
2210 var that = this;
2211 var oConfig = {
2212 metadataUrlParams: {},
2213 json: true,
2214 loadMetadataAsync: true,
2215 defaultBindingMode: "OneWay",
2216 defaultCountMode: "Inline",
2217 useBatch: false
2218 };
2219 var oDataModel = new sap.ui.model.odata.ODataModel(oDataService, oConfig);
2220
2221 this.fnShowBusyDialog();
2222 jQuery.sap.delayedCall(100, this, function() { // for Show Busy Indicator
2223 oDataModel.create(sEntityPath, oData, undefined, function(oDataResponse, oResponse) {
2224 that.fnHideBusyDialog(); //hide waiting icon
2225
2226 if (oDataResponse.ECCN048 != null) {
2227 var aSeqNo = [];
2228
2229 if (oDataResponse.ECCN048.results != null) {
2230 //aSeqNo = oDataResponse.ECCN048.results;
2231 aSeqNo.push({
2232 Key: "1",
2233 Text: "1"
2234 });
2235 }
2236
2237 var sSeqNo = "1";
2238 var formName = "ECCR";
2239 var sformName = "X";
2240 if (formName === "ECCR") {
2241 sformName = "X";
2242
2243 //setEnable to invoice seq
2244 that._oDialogConfirmPrintForm.getContent()[0].getContent()[2].setEnabled(true);
2245
2246 //set selected index
2247 that._oDialogConfirmPrintForm.getContent()[0].getContent()[0].setSelected(true);
2248 that._oDialogConfirmPrintForm.getContent()[0].getContent()[1].setSelected(false);
2249 } else {
2250 sformName = "";
2251
2252 //set disble to invoice seq
2253 that._oDialogConfirmPrintForm.getContent()[0].getContent()[2].setEnabled(false);
2254
2255 //set selected index
2256 that._oDialogConfirmPrintForm.getContent()[0].getContent()[0].setSelected(false);
2257 that._oDialogConfirmPrintForm.getContent()[0].getContent()[1].setSelected(true);
2258 }
2259
2260 //Set view model
2261 var oModelPrintSeq = new sap.ui.model.json.JSONModel();
2262 oModelPrintSeq.setData({
2263 PrintFormSeq: sSeqNo,
2264 SeqNo: aSeqNo,
2265 sFormName: sformName
2266 });
2267
2268 that.getView().setModel(oModelPrintSeq, "PrintFormSeq");
2269 }
2270
2271 }, function(oError) {
2272 //reject(oError);
2273 that.fnHideBusyDialog(); //hide waiting icon
2274 });
2275 });
2276
2277 },
2278 fnOnAddItem: function(oEvent) {
2279
2280 var oButtonAdd = oEvent.getSource();
2281 if (oButtonAdd.sId.search("vIdAddItemShipmentDataWO") > 0) {
2282 // Add Shipment
2283 var that = this;
2284 var oData = {};
2285 oData = this.fnGetCriteria("AddWO");
2286 this.fnExecuteAction(oData, function(oDataResponse) {
2287
2288 if (oDataResponse.MessageType === "E") {
2289 that.fnOnErrorMessageBox(oDataResponse.MessageText);
2290 return;
2291 }
2292
2293 _aItemsWOAdd = [];
2294 if (oDataResponse.ECCN017) {
2295 _aItemsWOAdd = oDataResponse.ECCN017.results;
2296 }
2297 // if (oDataResponse.ECCN010) {
2298 // _aItemsWOAdd = oDataResponse.ECCN010.results;
2299 // }
2300 that.fnCreateDialogAddShipmentData(_aItemsWOAdd);
2301 }, function(oError) {
2302 if (oError.response) {
2303 that.fnOnErrorMessageBox(oError.response.statusText);
2304 } else {
2305 that.fnOnErrorMessageBox(oError.message);
2306 }
2307 });
2308 } else if (oButtonAdd.sId.search("vIdAddVehicleTruck") > 0) {
2309 // Add Vehicle Truck
2310 var oItem = {};
2311 if (_aVehicleTruck.length !== 0) {
2312 oItem = JSON.parse(JSON.stringify(_aVehicleTruck[_aVehicleTruck.length - 1]));
2313 oItem.No = (parseInt(oItem.No) + 1).toString();
2314 } else {
2315 // oItem = JSON.parse(JSON.stringify(_aVehicleTruck[1]));
2316 oItem.No = "1";
2317 }
2318
2319 // oItem.No = (parseInt(oItem.No) + 1).toString();
2320 oItem.EnabledRoute = false;
2321 oItem.EnabledService = false;
2322 oItem.LevelID = "";
2323 oItem.LevelName = "";
2324 oItem.ReferenceDocument = "";
2325 oItem.ReferenceType = "";
2326 oItem.RouteID = "";
2327 oItem.RouteName = "";
2328 oItem.ServiceLevel = _aVehicleServiceLevel;
2329 oItem.CBM = "";
2330 oItem.VehicleCount = "";
2331 oItem.VehicleID = "";
2332 oItem.VehicleName = "";
2333 oItem.VehicleType = "";
2334 _aVehicleTruck.push(oItem);
2335 // _oModelTable.refresh();
2336 }
2337 },
2338 fnOnPrintFormPress: function(oEvent) {
2339 if (!this._oDialogConfirmPrintForm) {
2340
2341 this._oDialogConfirmPrintForm = sap.ui.xmlfragment("zeccrmanagewo.popup.DialogConfirmPrintForm", this);
2342
2343 }
2344
2345 this.getView().addDependent(this._oDialogConfirmPrintForm);
2346
2347 // toggle compact style
2348
2349 jQuery.sap.syncStyleClass("sapUiSizeCompact", this.getView(), this._oDialogConfirmPrintForm);
2350
2351 this._oDialogConfirmPrintForm.open();
2352
2353 //get inv sequence
2354 var sDocument = this.getView().getModel("ManageWO").getData().WorkOrderID;
2355 this.fnGetInvSeQuenceNumber(sDocument);
2356 //end get inv sequence
2357 },
2358 fnOpenDialogForm: function(oEvent) {
2359
2360 if (!this.getView().getModel("ManageWO").getData().WorkOrderID) {
2361
2362 return;
2363
2364 }
2365
2366 this.fnOnCloseDialog(oEvent);
2367
2368 sSelectedSeqPrintForm = oEvent.getSource().getParent().getContent()[0].getContent()[2].getSelectedKey();
2369
2370 if (oEvent.getSource().getParent().getContent()[0].getContent()[0].getSelected()) {
2371 sSeletedDisplayForm = oEvent.getSource().getParent().getContent()[0].getContent()[0].data("FormName");
2372 } else if (oEvent.getSource().getParent().getContent()[0].getContent()[1].getSelected()) {
2373 sSeletedDisplayForm = oEvent.getSource().getParent().getContent()[0].getContent()[1].data("FormName");
2374 }
2375
2376 if (sSeletedDisplayForm == null) {
2377 sSeletedDisplayForm = "";
2378 }
2379
2380 if (sSeletedDisplayForm != "") {
2381 var sSeletedInvoiceSeq = sSelectedSeqPrintForm;
2382
2383 if (sSeletedInvoiceSeq == null) {
2384 sSeletedInvoiceSeq = "1";
2385 }
2386
2387 var sInvoiceSeqNumber = sSeletedInvoiceSeq;
2388 var sFormType = sSeletedDisplayForm;
2389
2390 var sDocument = this.getView().getModel("ManageWO").getData().WorkOrderID;
2391
2392 var sGetFormPath = "/sap/fiori/pttep4eccrcreate/sap/opu/odata/sap/ZMMSHPG001_SRV/UAPE012COL(WOID='" + sDocument + "'";
2393 sGetFormPath = sGetFormPath += ",InvoiceSeqNumber='" + sInvoiceSeqNumber + "'";
2394 sGetFormPath = sGetFormPath += ",FormType='" + sFormType + "')/$value";
2395
2396 var oPDFContent = new sap.ui.core.HTML({
2397
2398 content: "<iframe src=" + sGetFormPath + " width='100%' height='800px' frameborder='0'></iframe>"
2399
2400 });
2401
2402 var oDialog = new sap.m.Dialog({
2403
2404 title: "Print Form",
2405
2406 state: "None",
2407
2408 showHeader: true,
2409
2410 contentWidth: "100%",
2411
2412 contentHeight: "100%",
2413
2414 draggable: true,
2415
2416 resizable: true,
2417
2418 content: [oPDFContent],
2419
2420 beginButton: new sap.m.Button({
2421
2422 enabled: true,
2423
2424 type: "Reject",
2425
2426 text: "Close",
2427
2428 press: function() {
2429
2430 oDialog.close();
2431
2432 }
2433
2434 }),
2435
2436 afterClose: function(e) {
2437
2438 this.destroy();
2439
2440 }
2441
2442 }).addStyleClass("sapUiPopupWithPadding").open();
2443 }
2444
2445 },
2446
2447 /*
2448 ** Get default data area
2449 **/
2450
2451 fngetDefaultData: function(sWONumber) {
2452
2453 var aERequestNosSelected = [];
2454 var oData = {};
2455
2456 var sDefaultAction = "create_wo";
2457
2458 if (sWONumber != null && sWONumber !== "undefined" && sWONumber !== "null" && sWONumber !== "NULL") {
2459 sDefaultAction = "manage_wo";
2460
2461 } else {
2462 sWONumber = "";
2463 }
2464
2465 oData = this.fnPrepareOData(sDefaultAction);
2466
2467 oData.WorkOrderNo = sWONumber;
2468
2469 //post request data
2470 this.fnPostHttpRequest(sEntityPath, oData, "getDefault");
2471
2472 },
2473
2474 /**
2475 * Prepare Odata
2476 **/
2477 fnGetHeaderFileds: function() {
2478 var oData = {};
2479
2480 //oData.ActionStep = "";
2481 oData.AllocaMethod = "";
2482 oData.IsAttachment = "";
2483 oData.ATADate = "";
2484 oData.ATATime = "";
2485 oData.ATDDate = "";
2486 oData.ATDTime = "";
2487 oData.Auth = "";
2488 oData.AuthorCusBroker = "";
2489 oData.AuthorCusBrokerDesc = "";
2490 oData.AWB_BL = "";
2491 oData.CargoType = "";
2492 oData.ChangedBy = "";
2493 oData.ChangedDate = "";
2494 oData.ChangedTime = "";
2495 oData.ChargeTo = "";
2496 oData.ChargeToName = "";
2497 oData.ClearDate = "";
2498 oData.CNContractName = "";
2499 oData.CNDelAddress = "";
2500 oData.CNDelComp = "";
2501 oData.CNDelCountry = "";
2502 oData.CNDelPosCal = "";
2503 oData.CNFax = "";
2504 oData.CNMail = "";
2505 oData.CNProvince = "";
2506 oData.CNTel = "";
2507 oData.ContItem = "";
2508 oData.ContItemDesc = "";
2509 oData.ContItemDetail = "";
2510 oData.ContItemDetailDesc = "";
2511 oData.CreatedBy = "";
2512 oData.CreatedDate = "";
2513 oData.CreatedDateFrom = "";
2514 oData.CreatedDateTo = "";
2515 oData.CreatedTime = "";
2516 oData.DepartPort = "";
2517 oData.DepartPortDesc = "";
2518 oData.DocDate = "";
2519 oData.DTContractName = "";
2520 oData.DTDelAddress = "";
2521 oData.DTDelComp = "";
2522 oData.DTDelCountry = "";
2523 oData.DTDelPosCal = "";
2524 oData.DTFax = "";
2525 oData.DTMail = "";
2526 oData.DTProvince = "";
2527 oData.DTTel = "";
2528 oData.EntryDoc = "";
2529 oData.EntryDocDate = "";
2530 oData.eRequestDatefrom = "";
2531 oData.eRequestDateto = "";
2532 oData.eRequestNo = "";
2533 oData.eRequestProject = "";
2534 oData.eRequestType = "";
2535 oData.ETADate = "";
2536 oData.ETATime = "";
2537 oData.ETDDate = "";
2538 oData.ETDTime = "";
2539 oData.FinalDestination = "";
2540 oData.Fumigate = "";
2541 oData.GreenLight = "";
2542 oData.Incoterm = "";
2543 oData.IncotermPlace = "";
2544 oData.InvNo = "";
2545 oData.IsFC = "";
2546 oData.IsDraft = "";
2547 oData.IsWO = "";
2548 oData.MessageText = "";
2549 oData.MessageType = "";
2550 oData.ModeOfTrans = "";
2551 oData.NPContractName = "";
2552 oData.NPDelAddress = "";
2553 oData.NPDelComp = "";
2554 oData.NPDelCountry = "";
2555 oData.NPDelPosCal = "";
2556 oData.NPFax = "";
2557 oData.NPMail = "";
2558 oData.NPProvince = "";
2559 oData.NPTel = "";
2560 oData.OrderDesc = "";
2561 oData.OrderType = "";
2562 oData.PickUpLocation = "";
2563 oData.Project = "";
2564 oData.ProjectDesc = "";
2565 oData.PurposeExport = "";
2566 oData.QuotationNo = "";
2567 oData.RADDate = "";
2568 oData.RADTime = "";
2569 oData.RDDDate = "";
2570 oData.RDDTime = "";
2571 oData.ReferenceOnly = "";
2572 oData.Remark = "";
2573 oData.Requisitioner = "";
2574 oData.ShipMethod = "";
2575 oData.SMCost = "";
2576 oData.SMCostCur = "";
2577 oData.SMCreatedDateFrom = "";
2578 oData.SMCreatedDateTo = "";
2579 oData.SMID = "";
2580 oData.SMNO = "";
2581 oData.SMRemak = "";
2582 oData.SMStatus = "";
2583 oData.StatusID = "";
2584 oData.SubMot = "";
2585 oData.ToCountry = "";
2586 oData.TotalPackage = "";
2587 oData.TotalWeight = "";
2588 oData.TotalWeightUnit = "";
2589 oData.User = "";
2590 oData.VenderName = "";
2591 oData.WorkOrderID = "";
2592 oData.WorkOrderIns = "";
2593 oData.WorkOrderNo = "";
2594 oData.WorkOrderStatus = "";
2595 oData.WorkOrderStatusDesc = "";
2596
2597 return oData;
2598 },
2599
2600 fnPrepareOData: function(sAction) {
2601 // var oActionParams = zmmshpg005.getActionParameter(sAction);
2602 // var sActionParameter = oActionParams.value;
2603 var oData = this.fnGetHeaderFileds();
2604 oData.ZMODULE = _sModule;
2605 oData.ActionParameter = sAction;
2606 oData.IsWO = "";
2607 oData.ECCN001 = [];
2608 oData.ECCN001[0] = {}; //Declare for varaint
2609 oData.ECCN001[0].ECCN002 = []; //Multiple Value: eRequest Number
2610 oData.ECCN003 = []; //Return erequest list / WO item
2611 oData.ECCN005 = []; //Package package summary
2612 oData.ECCN006 = []; //Attachment
2613 oData.ECCN009 = []; //shipping method
2614 oData.ECCN010 = []; //mode of transport
2615 oData.ECCN010[0] = {};
2616 oData.ECCN010[0].ECCN008 = []; //Sub type
2617 oData.ECCN011 = []; // order type
2618 oData.ECCN012 = []; //authorized custom broker
2619 oData.ECCN013 = []; //cargo tpe
2620 oData.ECCN014 = []; // departure port header
2621 oData.ECCN014[0] = {};
2622 oData.ECCN014[0].ECCN008 = []; //for store departure port item
2623 oData.ECCN015 = []; // allocation method
2624 oData.ECCN016 = []; //vendor
2625 oData.ECCN035 = []; // work order history
2626 oData.ECCN036 = []; //Unit of dimension
2627 oData.ECCN037 = []; //Package Unit
2628 oData.ECCN046 = []; //project
2629
2630 return oData;
2631 },
2632
2633 /**
2634 ** Action For WO
2635 **/
2636
2637 fnGetInputs: function(sSaveMode) {
2638 //generate header data for wo internal
2639 var oData = this.fnPrepareOData(sSaveMode);
2640
2641 if (_bIsAttachment) {
2642 oData.IsAttachment = "X";
2643 } else {
2644 oData.IsAttachment = "";
2645 }
2646
2647 oData.AllocaMethod = (this.getView().byId("vIdCreateWOHeaderFormAllocationMethod").getSelectedKey() == null) ? "" : this.getView().byId(
2648 "vIdCreateWOHeaderFormAllocationMethod").getSelectedKey().trim();
2649 oData.ATADate = (this.getView().getModel("ManageWO").getData().ATADate == null) ? "" : this.getView().getModel("ManageWO").getData()
2650 .ATADate.trim();
2651 oData.ATATime = (this.getView().getModel("ManageWO").getData().ATATime == null) ? "" : this.getView().getModel("ManageWO").getData()
2652 .ATATime.trim();
2653 oData.ATDDate = (this.getView().getModel("ManageWO").getData().ATDDate == null) ? "" : this.getView().getModel("ManageWO").getData()
2654 .ATDDate.trim();
2655 oData.ATDTime = (this.getView().getModel("ManageWO").getData().ATDTime == null) ? "" : this.getView().getModel("ManageWO").getData()
2656 .ATDTime.trim();
2657 oData.Auth = this.getView().getModel("ManageWO").getData().Auth;
2658 oData.AuthorCusBroker = (this.getView().byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").getSelectedKey() == null) ? "" : this.getView()
2659 .byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").getSelectedKey().trim();
2660 oData.AuthorCusBrokerDesc = (this.getView().byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").getSelectedItem().getText() == null) ?
2661 "" :
2662 this.getView().byId("vIdCreateWOHeaderFormAuthorizeCustomBroker").getSelectedItem().getText().trim();
2663 oData.AWB_BL = "";
2664 oData.CargoType = (this.getView().byId("vIdCreateWOHeaderFormCargoType").getSelectedKey() == null) ? "" : this.getView().byId(
2665 "vIdCreateWOHeaderFormCargoType").getSelectedKey().trim();
2666 oData.ChangedBy = (this.getView().getModel("ManageWO").getData().ChangedBy == null) ? "" : this.getView().getModel("ManageWO").getData()
2667 .ChangedBy.trim();
2668 oData.ChangedDate = (this.getView().getModel("ManageWO").getData().ChangedDate == null) ? "" : this.getView().getModel("ManageWO").getData()
2669 .ChangedDate.trim();
2670 oData.ChangedTime = (this.getView().getModel("ManageWO").getData().ChangedTime == null) ? "" : this.getView().getModel("ManageWO").getData()
2671 .ChangedTime.trim();
2672 oData.ChargeTo = (this.getView().byId("vIdCreateWOHeaderFormChargeTo").getSelectedKey() == null) ? "" : this.getView().byId(
2673 "vIdCreateWOHeaderFormChargeTo").getSelectedKey().trim();
2674 oData.ChargeToName = (this.getView().byId("vIdCreateWOHeaderFormChargeToName").getValue() == null) ? "" : this.getView().byId(
2675 "vIdCreateWOHeaderFormChargeToName").getValue().trim();
2676 oData.ClearDate = (this.getView().byId("vIdCreateWOHeaderFormClearanceDate").getValue() == null) ? "" : this.getView().byId(
2677 "vIdCreateWOHeaderFormClearanceDate").getValue().trim();
2678 oData.CNContractName = (this.getView().byId("vManageWOConsigneeContractName").getValue() == null) ? "" : this.getView().byId(
2679 "vManageWOConsigneeContractName").getValue().trim();
2680
2681 oData.CNDelAddress = (this.getView().byId("vManageWOConsigneeAddress").getValue() == null) ? "" : this.getView().byId(
2682 "vManageWOConsigneeAddress").getValue().trim();
2683 oData.CNDelComp = (this.getView().byId("vManageWOConsigneeCompany").getValue() == null) ? "" : this.getView().byId(
2684 "vManageWOConsigneeCompany").getValue().trim();
2685 oData.CNDelCountry = (this.getView().byId("vManageWOConsigneecountry").getValue() == null) ? "" : this.getView().byId(
2686 "vManageWOConsigneecountry").getValue().trim();
2687 oData.CNDelPosCal = (this.getView().byId("vManageWOConsigneePostalCode").getValue() == null) ? "" : this.getView().byId(
2688 "vManageWOConsigneePostalCode").getValue().trim();
2689 oData.CNFax = (this.getView().byId("vManageWOConsigneeFax").getValue() == null) ? "" : this.getView().byId(
2690 "vManageWOConsigneeFax").getValue().trim();
2691 oData.CNMail = (this.getView().byId("vManageWOConsigneeEmail").getValue() == null) ? "" : this.getView().byId(
2692 "vManageWOConsigneeEmail").getValue().trim();
2693 oData.CNProvince = (this.getView().byId("vManageWOConsigneeProvince").getValue() == null) ? "" : this.getView().byId(
2694 "vManageWOConsigneeProvince").getValue().trim();
2695 oData.CNTel = (this.getView().byId("vManageWOConsigneeTel").getValue() == null) ? "" : this.getView().byId(
2696 "vManageWOConsigneeTel").getValue().trim();
2697
2698 //get data from multi-input
2699 oData.ContItem = (this.getView().byId("vIdCreateWOHeaderFormContractItem").getTooltip() == null) ? "" : this.getView().byId(
2700 "vIdCreateWOHeaderFormContractItem").getTooltip().trim();
2701 oData.ContItemDesc = (this.getView().byId("vIdCreateWOHeaderFormContractItem").getValue() == null) ? "" : this.getView().byId(
2702 "vIdCreateWOHeaderFormContractItem").getValue().trim();
2703 oData.ContItemDetail = (this.getView().byId("vIdCreateWOHeaderFormContractItemDetail").getTooltip() == null) ? "" : this.getView().byId(
2704 "vIdCreateWOHeaderFormContractItemDetail").getTooltip().trim();
2705 oData.ContItemDetailDesc = (this.getView().byId("vIdCreateWOHeaderFormContractItemDetail").getValue() == null) ? "" : this.getView()
2706 .byId("vIdCreateWOHeaderFormContractItemDetail").getValue().trim();
2707 //end get data from multi-input
2708
2709 oData.CreatedBy = (this.getView().getModel("ManageWO").getData().CreatedBy == null) ? "" : this.getView().getModel("ManageWO").getData()
2710 .CreatedBy.trim();
2711 oData.CreatedDate = (this.getView().getModel("ManageWO").getData().CreatedDate == null) ? "" : this.getView().getModel("ManageWO").getData()
2712 .CreatedDate.trim();
2713 oData.CreatedDateFrom = "";
2714 oData.CreatedDateTo = "";
2715 oData.CreatedTime = (this.getView().getModel("ManageWO").getData().CreatedTime == null) ? "" : this.getView().getModel("ManageWO").getData()
2716 .CreatedTime.trim();
2717 oData.DepartPort = (this.getView().byId("vIdCreateWOHeaderFormDeparturePort").getSelectedKey() == null) ? "" : this.getView().byId(
2718 "vIdCreateWOHeaderFormDeparturePort").getSelectedKey().trim();
2719 oData.DepartPortDesc = (this.getView().byId("vIdCreateWOHeaderFormDeparturePort").getSelectedItem().getText() == null) ? "" : this.getView()
2720 .byId("vIdCreateWOHeaderFormDeparturePort").getSelectedItem().getText().trim();
2721 oData.DocDate = (this.getView().byId("vIdCreateWOHeaderFormDocDate").getValue() == null) ? "" : this.getView().byId(
2722 "vIdCreateWOHeaderFormDocDate").getValue().trim();
2723
2724 oData.DTContractName = (this.getView().byId("vManageWODeliveryContractName").getValue() == null) ? "" : this.getView().byId(
2725 "vManageWODeliveryContractName").getValue().trim();
2726 oData.DTDelAddress = (this.getView().byId("vManageWODeliveryAddress").getValue() == null) ? "" : this.getView().byId(
2727 "vManageWODeliveryAddress").getValue().trim();
2728 oData.DTDelComp = (this.getView().byId("vManageWODeliveryCompany").getValue() == null) ? "" : this.getView().byId(
2729 "vManageWODeliveryCompany").getValue().trim();
2730 oData.DTDelCountry = (this.getView().byId("vManageWODeliverycountry").getValue() == null) ? "" : this.getView().byId(
2731 "vManageWODeliverycountry").getValue().trim();
2732 oData.DTDelPosCal = (this.getView().byId("vManageWODeliveryPostalCode").getValue() == null) ? "" : this.getView().byId(
2733 "vManageWODeliveryPostalCode").getValue().trim();
2734 oData.DTFax = (this.getView().byId("vManageWODeliveryFax").getValue() == null) ? "" : this.getView().byId(
2735 "vManageWODeliveryFax").getValue().trim();
2736 oData.DTMail = (this.getView().byId("vManageWODeliveryEmail").getValue() == null) ? "" : this.getView().byId(
2737 "vManageWODeliveryEmail").getValue().trim();
2738 oData.DTProvince = (this.getView().byId("vManageWODeliveryProvince").getValue() == null) ? "" : this.getView().byId(
2739 "vManageWODeliveryProvince").getValue().trim();
2740 oData.DTTel = (this.getView().byId("vManageWODeliveryTel").getValue() == null) ? "" : this.getView().byId(
2741 "vManageWODeliveryTel").getValue().trim();
2742
2743 oData.EntryDoc = (this.getView().byId("vIdCreateWOHeaderFormEntryDocument").getValue() == null) ? "" : this.getView().byId(
2744 "vIdCreateWOHeaderFormEntryDocument").getValue().trim();
2745 oData.eRequestDatefrom = "";
2746 oData.eRequestDateto = "";
2747 oData.eRequestNo = "";
2748 oData.eRequestProject = (this.getView().byId("vIdCreateWOHeaderFormeReqProject").getValue() == null) ? "" : this.getView().byId(
2749 "vIdCreateWOHeaderFormeReqProject").getValue().trim();
2750 oData.eRequestType = "";
2751 oData.ETADate = (this.getView().getModel("ManageWO").getData().ETADate == null) ? "" : this.getView().getModel("ManageWO").getData()
2752 .ETADate.trim();
2753 oData.ETATime = (this.getView().getModel("ManageWO").getData().ETATime == null) ? "" : this.getView().getModel("ManageWO").getData()
2754 .ETATime.trim();
2755 oData.ETDDate = (this.getView().getModel("ManageWO").getData().ETDDate == null) ? "" : this.getView().getModel("ManageWO").getData()
2756 .ETDDate.trim();
2757 oData.ETDTime = (this.getView().getModel("ManageWO").getData().ETDTime == null) ? "" : this.getView().getModel("ManageWO").getData()
2758 .ETDTime.trim();
2759 oData.FinalDestination = (this.getView().byId("vIdCreateWOHeaderFormFinalDest").getValue() == null) ? "" : this.getView().byId(
2760 "vIdCreateWOHeaderFormFinalDest").getValue().trim();
2761 oData.Fumigate = "";
2762 oData.GreenLight = (this.getView().byId("vIdCreateWOHeaderFormGreenLight").getSelected()) ? "X" : "";
2763 oData.EntryDocDate = (this.getView().byId("vIdCreateWOHeaderFormEntryDocumentDate").getValue() == null) ? "" : this.getView().byId(
2764 "vIdCreateWOHeaderFormEntryDocumentDate").getValue().trim();
2765 oData.Incoterm = (this.getView().byId("vManageWODeliveryIncoterms").getValue() == null) ? "" : this.getView().byId(
2766 "vManageWODeliveryIncoterms").getValue().trim();
2767 oData.IncotermPlace = (this.getView().byId("vManageWODeliveryIncotermPlace").getValue() == null) ? "" : this.getView().byId(
2768 "vManageWODeliveryIncotermPlace").getValue().trim();
2769
2770 oData.CostInvNo = (this.getView().byId("vIdManageWOFormCostBillingInvoiceNumber").getValue() == null) ? "" : this.getView().byId(
2771 "vIdManageWOFormCostBillingInvoiceNumber").getValue().trim();
2772 oData.PTTEPRegisDate = (this.getView().byId("vIdManageWOFormCostRegisterDate").getValue() == null) ? "" : this.getView().byId(
2773 "vIdManageWOFormCostRegisterDate").getValue().trim();
2774 oData.PTTEPDueDate = (this.getView().byId("vIdManageWOFormCostPaymentDueDate").getValue() == null) ? "" : this.getView().byId(
2775 "vIdManageWOFormCostPaymentDueDate").getValue().trim();
2776 oData.Weight = (this.getView().byId("vIdManageWOFormCostWeightPercent").getValue() == null) ? "" : this.getView().byId(
2777 "vIdManageWOFormCostWeightPercent").getValue().trim();
2778 oData.InvSeq = (this.getView().byId("vIdManageWOFormCostInvoiceSeqNumber").getSelectedKey() == null) ? "" : this.getView().byId(
2779 "vIdManageWOFormCostInvoiceSeqNumber").getSelectedKey().trim();
2780 oData.InvType = (this.getView().byId("vIdManageWOFormCostType").getSelectedKey() == null) ? "" : this.getView().byId(
2781 "vIdManageWOFormCostType").getSelectedKey().trim();
2782
2783 oData.ConfirmE1 = "";
2784 var sConfirmE1 = this.getView().byId("vIdManageWOFormCostConfirmEstimateCost").getSelected();
2785 if (sConfirmE1) {
2786 oData.ConfirmE1 = "X";
2787 }
2788
2789 //N023 for PO Service
2790 //get multi-value from project
2791 var oViewPOSerview = this.getView().byId("vIdManageWOFormCostPOService");
2792 var aPOService = [];
2793 var aTokenPOService = oViewPOSerview.getTokens();
2794 for (var i = 0; i < aTokenPOService.length; i++) {
2795 var sKey = aTokenPOService[i].getKey();
2796 if (sKey != null) {
2797 sKey = sKey;
2798 } else {
2799 sKey = "";
2800 }
2801
2802 aPOService.push({
2803 Key: sKey
2804 });
2805 }
2806
2807 oData.ECCN023 = aPOService;
2808
2809 oData.IsDraft = (this.getView().getModel("ManageWO").getData().IsDraft == null) ? "" : this.getView().getModel("ManageWO").getData()
2810 .IsDraft.trim();
2811 oData.IsFC = (this.getView().getModel("ManageWO").getData().IsFC == null) ? "" : this.getView().getModel("ManageWO").getData()
2812 .IsFC.trim();
2813 oData.IsWO = (this.getView().getModel("ManageWO").getData().IsWO == null) ? "" : this.getView().getModel("ManageWO").getData()
2814 .IsWO.trim();
2815 oData.MessageText = "";
2816 oData.MessageType = "";
2817 oData.ModeOfTrans = (this.getView().byId("vIdCreateWOHeaderFormModeOfTransport").getSelectedKey() == null) ? "" : this.getView().byId(
2818 "vIdCreateWOHeaderFormModeOfTransport").getSelectedKey().trim();
2819 oData.NPContractName = (this.getView().byId("vManageWONotifyPartyContractName").getValue() == null) ? "" : this.getView().byId(
2820 "vManageWONotifyPartyContractName").getValue().trim();
2821 oData.NPDelAddress = (this.getView().byId("vManageWONotifyPartyAddress").getValue() == null) ? "" : this.getView().byId(
2822 "vManageWONotifyPartyAddress").getValue().trim();
2823 oData.NPDelComp = (this.getView().byId("vManageWONotifyPartyCompany").getValue() == null) ? "" : this.getView().byId(
2824 "vManageWONotifyPartyCompany").getValue().trim();
2825 oData.NPDelCountry = (this.getView().byId("vManageWONotifyPartycountry").getValue() == null) ? "" : this.getView().byId(
2826 "vManageWONotifyPartycountry").getValue().trim();
2827 oData.NPDelPosCal = (this.getView().byId("vManageWONotifyPartyPostalCode").getValue() == null) ? "" : this.getView().byId(
2828 "vManageWONotifyPartyPostalCode").getValue().trim();
2829 oData.NPFax = (this.getView().byId("vManageWONotifyPartyFax").getValue() == null) ? "" : this.getView().byId(
2830 "vManageWONotifyPartyFax").getValue().trim();
2831 oData.NPMail = (this.getView().byId("vManageWONotifyPartyEmail").getValue() == null) ? "" : this.getView().byId(
2832 "vManageWONotifyPartyEmail").getValue().trim();
2833 oData.NPProvince = (this.getView().byId("vManageWONotifyPartyProvince").getValue() == null) ? "" : this.getView().byId(
2834 "vManageWONotifyPartyProvince").getValue().trim();
2835 oData.NPTel = (this.getView().byId("vManageWONotifyPartyTel").getValue() == null) ? "" : this.getView().byId(
2836 "vManageWONotifyPartyTel").getValue().trim();
2837 oData.OrderDesc = (this.getView().getModel("ManageWO").getData().OrderDesc == null) ? "" : this.getView().getModel("ManageWO").getData()
2838 .OrderDesc.trim();
2839 oData.OrderType = (this.getView().byId("vIdCreateWOHeaderFormOrderType").getSelectedKey() == null) ? "" : this.getView().byId(
2840 "vIdCreateWOHeaderFormOrderType").getSelectedKey().trim();
2841 oData.PickUpLocation = (this.getView().byId("vIdCreateWOHeaderFormPickupLocation").getValue() == null) ? "" : this.getView().byId(
2842 "vIdCreateWOHeaderFormPickupLocation").getValue().trim();
2843 oData.Project = (this.getView().byId("vIdCreateWOHeaderFormProject").getSelectedKey() == null) ? "" : this.getView().byId(
2844 "vIdCreateWOHeaderFormProject").getSelectedKey().trim();
2845 oData.ProjectDesc = (this.getView().byId("vIdCreateWOHeaderFormProject").getSelectedItem().getText() == null) ? "" : this.getView()
2846 .byId(
2847 "vIdCreateWOHeaderFormProject").getSelectedItem().getText().trim();
2848 oData.PurposeExport = (this.getView().byId("vIdCreateWOHeaderFormPurposeExport").getValue() == null) ? "" : this.getView().byId(
2849 "vIdCreateWOHeaderFormPurposeExport").getValue().trim();
2850 oData.QuotationNo = (this.getView().byId("vIdCreateWOHeaderFormQuotationNo").getValue() == null) ? "" : this.getView().byId(
2851 "vIdCreateWOHeaderFormQuotationNo").getValue().trim();
2852
2853 oData.SubMot = (this.getView().byId("vIdCreateWOHeaderFormSubMot").getSelectedKey() == null) ? "" : this.getView().byId(
2854 "vIdCreateWOHeaderFormSubMot").getSelectedKey().trim();
2855
2856 var sArriveDateTime = this.getView().byId("vIdCreateWOHeaderFormReqArrivDateTime").getValue().trim();
2857 var sDepartureDateTime = this.getView().byId("vIdCreateWOHeaderFormReqDepartureDateTime").getValue().trim();
2858
2859 if (sArriveDateTime.length > 0) {
2860 var aArriveDateTime = this.fnSplitString(sArriveDateTime, " ");
2861 if (aArriveDateTime.length > 0) {
2862 oData.RADDate = aArriveDateTime[0];
2863 oData.RADTime = aArriveDateTime[1];
2864 }
2865 }
2866
2867 if (sDepartureDateTime.length > 0) {
2868 var aDepartureDateTime = this.fnSplitString(sDepartureDateTime, " ");
2869 if (aDepartureDateTime.length > 0) {
2870 oData.RDDDate = aDepartureDateTime[0];
2871 oData.RDDTime = aDepartureDateTime[1];
2872 }
2873 }
2874
2875 oData.ReferenceOnly = (this.getView().byId("vIdCreateWOHeaderFormReferenceOnly").getSelected()) ? "X" : "";
2876 oData.Remark = (this.getView().byId("vIdCreateWOHeaderFormRemark").getValue() == null) ? "" : this.getView().byId(
2877 "vIdCreateWOHeaderFormRemark").getValue().trim();
2878 oData.Requisitioner = (this.getView().byId("vIdCreateWOFooterFormRequisitioner").getTooltip() == null) ? "" : this.getView().byId(
2879 "vIdCreateWOFooterFormRequisitioner").getTooltip().trim();
2880 oData.ShipMethod = (this.getView().byId("vIdCreateWOHeaderFormShippingMethod").getSelectedKey() == null) ? "" : this.getView().byId(
2881 "vIdCreateWOHeaderFormShippingMethod").getSelectedKey().trim();
2882 oData.SMCost = "";
2883 oData.SMCostCur = "";
2884 oData.SMCreatedDateFrom = "";
2885 oData.SMCreatedDateTo = "";
2886 oData.SMID = "";
2887 oData.SMNO = "";
2888 oData.SMRemak = "";
2889 oData.SMStatus = "";
2890 oData.StatusID = "";
2891 oData.ToCountry = (this.getView().byId("vIdCreateWOHeaderFormToCountry").getValue() == null) ? "" : this.getView().byId(
2892 "vIdCreateWOHeaderFormToCountry").getValue().trim();
2893 oData.TotalPackage = "";
2894 oData.TotalWeight = "";
2895 oData.TotalWeightUnit = "";
2896 oData.User = "";
2897 oData.VenderName = "";
2898 oData.WorkOrderID = (this.getView().getModel("ManageWO").getData().WorkOrderID == null) ? "" : this.getView().getModel("ManageWO").getData()
2899 .WorkOrderID.trim();
2900 oData.WorkOrderIns = (this.getView().byId("vIdCreateWOHeaderFormWOInstruction").getValue() == null) ? "" : this.getView().byId(
2901 "vIdCreateWOHeaderFormWOInstruction").getValue().trim();
2902 oData.WorkOrderNo = (this.getView().getModel("ManageWO").getData().WorkOrderNo == null) ? "" : this.getView().getModel("ManageWO").getData()
2903 .WorkOrderNo.trim();
2904 oData.WorkOrderStatus = this.getView().getModel("ManageWO").getData().WorkOrderStatus;
2905 oData.WorkOrderStatusDesc = this.getView().getModel("ManageWO").getData().WorkOrderStatusDesc;
2906
2907 //Attachment
2908 var aFileAttachment = [];
2909 var aFileAttachIndex = -1;
2910 var oViewAttachmentModel = this.getView().getModel("Attachment");
2911 var oViewAttachment;
2912 if (oViewAttachmentModel != null) {
2913 oViewAttachment = oViewAttachmentModel.getData();
2914 var oViewAttachPropName = Object.keys(oViewAttachment);
2915 for (var i = 0; i < oViewAttachPropName.length; i++) {
2916 var oCurrentAttach = oViewAttachment[oViewAttachPropName[i]];
2917 if (oCurrentAttach.length > 0) {
2918 aFileAttachIndex = aFileAttachIndex + 1;
2919 aFileAttachment[aFileAttachIndex] = oCurrentAttach[0];
2920 }
2921 }
2922
2923 //then delete property IsNew from aFileAttachment before post
2924 for (var i = 0; i < aFileAttachment.length; i++) {
2925 delete aFileAttachment[i].Icon;
2926 delete aFileAttachment[i].Description;
2927 delete aFileAttachment[i].ReferenceType;
2928
2929 // replace old key for each object
2930 var keys = Object.keys(aFileAttachment[i]);
2931 for (var j = 0; j < keys.length; j++) {
2932 var key = keys[j];
2933 var tempValue = aFileAttachment[i][key];
2934
2935 aFileAttachment[i][key] = tempValue;
2936 }
2937 }
2938 }
2939
2940 //Get workordert item data
2941 var oControlTable = this.getView().byId("vIdManageWOTableWODataEREQ");
2942 var aWorkOrderItemModel = oControlTable.getModel();
2943 var aWorkOrderItemData = null;
2944 var aWorkOrderItemData = [];
2945
2946 if (aWorkOrderItemModel != null) {
2947 aWorkOrderItemData = aWorkOrderItemModel.getData().aReqItem;
2948 }
2949
2950 for (var i = 0; i < aWorkOrderItemData.length; i++) {
2951 delete aWorkOrderItemData[i].bAddEReq;
2952 }
2953
2954 oData.ECCN003 = aWorkOrderItemData;
2955 //End get workorder item data
2956
2957 //Start J++ Package Summary
2958 var oControlTablePackage = this.getView().byId("vIdManageWOTablePackage");
2959 var aPackageSumModel = oControlTablePackage.getModel();
2960 var aPackageSumData = null;
2961 var aPackageSumDataItem = [];
2962 if (aPackageSumModel != null) {
2963 aPackageSumData = aPackageSumModel.getData();
2964 if (aPackageSumData != null) {
2965 aPackageSumDataItem = aPackageSumData.packageItem;
2966 }
2967 }
2968 //End J++
2969
2970 //remove package number from aPackageSumDataItem
2971 for (var i = 0; i < aPackageSumDataItem.length; i++) {
2972 if (aPackageSumDataItem[i].PackageNumber) {
2973 delete aPackageSumDataItem[i].PackageNumber;
2974 }
2975 }
2976
2977 oData.ECCN005 = aPackageSumDataItem; //Package package summary
2978 oData.ECCN006 = aFileAttachment;
2979
2980 /** cost **/
2981 oData.ECCN018 = _aCostWO;
2982
2983 return oData;
2984
2985 },
2986
2987 fnOnAcTionForWO: function(oEvent) {
2988 var sSaveMode = "";
2989 var sId = oEvent.getSource().sId;
2990
2991 var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderStatus;
2992
2993 if (sId.search("vIdBTNDraftWO") > -1) {
2994 if (sCurrentStatus.toUpperCase() === "DRFT") {
2995 sSaveMode = "wo_save";
2996 } else {
2997 sSaveMode = "draft_wo";
2998 }
2999
3000 } else if (sId.search("vIdBTNSubmitWO") > -1) {
3001 sSaveMode = "submit_wo";
3002 } else if (sId.search("vIdBTNSAVE") > -1) {
3003 sSaveMode = "SAVE";
3004 } else if (sId.search("vIdBTNCancelWO") > -1) {
3005 sSaveMode = "cancel";
3006 } else if (sId.search("vIdBTNCorrect") > -1) {
3007 sSaveMode = "Correct";
3008 } else if (sId.search("vIdBTNInCorrect") > -1) {
3009 sSaveMode = "InCorrect";
3010 } else if (sId.search("vIdBTNConfirmActualCost") > -1) {
3011 sSaveMode = "ConfirmActualCost";
3012 }
3013
3014 var sMessageText = this.fnOnGetMessageText(sSaveMode);
3015 this.fnOnConfirmMessageBox(sMessageText, oEvent, sSaveMode);
3016
3017 },
3018 fnOnGetMessageText: function(sSaveMode) {
3019 var sMessageText = "";
3020 switch (sSaveMode.toUpperCase()) {
3021 case "DRAFT_WO":
3022 var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderStatus;
3023 if (sCurrentStatus.toUpperCase() == "DRFT") {
3024 sMessageText = "Do you want to save Work Order?";
3025 } else {
3026 sMessageText = "Do you want to draft Work Order?";
3027 }
3028 break;
3029
3030 case "SUBMIT_WO":
3031 var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderStatus;
3032 sMessageText = "Do you want to submit the Work Order?";
3033 break;
3034
3035 case "WO_SAVE":
3036 sMessageText = "Do you want to save Work Order?";
3037 break;
3038 case "CANCEL":
3039 sMessageText = "Do you want to cancel Work Order?";
3040 break;
3041
3042 default:
3043 break;
3044 }
3045
3046 return sMessageText;
3047 },
3048
3049 //MessageBox
3050 fnOnConfirmMessageBox: function(sMessageText, oEvent, sSaveMode) {
3051 var that = this;
3052
3053 var bCompact = !!this.getView().$().closest(".sapUiSizeCompact").length;
3054 MessageBox.confirm(
3055 sMessageText, {
3056 title: "Confirmation",
3057 styleClass: bCompact ? "sapUiSizeCompact" : "",
3058 onClose: function(oAction) {
3059
3060 if (oAction == "OK" || oAction == "ok") {
3061 that.fnForwardAction(oEvent, sSaveMode);
3062 }
3063 }
3064 }
3065 );
3066
3067 },
3068
3069 fnOnWarningMessageBox: function(sMessageText) {
3070 var bCompact = !!this.getView().$().closest(".sapUiSizeCompact").length;
3071 MessageBox.warning(
3072 sMessageText, {
3073 styleClass: bCompact ? "sapUiSizeCompact" : ""
3074 }
3075 );
3076 },
3077
3078 fnOnSuccessMessageBox: function(sMessageText, bIsNavBack) {
3079 var that = this;
3080 var bCompact = !!this.getView().$().closest(".sapUiSizeCompact").length;
3081 MessageBox.success(
3082 sMessageText, {
3083 title: "Success",
3084 styleClass: bCompact ? "sapUiSizeCompact" : "",
3085 onClose: function(oAction) {
3086
3087 if (oAction == "OK" || oAction == "ok") {
3088 if (bIsNavBack) {
3089 that.fnOnNavBack("");
3090 }
3091 }
3092 }
3093 }
3094 );
3095 },
3096 fnOnErrorMessageBox: function(sMessageText) {
3097 var bCompact = !!this.getView().$().closest(".sapUiSizeCompact").length;
3098 MessageBox.error(
3099 sMessageText, {
3100 title: "Error",
3101 styleClass: bCompact ? "sapUiSizeCompact" : ""
3102 }
3103 );
3104 },
3105 fnOnNavBack: function(oEvent) {
3106
3107 var oPage = this.getView().byId("vIdPageManageWO"); //Get Hold of page
3108 oPage.scrollTo(0, 0);
3109
3110 //history.go(-1);
3111 var bReplace = jQuery.device.is.phone ? false : true;
3112 this.getRouter().navTo("main", {
3113 from: "detailManageWO"
3114 }, bReplace);
3115 },
3116 //End MessageBox
3117
3118 fnShowBusyDialog: function() {
3119 _oBusyDialog.open();
3120 },
3121
3122 fnHideBusyDialog: function() {
3123 jQuery.sap.delayedCall(100, this, function() {
3124 _oBusyDialog.close();
3125 });
3126 },
3127 /**
3128 * Area Field Matrix
3129 */
3130 fnErquestFieldMatrix: function(sStatus, sRefOnly, sRole, oDataErequest, sCheckHeaderRequire) {
3131 var oDataResponseNew = {};
3132 var sMatrixPath = "";
3133 if (sRole == null) {
3134 sRole = "";
3135 }
3136
3137 if (sRole.toUpperCase() == "X") {
3138 sMatrixPath = jQuery.sap.getModulePath("zeccrmanagewo.mockdata", "/WOEreqestFieldMatrix_FC.json");
3139 } else {
3140 return;
3141 }
3142
3143 if (oDataErequest == null) {
3144 oDataErequest = [];
3145 } else if (oDataErequest.results == null) {
3146 oDataErequest = [];
3147 } else {
3148 oDataErequest = oDataErequest.results;
3149 }
3150
3151 if (sCheckHeaderRequire) {
3152 oDataErequest = oDataErequest[0];
3153 }
3154
3155 var oMatrixModel = new sap.ui.model.json.JSONModel();
3156 oMatrixModel.loadData(sMatrixPath, null, false);
3157 var oMatrixData = oMatrixModel.getData();
3158 var oMatrixInstance = {};
3159 if (sRefOnly === "x" || sRefOnly === "x") {
3160 oMatrixInstance = oMatrixData.PTTEP[0].REFERENCEONLY;
3161 } else {
3162 // oMatrixInstance = oMatrixData.PTTEP[0].GREENLIGHT;
3163 }
3164
3165 var aAttributeName = Object.keys(oMatrixInstance);
3166 var oResponseAttributeName = Object.keys(oDataErequest);
3167
3168 var sCurrentStatus = sStatus;
3169 if (sCurrentStatus == null || sCurrentStatus == "") {
3170 sCurrentStatus = "DRFT";
3171 }
3172
3173 sCurrentStatus = sCurrentStatus.toUpperCase();
3174
3175 for (var i = 0; i < aAttributeName.length; i++) {
3176 if (aAttributeName[i].toUpperCase() == sCurrentStatus) {
3177 for (var j = 0; j < oResponseAttributeName.length; j++) {
3178 var oMatrixInstanceStatus = oMatrixInstance[sCurrentStatus];
3179 var oMatrixInstanceStatusName = Object.keys(oMatrixInstanceStatus);
3180 for (var m = 0; m < oMatrixInstanceStatusName.length; m++) {
3181 if (oResponseAttributeName[j] == oMatrixInstanceStatusName[m]) {
3182 var sNewAttr = oResponseAttributeName[j] + _sSuffixEditable;
3183 oDataResponseNew[sNewAttr] = oMatrixInstanceStatus[oMatrixInstanceStatusName[m]];
3184
3185 }
3186 }
3187
3188 }
3189 }
3190
3191 }
3192
3193 return oDataResponseNew;
3194 },
3195 fnFieldMatrix: function(oDataResponse) {
3196 var oDataResponseNew = oDataResponse;
3197 var sMatrixPath = "";
3198
3199 if (oDataResponse.IsFC.toUpperCase() == "X") {
3200 sMatrixPath = jQuery.sap.getModulePath("zeccrmanagewo.mockdata", "/fieldMatrix_FC.json");
3201 } else {
3202 return;
3203 }
3204
3205 var oMatrixModel = new sap.ui.model.json.JSONModel();
3206 oMatrixModel.loadData(sMatrixPath, null, false);
3207 var oMatrixData = oMatrixModel.getData();
3208 var oMatrixInstance = {};
3209 if (oDataResponse.ReferenceOnly === "x" || oDataResponse.ReferenceOnly === "x") {
3210 oMatrixInstance = oMatrixData.PTTEP[0].REFERENCEONLY;
3211 } else {
3212 // oMatrixInstance = oMatrixData.PTTEP[0].GREENLIGHT;
3213 }
3214
3215 var aAttributeName = Object.keys(oMatrixInstance);
3216 var oResponseAttributeName = Object.keys(oDataResponse);
3217
3218 var sCurrentStatus = oDataResponse.WorkOrderStatus;
3219 if (sCurrentStatus == null || sCurrentStatus == "") {
3220 sCurrentStatus = "DRFT";
3221 }
3222
3223 sCurrentStatus = sCurrentStatus.toUpperCase();
3224
3225 for (var i = 0; i < aAttributeName.length; i++) {
3226 if (aAttributeName[i].toUpperCase() == sCurrentStatus) {
3227 for (var j = 0; j < oResponseAttributeName.length; j++) {
3228 var oMatrixInstanceStatus = oMatrixInstance[sCurrentStatus];
3229 var oMatrixInstanceStatusName = Object.keys(oMatrixInstanceStatus);
3230 for (var m = 0; m < oMatrixInstanceStatusName.length; m++) {
3231 if (oResponseAttributeName[j] == oMatrixInstanceStatusName[m]) {
3232 var sNewAttr = oResponseAttributeName[j] + _sSuffixEditable;
3233 oDataResponseNew[sNewAttr] = oMatrixInstanceStatus[oMatrixInstanceStatusName[m]];
3234 }
3235 }
3236
3237 }
3238 }
3239
3240 }
3241
3242 return oDataResponseNew;
3243 },
3244
3245 fnFieldMatrixRequireFields: function(oDataResponse) {
3246 var aFieldsResponse = [];
3247
3248 var oDataResponseNew = oDataResponse;
3249 var sMatrixPath = "";
3250 if (oDataResponse.IsFC.toUpperCase() == "X") {
3251 sMatrixPath = jQuery.sap.getModulePath("zeccrmanagewo.mockdata", "/fieldMatrix_FC.json");
3252 } else {
3253 return;
3254 }
3255
3256 var oMatrixModel = new sap.ui.model.json.JSONModel();
3257 oMatrixModel.loadData(sMatrixPath, null, false);
3258 var oMatrixData = oMatrixModel.getData();
3259
3260 var oMatrixInstance = {};
3261 if (oDataResponse.ReferenceOnly === "x" || oDataResponse.ReferenceOnly === "x") {
3262 oMatrixInstance = oMatrixData.PTTEP[0].REFERENCEONLY;
3263 } else {
3264 // oMatrixInstance = oMatrixData.PTTEP[0].GREENLIGHT;
3265 }
3266
3267 var aAttributeName = Object.keys(oMatrixInstance);
3268 var oResponseAttributeName = Object.keys(oDataResponse);
3269
3270 var sCurrentStatus = oDataResponse.WorkOrderStatus.toUpperCase();
3271 if (sCurrentStatus == null || sCurrentStatus == "") {
3272 sCurrentStatus = "DRFT";
3273 }
3274
3275 for (var i = 0; i < aAttributeName.length; i++) {
3276 if (aAttributeName[i].toUpperCase() == sCurrentStatus) {
3277 for (var j = 0; j < oResponseAttributeName.length; j++) {
3278 var oMatrixInstanceStatus = oMatrixInstance[sCurrentStatus];
3279 var oMatrixInstanceStatusName = Object.keys(oMatrixInstanceStatus);
3280 for (var m = 0; m < oMatrixInstanceStatusName.length; m++) {
3281 if (oResponseAttributeName[j] == oMatrixInstanceStatusName[m]) {
3282 var sFieldValue = oMatrixInstanceStatus[oMatrixInstanceStatusName[m]];
3283 if (sFieldValue == "R" || sFieldValue == "r") {
3284 aFieldsResponse.push(oMatrixInstanceStatusName[m]);
3285 }
3286 }
3287 }
3288
3289 }
3290 }
3291
3292 }
3293
3294 return aFieldsResponse;
3295 },
3296 fnGetFiledIdByAttributes: function(aAttributes) {
3297 var aFieldsResponse = [];
3298
3299 var sMatrixPath = "";
3300
3301 sMatrixPath = jQuery.sap.getModulePath("zeccrmanagewo.mockdata", "/mapFields.json");
3302
3303 var oMatrixModel = new sap.ui.model.json.JSONModel();
3304 oMatrixModel.loadData(sMatrixPath, null, false);
3305 var oMatrixData = oMatrixModel.getData();
3306
3307 var oMatrixInstance = oMatrixData.Fields;
3308
3309 var aAttributeName = Object.keys(oMatrixInstance);
3310
3311 for (var i = 0; i < aAttributeName.length; i++) {
3312 for (var j = 0; j < aAttributes.length; j++) {
3313 if (aAttributeName[i].toUpperCase() == aAttributes[j].toUpperCase()) {
3314 aFieldsResponse.push(oMatrixInstance[aAttributeName[i]]);
3315 }
3316
3317 }
3318 }
3319
3320 return aFieldsResponse;
3321 },
3322 /*
3323 ** Validation Area
3324 */
3325 fnVaidateRequireInput: function(aControls) {
3326 var bIsValid = true;
3327 var that = this;
3328 var aExcepControlNotRequire = [];
3329
3330 aControls.forEach(function(item) {
3331
3332 if (aExcepControlNotRequire.indexOf(item) < 0) {
3333
3334 var sValue = "";
3335 var oControl = that.getView().byId(item);
3336 var sType = oControl.getMetadata().getName();
3337 if ((sType.search("ComboBox") >= 0) || (sType.search("Select") >= 0)) {
3338 sValue = oControl.getSelectedKey();
3339 } else if (sType.search("CheckBox") >= 0) {
3340 var sValueCheck = oControl.getSelected();
3341 if (sValueCheck) {
3342 sValue = "X";
3343 }
3344 } else if (sType.search("MultiInput") >= 0) {
3345 if (oControl.sId.search("vIdCreateWOHeaderFormContractItemDetail") >= 0) {
3346 var oViewContractItem = that.getView().byId("vIdCreateWOHeaderFormContractItemDetail");
3347 var sContractItem = oViewContractItem.getTooltip();
3348 if (sContractItem == null) {
3349 sValue = "";
3350 } else if (parseInt(sContractItem) < 1) {
3351 sValue = "";
3352 } else {
3353 sValue = sContractItem.trim();
3354 }
3355
3356 } else if (oControl.sId.search("vIdCreateWOHeaderFormContractItem") >= 0) {
3357 var sContractItem = that.getView().byId("vIdCreateWOHeaderFormContractItem").getTooltip();
3358
3359 if (sContractItem == null) {
3360 sValue = "";
3361 } else if (parseInt(sContractItem) < 1) {
3362 sValue = "";
3363 } else {
3364 sValue = sContractItem.trim();
3365 }
3366 } else if (oControl.sId.search("vIdCreateWOFooterFormRequisitioner") >= 0) {
3367 var sContractItem = that.getView().byId("vIdCreateWOFooterFormRequisitioner").getTooltip();
3368 if (sContractItem == null) {
3369 sValue = "";
3370 } else {
3371 sValue = sContractItem.trim();
3372 }
3373 } else {
3374 sValue = oControl.getValue();
3375
3376 }
3377
3378 } else {
3379 sValue = oControl.getValue();
3380 }
3381
3382 if (sValue != null) {
3383 sValue = sValue.trim();
3384 } else {
3385 sValue = "";
3386 }
3387
3388 if (sValue.length <= 0) {
3389 bIsValid = false;
3390 that.fnSetValueStateError(oControl);
3391 } else {
3392 that.fnSetValueStateNone(oControl);
3393 }
3394 }
3395 });
3396
3397 return bIsValid;
3398
3399 },
3400
3401 fnValidateRequireInputOptional: function() {
3402 var bIsValid = true;
3403 var sModeOfTrans = (this.getView().byId("vIdCreateWOHeaderFormModeOfTransport").getSelectedKey() == null) ? "" : this.getView().byId(
3404 "vIdCreateWOHeaderFormModeOfTransport").getSelectedKey().trim();
3405 var sSubMoT = (this.getView().byId("vIdCreateWOHeaderFormSubMot").getSelectedKey() == null) ? "" : this.getView().byId(
3406 "vIdCreateWOHeaderFormSubMot").getSelectedKey().trim();
3407
3408 if (sModeOfTrans.toUpperCase() == "ES") {
3409 if (sSubMoT.length < 1) {
3410 bIsValid = false;
3411 this.fnSetValueStateError(this.getView().byId("vIdCreateWOHeaderFormSubMot"));
3412 } else {
3413 this.fnSetValueStateNone(this.getView().byId("vIdCreateWOHeaderFormSubMot"));
3414 }
3415 } else {
3416 this.fnSetValueStateNone(this.getView().byId("vIdCreateWOHeaderFormSubMot"));
3417 }
3418
3419 return bIsValid;
3420 },
3421 fnCrossValidateQuotationContractItem: function() {
3422 var bValidQuo = true;
3423
3424 var oControlQuo = this.getView().byId("vIdCreateWOHeaderFormQuotationNo");
3425 var oControlContractItem = this.getView().byId("vIdCreateWOHeaderFormContractItem");
3426 var oControlContractItemDetail = this.getView().byId("vIdCreateWOHeaderFormContractItemDetail");
3427
3428 var sQuoValue = oControlQuo.getValue();
3429 var sContractItem = oControlContractItem.getValue();
3430 var sContractItemDetail = oControlContractItemDetail.getValue();
3431
3432 if (sQuoValue != null) {
3433 sQuoValue = sQuoValue.trim();
3434 } else {
3435 sQuoValue = "";
3436 }
3437
3438 if (sContractItem != null) {
3439 sContractItem = sContractItem.trim();
3440 } else {
3441 sContractItem = "";
3442 }
3443
3444 if (sContractItemDetail != null) {
3445 sContractItemDetail = sContractItemDetail.trim();
3446 } else {
3447 sContractItemDetail = "";
3448 }
3449
3450 if (sQuoValue.length > 0) //not require contract item
3451 {
3452 oControlContractItem.setRequired(false);
3453 oControlContractItemDetail.setRequired(false);
3454 this.fnSetValueStateNone(oControlContractItem);
3455 this.fnSetValueStateNone(oControlContractItemDetail);
3456
3457 } else // require contract item detail
3458 {
3459
3460 if (sContractItem.length > 0) {
3461 oControlContractItem.setRequired(false);
3462 this.fnSetValueStateNone(oControlContractItem);
3463 } else {
3464 oControlContractItem.setRequired(true);
3465 this.fnSetValueStateError(oControlContractItem);
3466 }
3467
3468 if (sContractItemDetail.length > 0) {
3469 oControlContractItemDetail.setRequired(false);
3470 this.fnSetValueStateNone(oControlContractItemDetail);
3471 } else {
3472 oControlContractItemDetail.setRequired(true);
3473 this.fnSetValueStateError(oControlContractItemDetail);
3474 }
3475
3476 }
3477
3478 if (sQuoValue.length > 0 || ((sContractItem.length > 0) && (sContractItemDetail.length > 0))) {
3479 bValidQuo = true;
3480 } else {
3481 bValidQuo = false;
3482 }
3483
3484 return bValidQuo;
3485 },
3486
3487 fnValidateWOErequestData: function(oWorkOrderData) {
3488 var sIsValid = true;
3489
3490 if (oWorkOrderData == null) {
3491 oWorkOrderData = [];
3492 } else {
3493 oWorkOrderData = oWorkOrderData;
3494 }
3495
3496 var oViewWorkOrderDataEditableField = [];
3497
3498 var oViewWOData = this.getView().getModel("ManageWOErequest");
3499 if (oViewWOData != null) {
3500 oViewWorkOrderDataEditableField = oViewWOData.getData();
3501 }
3502 var oViewWorkOrderAttributeName = [];
3503 oViewWorkOrderAttributeName = Object.keys(oViewWorkOrderDataEditableField);
3504 if (oViewWorkOrderAttributeName == null) {
3505 oViewWorkOrderAttributeName = [];
3506 }
3507
3508 var aDataRequireField = [];
3509 for (var j = 0; j < oViewWorkOrderAttributeName.length; j++) {
3510 if (oViewWorkOrderDataEditableField[oViewWorkOrderAttributeName[j]] == "R" || oViewWorkOrderDataEditableField[
3511 oViewWorkOrderAttributeName[j]] == "r") {
3512 aDataRequireField.push(oViewWorkOrderAttributeName[j]);
3513 }
3514 }
3515
3516 for (var i = 0; i < oWorkOrderData.length; i++) {
3517 for (var j = 0; j < aDataRequireField.length; j++) {
3518 var sNeedAttribute = aDataRequireField[j].replace(_sSuffixEditable, "");
3519 if (sNeedAttribute == null) {
3520 sNeedAttribute = "";
3521 }
3522
3523 if (oWorkOrderData[i][sNeedAttribute] == null) {
3524 oWorkOrderData[i][sNeedAttribute] = "";
3525 }
3526
3527 if (oWorkOrderData[i][sNeedAttribute].length < 1) {
3528 sIsValid = false;
3529 }
3530 }
3531 }
3532
3533 return sIsValid;
3534 },
3535
3536 fnClearValidateRequire: function(aControlIsHaveValue) {
3537 var that = this;
3538 aControlIsHaveValue.forEach(function(item) {
3539 var oControl = that.getView().byId(item);
3540 that.fnSetValueStateNone(oControl);
3541 });
3542 },
3543 fnClearValidateRequireOptionalField: function() {
3544 this.fnSetValueStateNone(this.getView().byId("vIdCreateWOHeaderFormContractItem"));
3545 this.fnSetValueStateNone(this.getView().byId("vIdCreateWOHeaderFormContractItemDetail"));
3546 this.fnSetValueStateNone(this.getView().byId("vIdCreateWOHeaderFormSubMot"));
3547 this.fnSetValueStateNone(this.getView().byId("vIdCreateWOHeaderFormQuotationNo"));
3548 },
3549 fnSetValueStateSuccess: function(oControl) {
3550 oControl.setValueState(sap.ui.core.ValueState.Success);
3551 },
3552 fnSetValueStateError: function(oControl) {
3553 oControl.setValueState(sap.ui.core.ValueState.Error);
3554 },
3555 fnSetValueStateNone: function(oControl) {
3556 oControl.setValueState(sap.ui.core.ValueState.None);
3557 },
3558 fnSetValueStateText: function(oControl, sText) {
3559 oControl.setValueStateText(sText);
3560 },
3561
3562 /**
3563 ** Http Post
3564 **/
3565 fnForwardAction: function(oEvent, sSaveMode) {
3566 var oData = this.fnGetInputs(sSaveMode);
3567
3568 var bIsvalidRequireField = true;
3569 var bIsValidateRequireOptional = true;
3570 var bIsvaidRequireAttachFile = true;
3571 var bIsCrossValidateOautation = true;
3572 var bIsValidateWOErequestData = true;
3573 var aProbabilitySavemodeRequire = ["SUBMIT_WO"];
3574
3575 var aProbabilitySavemodeRequireTemp = aProbabilitySavemodeRequire.toString().toUpperCase();
3576 var bIsExists = aProbabilitySavemodeRequireTemp.indexOf(sSaveMode.toUpperCase());
3577
3578 if (bIsExists > -1) {
3579
3580 //validate require fields
3581 var oThisViewModel = this.getView().getModel("ManageWO");
3582 if (oThisViewModel != null) {
3583 var oThisViewData = oThisViewModel.getData();
3584 var aRequireFields = this.fnFieldMatrixRequireFields(oThisViewData);
3585
3586 if (aRequireFields.length > 0) {
3587 var aMapAttributes = this.fnGetFiledIdByAttributes(aRequireFields);
3588 bIsvalidRequireField = this.fnVaidateRequireInput(aMapAttributes);
3589
3590 }
3591
3592 bIsValidateRequireOptional = this.fnValidateRequireInputOptional();
3593 bIsCrossValidateOautation = this.fnCrossValidateQuotationContractItem();
3594 bIsValidateWOErequestData = this.fnValidateWOErequestData(oData.ECCN003);
3595 }
3596
3597 //validate attachment
3598 bIsvaidRequireAttachFile = this.fnValidateAttachment(oThisViewModel, oData.ECCN006, sSaveMode);
3599 }
3600
3601 if (bIsvalidRequireField && bIsValidateRequireOptional && bIsCrossValidateOautation) {
3602
3603 if (bIsValidateWOErequestData) {
3604 if (bIsvaidRequireAttachFile) {
3605 //send http-request
3606 this.fnPostHttpRequest(sEntityPath, oData, sSaveMode);
3607 } else {
3608 this.fnOnErrorMessageBox("Please attach required attachment.");
3609 }
3610 } else {
3611 this.fnOnErrorMessageBox("Please fill in Work Order Data.");
3612 }
3613
3614 } else {
3615 this.fnOnErrorMessageBox("Please fill in all required field.");
3616 }
3617
3618 },
3619
3620 fnValidateAttachment: function(oThisViewModel, aECCN006, sSaveMode) {
3621 var bIsValidAttachment = true;
3622 var aSaveModeRequire = ["SUBMIT_WO"];
3623 var aRequireattachment = [];
3624
3625 var aSaveModeRequireUpper = aSaveModeRequire.toString().toUpperCase();
3626 var bIsExists = aSaveModeRequireUpper.indexOf(sSaveMode.toUpperCase());
3627 if (bIsExists > -1) {
3628 aRequireattachment.push("PREALERTDOCUMENT");
3629 }
3630
3631 if (aRequireattachment.length > aECCN006.length) {
3632 bIsValidAttachment = false;
3633 } else {
3634 var aIntersectArray = this.intersectFilters(aECCN006, aRequireattachment);
3635 var aArrayIntersectNew = [];
3636 aIntersectArray.forEach(function(oItem) {
3637 if (oItem.AttachmentGroup != null) {
3638 aArrayIntersectNew.push(oItem.AttachmentGroup.toUpperCase());
3639 }
3640
3641 });
3642 bIsValidAttachment = this.arraysEqual(aRequireattachment, aArrayIntersectNew);
3643 }
3644
3645 return bIsValidAttachment;
3646
3647 },
3648 arraysEqual: function(aArray1, aArray2) {
3649 return JSON.stringify(aArray1) == JSON.stringify(aArray2);
3650 },
3651 intersectFilters: function(passedArray, passedFilter) {
3652 var filteredArray = passedArray.filter(
3653 function(el) {
3654 for (var i = 0; i < passedFilter.length; i++) {
3655 var sGroup = el.AttachmentGroup;
3656 if (sGroup == null) {
3657 sGroup = "";
3658 }
3659 if (sGroup.toUpperCase() == passedFilter[i]) {
3660 return true;
3661 }
3662
3663 }
3664 return false;
3665 }
3666 );
3667 return filteredArray;
3668 },
3669 fnPostHttpRequest: function(sEntity, oData, sSaveMode) {
3670
3671 var that = this;
3672 var oConfig = {
3673 metadataUrlParams: {},
3674 json: true,
3675 loadMetadataAsync: true,
3676 defaultBindingMode: "OneWay",
3677 defaultCountMode: "Inline",
3678 useBatch: false
3679 };
3680 var oDataModel = new sap.ui.model.odata.ODataModel(oDataService, oConfig);
3681
3682 this.fnShowBusyDialog();
3683 jQuery.sap.delayedCall(100, this, function() { // for Show Busy Indicator
3684 oDataModel.create(sEntity, oData, undefined, function(oDataResponse, oResponse) {
3685 that.fnHideBusyDialog();
3686 var bIsNavBack = false;
3687
3688 //clear validation fields
3689 var aControlIsValidate = [];
3690
3691 //get require field and clear if exists required
3692 var aRequireFields = that.fnFieldMatrixRequireFields(oDataResponse);
3693
3694 if (aRequireFields != null) {
3695 if (aRequireFields.length > 0) {
3696 aControlIsValidate = that.fnGetFiledIdByAttributes(aRequireFields);
3697
3698 }
3699 that.fnClearValidateRequire(aControlIsValidate);
3700 that.fnClearValidateRequireOptionalField();
3701 }
3702
3703 var oDataResponseNew = oDataResponse;
3704 var oDataErequestEdiableMatrix = {};
3705 //check Auth
3706 if (oDataResponse.Auth == 0) {
3707 //check ediable fields by methrix
3708 oDataResponseNew = that.fnFieldMatrix(oDataResponse);
3709
3710 //check ediable fields by wo-erequest matrix
3711 var sCheckHeaderRequire = true; //All row of table'e-request same so we use only 1 first row attribute
3712 var oDataErequestEdiableMatrix = that.fnErquestFieldMatrix(oDataResponse.WorkOrderStatus, oDataResponse.ReferenceOnly,
3713 oDataResponse.IsFC, oDataResponse.ECCN003, sCheckHeaderRequire);
3714
3715 } else if (oDataResponse.Auth == 1) {
3716 //set all field to display only
3717
3718 } else {
3719 //no authorize page
3720 }
3721 //end check Auth
3722
3723 /*
3724 * If is default
3725 **/
3726 if (sSaveMode.toUpperCase() === "GETDEFAULT") {
3727
3728 var oResponseModel = new sap.ui.model.json.JSONModel();
3729 oResponseModel.setData(oDataResponseNew);
3730
3731 //setDefault binding to view
3732 that.getView().setModel(oResponseModel, "CreateWO");
3733
3734 var oResponseErequestField = new sap.ui.model.json.JSONModel();
3735 oResponseErequestField.setData(oDataErequestEdiableMatrix);
3736 //set e-request matrix to view
3737 that.getView().setModel(oResponseErequestField, "CreateWOErequest");
3738
3739 sOldDocDate = oDataResponse.DocDate; // old curent date will be store date in format yyyyMMdd
3740 sOldAuthoizeCustomBroker = oDataResponse.AuthorCusBroker;
3741 sOldChargeTo = oDataResponse.ChargeTo;
3742
3743 if (oDataResponse.ECCN009 != null) {
3744 that.fnBindingDropdownControl(oDataResponse.ECCN009, "vIdCreateWOHeaderFormShippingMethod");
3745 }
3746
3747 if (oDataResponse.ECCN010 != null) {
3748 that.fnBindingDropdownControl(oDataResponse.ECCN010, "vIdCreateWOHeaderFormModeOfTransport");
3749
3750 var oResponseModeOfTransData = {};
3751 oResponseModeOfTransData.ECCN008 = oDataResponse.ECCN010;
3752 var oResponseModeOfTransModel = new sap.ui.model.json.JSONModel();
3753 oResponseModeOfTransModel.setData(oResponseModeOfTransData);
3754
3755 //setDefault binding to view
3756 that.getView().setModel(oResponseModeOfTransModel, "oResponseModeOfTransData");
3757 }
3758
3759 if (oDataResponse.ECCN011 != null) {
3760 that.fnBindingDropdownControl(oDataResponse.ECCN011, "vIdCreateWOHeaderFormOrderType");
3761 }
3762
3763 if (oDataResponse.ECCN012 != null) {
3764 that.fnBindingDropdownControl(oDataResponse.ECCN012, "vIdCreateWOHeaderFormAuthorizeCustomBroker");
3765 }
3766 if (oDataResponse.ECCN013 != null) {
3767 that.fnBindingDropdownControl(oDataResponse.ECCN013, "vIdCreateWOHeaderFormCargoType");
3768 }
3769
3770 if (oDataResponse.ECCN014 != null) {
3771 _aAllDeparturePort = oDataResponse.ECCN014;
3772 that.fnBindingDeparturePort(_aAllDeparturePort, "vIdCreateWOHeaderFormDeparturePort");
3773 }
3774
3775 if (oDataResponse.ECCN015 != null) {
3776 that.fnBindingDropdownControl(oDataResponse.ECCN015, "vIdCreateWOHeaderFormAllocationMethod");
3777 }
3778
3779 if (oDataResponse.ECCN016 != null) {
3780 that.fnBindingDropdownControl(oDataResponse.ECCN016, "vIdCreateWOHeaderFormChargeTo");
3781 }
3782
3783 if (oDataResponse.ECCN046 != null) {
3784 that.fnBindingDropdownControl(oDataResponse.ECCN046, "vIdCreateWOHeaderFormProject");
3785 }
3786
3787 //Set unit of dimension
3788 if (oDataResponse.ECCN036 != null) {
3789 that.fnSetSelectedItemViewModel(oDataResponse.ECCN036.results, "oResponseUnitDimension");
3790 }
3791
3792 //Set unit package
3793 if (oDataResponse.ECCN037 != null) {
3794 that.fnSetSelectedItemViewModel(oDataResponse.ECCN037.results, "oResponseUnitPackage");
3795 }
3796
3797 //#Bind Table Area
3798 if (oDataResponse.ECCN003 != null) {
3799 that.fnBindingEreqWOData(oDataResponse.ECCN003);
3800 }
3801 //#End Bind Table Area
3802
3803 } else if (oDataResponse.MessageType === "S" || oDataResponse.MessageType === "s") {
3804
3805 var sOldWorkOrderStatus = that.getView().getModel("CreateWO").getData().WorkOrderStatus;
3806
3807 //rebind model view
3808 var oCurrentViewModel = that.getView().getModel("CreateWO");
3809 oCurrentViewModel.getData().WorkOrderStatus = oDataResponse.WorkOrderStatus;
3810 oCurrentViewModel.getData().WorkOrderStatusDesc = oDataResponse.WorkOrderStatusDesc;
3811 oCurrentViewModel.getData().WorkOrderNo = oDataResponse.WorkOrderNo;
3812 oCurrentViewModel.getData().WorkOrderID = oDataResponse.WorkOrderID;
3813 oCurrentViewModel.getData().InvNo = oDataResponse.InvNo;
3814 oCurrentViewModel.refresh();
3815
3816 if ((oDataResponse.WorkOrderStatus != sOldWorkOrderStatus) && oDataResponse.WorkOrderStatus != "DRFT") {
3817 bIsNavBack = true;
3818 }
3819
3820 that.fnOnSuccessMessageBox(oDataResponse.MessageText, bIsNavBack);
3821
3822 } else if (oDataResponse.MessageType === "E" || oDataResponse.MessageType === "e") {
3823 bIsNavBack = false;
3824 that.fnOnErrorMessageBox(oDataResponse.MessageText, bIsNavBack);
3825 }
3826
3827 /**
3828 * End if
3829 **/
3830
3831 /*
3832 ** Binding WO history
3833 */
3834 if (oDataResponse.ECCN035 != null) {
3835 that.fnBindingWOHistoryToTable(oDataResponse.ECCN035);
3836 }
3837
3838 /*
3839 ** Binding Package Summary
3840 */
3841 if (oDataResponse.ECCN005 != null) {
3842 that.fnBindingPackageSummaryToTable(oDataResponse.ECCN005);
3843 }
3844
3845 /*
3846 ** Binding Attachment
3847 */
3848 if (oDataResponse.ECCN006) {
3849 that.fnBindingAttachment(oDataResponse.ECCN006);
3850 }
3851
3852 }, function(oError) {
3853 //reject(oError);
3854 that.fnHideBusyDialog();
3855 });
3856 });
3857
3858 },
3859
3860 fnPostHttpRequestBF: function(sEntity, oData, sSaveMode) {
3861
3862 var that = this;
3863 var oConfig = {
3864 metadataUrlParams: {},
3865 json: true,
3866 loadMetadataAsync: true,
3867 defaultBindingMode: "OneWay",
3868 defaultCountMode: "Inline",
3869 useBatch: false
3870 };
3871 var oDataModel = new sap.ui.model.odata.ODataModel(oDataService, oConfig);
3872
3873 this.fnShowBusyDialog();
3874 jQuery.sap.delayedCall(100, this, function() { // for Show Busy Indicator
3875 oDataModel.create(sEntity, oData, undefined, function(oDataResponse, oResponse) {
3876 that.fnHideBusyDialog();
3877 var bIsNavBack = false;
3878
3879 //clear validation fields
3880 //var aControlIsValidate = [];
3881
3882 //get require field and clear if exists required
3883 //var aRequireFields = that.fnFieldMatrixRequireFields(oDataResponse);
3884
3885 // if (aRequireFields != null) {
3886 // if (aRequireFields.length > 0) {
3887 // aControlIsValidate = that.fnGetFiledIdByAttributes(aRequireFields);
3888
3889 // }
3890 // that.fnClearValidateRequire(aControlIsValidate);
3891 // that.fnClearValidateRequireOptionalField();
3892 // }
3893
3894 var oDataResponseNew = oDataResponse;
3895 var oDataErequestEdiableMatrix = {};
3896 //check Auth
3897 if (oDataResponse.Auth == 0) {
3898 //check ediable fields by methrix
3899 //oDataResponseNew = that.fnFieldMatrix(oDataResponse);
3900
3901 //check ediable fields by wo-erequest matrix
3902 //var sCheckHeaderRequire = true; //All row of table'e-request same so we use only 1 first row attribute
3903 //var oDataErequestEdiableMatrix = that.fnErquestFieldMatrix(oDataResponse.WorkOrderStatus, oDataResponse.ReferenceOnly,
3904 //oDataResponse.IsFC, oDataResponse.ECCN003, sCheckHeaderRequire);
3905
3906 } else if (oDataResponse.Auth == 1) {
3907 //set all field to display only
3908
3909 } else {
3910 //no authorize page
3911 }
3912 //end check Auth
3913
3914 /*
3915 * If is default
3916 **/
3917 if (sSaveMode.toUpperCase() === "GETDEFAULT") {
3918
3919 var oResponseModel = new sap.ui.model.json.JSONModel();
3920 oResponseModel.setData(oDataResponseNew);
3921
3922 //setDefault binding to view
3923 that.getView().setModel(oResponseModel, "ManageWO");
3924
3925 //#Bind Table Area
3926 if (oDataResponse.ECCN003 != null) {
3927 that.fnBindingEreqWOData(oDataResponse.ECCN003);
3928 }
3929 //#End Bind Table Area
3930
3931 /*
3932 ** Binding WO history
3933 */
3934 if (oDataResponse.ECCN035 != null) {
3935 that.fnBindingWOHistoryToTable(oDataResponse.ECCN035);
3936 }
3937
3938 /*
3939 ** Binding Package Summary
3940 */
3941 if (oDataResponse.ECCN005 != null) {
3942 that.fnBindingPackageSummaryToTable(oDataResponse.ECCN005);
3943 }
3944
3945 /*
3946 ** Binding Attachment
3947 */
3948 if (oDataResponse.ECCN006) {
3949 that.fnBindingAttachment(oDataResponse.ECCN006);
3950 }
3951
3952 } else if (oDataResponse.MessageType === "S" || oDataResponse.MessageType === "s") {
3953
3954 var sOldWorkOrderStatus = that.getView().getModel("ManageWO").getData().WorkOrderStatus;
3955
3956 //rebind model view
3957 var oCurrentViewModel = that.getView().getModel("ManageWO");
3958 oCurrentViewModel.getData().WorkOrderStatus = oDataResponse.WorkOrderStatus;
3959 oCurrentViewModel.getData().WorkOrderStatusDesc = oDataResponse.WorkOrderStatusDesc;
3960 oCurrentViewModel.getData().WorkOrderNo = oDataResponse.WorkOrderNo;
3961 oCurrentViewModel.getData().WorkOrderID = oDataResponse.WorkOrderID;
3962 oCurrentViewModel.getData().InvNo = oDataResponse.InvNo;
3963 oCurrentViewModel.refresh();
3964
3965 if ((oDataResponse.WorkOrderStatus != sOldWorkOrderStatus) && oDataResponse.WorkOrderStatus != "DRFT") {
3966 bIsNavBack = true;
3967 }
3968
3969 that.fnOnSuccessMessageBox(oDataResponse.MessageText, bIsNavBack);
3970
3971 } else if (oDataResponse.MessageType === "E" || oDataResponse.MessageType === "e") {
3972 bIsNavBack = false;
3973 that.fnOnErrorMessageBox(oDataResponse.MessageText, bIsNavBack);
3974 }
3975
3976 /**
3977 * End if
3978 **/
3979
3980 }, function(oError) {
3981 //reject(oError);
3982 that.fnHideBusyDialog();
3983 });
3984 });
3985
3986 },
3987 fnOnGetDataforPost: function(sAction) {
3988 var oView = this.getView();
3989 var oData = {};
3990 // sData.UserName = "p1942950875"; //sap.ushell.Container.getService("UserInfo").getUser().getId();
3991
3992 oData.ActionParameter = sAction;
3993 oData.WorkOrderNo = _WONo; //oView.getModel("ManageWO").getData().WorkOrderNo;
3994
3995 //Test for no recerve from B-End
3996 // if (sAction === "ACK") {
3997 // oData.SMStatus = "ACKL";
3998 // } else if (sAction === "RSU") {
3999 // oData.SMStatus = "RSUB";
4000 // } else if (sAction === "SSA") {
4001 // // oData.SMStatus = "RSUB";
4002 // } else if (sAction === "SSM") {
4003 // // oData.SMStatus = "RSUB";
4004 // } else if (sAction === "SNB") {
4005 // oData.SMStatus = "SENB";
4006 // } else if (sAction === "RGL") {
4007 // oData.SMStatus = "RFGL";
4008 // } else if (sAction === "AGL") {
4009 // oData.SMStatus = "APGL";
4010 // } else if (sAction === "VGL") {
4011 // oData.SMStatus = "REGL";
4012 // } else if (sAction === "RCA") {
4013 // // oData.SMStatus = "RFCA";
4014 // } else if (sAction === "ACA") {
4015 // oData.SMStatus = "APCA";
4016 // } else if (sAction === " REV") {
4017 // oData.SMStatus = "RECA";
4018 // } else if (sAction === "CDL") {
4019 // oData.SMStatus = "DELI"; // confirm Delivery Status ไม่à¹à¸™à¹ˆà¹ƒà¸ˆà¸§à¹ˆà¸²à¸–ูà¸à¸¡à¸±à¹‰à¸¢
4020 // } else
4021 /*
4022 if (sAction === "SCN") {
4023 //Cancel
4024 oData.ActionParameter = sAction;
4025 oData.SMID = oView.getModel("ManageWO").getData().SMID;
4026 oData.SMNO = oView.getModel("ManageWO").getData().SMNO;
4027 oData.SMStatus = "";
4028 if (oView.getModel("ManageWO").getData().SMStatus) {
4029 oData.SMStatus = oView.getModel("ManageWO").getData().SMStatus;
4030 }
4031
4032 oData.SMStatus = "DELS";
4033 oData.ECCN017 = [];
4034 oData.ECCN017 = _aItemsWO;
4035 oData.ECCN035 = [];
4036 oData.ECCN033 = JSON.parse(JSON.stringify(_aVehicleTruck));
4037 oData.ECCN033.map(function(oItem) {
4038 delete oItem.EnabledService;
4039 delete oItem.EnabledRoute;
4040 delete oItem.ServiceLevel;
4041 delete oItem.__metadata;
4042 });
4043 oData.ECCN045 = JSON.parse(JSON.stringify(_aVehicleSea));
4044 oData.ECCN035 = [];
4045 oData.ECCN035 = _aShipmentHistory;
4046 return oData;
4047 }
4048 oData.SMStatus = "";
4049 if (oView.getModel("Shipment").getData().SMStatus) {
4050 oData.SMStatus = oView.getModel("Shipment").getData().SMStatus;
4051 }
4052 oData.SMID = "";
4053 if (oView.getModel("Shipment").getData().SMID) {
4054 oData.SMID = oView.getModel("Shipment").getData().SMID;
4055 }
4056 oData.SMNO = "";
4057 if (oView.getModel("Shipment").getData().SMNO && oView.getModel("Shipment").getData().SMNO !== "Auto Generate") {
4058 oData.SMNO = oView.getModel("Shipment").getData().SMNO;
4059 }
4060
4061 oData.TotalPackage = oView.byId("vIdManageShipmentHeaderFormTotalPackage").getValue();
4062 oData.SMCost = oView.byId(
4063 "vIdManageShipmentHeaderFormCost").getValue();
4064 oData.TotalWeight = oView.byId("vIdManageShipmentHeaderFormTotalWeight").getValue();
4065 var aTemp = [];
4066 if (oView.byId("vIdManageShipmentHeaderFormETD").getValue()) {
4067 aTemp = [];
4068 aTemp = oView.byId("vIdManageShipmentHeaderFormETD").getValue().split(" ");
4069 oData.ETDDate = aTemp[0];
4070 oData.ETDTime = aTemp[1];
4071 // if (oData.ETDTime.length === 4) {
4072 // oData.ETDTime = oData.ETDTime + "00";
4073 // }
4074 }
4075 if (oView.byId("vIdManageShipmentHeaderFormETA").getValue()) {
4076 aTemp = [];
4077 aTemp = oView.byId("vIdManageShipmentHeaderFormETA").getValue().split(" ");
4078 oData.ETADate = aTemp[0];
4079 oData.ETATime = aTemp[1];
4080 // if (oData.ETATime.length === 4) {
4081 // oData.ETATime = oData.ETATime + "00";
4082 // }
4083 }
4084 if (oView.byId("vIdManageShipmentHeaderFormATD").getValue()) {
4085 aTemp = [];
4086 aTemp = oView.byId("vIdManageShipmentHeaderFormATD").getValue().split(" ");
4087 oData.ATDDate = aTemp[0];
4088 oData.ATDTime = aTemp[1];
4089 // if (oData.ATDTime.length === 4) {
4090 // oData.ATDTime = oData.ATDTime + "00";
4091 // }
4092 }
4093 if (oView.byId("vIdManageShipmentHeaderFormATA").getValue()) {
4094 aTemp = [];
4095 aTemp = oView.byId("vIdManageShipmentHeaderFormATA").getValue().split(" ");
4096 oData.ATADate = aTemp[0];
4097 oData.ATATime = aTemp[1];
4098 // if (oData.ATATime.length === 4) {
4099 // oData.ATATime = oData.ATATime + "00";
4100 // }
4101 }
4102 oData.Remark = oView.byId("vIdManageShipmentHeaderFormRemark").getValue();
4103
4104 oData.Fumigate = "";
4105 if (oView.byId("vIdManageShipmentHeaderFormFumigate").getSelected()) {
4106 oData.Fumigate = "X";
4107 }
4108
4109 oData.GreenLight = "";
4110 if (oView.byId("vIdManageShipmentHeaderFormGreenLight").getSelected()) {
4111 oData.GreenLight = "X";
4112 }
4113 oData.DocDate = oView.byId("vIdManageShipmentHeaderFormDocDate").getValue();
4114 oData.PickUpLocation = "";
4115 if (oView.byId("vIdManageShipmentHeaderFormPickupLocation").getValue()) {
4116 oData.PickUpLocation = oView.byId("vIdManageShipmentHeaderFormPickupLocation").getValue();
4117 }
4118 // if (oView.byId("vIdManageShipmentHeaderFormPickupLocation").getTooltip()) {
4119 // oData.PickUpLocation = oView.byId("vIdManageShipmentHeaderFormPickupLocation").getTooltip();
4120 // }
4121 oData.FinalDestination = "";
4122 if (oView.byId("vIdManageShipmentHeaderFormFinalDestination").getValue()) {
4123 oData.FinalDestination = oView.byId("vIdManageShipmentHeaderFormFinalDestination").getValue();
4124 }
4125 oData.ToCountry = "";
4126 if (oView.byId("vIdManageShipmentHeaderFormToCountry").getTooltip()) {
4127 oData.ToCountry = oView.byId("vIdManageShipmentHeaderFormToCountry").getTooltip();
4128 }
4129 // oData.PickupLocation = oView.byId("vIdManageShipmentHeaderFormPickupLocation").getValue();
4130 // oData.FinalDestination = oView.byId("vIdManageShipmentHeaderFormFinalDestination").getValue();
4131 oData.DeliveryBy = "";
4132 if (oView.byId("vIdManageShipmentHeaderFormDeliveryBy").getSelectedKey()) {
4133 oData.DeliveryBy = oView.byId("vIdManageShipmentHeaderFormDeliveryBy").getSelectedKey();
4134 }
4135 if (oView.byId("vIdManageShipmentHeaderFormRequestDepartureDate").getValue()) {
4136 aTemp = [];
4137 aTemp = oView.byId("vIdManageShipmentHeaderFormRequestDepartureDate").getValue().split(" ");
4138 oData.RDDDate = aTemp[0];
4139 oData.RDDTime = aTemp[1];
4140 // if (oData.DepartureTime.length === 4) {
4141 // oData.DepartureTime = oData.DepartureTime + "00";
4142 // }
4143 }
4144 if (oView.byId("vIdManageShipmentHeaderFormRequestArrivalDate").getValue()) {
4145 aTemp = [];
4146 aTemp = oView.byId("vIdManageShipmentHeaderFormRequestArrivalDate").getValue().split(" ");
4147 oData.RADDate = aTemp[0];
4148 oData.RADTime = aTemp[1];
4149 // if (oData.RequestArrivalTime.length === 4) {
4150 // oData.RequestArrivalTime = oData.RequestArrivalTime + "00";
4151 // }
4152 }
4153 oData.FinalDestinationDate = oView.byId("vIdManageShipmentHeaderFormFinalDestinationDate").getValue();
4154 oData.AWB_BL = oView.byId("vIdManageShipmentHeaderFormHAWB").getValue();
4155 oData.ECCN017 = [];
4156 oData.ECCN017 = _aItemsWO;
4157 oData.ECCN035 = [];
4158 oData.ECCN033 = JSON.parse(JSON.stringify(_aVehicleTruck));
4159 oData.ECCN033.map(function(oItem) {
4160 delete oItem.EnabledService;
4161 delete oItem.EnabledRoute;
4162 delete oItem.ServiceLevel;
4163 delete oItem.__metadata;
4164 });
4165 oData.ECCN045 = JSON.parse(JSON.stringify(_aVehicleSea));
4166 oData.ECCN035 = [];
4167 oData.ECCN035 = _aShipmentHistory;
4168 oData.Requisitioner = "";
4169 if (oView.byId("vIdManageShipmentFooterFormRequisitioner").getTooltip()) {
4170 oData.Requisitioner = oView.byId("vIdManageShipmentFooterFormRequisitioner").getTooltip();
4171 }
4172 */
4173
4174 return oData;
4175 },
4176 fnCreateDialogComfirm: function(sText, sState, fnCallBackOk) {
4177 var sTitle = "Confirmation";
4178 var oDialogConfirm = new sap.m.Dialog({
4179 title: sTitle,
4180 type: 'Message',
4181 state: sState,
4182 content: new sap.m.Text({
4183 text: sText
4184 }),
4185 beginButton: new sap.m.Button({
4186 text: 'Yes',
4187 press: function(e) {
4188 fnCallBackOk(e);
4189 oDialogConfirm.close();
4190 }
4191 }),
4192 endButton: new sap.m.Button({
4193 text: 'NO',
4194 press: function() {
4195 oDialogConfirm.close();
4196 }
4197 }),
4198 afterClose: function() {
4199 oDialogConfirm.destroy();
4200 }
4201 });
4202 oDialogConfirm.open();
4203 },
4204
4205 fnPressSave: function(oEvent) {
4206 // Save WSA
4207 var sText = "";
4208 // var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderNo;
4209 var that = this;
4210 if (_WONo) {
4211 sText = "Do you want to save the Work Order ?";
4212 } else {
4213 sText = "Do you want to ... the ?";
4214 }
4215 this.fnCreateDialogComfirm(sText, "None", function() {
4216 var oData = {};
4217 // oData = that.fnOnGetDataforPost("WSA");
4218 oData = that.fnGetInputs("WSA");
4219
4220 that.fnExecuteAction(oData, function(oDataResponse) {
4221 //Post Data for Save Shipment
4222 if (oDataResponse.MessageType === "S") {
4223 that.fnOnSuccessMessageBox(oDataResponse.MessageText);
4224 } else {
4225 that.fnOnErrorMessageBox(oDataResponse.MessageText);
4226 }
4227 }, function(oError) {
4228 if (oError.response) {
4229 that.fnOnErrorMessageBox(oError.response.statusText);
4230 } else {
4231 that.fnOnErrorMessageBox(oError.message);
4232 }
4233 });
4234 });
4235
4236 },
4237 fnPressManualClose: function() {
4238 // Manual Close MNC
4239 var sText = "";
4240 // var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderNo;
4241 var that = this;
4242 if (_WONo) {
4243 sText = "Do you want to Manual Close the Work Order ?";
4244 } else {
4245 sText = "Do you want to ... the ?";
4246 }
4247 this.fnCreateDialogComfirm(sText, "None", function() {
4248 var oData = {};
4249 // oData = that.fnOnGetDataforPost("MNC");
4250 oData = that.fnGetInputs("MNC");
4251
4252 that.fnExecuteAction(oData, function(oDataResponse) {
4253 //Post Data for Save Shipment
4254 if (oDataResponse.MessageType === "S") {
4255 that.fnOnSuccessMessageBox(oDataResponse.MessageText);
4256 } else {
4257 that.fnOnErrorMessageBox(oDataResponse.MessageText);
4258 }
4259 }, function(oError) {
4260 if (oError.response) {
4261 that.fnOnErrorMessageBox(oError.response.statusText);
4262 } else {
4263 that.fnOnErrorMessageBox(oError.message);
4264 }
4265 });
4266 });
4267
4268 },
4269 fnPressCorrect: function() {
4270 // Correct COR
4271 var sText = "";
4272 // var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderNo;
4273 var that = this;
4274 if (_WONo) {
4275 sText = "Do you want to Correct the Work Order ?";
4276 } else {
4277 sText = "Do you want to ... the ?";
4278 }
4279 this.fnCreateDialogComfirm(sText, "None", function() {
4280 var oData = {};
4281 // oData = that.fnOnGetDataforPost("COR");
4282 oData = that.fnGetInputs("COR");
4283
4284 that.fnExecuteAction(oData, function(oDataResponse) {
4285 //Post Data for Save Shipment
4286 if (oDataResponse.MessageType === "S") {
4287 that.fnOnSuccessMessageBox(oDataResponse.MessageText);
4288 } else {
4289 that.fnOnErrorMessageBox(oDataResponse.MessageText);
4290 }
4291 }, function(oError) {
4292 if (oError.response) {
4293 that.fnOnErrorMessageBox(oError.response.statusText);
4294 } else {
4295 that.fnOnErrorMessageBox(oError.message);
4296 }
4297 });
4298 });
4299
4300 },
4301 fnPressInCorrect: function() {
4302 // InCorrect INC
4303 var sText = "";
4304 // var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderNo;
4305 var that = this;
4306 if (_WONo) {
4307 sText = "Do you want to InCorrect the Work Order ?";
4308 } else {
4309 sText = "Do you want to ... the ?";
4310 }
4311 this.fnCreateDialogComfirm(sText, "None", function() {
4312 var oData = {};
4313 // oData = that.fnOnGetDataforPost("INC");
4314 oData = that.fnGetInputs("INC");
4315
4316 that.fnExecuteAction(oData, function(oDataResponse) {
4317 //Post Data for Save Shipment
4318 if (oDataResponse.MessageType === "S") {
4319 that.fnOnSuccessMessageBox(oDataResponse.MessageText);
4320 } else {
4321 that.fnOnErrorMessageBox(oDataResponse.MessageText);
4322 }
4323 }, function(oError) {
4324 if (oError.response) {
4325 that.fnOnErrorMessageBox(oError.response.statusText);
4326 } else {
4327 that.fnOnErrorMessageBox(oError.message);
4328 }
4329 });
4330 });
4331
4332 },
4333 fnPressConfirmActualCost: function() {
4334 // Confirm Actual Cost CAC
4335 var sText = "";
4336 // var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderNo;
4337 var that = this;
4338 if (_WONo) {
4339 sText = "Do you want to Confirm Actual Cost the Work Order ?";
4340 } else {
4341 sText = "Do you want to ... the ?";
4342 }
4343 this.fnCreateDialogComfirm(sText, "None", function() {
4344 var oData = {};
4345 oData = that.fnGetInputs("CAC");
4346 // oData = that.fnOnGetDataforPost("ACA");
4347
4348 that.fnExecuteAction(oData, function(oDataResponse) {
4349 //Post Data for Save Shipment
4350 if (oDataResponse.MessageType === "S") {
4351 that.fnOnSuccessMessageBox(oDataResponse.MessageText);
4352 } else {
4353 that.fnOnErrorMessageBox(oDataResponse.MessageText);
4354 }
4355 }, function(oError) {
4356 if (oError.response) {
4357 that.fnOnErrorMessageBox(oError.response.statusText);
4358 } else {
4359 that.fnOnErrorMessageBox(oError.message);
4360 }
4361 });
4362 });
4363
4364 },
4365 fnPressCancel: function() {
4366 // Cancel CAN
4367
4368 var sText = "";
4369 // var sCurrentStatus = this.getView().getModel("ManageWO").getData().WorkOrderNo;
4370 var that = this;
4371 if (_WONo) {
4372 sText = "Do you want to Delete the Work Order ?";
4373 } else {
4374 sText = "Do you want to ... the ?";
4375 }
4376 this.fnCreateDialogComfirm(sText, "None", function() {
4377 var oData = {};
4378 // oData = that.fnOnGetDataforPost("CAN");
4379 oData = that.fnGetInputs("CAN");
4380
4381 that.fnExecuteAction(oData, function(oDataResponse) {
4382 //Post Data for Save Shipment
4383 if (oDataResponse.MessageType === "S") {
4384 that.fnOnSuccessMessageBox(oDataResponse.MessageText);
4385 } else {
4386 that.fnOnErrorMessageBox(oDataResponse.MessageText);
4387 }
4388 }, function(oError) {
4389 if (oError.response) {
4390 that.fnOnErrorMessageBox(oError.response.statusText);
4391 } else {
4392 that.fnOnErrorMessageBox(oError.message);
4393 }
4394 });
4395 });
4396
4397 },
4398 /** Area Cost **/
4399 fnGetCost: function(oData, aCostWOLocal, aCostPOLocal, aCostPOItemLocal) {
4400 var that = this;
4401 oData = this.fnGetInputs("CCO");
4402 oData.ActionParameter = "CCO";
4403 oData.WorkOrderNo = (this.getView().getModel("ManageWO").getData().WorkOrderNo == null) ? "" : this.getView().getModel("ManageWO").getData()
4404 .WorkOrderNo.trim();
4405 oData.ECCN018 = aCostWOLocal; //Cost WO
4406 oData.ECCN019 = aCostPOLocal; //Cost PO
4407 oData.ECCN020 = aCostPOItemLocal; //Cost PO Item
4408 oData.ECCN021 = []; //PO Number (Header costPO)
4409 oData.ECCN022 = []; //Item (Header costItem)
4410 oData.ECCN023 = []; //PO Service
4411 oData.ECCN024 = []; //Invoice sequence number
4412
4413 this.fnExecuteAction(oData, function(oDataResponse) {
4414 //Get Data for Cost
4415 if (oDataResponse.MessageType === "E") {
4416 that.fnOnErrorMessageBox(oDataResponse.MessageText);
4417 return;
4418 }
4419 var oDataLocal = that.getView().getModel("ManageWO").getData();
4420 oDataLocal.CloseCost = oDataResponse.CloseCost;
4421 oDataLocal.InvoiceSequence = oDataResponse.InvoiceSequence;
4422 oDataLocal.LatestClosed = oDataResponse.LatestClosed;
4423 oDataLocal.CloseCostRefOnly = oDataResponse.CloseCostRefOnly;
4424 if (oDataLocal.Auth === "0") {
4425 // Has Authorized Change
4426 if (oDataLocal.IsFC === "X") {
4427 //oDataLocal = that.fnSetAllDisplayPTTEP(oDataLocal);
4428 //oDataLocal = that.fnSetAllDisplayPTTEP(oDataLocal);
4429 } else {
4430 // oDataLocal = that.fnSetAllDisplayMML(oDataLocal);
4431 //oDataLocal = that.fnSetAllDisplayMML(oDataLocal);
4432 }
4433 } else if (oDataLocal.Auth === "1") {
4434 // Has Authorized Display
4435 //oDataLocal = that.fnSetDisplayOnly(oDataLocal, "D", "D");
4436 } else if (oDataLocal.Auth === "2") {
4437 // No Authorized
4438 that.fnOnErrorMessageBox("No Authorization.");
4439 }
4440
4441 //update field after getcost
4442 var oThisViewModel = that.getView().getModel("ManageWO");
4443 if (oThisViewModel != null) {
4444 var oViewData = oThisViewModel.getData();
4445 if (oViewData != null) {
4446 oViewData.CostInvNo = oDataResponse.CostInvNo;
4447 oViewData.PTTEPRegisDate = oDataResponse.PTTEPRegisDate;
4448 oViewData.PTTEPDueDate = oDataResponse.PTTEPDueDate;
4449 oViewData.InvSeq = oDataResponse.InvSeq;
4450 oViewData.InvType = oDataResponse.InvType;
4451 oViewData.ConfirmE1 = oDataResponse.ConfirmE1;
4452 oViewData.CloseCost = oDataResponse.CloseCost;
4453 oViewData.LatestClosed = oDataResponse.LatestClosed;
4454
4455 var fWeightPO = isNaN(parseFloat(oDataResponse.Weight)) ? 0 : parseFloat(oDataResponse.Weight);
4456 oViewData.Weight = fWeightPO.toFixed(3);
4457
4458 oThisViewModel.refresh();
4459 }
4460 }
4461 that.fnSetCost(oDataResponse);
4462 }, function(oError) {
4463 if (oError.response) {
4464 that.fnOnErrorMessageBox(oError.response.statusText);
4465 } else {
4466 that.fnOnErrorMessageBox(oError.message);
4467 }
4468 });
4469 },
4470
4471 fnOnIconTabbarSelect: function(oEvent) {
4472 if (oEvent.getParameter("key") === "keyCostManage") {
4473 _bIsCost = true;
4474 var oData = {};
4475 this.fnGetCost(oData, [], [], []);
4476 }
4477 },
4478 fnSetCost: function(oModelLocal) {
4479 var sGrandEstCost = oModelLocal.GrandEstCost;
4480 var sGrandActCost = oModelLocal.GrandActCost;
4481 var sGrandVAT = oModelLocal.GrandVAT;
4482 var sGrandTotal = oModelLocal.GrandTotal;
4483
4484 _aCostGrandTotal = [];
4485 _aCostGrandTotal.push({
4486 GrandEstCost: sGrandEstCost,
4487 GrandActCost: sGrandActCost,
4488 GrandVAT: sGrandVAT,
4489 GrandTotal: sGrandTotal
4490 });
4491
4492 //Cost WO
4493 _aCostWO = [];
4494 if (oModelLocal.ECCN018) {
4495 if (oModelLocal.ECCN018.results != null) {
4496 _aCostWO = oModelLocal.ECCN018.results;
4497 }
4498
4499 }
4500
4501 //Cost PO
4502 _aCostPO = [];
4503 if (oModelLocal.ECCN019) {
4504 if (oModelLocal.ECCN019.results != null) {
4505 _aCostPO = oModelLocal.ECCN019.results;
4506 }
4507
4508 }
4509
4510 //Cost PO Item
4511 _aCostPOItem = [];
4512 if (oModelLocal.ECCN020) {
4513 if (oModelLocal.ECCN020.results != null) {
4514 _aCostPOItem = oModelLocal.ECCN020.results;
4515 }
4516
4517 }
4518 // //Cost PO List All in WO
4519 _aCostAllPO = [];
4520 if (oModelLocal.ECCN021) {
4521 if (oModelLocal.ECCN021.results != null) {
4522 _aCostAllPO = oModelLocal.ECCN021.results;
4523 }
4524 }
4525
4526 //Cost PO Item List All in PO
4527 // _aCostAllPOItem = [];
4528 if (oModelLocal.ECCN022) {
4529 if (oModelLocal.ECCN022.results != null) {
4530 _aCostAllPOItem = oModelLocal.ECCN022.results;
4531 }
4532
4533 }
4534
4535 //Cost PO Service (Tokens)
4536 _aCostPOService = [];
4537 if (oModelLocal.ECCN023) {
4538 if (oModelLocal.ECCN023.results != null) {
4539 _aCostPOService = oModelLocal.ECCN023.results;
4540 }
4541
4542 }
4543
4544 //Cost Invoice Sequence
4545 _aCostInvoiceSeq = [];
4546 if (oModelLocal.ECCN024) {
4547 if (oModelLocal.ECCN024.results != null) {
4548 _aCostInvoiceSeq = oModelLocal.ECCN024.results;
4549 }
4550
4551 }
4552
4553 var aCostDropdownPOItem = [];
4554 var sSelectedPOWeightPercent = "0";
4555 var sSelectedPO = "";
4556 if (_aCostAllPO.length > 0) {
4557 sSelectedPO = _aCostAllPO[0].Key;
4558 var fWeightPO = isNaN(parseFloat(_aCostAllPO[0].Weight)) ? 0 : parseFloat(_aCostAllPO[0].Weight);
4559 sSelectedPOWeightPercent = fWeightPO.toFixed(3);
4560 }
4561
4562 if (_aCostAllPOItem.length > 0) {
4563 _aCostAllPOItem.map(function(oItem) {
4564 if (oItem.RefDoc === sSelectedPO) {
4565 aCostDropdownPOItem.push(oItem);
4566 }
4567 });
4568 }
4569
4570 var aCostPO = [];
4571 if (_aCostPO.length > 0) {
4572 _aCostPO.map(function(oItem) {
4573 if (oItem.PONumber === sSelectedPO) {
4574 aCostPO.push(oItem);
4575 }
4576 });
4577 }
4578
4579 var aCostPOItem = [];
4580 var sSelectedPOItem = "";
4581 var sSelectedPOItemWeightPercent = "0";
4582 if (aCostDropdownPOItem.length > 0) {
4583 sSelectedPOItem = aCostDropdownPOItem[0].Key;
4584
4585 var fWeightPOItem = isNaN(parseFloat(aCostDropdownPOItem[0].Weight)) ? 0 : parseFloat(aCostDropdownPOItem[0].Weight);
4586 sSelectedPOItemWeightPercent = fWeightPOItem.toFixed(3);
4587
4588 _aCostPOItem.map(function(oItem) {
4589 if (oItem.PONumber === sSelectedPO && oItem.POItemNumber === aCostDropdownPOItem[0].Text) {
4590 aCostPOItem.push(oItem);
4591 }
4592 });
4593 }
4594
4595 _aCostWOTree = [];
4596 _aCostPOTree = [];
4597 _aCostPOItemTree = [];
4598
4599 _aCostWOTree = this.transformTreeData(JSON.parse(JSON.stringify(_aCostWO)));
4600 _aCostPOTree = this.transformTreeData(JSON.parse(JSON.stringify(aCostPO)));
4601 _aCostPOItemTree = this.transformTreeData(JSON.parse(JSON.stringify(aCostPOItem)));
4602
4603 this.fnSetModelDataCost(); // set _aCostWOTree,_aCostPOTree, _aCostPOItemTree to Model View
4604
4605 this.getView().byId("vIdManageWOSelectCostWeightPercentPO").setValue(sSelectedPOWeightPercent);
4606 this.getView().byId("vIdManageWOSelectCostWeightPercentPOItem").setValue(sSelectedPOItemWeightPercent);
4607 _oModelCost.setData({
4608 CostGrandTotal: _aCostGrandTotal,
4609 CostWO: _aCostWO,
4610 CostPO: aCostPO,
4611 CostPOItem: aCostPOItem,
4612 CostAllPO: _aCostAllPO,
4613 CostAllPOItem: aCostDropdownPOItem,
4614 CostInvoiceSeq: _aCostInvoiceSeq
4615 });
4616
4617 _oModelCost.refresh();
4618
4619 var fWeightPercent = isNaN(parseFloat(oModelLocal.WeightPercent)) ? 0 : parseFloat(oModelLocal.WeightPercent);
4620 oModelLocal.WeightPercent = fWeightPercent.toFixed(3);
4621 oModelLocal.SelectedPO = sSelectedPO;
4622 oModelLocal.WeightPercentPO = sSelectedPOWeightPercent;
4623 oModelLocal.SelectedPOItem = sSelectedPOItem;
4624 oModelLocal.WeightPercentPOItem = sSelectedPOItemWeightPercent;
4625 _oModelCostHeader.setData(oModelLocal);
4626
4627 _oModelCostHeader.refresh(true);
4628
4629 this.getView().setModel(_oModelCostHeader, "CostHeader");
4630 var oTableCostGrandTotal = this.getView().byId("vIdManageWOTableCostGrandTotal");
4631 oTableCostGrandTotal.setModel(_oModelCost);
4632 oTableCostGrandTotal.bindRows("/CostGrandTotal");
4633 var aTokensPOService = [];
4634 _aCostPOService.map(function(oItem) {
4635 aTokensPOService.push(new sap.m.Token({
4636 text: oItem.Key,
4637 key: oItem.Key
4638 }));
4639 });
4640 var oItemSelectTemplate = new sap.ui.core.Item({
4641 key: "{Key}",
4642 text: "{Text}"
4643 });
4644 this.getView().byId("vIdManageWOFormCostPOService").setTokens(aTokensPOService);
4645 this.getView().byId("vIdManageWOSelectCostPO").setModel(_oModelCost);
4646 this.getView().byId("vIdManageWOSelectCostPO").bindAggregation("items", "/CostAllPO", oItemSelectTemplate);
4647 this.getView().byId("vIdManageWOSelectCostPOItem").setModel(_oModelCost);
4648 this.getView().byId("vIdManageWOSelectCostPOItem").bindAggregation("items", "/CostAllPOItem", oItemSelectTemplate);
4649 this.getView().byId("vIdManageWOFormCostInvoiceSeqNumber").setModel(_oModelCost);
4650 this.getView().byId("vIdManageWOFormCostInvoiceSeqNumber").bindAggregation("items", "/CostInvoiceSeq", oItemSelectTemplate);
4651 },
4652 transformTreeData: function(nodesIn) {
4653 var nodes = []; //'deep' object structure
4654 var nodeMap = {}; //'map', each node is an attribute
4655 if (nodesIn) {
4656 var nodeOut;
4657 var sParentId;
4658 for (var i = 0; i < nodesIn.length; i++) {
4659 var nodeIn = nodesIn[i];
4660 var sQTY = _oNumberFormat3Decimal.format(parseFloat(nodeIn.Qty));
4661 var sEstCost = _oNumberFormat2Decimal.format(parseFloat(nodeIn.EstCost));
4662 var sActCostNonVat = _oNumberFormat2Decimal.format(parseFloat(nodeIn.ActCostNonVat));
4663 var sVat = _oNumberFormat2Decimal.format(parseFloat(nodeIn.Vat));
4664 var sActCostVat = _oNumberFormat2Decimal.format(parseFloat(nodeIn.ActCostVat));
4665 nodeOut = {
4666 NodeNumber: nodeIn.NodeNumber,
4667 PONumber: nodeIn.PONumber,
4668 POItemNumber: nodeIn.POItemNumber,
4669 CostText: nodeIn.CostText,
4670 CostTextStyle: nodeIn.CostTextStyle,
4671 Qty: sQTY,
4672 QtyEdit: nodeIn.QtyEdit,
4673 QtyStyle: nodeIn.QtyEdit,
4674 Unit: nodeIn.Unit,
4675 UnitEdit: nodeIn.UnitEdit,
4676 UnitStyle: nodeIn.UnitStyle,
4677 EstCost: sEstCost,
4678 EstCostEdit: nodeIn.EstCostEdit,
4679 EstCostStyle: nodeIn.EstCostStyle,
4680 ActCostNonVat: sActCostNonVat,
4681 ActCostNonVatEdit: nodeIn.ActCostNonVatEdit,
4682 ActCostNonVatStyle: nodeIn.ActCostNonVatStyle,
4683 Vat: sVat,
4684 VatEdit: nodeIn.VatEdit,
4685 VatInput: nodeIn.VatInput,
4686 VatStyle: nodeIn.VatStyle,
4687 ActCostVat: sActCostVat,
4688 ActCostVatEdit: nodeIn.ActCostVatEdit,
4689 ActCostVatStyle: nodeIn.ActCostVatStyle,
4690 ThirdReciept: nodeIn.ThirdReciept,
4691 ThirdRecieptEdit: nodeIn.ThirdRecieptEdit,
4692 ThirdRecieptStyle: nodeIn.ThirdRecieptStyle,
4693 Remark: nodeIn.Remark,
4694 RemarkEdit: nodeIn.RemarkEdit,
4695 RemarkStyle: nodeIn.RemarkStyle,
4696 ChildCost: []
4697 };
4698 // type: nodeIn.Type,
4699 sParentId = nodeIn.Parent;
4700 if (sParentId && sParentId.length > 0 && sParentId !== "00000") {
4701 //we have a parent, add the node there
4702 //NB because object references are used, changing the node
4703 //in the nodeMap changes it in the nodes array too
4704 //(we rely on parents always appearing before their children)
4705 var parent = nodeMap[nodeIn.Parent];
4706 if (parent) {
4707 parent.ChildCost.push(nodeOut);
4708 }
4709 } else {
4710 //there is no parent, must be top level
4711 nodes.push(nodeOut);
4712 }
4713 //add the node to the node map, which is a simple 1-level list of all nodes
4714 nodeMap[nodeOut.NodeNumber] = nodeOut;
4715 }
4716 }
4717 return nodes;
4718 },
4719 fnSetModelDataCost: function() {
4720
4721 //store the nodes in the JSON model, so the view can access them
4722 var oNodeModel = new sap.ui.model.json.JSONModel();
4723 oNodeModel.setData({
4724 NodeCostWO: {
4725 ChildCost: _aCostWOTree
4726 },
4727 NodeCostPO: {
4728 ChildCost: _aCostPOTree
4729 },
4730 NodeCostPOItem: {
4731 ChildCost: _aCostPOItemTree
4732 }
4733 });
4734 oNodeModel.refresh();
4735 this.setModel(oNodeModel, "NodeCostModel");
4736
4737 }
4738
4739 /** End Cost Area **/
4740
4741 });
4742});