· 6 years ago · May 02, 2019, 11:40 AM
1$(document).ready(function () {
2 UploadFileStatementKmiFilter.OnLoad();
3 UploadFileStatementKmi.OnLoad();
4 UploadFileStatementKmiModal.Init();
5 Table.InitDataReview();
6 Pagecomponent.uploader;
7});
8
9var UploadFileStatement = {
10 UploadArr: [],
11 InvoiceArr: [],
12 PeriodInvoice:[],
13 l: Ladda.create(document.querySelector("#buttonUpload")),
14 btntext: $("#buttonUpload").find('.ladda-label'),
15 btncurrentText: $("#buttonUpload").find('.ladda-label')[0].innerHTML,
16 Get: function () {
17 var l = Ladda.create(document.querySelector("#buttonSearch"));
18 var User = $('#selectUser').val();
19 var UploadDate = $('#dateUploadDate').val();
20 var link = '/api/v1/uploadfilestatement';
21
22 if (User == null) {
23 User = "";
24 }
25
26
27 if (User != "" && UploadDate != "") {
28 link = link + '?EmailAddress=' + User + '&UploadDate=' + UploadDate;
29 }
30 else if (User != "") {
31 link = link + '?EmailAddress=' + User;
32 }
33 else if (UploadDate != "") {
34 link = link + '?UploadDate=' + UploadDate;
35 }
36
37
38 $.ajax({
39 url: link,
40 type: 'GET',
41 beforeSend: function (xhr) {
42 kmi.utility.setFormDisabled('SearchBox', true);
43 l.start();
44
45 }
46 }).done(function (data, textStatus, jqXHR) {
47 Table.Set(data);
48 $('#divSearchResult').show();
49 kmi.utility.setFormDisabled('SearchBox', false);
50 l.stop();
51
52 }).fail(function (jqXHR, textStatus, errorThrown) {
53 kmi.utility.setFormDisabled('SearchBox', false);
54 l.stop();
55 Table.Set([]);
56 kmi.utility.createAlert("#div-nodata", "info", "Data not found. Please refine your search parameter.");
57 $('#divSearchResult').hide();
58 });
59
60 },
61 Add: function () {
62
63 var l = Ladda.create(document.querySelector("#buttonSaveUpload"));
64 var Result = "Success";
65 var StatusId = "SUCS";
66
67 var link = '/api/v1/uploadfilestatement';
68
69 var param =
70 {
71 StatusId: StatusId,
72 Result: Result,
73 InvoiceDetail: UploadFileStatement.InvoiceArr,
74 DocumentDetail: UploadFileStatement.UploadArr
75 };
76
77
78
79 $.ajax({
80 url: link,
81 type: 'POST',
82 data: JSON.stringify(param),
83 beforeSend: function (xhr) {
84 kmi.utility.setFormDisabled('formDetail2', true);
85 l.start();
86
87 }
88 }).done(function (data, textStatus, jqXHR) {
89 kmi.utility.setFormDisabled('formDetail2', false);
90 l.stop();
91 $('#ModalUploadFile').data("kendoWindow").close();
92 UploadFileStatementKmi.Get("", "");
93 kmi.utility.createAlert("#div-alert", "success", "Data added successfully.");
94
95 }).fail(function (jqXHR, textStatus, errorThrown) {
96 $('#ModalUploadFile').data("kendoWindow").close();
97 kmi.utility.setFormDisabled('formDetail2', true);
98 l.stop();
99 kmi.utility.createAlert("#div-Warning2", "fail", "Error Occured When saving to database,please contact administrator for more info");
100 });
101 UploadFileStatement.InvoiceArr = [];
102 UploadFileStatement.UploadArr = [];
103
104 }
105};
106var Table = {
107 row: 0,
108 Init: function () {
109 $("#TableUploadFileStatement").kmiGrid({
110 dataSource: {
111 type: "data",
112 serverPaging: false,
113 pageSize: 10
114 },
115 pageable: {
116 pageSize: 10,
117 refresh: false
118 },
119
120 filterable: false,
121 deleteMultiple: false,
122 exportToExcel: true,
123 dataBinding: function () {
124 Table.row = (this.dataSource.page() - 1);
125 },
126 columns: [
127 {
128 field: "CreatedBy",
129 title: "User",
130 width: 300,
131
132 },
133 {
134 title: "Upload Date",
135 field: "UtcCreatedDate",
136 width: 250,
137 template: "#=kmi.utility.GetDateTimeFormatted(UtcCreatedDate)#",
138 dateView: true
139 },
140 {
141 title: "File Name",
142 field: "DocumentName",
143 width: 300
144 },
145 {
146 title: "Status",
147 field: "Result",
148 hidden: true
149 },
150 {
151 title: "",
152 width: 50,
153 template: '<a id="dropDown' + "#= ++Table.row #" + 'Invoker" class= "u-link-v5 g-line-height-0 g-font-size-24 g-color-gray-light-v6 g-color-lightblue-v3--hover" aria-controls="dropDown' + "#= Table.row #" + ' " aria-haspopup="true" aria-expanded="false" data-dropdown-event="click" data-dropdown-target="\\#dropDown' + "#= Table.row #" + '" >' +
154 '<i class= "fa fa-ellipsis-h" ></i>' +
155 '</a>' +
156 '<div id="dropDown' + "#= Table.row #" + '" class="dropDown dropDownToggle u-shadow-v31 g-pos-abs g-mr-40 g-py-5 g-min-width-180--sm g-z-index-2 g-right-0 g-bg-white mis-display-none" aria-labelledby="dropDown' + "#= Table.row #" + 'Invoker" >' +
157 '<ul class="list-unstyled g-nowrap mb-0">' +
158 '<li>' +
159 '<a class="d-flex align-items-center u-link-v5 g-bg-gray-light-v8--hover g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-px-25 g-py-14" onclick="Submenu.Edit()">' +
160 '<i class="fa fa-pencil g-font-size-18 g-color-gray-light-v6 g-mr-10 g-mr-15--md"></i>' +
161 'View' +
162 '</a>' +
163 '</li>' +
164 //'<li>' +
165 //'<a class="d-flex align-items-center u-link-v5 g-bg-gray-light-v8--hover g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-px-25 g-py-14" onclick="Submenu.Delete()">' +
166 //'<i class="fa fa-times g-font-size-18 g-color-gray-light-v6 g-mr-10 g-mr-15--md"></i>' +
167 //'Delete' +
168 //'</a>' +
169 //'</li>' +
170 '</ul>' +
171 '</div>'
172 }
173
174 ]
175 });
176
177 $("#TableUploadFileStatement tbody").addClass("mis-cursor-pointer");
178 $('#TableUploadFileStatement tbody').unbind().on('click', 'tr', function (e) {
179 var $cell = $(e.target).closest('td');
180 if ($cell.index() < ($("#TableUploadFileStatement").data("kendoGrid").columns.length) - 1) {
181 var grid = $("#TableUploadFileStatement").data("kendoGrid");
182 var dataItem = grid.dataItem(this);
183 Modal.Set(dataItem);
184 $('#ModalUploadFileStatement').data("kendoWindow").center().open();
185 }
186
187 else if ($cell.index() == ($("#TableUploadFileStatement").data("kendoGrid").columns.length) - 1) {
188 var grid = $("#TableUploadFileStatement").data("kendoGrid");
189 var row = $(this).closest("tr");
190 var rowIdx = $("tr", grid.tbody).index(row) + grid.dataSource.page();
191 var string = '#dropDown' + rowIdx;
192
193 if ($("tr", grid.tbody).index(row) + 1 == grid.dataItems().length) {
194 $(string).css('top', $(string + 'Invoker').position().top - 24);
195 }
196 if ($(string).css('display') != 'none') {
197 $(string).hide();
198 $('.selected').removeClass('selected');
199 }
200 else {
201 $('.dropDown').hide();
202 $(string).css('display', 'inline-grid');
203 $('.selected').removeClass('selected');
204 $(this).addClass('selected');
205 }
206 }
207 });
208
209 },
210 Set: function (data) {
211 var grid = $('#TableUploadFileStatement').data('kendoGrid');
212 grid.dataSource.transport.data = data;
213 grid.dataSource.read();
214 grid.dataSource.page(1);
215 grid.refresh();
216 },
217 InitDataReview: function () {
218 $("#TableDataReview").kmiGrid({
219 dataSource: {
220 type: "data",
221 serverPaging: false,
222 pageSize: 10
223 },
224 scrollable: true,
225 sortable: true,
226 filterable: false,
227 resizable: false,
228 columnMenu: false,
229 deleteMultiple: false,
230 dataBinding: function () {
231 Table.row = (this.dataSource.page() - 1);
232 },
233 columns: [
234 //{
235 // field: "ContractNumber",
236 // title: "Contract Number",
237 // width: "15%"
238
239 //},
240 {
241 title: "Invoice Number",
242 field: "InvoiceNumber",
243 width: 200
244 },
245 {
246 title: "Activity Number",
247 field: "ActivityNumber",
248 width: 200
249 },
250 {
251 title: "Invoice Date",
252 field: "InvoiceDate",
253 width: 200,
254 template: "#=moment(InvoiceDate).locale('id').format('DD MMM YYYY')#",
255 dateView: true
256 },
257 {
258 title: "Cost Code",
259 field: "CostCode",
260 width: 200
261 },
262 {
263 title: "Source Amount",
264 field: "SourceAmount",
265 width: 200,
266 template: "#=kendo.toString(SourceAmount,'n')#"
267 },
268 {
269 title: "Source Currency",
270 field: "SourceCurrency",
271 width: 200
272 },
273 {
274 title: "Payment Date",
275 field: "PaymentDate",
276 width: 200,
277 template: "#=moment(PaymentDate).locale('id').format('DD MMM YYYY')#",
278 dateView: true
279 },
280 {
281 title: "Paid Amount (AUD)",
282 field: "PaidAmount",
283 width: 200,
284 template: "#=kendo.toString(PaidAmount,'n')#"
285 },
286 {
287 title: "Validation Result",
288 field: "ValidationResult",
289 width: 200,
290 template: "# if (ValidationResult == null ) { # <span class=\"u-label g-rounded-20 g-bg-green g-mr-5\"><i class=\"fa fa-check g-mr-3\"></i>Success</span> #}" +
291 "else if (ValidationResult == 'Warning, Source Amount do not match with amount in Invoice' ) { # <span class=\"u-label g-rounded-20 g-bg-yellow g-mr-5\"><i class=\"fa fa-warning g-mr-3\"></i>Warning</span>Source Amount do not match with amount in Invoice #}" +
292 "else if (ValidationResult == 'Warning, Source Currency do not match with Currency in Contract' ) { # <span class=\"u-label g-rounded-20 g-bg-yellow g-mr-5\"><i class=\"fa fa-warning g-mr-3\"></i>Warning</span>Source Currency do not match with Currency in Contract #}" +
293 "else if (ValidationResult) { # <span class=\"u-label g-rounded-20 g-bg-red g-mr-5\"><i class=\"fa fa-warning g-mr-3\"></i>Error</span>#=ValidationResult.substr(6)# #}" +
294 "#"
295 }
296 ]
297 });
298 },
299 SetDataReview: function (data) {
300
301 var grid = $('#TableDataReview').data('kendoGrid');
302 grid.dataSource.transport.data = data;
303 grid.dataSource.read();
304 grid.dataSource.page(1);
305 //grid.dataSource.pageSize(grid.dataSource.total());
306 grid.refresh();
307 grid.pager.element.hide();
308 }
309};
310
311
312var Pagecomponent = {
313 SelectUserInit: function () {
314 var link = '/api/v1/user/userselectv2';
315 $("#selectUser").kmiSelect2Employee({
316 url: link,
317 //placeholder: "Select a User"
318 });
319 },
320 DatePickerInit: function () {
321 $("#dateUploadDate").kendoDatePicker({
322 start: "month",
323 depth: "year",
324 format: "dd MMM yyyy"
325 });
326 $("#dateUploadDate , .k-select").unbind().click(function () {
327 $("#dateUploadDate").data("kendoDatePicker").dateView.toggle();
328 });
329 $("#dateUploadDateDetail").kendoDatePicker({
330 start: "month",
331 depth: "year",
332 format: "dd MMM yyyy"
333 });
334
335 },
336 uploader: $("#buttonUpload").kmiUploader({
337 url: '/FileUploadHandler.ashx?type=Operation',
338 dropzone: 'buttonUpload',
339
340 events: {
341 onFilesAdded: function (up, files) {
342 var regex = /\.\w+/gi;
343
344 Pagecomponent.uploader.start();
345 },
346 onBeforeUpload: function (up, file) {
347 Table.SetDataReview([]);
348 Pagecomponent.uploader.setOption("params", {
349 contentType: "Finance"
350 });
351 UploadFileStatement.l.start();
352 $("#buttonUpload").prop("disabled", true);
353 UploadFileStatement.btntext.text('Uploading File');
354
355 },
356 onFileUploaded: function (up, file, response) {
357 $("#buttonResetUpload").show();
358 UploadFileStatement.l.stop();
359 $("#buttonSaveUpload").prop("disabled", false);
360 $("#buttonUpload").prop("disabled", false);
361 $("#div-warning2")[0].innerHTML = "";
362 UploadFileStatement.btntext[0].innerHTML = UploadFileStatement.btncurrentText;
363
364 var responseObject = JSON.parse(response.response);
365 UploadFileStatement.UploadArr = [];
366 UploadFileStatement.UploadArr.push({
367 DocumentId: file.id,
368 FileName: responseObject.Name,
369 OriginalFileName: responseObject.OriginalName,
370 FilePath: responseObject.Path,
371 DocumentTypeId: "FSTS"
372 });
373
374 //UploadFileStatement.PeriodInvoice = [];
375 //if (responseObject.ListDataReturn > 0) {
376 // var exists = $.grep(responseObject.ListDataReturn, function (a) {
377 // return a.Currency == "IDR";
378 // });
379 // if (exists.length > 0) {
380 // $.each(exists, function (index, item) {
381 // var yyyymm = moment(item.PaymentDate).format('YYYYMM');
382 // var existsPeriod = $.grep(UploadFileStatement.PeriodInvoice, function (a) {
383 // return a.Period == yyyymm;
384 // });
385 // if (existsPeriod.length == 0) {
386 // UploadFileStatement.PeriodInvoice.push({
387 // period: yyyymm,
388 // rate: ""
389 // });
390 // }
391 // });
392 // }
393 //}
394
395 $.each(responseObject.ListDataReturn, function (index, item) {
396 if (item.SourceCurrency == "IDR") {
397 var period = moment(item.PaymentDate).format('YYYYMM');
398 var exists = $.grep(UploadFileStatementKmi.ExchangedRate, function (a) {
399 return a.Period == period;
400 });
401 if (exists.length > 0) {
402 item.Rate = exists[0].Rate;
403 } else {
404 item.Rate = 0;
405 }
406 } else {
407 item.Rate = 1;
408 }
409 });
410 Table.SetDataReview(responseObject.ListDataReturn);
411 $('#UploadBox').show();
412 $("#buttonSaveUpload").prop('disabled', false);
413 UploadFileStatement.InvoiceArr = [];
414 $.each(responseObject.ListDataReturn, function (index, item) {
415 if (item.IsError) {
416 $("#buttonSaveUpload").prop("disabled", true);
417 kmi.utility.createAlert("#div-warning2", "fail", "There is some error in your file statement data,Please read validation result bellow");
418 UploadFileStatement.InvoiceArr = [];
419 return false;
420 }
421 else {
422 UploadFileStatement.InvoiceArr.push({
423 InvoiceId: item.ResultInvoiceId,
424 InvoiceNumber: item.ResultInvoiceNumber,
425 PaymentDate: item.PaymentDate,
426 Amount: item.PaidAmount,
427
428 Vendor: item.Vendor,
429 VendorEmail: item.VendorEmail,
430 Activity: item.Activity,
431
432 ContractNumber: item.ResultContractNumber,
433 Currency: item.SourceCurrency
434 });
435 }
436 });
437
438
439 Pagecomponent.uploader.removeFiles();
440
441 },
442 onError: function (up, err) {
443 kmi.utility.createAlert("#div-warning2", "fail", "There is some error while trying to Upload your file,please contact administrator for more info");
444 Pagecomponent.uploader.removeFiles();
445
446 UploadFileStatement.btntext.text('Select File');
447 UploadFileStatement.l.stop();
448 }
449 }
450 })
451};
452
453
454var UploadFileStatementKmi = {
455 Data: [],
456 ExchangedRate:[],
457 OnLoad: function () {
458 //first load, get request log with empty params
459 //UploadFileStatementKmi.Get("", "");
460
461 //set onload container
462 UploadFileStatementKmi.OnLoadTable();
463 UploadFileStatementKmi.GetExchangedRate();
464 $('#buttonCancel').unbind().click(function () {
465 $('#ModalUploadFileStatement').data("kendoWindow").close();
466 });
467 },
468 GetExchangedRate: function () {
469 $.ajax({
470 url: "/api/v1/currency?currencyBaseId=1¤cyId=3",
471 type: 'GET'
472
473 }).done(function (data, textStatus, jqXHR) {
474 if (data.length > 0) {
475 UploadFileStatementKmi.ExchangedRate = data;
476 }
477 });
478 },
479 Get: function (searchUser, searchUploadDate) {
480 $.ajax({
481 url: "/api/v1/uploadfilestatement?EmailAddress=" + searchUser + "&UploadDate=" + searchUploadDate,
482 type: 'GET',
483 beforeSend: function (xhr) {
484 //start progress bar
485 NProgress.configure({
486 parent: '#ContainerMainProgressBar',
487 showSpinner: false
488 });
489 NProgress.start();
490 }
491 }).done(function (data, textStatus, jqXHR) {
492 try {
493 //save data to variable, for layout opt (grid/list)
494 UploadFileStatementKmi.Data = data;
495
496 if (data != null && data.length > 0) {
497 $('#UploadFileStatementResult-NoData').html("");
498
499 //build view result, defaulted to list view
500 UploadFileStatementKmi.BuildGridView();
501 }
502 else {
503 UploadFileStatementKmi.DestroySearchResult(true);
504 kmi.utility.createAlert("#UploadFileStatementResult-NoData", "info", "No result found with the selected filters, please refine your filter and try again.");
505 }
506
507 //set panel search result title
508 if (searchUser == "" && searchUploadDate == "") {
509 $("#ContainerUploadFileStatementFilter #SpanSearchType").text("| Showing all upload file statements");
510 }
511 else {
512 $("#ContainerUploadFileStatementFilter #SpanSearchType").text("| Showing filtered upload file statements");
513 }
514
515
516 //stop progress bar
517 NProgress.done();
518 } catch (e) {
519 kmi.utility.createAlert("#UploadFileStatementResult-NoData", "fail", "An error occured while processing the request, please try again in a few minutes.");
520
521 //stop progress bar
522 NProgress.done();
523 }
524 }).fail(function (jqXHR, textStatus, errorThrown) {
525 UploadFileStatementKmi.DestroySearchResult(true);
526
527 //stop progress bar
528 NProgress.done();
529
530 if (jqXHR.status == "404") {
531 kmi.utility.createAlert("#UploadFileStatementResult-NoData", "info", "No data found, please search again with different filter.");
532 }
533 else {
534 kmi.utility.createAlert("#UploadFileStatementResult-NoData", "fail", "An error occured while processing the request, please try again in a few minutes.");
535 }
536 });
537 },
538
539 OnLoadTable: function () {
540 TableUploadFileStatementRow: 0;
541
542 //init table request log result
543 $("#TableUploadFileStatement").kmiGrid({
544 dataSource:
545 {
546 type: "odata",
547 serverPaging: false,
548 pageSize: 10
549 },
550 dataBinding: function () {
551 UploadFileStatementKmi.OnLoadTable.TableUploadFileStatementRow = (this.dataSource.page() - 1);
552 },
553 filterable: false,
554 exportToExcel: true,
555 isSupportListView: true,
556 deleteMultiple:false,
557 dataName: "UploadFileStatement",
558 //viewDetailUrl: "/UploadFileStatement/Detail/",
559 callbackGridView: UploadFileStatementKmi.BuildGridView,
560 //deleteCallback: Callback.Function,
561 excelExport: function (e) {
562 e.workbook.fileName = "UploadFileStatement " + kendo.toString(new Date, "dd/MMM/yyyy HH:mm") + ".xlsx";
563 },
564 columns: [
565 {
566 field: "CreatedBy",
567 title: "User",
568 width: 300
569
570 },
571 {
572 title: "Upload Date",
573 field: "UtcCreatedDate",
574 width: 200,
575 template: "#=kmi.utility.GetDateTimeFormatted(UtcCreatedDate)#",
576 dateView: true
577 },
578 {
579 title: "File Name",
580 field: "DocumentName",
581 width: 450,
582 },
583 {
584 title: "Status",
585 field: "Result",
586 hidden: true
587 },
588 {
589 title: "",
590 width:50,
591 template:
592 '<a id="dropDown' + "#= ++UploadFileStatementKmi.OnLoadTable.TableUploadFileStatementRow #" + 'Invoker" class= "u-link-v5 g-line-height-0 g-font-size-24 g-color-gray-light-v6 g-color-lightblue-v3--hover" aria-controls="dropDown' + "#= UploadFileStatementKmi.OnLoadTable.TableUploadFileStatementRow #" + ' " aria-haspopup="true" aria-expanded="false" data-dropdown-event="click" data-dropdown-target="\\#dropDown' + "#= UploadFileStatementKmi.OnLoadTable.TableUploadFileStatementRow #" + '" >' +
593 '<i class= "fa fa-ellipsis-h" ></i>' +
594 '</a>' +
595 '<div id="dropDown' + "#= UploadFileStatementKmi.OnLoadTable.TableUploadFileStatementRow #" + '" class="dropDown dropDownToggle u-shadow-v31 g-pos-abs g-mr-40 g-py-5 g-min-width-180--sm g-z-index-2 g-right-0 g-bg-white mis-display-none" aria-labelledby="dropDown' + "#= UploadFileStatementKmi.OnLoadTable.TableUploadFileStatementRow #" + 'Invoker" >' +
596 '<ul class="list-unstyled g-nowrap mb-0">' +
597 '<li>' +
598 '<a class="d-flex align-items-center u-link-v5 g-bg-gray-light-v8--hover g-font-size-12 g-font-size-default--md g-color-gray-dark-v6 g-px-25 g-py-14" onclick="UploadFileStatementKmiSubMenu.Edit()">' +
599 '<i class="fa fa-pencil g-font-size-18 g-color-gray-light-v6 g-mr-10 g-mr-15--md"></i>' +
600 'View' +
601 '</a>' +
602 '</li>' +
603 '</ul>' +
604 '</div>'
605 }
606
607 ]
608 });
609 $("#TableUploadFileStatement tbody").addClass("mis-cursor-pointer");
610 $('#TableUploadFileStatement tbody').unbind().on('click', 'tr', function (e) {
611 var $cell = $(e.target).closest('td');
612 var grid = $("#TableUploadFileStatement").data("kendoGrid");
613 if ($cell.index() < ($("#TableUploadFileStatement").data("kendoGrid").columns.length) - 1) {
614 var grid = $("#TableUploadFileStatement").data("kendoGrid");
615 var dataItem = grid.dataItem(this);
616 UploadFileStatementKmiModal.Set(dataItem);
617 $('#ModalUploadFileStatement').data("kendoWindow").center().open();
618 }
619
620 else if ($cell.index() == ($("#TableUploadFileStatement").data("kendoGrid").columns.length) - 1) {
621
622 var row = $(this).closest("tr");
623 var rowIdx = $("tr", grid.tbody).index(row) + grid.dataSource.page();
624 var string = '#dropDown' + rowIdx;
625
626 if ($("tr", grid.tbody).index(row) + 1 == grid.dataItems().length) {
627 $(string).css('top', $(string + 'Invoker').position().top - 74);
628 }
629 if ($(string).css('display') != 'none') {
630 $(string).hide();
631 $('.selected').removeClass('selected');
632 }
633 else {
634 $('.dropDown').hide();
635 $(string).css('display', 'inline-grid');
636 $('.selected').removeClass('selected');
637 $(this).addClass('selected');
638 }
639 }
640 });
641 },
642
643 SetTable: function (typeTable, data) {
644 switch (typeTable) {
645 case "UploadFileStatement":
646 var grid = $('#TableUploadFileStatement').data('kendoGrid');
647 grid.dataSource.transport.data = data;
648 grid.dataSource.read();
649 grid.dataSource.page(1);
650 grid.refresh();
651 break;
652 }
653 },
654
655 DestroySearchResult: function (isHide) {
656 //destroy kendo grid as list view
657 UploadFileStatementKmi.SetTable("UploadFileStatement", []);
658
659 //destroy jsrenders
660 $("#UploadFileStatementResult-List").kmiBox(null, null, true);
661 //$("#RequestLogResult-List").html("");
662
663 if (isHide) {
664 $("#UploadFileStatementResult-Grid").hide();
665 $("#UploadFileStatementResult-Info").hide();
666 $("#UploadFileStatementResult-List").hide();
667 }
668 },
669
670 BuildGridView: function () {
671 //destroy kendo grid as list view
672 UploadFileStatementKmi.SetTable("UploadFileStatement", []);
673
674 //set jsrender
675 var tmpl = $.templates("#TemplateListUploadFileStatement");
676 $("#UploadFileStatementResult-List").kmiBox({
677 pageItem: 9,
678 currentPage: 1,
679 data: UploadFileStatementKmi.Data,
680 tooltips: [
681 { class:"mis-article-tooltip-user", title: "User"},
682 { class: "mis-article-tooltip-action", title: "Status" },
683 { class: "mis-article-tooltip-rdate", title: "Create date" }
684 ],
685 callbackListView: UploadFileStatementKmi.BuildListView
686 }, tmpl, false);
687
688 //show/hide container
689 $('#UploadFileStatementResult-Grid').hide();
690 $('#UploadFileStatementResult-Info').hide();
691 $("#UploadFileStatementResult-List").show();
692 },
693
694 BuildListView: function () {
695 //destroy jsrenders
696 //$("#RequestLogResult-List").html("");
697
698 //set kendo grid as list view
699 UploadFileStatementKmi.SetTable("UploadFileStatement", UploadFileStatementKmi.Data);
700
701 //show/hide container
702 $('#UploadFileStatementResult-Grid').show();
703 $('#UploadFileStatementResult-Info').show();
704 $("#UploadFileStatementResult-List").hide();
705 }
706};
707
708
709var UploadFileStatementKmiSubMenu = {
710 Edit: function () {
711
712 var grid = $("#TableUploadFileStatement").data("kendoGrid");
713 var items = grid.items();
714
715 items.each(function (idx, item) {
716 if ($(item).is('.selected')) {
717 UploadFileStatementKmiModal.Set(grid._data[idx]);
718 return false;
719 }
720 });
721 $('#ModalUploadFileStatement').data("kendoWindow").center().open();
722
723 }
724};
725
726var UploadFileStatementKmiModal = {
727 Init: function () {
728 $('#ModalUploadFileStatement').kendoWindow({
729 modal: true,
730 resizable: false,
731 draggable: true,
732 width: "700",
733 title: "Detail Upload File Statement",
734 visible: false,
735 close: UploadFileStatementKmiModal.Close,
736 actions: [
737 "Close"
738 ]
739 }).data("kendoWindow");
740 $('#ModalUploadFile').kendoWindow({
741 modal: true,
742 resizable: false,
743 draggable: true,
744 width: "800",
745 title: "Upload File Statement",
746 visible: false,
747 close: UploadFileStatementKmiModal.CloseUpload,
748 actions: [
749 "Close"
750 ]
751 }).data("kendoWindow");
752 $('#buttonResetUpload').click(function () {
753 kmi.MessageBox.confirm('Confirmation', 'Are you sure you want to reset this data?', function (result) {
754 if (result) {
755 UploadFileStatementKmiModal.Reset();
756 }
757
758 });
759
760 });
761
762
763 $("#buttonSaveUpload").unbind().click(function () {
764 UploadFileStatement.Add();
765 });
766 $('#buttonCancel').unbind().click(function () {
767 $('#ModalUploadFileStatement').data("kendoWindow").close();
768 });
769 $('#buttonCancelUpload').unbind().click(function () {
770 $('#ModalUploadFile').data("kendoWindow").close();
771 });
772 },
773 Set: function (data) {
774 $("#textUserDetail").val(data.CreatedBy);
775 $("#dateUploadDateDetail").val(kmi.utility.GetDateTimeFormatted(data.UtcCreatedDate).substr(0, 11));
776 $("#textStatusDetail").val(data.Result);
777 $.each(data.DocumentDetail, function (index, value) {
778
779 $("#UploadList").append("<li id=" + value.DocumentId + " class=filename> <a href=" + value.FilePath + ">" + value.OriginalFileName + "</a><a class='percentage ladda-button g-color-primary g-ml-10 mis-cursor-pointer' data-style='zoom-out' data-spinner-color='#000000'</a></li>");
780
781 });
782 },
783 SetById: function (id) {
784 var data = UploadFileStatementKmi.Data.find(obj => { return obj.UploadFileStatementId === id; });
785
786 $("#textUserDetail").val(data.CreatedBy);
787 $("#dateUploadDateDetail").val(kmi.utility.GetDateTimeFormatted(data.UtcCreatedDate).substr(0, 11));
788 $("#textStatusDetail").val(data.Result);
789 $.each(data.DocumentDetail, function (index, value) {
790
791 $("#UploadList").append("<li id=" + value.DocumentId + " class=filename> <a href=" + value.FilePath + ">" + value.OriginalFileName + "</a><a class='percentage ladda-button g-color-primary g-ml-10 mis-cursor-pointer' data-style='zoom-out' data-spinner-color='#000000'</a></li>");
792
793 });
794
795 $('#ModalUploadFileStatement').data("kendoWindow").center().open();
796 },
797 Open: function () {
798 $("#buttonResetUpload").hide();
799 $('#ModalUploadFile').data("kendoWindow").center().open();
800 $("#buttonSaveUpload").prop('disabled', true);
801 },
802 Close: function () {
803
804 $("#textUserDetail").val("");
805 $("#dateUploadDateDetail").val("");
806 $("#textStatusDetail").val("");
807 $("#UploadList").html("");
808 },
809 CloseUpload: function () {
810 $('#UploadBox').hide();
811 $("#div-warning2")[0].innerHTML = "";
812 $("#buttonSaveUpload").prop('disabled', true);
813 },
814 Reset: function () {
815 Table.SetDataReview([]);
816 Pagecomponent.uploader.removeFiles();
817
818 UploadFileStatement.l.stop();
819 $('#UploadBox').hide();
820 $("#div-warning2")[0].innerHTML = "";
821 $("#buttonSaveUpload").prop("disabled", true);
822 }
823};
824
825var UploadFileStatementKmiFilter = {
826 ContainerName: "ContainerNewFilter",
827 AppliedFilter: [],
828 FilterWithAllOption: ["action", "sector"],
829
830 SetAppliedFilter: function (filter, value, description) {
831 UploadFileStatementKmiFilter.AppliedFilter.push({
832 filter: filter,
833 value: value,
834 description: description
835 });
836 },
837 SetOnLoadAppliedFilter: function (arrayFilter) {
838 if (arrayFilter.length > 0) {
839 //set filter
840 $.each(arrayFilter, function (index, item) {
841 UploadFileStatementKmiFilter.SetAppliedFilter(item.filter, item.value, item.description);
842 });
843
844 //apply filter and commit search
845 UploadFileStatementKmiFilter.GenerateSelectedFilter();
846 UploadFileStatementKmiFilter.GenerateListFilterOption();
847 UploadFileStatementKmiFilter.SubmitSelectedFilter();
848 }
849 else {
850 //first load, get request log with empty params
851 UploadFileStatementKmi.Get("", "");
852 }
853 },
854
855 OnLoad: function () {
856 //get data params
857 UserService.Get();
858
859 //set control initial load
860 $("#" + UploadFileStatementKmiFilter.ContainerName + " #dateUploadDate").kendoDatePicker({
861 start: "month",
862 depth: "year",
863 format: "dd MMM yyyy"
864 });
865 $("#" + UploadFileStatementKmiFilter.ContainerName + " #dateUploadDate , .k-select").unbind().click(function () {
866 $("#dateUploadDate").data("kendoDatePicker").dateView.toggle();
867 });
868 //set controls event
869 $("#" + UploadFileStatementKmiFilter.ContainerName + " #ButtonApplyFilter").unbind().click(function () {
870 var typeFilter = $("#" + UploadFileStatementKmiFilter.ContainerName + " #ContainerNewFilterType").val();
871 var valueFilter = "", textFilter = "";
872
873 //check if selected filter has all-opt
874 var filterAllOption = $.grep(UploadFileStatementKmiFilter.FilterWithAllOption, function (data) {
875 return data == typeFilter;
876 });
877 var isFilterAllOption = (filterAllOption != null && filterAllOption.length > 0 ? true : false);
878
879 //get filter value
880 switch (typeFilter) {
881 case "user":
882 selectedData = $("#" + UploadFileStatementKmiFilter.ContainerName + " #selectUser").select2('data');
883 valueFilter = selectedData[0].id;
884 textFilter = selectedData[0].text;
885 break;
886
887 case "uploadDate":
888 valueFilter = $("#" + UploadFileStatementKmiFilter.ContainerName + " #dateUploadDate").val();
889 textFilter = valueFilter;
890 break;
891
892 }
893
894 //run validation
895 if (!isFilterAllOption && (valueFilter == null || valueFilter == "")) {
896 UploadFileStatementKmiFilter.SetErrorValidation(typeFilter);
897 return;
898 }
899 else {
900 UploadFileStatementKmiFilter.ResetErrorValidation();
901 }
902
903 //add to applied filter variable and generate the layout
904 if (!(isFilterAllOption && valueFilter == "")) {
905 //exclue when filter is action and user choose to select all
906 UploadFileStatementKmiFilter.SetAppliedFilter(typeFilter, valueFilter, textFilter);
907 }
908 UploadFileStatementKmiFilter.GenerateSelectedFilter();
909
910 //close container
911 UploadFileStatementKmiFilter.Close();
912
913 //call search process
914 UploadFileStatementKmiFilter.SubmitSelectedFilter();
915 });
916
917 $("#" + UploadFileStatementKmiFilter.ContainerName + " #ButtonCloseContainerNewFilter").unbind().click(function () {
918 UploadFileStatementKmiFilter.Close();
919 });
920
921 $("#LinkClearFilter").unbind().click(function () {
922 UploadFileStatementKmiFilter.AppliedFilter = [];
923 UploadFileStatementKmiFilter.GenerateSelectedFilter();
924 UploadFileStatementKmiFilter.GenerateListFilterOption();
925
926 //call api
927 UploadFileStatementKmiFilter.SubmitSelectedFilter();
928 });
929
930 $(".mis-link-add-filter").unbind().click(function () {
931 var typeFilter = $(this).data("misfilter");
932 var textFilter = $(this).text();
933
934 $("#ButtonAddFilter").addClass("mis-visibility-hidden");
935 UploadFileStatementKmiFilter.Show(textFilter, typeFilter);
936 });
937
938 mis.searchFilter.get("ContainerUploadFileStatementFilter", UploadFileStatementKmiFilter.SetOnLoadAppliedFilter);
939 },
940
941 Reset: function () {
942 $("#" + UploadFileStatementKmiFilter.ContainerName + " #dateUploadDate").val("");
943 $("#" + UploadFileStatementKmiFilter.ContainerName + " #selectUser").val("-1").trigger("change");
944
945 $("#" + UploadFileStatementKmiFilter.ContainerName + " #ContainerNewFilterTitle").text("");
946 $("#" + UploadFileStatementKmiFilter.ContainerName + " #ContainerNewFilterType").val("");
947 $("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter").hide();
948
949 UploadFileStatementKmiFilter.ResetErrorValidation();
950 },
951
952 Close: function () {
953 $("#ButtonAddFilter").removeClass("mis-visibility-hidden");
954 UploadFileStatementKmiFilter.Reset();
955 $("#" + UploadFileStatementKmiFilter.ContainerName + "").hide();
956 },
957
958 Show: function (textFilter, typeFilter) {
959 $("#" + UploadFileStatementKmiFilter.ContainerName + " #ContainerNewFilterTitle").text(textFilter);
960 $("#" + UploadFileStatementKmiFilter.ContainerName + " #ContainerNewFilterType").val(typeFilter);
961 $("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='" + typeFilter + "']").show();
962 $("#" + UploadFileStatementKmiFilter.ContainerName + "").show();
963 },
964
965 SetErrorValidation: function (typeFilter) {
966 //if (typeFilter == "action") {
967 // //$("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='" + typeFilter + "']").removeClass("form-group").addClass("form-check g-px-0 u-has-error-v1");
968 // //$("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='" + typeFilter + "'] div").addClass("g-rounded-50x");
969 //}
970 //else {
971 $("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='" + typeFilter + "']").addClass("u-has-error-v1");
972 $("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='" + typeFilter + "'] small").show();
973 },
974
975 ResetErrorValidation: function () {
976 $("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='user']").removeClass("u-has-error-v1");
977 $("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='user'] small").hide();
978
979 $("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='uploadDate']").removeClass("u-has-error-v1");
980 $("#" + UploadFileStatementKmiFilter.ContainerName + " .mis-link-filter[data-misfilter='uploadDate'] small").hide();
981 },
982
983 GenerateSelectedFilter: function () {
984 var htmlContents = [];
985
986 $.each(UploadFileStatementKmiFilter.AppliedFilter, function (index, item) {
987 var htmlItem = "<span class=\"mis-link-clear-filter u-label g-rounded-5 g-bg-gray-light-v5 g-color-gray-dark-v3 g-px-20 g-py-10 g-mr-10 g-mb-20 mis-text-transform-capitalize g-font-size-14\">" +
988 item.filter + ": \"<span class=\"mis-text-transform-none\">" + item.description + "</span>\"" +
989 "<i class=\"fa fa-times-circle g-ml-10 g-cursor-pointer mis-link-clear-filter-icon\" aria-hidden=\"true\" data-misfilter=\"" + item.filter + "\"></i></span>";
990 htmlContents.push(htmlItem);
991
992 //hide selected filter
993 $("#ButtonAddFilter a.mis-link-add-filter[data-misfilter='" + item.filter + "']").hide();
994 });
995 $("#ContainerAppliedFilter").html("").append(htmlContents.join(''));
996
997 //set clear filter event
998 $("#ContainerAppliedFilter i.mis-link-clear-filter-icon").unbind().click(function () {
999 var typeFilter = $(this).data("misfilter");
1000
1001 UploadFileStatementKmiFilter.AppliedFilter = $.grep(UploadFileStatementKmiFilter.AppliedFilter, function (e) {
1002 return e.filter != typeFilter;
1003 });
1004 UploadFileStatementKmiFilter.GenerateSelectedFilter();
1005 UploadFileStatementKmiFilter.GenerateListFilterOption();
1006
1007
1008 //call api
1009 UploadFileStatementKmiFilter.SubmitSelectedFilter();
1010 });
1011
1012 //show/hide clear filter button
1013 if (UploadFileStatementKmiFilter.AppliedFilter.length > 0) {
1014 $("#LinkClearFilter").show();
1015 }
1016 else {
1017 $("#LinkClearFilter").hide();
1018 }
1019 },
1020
1021 GenerateListFilterOption: function () {
1022 //reset filter selection list
1023 $("#ButtonAddFilter a.mis-link-add-filter").show();
1024
1025 $.each(UploadFileStatementKmiFilter.AppliedFilter, function (index, item) {
1026 //hide selected filter
1027 $("#ButtonAddFilter a.mis-link-add-filter[data-misfilter='" + item.filter + "']").hide();
1028 });
1029 },
1030
1031 SubmitSelectedFilter: function () {
1032 var searchUser = "", searchUploadDate = ""
1033
1034 $.each(UploadFileStatementKmiFilter.AppliedFilter, function (index, item) {
1035 switch (item.filter) {
1036 case "user":
1037 searchUser = item.value;
1038 break;
1039
1040 case "uploadDate":
1041 searchUploadDate = item.value;
1042 break;
1043 }
1044 });
1045
1046 mis.searchFilter.set("ContainerUploadFileStatementFilter", UploadFileStatementKmiFilter.AppliedFilter);
1047 //call api
1048 UploadFileStatementKmi.Get(searchUser, searchUploadDate);
1049 },
1050};
1051
1052var UserService = {
1053 Get: function (callback) {
1054 try {
1055 var link = '/api/v1/user/userselectv2';
1056 $("#selectUser").kmiSelect2Employee({
1057 url: link,
1058 //placeholder: "All",
1059 width: "100%"
1060 });
1061 }
1062 catch (err) {
1063 console.log(err);
1064 }
1065 }
1066};