Project

General

Profile

Bug #3975 ยป documentlogistic.js

Tri Rizqiaty, 11/04/2025 11:41 AM

 
1
Ext.define('MinovaES.controller.logistic.documentlogistic', {
2
    extend: 'Ext.app.ViewController',
3
    alias: 'controller.documentlogistic',
4
    action: '0',
5
    transType: undefined,
6
    docType: undefined,
7
    docNo: "None",
8
	dataExist: "",
9
	docStatus: "",
10
	docStatusExist: "",
11
	PostingDateExist: "",
12
	IsCompanyIDChange: "0",
13
	stockAdjustmentDocNo: "",
14
    init: function () {
15
        this.control({
16
            'button[name=CreateDoc]': {
17
                click: this.createDoc
18
            },
19
            '[name=searchResult]': {
20
                afterrender: this.afterrenderLookupGrid,
21
                itemdblclick: this.displayDoc,
22
                //itemclick: this.displayResultInfo // comment Tri nwh
23
            },
24
            'button[name=CreateDocRef]': {
25
                click: this.getLookupRefDoc
26
            },
27
            'button[name=CopyDocRef]': {
28
                click: this.getcopyDocRef
29
            },
30
            '[name=FiloDocMain]': {
31
                afterrender: this.afterrenderDoc,
32
            },
33
            '[name=SaveCreateDoc]': {
34
                //click: this.saveDoc
35
                click: function () {
36
                    // this == the button, as we are in the local scope
37
                    console.log('SaveCreateDoc!');
38
                    this.backCreateDoc();
39

    
40
                }
41
            },
42
            '[name=Create1Doc]': {
43
                //click: this.saveDoc
44
                click: function () {
45
                    // this == the button, as we are in the local scope
46
                    console.log('Create1Doc!');
47
                    this.backDoc();
48
                    this.loadDoc();
49
                }
50
            },
51
			'[name=DisplayDoc]': {
52
				
53
                //click: this.saveDoc
54
                click: function () {
55
                    // this == the button, as we are in the local scope
56
                    console.log('DisplayDoc!');
57
                    //this.backDoc();
58
                    this.loadDoc();
59
                }
60
            },
61
            'button[name=SaveCreateDocRef]': {
62
                click: this.backCreateDoc
63
            },
64
            'button[name=Create1DocRef]': {
65
				click: function () {
66
					this.reloadDoc();
67
                    this.createDoc();
68
                    this.getLookupRefDoc();
69
                }
70
            },
71
            '[name=SaveDoc]': {
72
                click: this.saveDoc
73
            },
74
            '[name=SaveCopyDoc]': {
75
                click: this.SaveCopyDoc
76
            },
77
            '[name=DeleteDoc]': {
78
                click: this.deleteDoc
79
            },
80
            '[name=CancelDoc]': {
81
                click: this.cancelDoc
82
            },
83
            '[name=EditDoc]': {
84
                click: this.editDoc
85
            },
86
            '#DocNo': {
87
                "ontriggerclick": this.getLookupDoc,
88
                specialkey: this.specialKey
89
            },
90
            '#mainTab': {
91
                tabchange: this.changeTab
92
            },
93
            '[name=panelTab]': {
94
                afterrender: this.afterrenderTab
95
            },
96
            '[name=searchFilter]': {
97
                afterrender: this.doctyperender
98
            },
99
			'[name=PostingDate]': {
100
				change: this.PostingDate
101
			},
102
			'[name=CompanyID]': {
103
				change: this.CompanyID
104
			}/*,
105
			'[name=DocStatus]': {
106
				change: this.DocStatus
107
			}*/
108
        });
109
    },
110
	stockAdjustment: function () {
111
		var me = this;  // Ensure 'me' is assigned to 'this'
112
		var queryString = window.location.search;
113
		var cf = new minovaBlowfish();
114
		var urlEncrypt = cf.minovaDecryptUrl(queryString);
115

    
116
		// Split the string by '&' to separate the parameters
117
		var params = urlEncrypt.split('&');
118

    
119
		// Initialize variables to store the decoded data and the array
120
		var dataArray;
121
		var decodedData;
122

    
123
		// Initialize variable to store the 'from' parameter value
124
		var fromValue;
125
		
126
		// Initialize variable to store the 'from' parameter value
127
		var docNo;
128
		var tableName;
129

    
130
		// Try-catch block to handle potential errors
131
		try {
132
			// Loop through the parameters to find the 'data' and 'from' parameters
133
			params.forEach(function (param) {
134
				// Split each parameter by '=' to separate the name and value
135
				var parts = param.split('=');
136

    
137
				// Check if the parameter is the 'data' parameter
138
				if (parts[0] === 'data') {
139
					// Decode the URL-encoded string
140
					decodedData = decodeURIComponent(parts[1]);
141

    
142
					// Parse the JSON string to get the array
143
					dataArray = JSON.parse(decodedData);
144
				}
145

    
146
				// Check if the parameter is the 'from' parameter
147
				if (parts[0] === 'from') {
148
					// Get the value of the 'from' parameter
149
					fromValue = parts[1];
150
				}
151
				
152
				if (parts[0] === 'docno'){
153
					docNo = parts[1];
154
				}
155
				
156
				if (parts[0] === 'tablename'){
157
					tableName = parts[1];
158
				}
159
				
160
			});
161
			console.log(dataArray);
162

    
163
			// Get the first object from the dataArray
164
			var firstItem = dataArray ? dataArray[0] : undefined;
165

    
166
			// Get the value of the "Warehouse" property from the first object
167
			var firstWarehouse = firstItem ? firstItem.Warehouse : undefined;
168

    
169
			// Check if fromValue is 'STOCKADJUSTMENT'
170
			if (fromValue === 'STOCKADJUSTMENT') {
171
				// Set To Action Create
172
				// Get a reference to the button with the name "CreateDoc"
173
				var createButton = Ext.ComponentQuery.query('button[name=CreateDoc]')[0];
174

    
175
				// Check if the button exists
176
				if (createButton) {
177
					// Fire the click event on the button
178
					createButton.fireEvent('click', createButton);
179
				}
180
			}
181
			// Load Display Doc dari Menu Stock Adjusment > Stock Adjustment List Grid Double Click
182
			else if (fromValue === 'STOCKADJUSTMENTLIST'){
183
				//
184
				me.loadDocList(docNo, tableName);
185
			}
186
			
187
		} catch (error) {
188
			//console.error('Error in stock adjustment processing:', error);
189
		}
190
	},
191

    
192

    
193
	
194
	getcopyDocRef: function () { 
195
		var me = this;
196
        var grid = Ext.ComponentQuery.query('[name=searchResult]')[0];
197
        var selection = grid.getView().getSelectionModel().getSelection()[0];
198
        try {
199
			var documentno = selection.data.DocNo;
200
		}
201
		catch (err) {
202
		}
203
        LookupFunction = this.LookupFunction;
204
        eval(LookupFunction);
205
        if ( documentno === undefined ) {
206
			MinovaMessage('Message', '00003', '', 'E', function (respone){
207
			});
208
		}
209
		else {
210
			me.copyDoc(documentno, grid.tableName);
211
			me.action = '0';
212
		}
213
	},
214
	
215
	PostingDate: function () { 
216
		var tb = Ext.ComponentQuery.query('[name=panelTab]')[0];
217
        var activeTab = tb.activeTab;
218
		var tbl = activeTab.tbl;
219
		var btnadd = Ext.ComponentQuery.query('[name=add' + tbl + ']')[0].setDisabled(false);
220
        var btndelete = Ext.ComponentQuery.query('[name=delete' + tbl + ']')[0].setDisabled(false);		
221
		/*var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
222
        var formheader = panelHead.getForm();
223
        var FiscalPeriod = formheader.findField("FiscalPeriod").getValue();
224
		var FiscalYear = formheader.findField("FiscalYear").getValue();
225
		var DocStatus = formheader.findField("DocStatus").getValue();
226
		if(DocStatus == '1')
227
		{
228
			var grdPanel = Ext.ComponentQuery.query('[name=GRID' + tbl + ']')[0];
229
			var store = Ext.StoreMgr.lookup("store" + tbl);
230
			for (i = 0; i < store.count(); i++) {			
231
				store.data.items[i].data.FiscalPeriod = FiscalPeriod;
232
				store.data.items[i].data.FiscalYear = FiscalYear;
233
			}	
234
		}*/
235
	},
236
	
237
	CompanyID: function () { 
238
		//IsCompanyIDChange = '1';
239
		var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
240
        var formheader = panelHead.getForm();
241
		//var readonly = formheader.findField("DocStatus").setReadOnly(false);
242
        //var status = formheader.findField("DocStatus").clearValue();
243
	},
244
	
245
	/*DocStatus: function () { 
246
		alert('nwh');
247
		console.log(IsCompanyIDChange);
248
		if(IsCompanyIDChange == '0')
249
		{
250
			alert('Please choose CompanyID first?');
251
			var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
252
			var formheader = panelHead.getForm();
253
			var status = formheader.findField("DocStatus").setReadOnly(true);
254
		}		
255
	},*/
256
	
257
    doctyperender: function () {
258
        var menuID = MinovaUtil.GetMenuID();
259
        var notes = '';
260
        Ext.Ajax.request({
261
            async: false,
262
            method: 'POST',
263
            url: '/UserControl/GetStore',
264
            params: {
265
                tableName: 'SMENU',
266
                param: 'MENUID' + '[=]' + menuID
267
            },
268
            success: function (response) {
269
                var results = Ext.decode(response.responseText);
270
                dt = results.data;
271
                notes = dt[0].Notes;
272
            }
273
        });
274
        console.log(notes);
275

    
276
    },
277
    afterrenderLookupGrid: function () {
278
		console.log('afterrenderLookupGrid');
279
        setTimeout(function () {
280
			var store = Ext.data.StoreManager.lookup('storeadvance');
281
		
282
			store.removeAll();
283
			store.reload();
284
			store.sort("ChangeDate", "DESC");
285
			
286
			////store.loadPage(1);
287
		}, 3000);
288
    },
289
    afterrenderDoc: function () { console.log('afterrenderDoc');
290
        var me = this;
291
		me.stockAdjustment();
292
        var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
293
        var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
294
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
295
        var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
296
        var formHead = panelHead.getForm();
297
        var btnSaveCreate = Ext.ComponentQuery.query('[name=SaveCreateDoc]')[0];
298
        var btnCreate = Ext.ComponentQuery.query('[name=Create1Doc]')[0];
299
        var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
300
        var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
301
        var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
302
        var btnPost = Ext.ComponentQuery.query('[name=PostDoc]')[0];
303
        var btnCreateRef = Ext.ComponentQuery.query('[name=CreateDocRef]')[0];
304
		
305
        //var act = getParam("action");
306
        // var act = me.action;
307
        // if(act == '0'){
308
        // pnlSelect.setHidden(false);
309
        // pnlTransaction.setHidden(true);
310
        // } else {
311
        // pnlSelect.setHidden(true);
312
        // pnlTransaction.setHidden(false);
313
        // if(act == '0'){
314
        // panelHead.setHidden(false);
315
        // panelDisplayHead.setHidden(true);
316
        // btnSave.setDisabled(false);
317
        // btnEdit.setDisabled(true);
318
        // btnDelete.setDisabled(true);
319
        // }
320
        // else if(act == '1'){
321
        // panelHead.setHidden(true);
322
        // panelDisplayHead.setHidden(false);
323
        // btnSave.setDisabled(true);
324
        // btnEdit.setDisabled(false);
325
        // btnDelete.setDisabled(false);
326
        // }
327
        //}
328
        me.transType = panelHead.transType;
329
        me.docType = panelHead.docType;
330
        me.transType = panelDisplayHead.transType;
331
        me.docType = panelDisplayHead.docType;
332
        formHead.findField("DocType").setValue(me.docType);
333
         if(me.transType == 'SLS' && me.docType == 'SINQ'){
334
         btnCreateRef.setHidden(true);
335
         };
336
		 if(me.transType == 'PUR' && me.docType == 'PB'){
337
         btnCreateRef.setHidden(true);
338
         };
339
		
340
		//-- add Tri nwh 2025103 hide button sesuai action menu start
341
		var btnCreate = Ext.ComponentQuery.query('[name=CreateDoc]')[0];
342
		var btnCopyDocRef = Ext.ComponentQuery.query('[name=CopyDocRef]')[0];
343
		var menuid = MinovaUtil.GetMenuID(); 
344
		var actionMenu = MinovaUtil.GetActionMenu();
345
		if(actionMenu == "0") 					
346
		{
347
			btnCreateRef.setHidden(true);
348
			btnCreate.setHidden(true);
349
			btnCopyDocRef.setHidden(true);
350
		}
351
		else
352
		{
353
			//-- add Tri nwh 20251003 hide button custom by MenuID  start (notes: yg di View tdk berfungsi)
354
			if(menuid == "SALESRETURN") 		
355
			{
356
				btnCreate.setHidden(true);
357
				btnCopyDocRef.setHidden(true);
358
			}
359
			else if(menuid == "GICU" || menuid == "RTSP" || menuid == "RCSP" || menuid == "RCSPREQ") 		
360
			{
361
				btnCreate.setHidden(true);
362
				btnCopyDocRef.setHidden(true);
363
			}
364
			else if(menuid == "MTPR") 		
365
			{
366
				btnCreateRef.setHidden(true);
367
				btnCopyDocRef.setHidden(true);
368
			}
369
			else if(menuid == "RCSPAPPR") 		
370
			{
371
				btnCreateRef.setHidden(true);
372
				btnCreate.setHidden(true);
373
				btnCopyDocRef.setHidden(true);
374
			}
375
			else if(menuid == "INTR" || menuid == "INTRREQ" || menuid == "INTRAPPR") 		
376
			{
377
				btnCreateRef.setHidden(true);
378
			}
379
			//-- add Tri nwh 20251003 hide button custom by MenuID  end
380
		}
381
		//-- add Tri nwh 2025103 hide button sesuai action menu end
382
    },
383
    afterrenderTab: function () { console.log('afterrenderTab');
384
        var me = this;
385
        var tb = Ext.ComponentQuery.query('[name=panelTab]')[0];
386
        var activeTab = tb.activeTab;
387
        var keyField = "DocNo";
388
        var keyValue = me.docNo;
389
        var act = me.action;
390
        me.loadTabPanel(activeTab, keyField, keyValue, act);
391
    },
392
    changeTab: function (tabPanel, newCard, oldCard, eOpts) {
393
        var me = this;
394
        var keyField = "DocNo";
395
        var keyValue = me.docNo;
396
        var act = me.action;
397
        me.loadTabPanel(newCard, keyField, keyValue, act);
398
    },
399
    loadTabPanel: function (tabObj, keyField, keyValue, act) {
400
		var me = this;
401
        var tbl = tabObj.tbl;
402
        tabObj.getEl().mask("loading...");
403
		console.log(tbl);
404
        if (tabObj.layoutType == 'L001') {
405
            var dt = undefined;
406
            Ext.Ajax.request({
407
                async: false,
408
                method: 'POST',
409
                url: '/UserControl/GetStore',
410
                params: {
411
                    tableName: tbl,
412
                    param: keyField + '[=]' + keyValue
413
                },
414
                success: function (response) {
415
                    var results = Ext.decode(response.responseText);
416
                    dt = results.data;
417
                }
418
            });
419
            var frmDisplay = Ext.ComponentQuery.query('[name=DISPLAY' + tbl + ']')[0];
420
            var frmForm = Ext.ComponentQuery.query('[name=FORM' + tbl + ']')[0];
421
            if (act == '0') {
422
                frmDisplay.setHidden(true);
423
                frmForm.setHidden(false);
424
            } else if (act == '1' || act == '2') {
425
                frmDisplay.reset();
426
                frmForm.reset();
427
                if (dt.length > 0) {
428
                    frmDisplay.getForm().setValues(dt[0]);
429
                    frmForm.getForm().setValues(dt[0]);
430
                }
431
                frmDisplay.setHidden(false);
432
                frmForm.setHidden(true);
433
            }
434
        }
435
        if (tabObj.layoutType == 'L002' || tabObj.layoutType == 'L003') {
436
            var frmDisplay = Ext.ComponentQuery.query('[name=DISPLAY' + tbl + ']')[0];
437
            var frmForm = Ext.ComponentQuery.query('[name=FORM' + tbl + ']')[0];
438
            var grdPanel = Ext.ComponentQuery.query('[name=GRID' + tbl + ']')[0];
439
            var store = Ext.StoreMgr.lookup("store" + tbl);
440
            store.proxy.extraParams = {
441
                tableName: tbl,
442
                param: keyField + '[=]' + keyValue
443
            };
444
            store.removeAll();
445
            store.reload();
446
            store.loadPage(1);
447
            frmDisplay.reset();
448
            frmForm.reset();
449
            frmDisplay.setHidden(true);
450
            frmForm.setHidden(true);
451
            grdPanel.setHidden(false);
452
        }
453
        if (tabObj.layoutType == 'L005') {
454
            var grdPanel = Ext.ComponentQuery.query('[name=GRID' + tbl + ']')[0];
455
            var store = Ext.StoreMgr.lookup("store" + tbl);
456
            store.proxy.extraParams = {
457
                tableName: tbl,
458
                param: keyField + '[=]' + keyValue
459
            };
460
            store.removeAll();
461
            store.reload();
462
            store.loadPage(1);
463
            grdPanel.setHidden(false);
464
        }
465
        if (tabObj.layoutType == 'L006' || tabObj.layoutType == 'L007') {
466
			
467
			// Cek Apakah Page dari Stock Adjustment
468
			var queryString = window.location.search;
469
				var cf = new minovaBlowfish();
470
				var urlEncrypt = cf.minovaDecryptUrl(queryString);
471

    
472
				// Split the string by '&' to separate the parameters
473
				var params = urlEncrypt.split('&');
474

    
475
				// Initialize variables to store the decoded data and the array
476
				var dataArray;
477
				var decodedData;
478
				// Cek Apabila Page dari Stock Adjustment, maka Grid akan diisi dari table tampungan
479
				var fromPage = '';
480
				try {
481
					// Loop through the parameters to find the 'data' and 'from' parameters
482
					params.forEach(function (param) {
483
						// Split each parameter by '=' to separate the name and value
484
						var parts = param.split('=');
485

    
486
						// Check if the parameter is the 'data' parameter
487
						if (parts[0] === 'data') {
488
							// Decode the URL-encoded string
489
							decodedData = decodeURIComponent(parts[1]);
490

    
491
							// Parse the JSON string to get the array
492
							dataArray = JSON.parse(decodedData);
493
						}
494

    
495
						// Check if the parameter is the 'from' parameter
496
						if (parts[0] === 'from') {
497
							// Get the value of the 'from' parameter
498
							fromValue = parts[1];
499
						}
500
					});
501
					console.log(dataArray);
502

    
503
					// Get the first object from the dataArray
504
					var firstItem = dataArray ? dataArray[0] : undefined;
505

    
506
					// Get the value of the "Warehouse" property from the first object
507
					//var firstWarehouse = firstItem ? firstItem.Warehouse : undefined;
508

    
509
					// Check if fromValue is 'STOCKADJUSTMENT'
510
					if (fromValue === 'STOCKADJUSTMENT') {
511
						fromPage = fromValue;
512
						// Set Value Act Untuk Load Grid
513
						act = '2';
514
					}
515
				} catch (error) {
516
				}
517
			
518
            var grdPanel = Ext.ComponentQuery.query('[name=CELLGRID' + tbl + ']')[0];
519
            grdPanel.setHidden(false);
520
            if (act == '0') {
521
                var btnadd = Ext.ComponentQuery.query('[name=add' + tbl + ']')[0].setDisabled(false);
522
                var btndelete = Ext.ComponentQuery.query('[name=delete' + tbl + ']')[0].setDisabled(false);
523
                if (tabObj.layoutType == 'L007') {
524
                    var btnupload = Ext.ComponentQuery.query('[name=upload' + tbl + ']')[0].setDisabled(false);
525
                    var btndownload = Ext.ComponentQuery.query('[name=download' + tbl + ']')[0].setDisabled(false);
526
                }
527
            } else if (act == '2') {
528
				if (fromPage == 'STOCKADJUSTMENT'){
529
					
530
					// Clear Data Item 
531
					MinovaUtil.ExecuteParamQuery({
532
						ID: 'STOCKADJUSTMENTCLEARITEM',
533
					}, function(s) {
534
						try {
535
							var result = Ext.decode(s.responseText);
536
							var dt = Ext.decode(Ext.decode(result.data));
537
							if (dt != null && dt.length != 0) {
538
								var storeAdjustmentClear = Ext.create('Ext.data.Store', {
539
									data: dt,
540
								});
541
							}
542
						} catch (e) {
543
							console.error('Error clearing stock adjustment items:', e);
544
						}
545
					}, function(e) {
546
						console.error('Error executing STOCKADJUSTMENTCLEARITEM query:', e);
547
					});
548

    
549
					// Insert Data Array To Item Master Data
550
					// Loop through each item in the dataArray array
551
					dataArray.forEach(function(item) {
552
						// Execute MinovaUtil.ExecuteParamQuery
553
						MinovaUtil.ExecuteParamQuery({
554
							ID: 'STOCKADJUSTMENTINSERTITEM',
555
							Warehouse: item.Warehouse,
556
							StockStatus: item.StockStatus,
557
							MaterialID: item.MaterialID,
558
							QtyAdjust: item.QtyAdjust,
559
							Qty: item.Qty,
560
							QtyReal: item.QtyReal,
561
							ItemFlow: item.QtyAdjust > 0 ? 'RCPT' : (item.QtyAdjust < 0 ? 'ISSU' : ''),
562
							UserID: 'shofwan'
563
						}, function(s) {
564
							try {
565
								var result = Ext.decode(s.responseText);
566
								var dt = Ext.decode(Ext.decode(result.data));
567
								if (dt != null && dt.length != 0) {
568
									var storeAdjustment = Ext.create('Ext.data.Store', {
569
										data: dt,
570
									});
571

    
572
									// Save Doc No Stock Adjustment in a temporary table
573
									me.stockAdjustmentDocNo = dt[0].DocNo;
574
								}
575
							} catch (e) {
576
								console.error('Error inserting stock adjustment item:', e);
577
							}
578
						}, function(e) {
579
							console.error('Error executing STOCKADJUSTMENTINSERTITEM query:', e);
580
						});
581
					});
582
					
583
					var btnadd = Ext.ComponentQuery.query('[name=add' + tbl + ']')[0].setDisabled(true);
584
					var btndelete = Ext.ComponentQuery.query('[name=delete' + tbl + ']')[0].setDisabled(true);
585
					if (tabObj.layoutType == 'L007') {
586
						var btnupload = Ext.ComponentQuery.query('[name=upload' + tbl + ']')[0].setDisabled(true);
587
						var btndownload = Ext.ComponentQuery.query('[name=download' + tbl + ']')[0].setDisabled(true);
588
					}
589
					var store = Ext.StoreMgr.lookup("store" + tbl);
590
					store.proxy.url = '/UserControl/GetStore';
591
					store.proxy.extraParams = {
592
						tableName: 'PTRMATERIALITEM_SA',
593
						param: keyField + '[=]' + me.stockAdjustmentDocNo
594
					};
595
					store.removeAll();
596
					store.reload();
597
					store.loadPage(1);	
598
				}
599
				else{
600
					var btnadd = Ext.ComponentQuery.query('[name=add' + tbl + ']')[0].setDisabled(true);
601
					var btndelete = Ext.ComponentQuery.query('[name=delete' + tbl + ']')[0].setDisabled(true);
602
					if (tabObj.layoutType == 'L007') {
603
						var btnupload = Ext.ComponentQuery.query('[name=upload' + tbl + ']')[0].setDisabled(true);
604
						var btndownload = Ext.ComponentQuery.query('[name=download' + tbl + ']')[0].setDisabled(true);
605
					}
606
					var store = Ext.StoreMgr.lookup("store" + tbl);
607
					store.proxy.url = '/UserControl/GetStore';
608
					store.proxy.extraParams = {
609
						tableName: tbl,
610
						param: keyField + '[=]' + keyValue
611
					};
612
					store.removeAll();
613
					store.reload();
614
					store.loadPage(1);	
615
				}	
616
            } else {
617
                var btnadd = Ext.ComponentQuery.query('[name=add' + tbl + ']')[0].setDisabled(false);
618
                var btndelete = Ext.ComponentQuery.query('[name=delete' + tbl + ']')[0].setDisabled(false);
619
                if (tabObj.layoutType == 'L007') {
620
                    var btnupload = Ext.ComponentQuery.query('[name=upload' + tbl + ']')[0].setDisabled(false);
621
                    var btndownload = Ext.ComponentQuery.query('[name=download' + tbl + ']')[0].setDisabled(false);
622
                }
623
            }
624

    
625
            if (tabObj.layoutType == 'L007') {
626
				
627
				// Cek Apabila Page dari Stock Adjustment
628
				
629
				// Apabila Page dari stock adjustment maka auto load tadi table tampungan PTRMATERIALITEM_STOCKADJUSTMERT
630
				if (fromPage == 'STOCKADJUSTMENT'){
631
					var sumPanel = Ext.ComponentQuery.query('[name=SUM' + tbl + ']')[0];
632
					var sumForm = sumPanel.getForm();
633
					var itm = sumForm.getFields().items;
634
					Ext.Ajax.request({
635
						async: false,
636
						method: 'POST',
637
						url: '/UserControl/GetStore',
638
						params: {
639
							tableName: 'PTRMATERIALITEM_SA',
640
							param: keyField + '[=]' + me.stockAdjustmentDocNo
641
						},
642
						success: function (response) {
643
							var results = Ext.decode(response.responseText);
644
							dtgrid = results.data;
645
						}
646
					});
647
					Ext.each(itm, function (i) {
648
						var fld = i.name;
649
						var fldValue = 0;
650
						Ext.each(dtgrid, function (d) {
651
							var fValue = d[fld];
652
							fldValue = fldValue + parseFloat(fValue);
653
						});
654
						fldValue = Ext.util.Format.number(fldValue, '0,000.00');
655
						sumForm.findField(fld).setValue(fldValue);
656
					});
657
					var total_item = dtgrid.length;
658
					Ext.ComponentQuery.query('displayfield[name=totalitem]')[0].setValue(total_item);
659
				}
660
				
661
				//Kondisi Selain Stock Adjusment
662
				else {
663
					var sumPanel = Ext.ComponentQuery.query('[name=SUM' + tbl + ']')[0];
664
					var sumForm = sumPanel.getForm();
665
					var itm = sumForm.getFields().items;
666
					Ext.Ajax.request({
667
						async: false,
668
						method: 'POST',
669
						url: '/UserControl/GetStore',
670
						params: {
671
							tableName: tbl,
672
							param: keyField + '[=]' + keyValue
673
						},
674
						success: function (response) {
675
							var results = Ext.decode(response.responseText);
676
							dtgrid = results.data;
677
						}
678
					});
679
					Ext.each(itm, function (i) {
680
						var fld = i.name;
681
						var fldValue = 0;
682
						Ext.each(dtgrid, function (d) {
683
							var fValue = d[fld];
684
							fldValue = fldValue + parseFloat(fValue);
685
						});
686
						fldValue = Ext.util.Format.number(fldValue, '0,000.00');
687
						sumForm.findField(fld).setValue(fldValue);
688
					});
689
					var total_item = dtgrid.length;
690
					Ext.ComponentQuery.query('displayfield[name=totalitem]')[0].setValue(total_item);
691
				}
692
            }
693
        }
694
        tabObj.getEl().unmask();
695
		if(tbl == 'PTRALLOCATION')	//add by Tri nwh 20240426
696
		{ 	console.log('r'); console.log(act);
697
			var storea = Ext.StoreMgr.lookup("storePTRALLOCATION");
698
			var grid = Ext.getCmp('gridCELLGRIDPTRALLOCATION'); 
699
			var selectiona = grid.getView().getSelectionModel().getSelection()[0];
700
			console.log(storea.data.length);	
701
			
702
			grid.on('beforeedit', function(e, editor) {
703
				console.log(e); console.log(editor); console.log(editor.rowIdx);
704
				var st = storea.getAt(editor.rowIdx).get('IsAllocated');
705
				if(st == 1)
706
				{
707
					return false;
708
				}
709
			}, grid);
710
		}
711
    },
712
    buildMultiGrid: function () {
713
        var PanelData = Ext.ComponentQuery.query('[name=panelTab]')[0];
714
        var GridData = PanelData.query('docgrid');
715
        var GridLength = GridData.length;
716
        var GridBuildStrings = [];
717
        for (var i = 0; i < GridLength; i++) {
718
            var records = [];
719
            var grd = GridData[i].query('grid')[0];
720
            if (grd.hasOwnProperty('CRUDflag')) {
721
                records = grd.CRUDflag.getAllRecords(GridData[i].store)
722
            } else {
723
                var recC = grd.store.getNewRecords();
724
                Ext.each(recC, function (rec) {
725
                    rec.data.FlagCrud = "I";
726
                    records.push(rec);
727
                });
728
                var recU = grd.store.getUpdatedRecords();
729
                Ext.each(recU, function (rec) {
730
                    rec.data.FlagCrud = "U";
731
                    records.push(rec);
732
                });
733
                var recD = grd.store.getRemovedRecords();
734
                Ext.each(recD, function (rec) {
735
                    rec.data.FlagCrud = "D";
736
                    records.push(rec);
737
                });
738
            }
739
            Ext.each(records, function (rec) {
740
                var name = GridData[i].tableName;
741
                var obj = Ext.decode('{' + name + ':' + Ext.encode(rec.data) + '}');
742
                GridBuildStrings.push(obj);
743
            });
744
        }
745
        return GridBuildStrings;
746
    },
747
    buildMultiGridEditCell: function () {
748
        var PanelData = Ext.ComponentQuery.query('[name=panelTab]')[0];
749
        var GridData = PanelData.query('docgridcelledit');
750
        var GridLength = GridData.length;
751
        var GridBuildStrings = [];
752
        for (var i = 0; i < GridLength; i++) {
753
            var records = [];
754
            var grd = GridData[i].query('grid')[0];
755
            if (grd.hasOwnProperty('CRUDflag')) {
756
                records = grd.CRUDflag.getAllRecords(GridData[i].store)
757
            } else {
758
                var recC = grd.store.getNewRecords();
759
                Ext.each(recC, function (rec) {
760
                    rec.data.FlagCrud = "I";
761
                    records.push(rec);
762
                });
763
                var recU = grd.store.getUpdatedRecords();
764
                Ext.each(recU, function (rec) {
765
                    rec.data.FlagCrud = "U";
766
                    records.push(rec);
767
                });
768
                var recD = grd.store.getRemovedRecords();
769
                Ext.each(recD, function (rec) {
770
                    rec.data.FlagCrud = "D";
771
                    records.push(rec);
772
                });
773
            }
774
            Ext.each(records, function (rec) {
775
                var name = GridData[i].tableName;
776
                var obj = Ext.decode('{' + name + ':' + Ext.encode(rec.data) + '}');
777
                GridBuildStrings.push(obj);
778
            });
779
        }
780
        return GridBuildStrings;
781
    },
782
    buildMultiGridEditCellSum: function () {
783
        var PanelData = Ext.ComponentQuery.query('[name=panelTab]')[0];
784
        var GridData = PanelData.query('docgridcelleditsum');
785
        var GridLength = GridData.length;
786
        var GridBuildStrings = [];
787
        for (var i = 0; i < GridLength; i++) {
788
            var records = [];
789
            var grd = GridData[i].query('grid')[0];
790
            if (grd.hasOwnProperty('CRUDflag')) {
791
                records = grd.CRUDflag.getAllRecords(GridData[i].store)
792
            } else {
793
                var recC = grd.store.getNewRecords();
794
                Ext.each(recC, function (rec) {
795
                    rec.data.FlagCrud = "I";
796
                    records.push(rec); console.log("I");
797
                });
798
                var recU = grd.store.getUpdatedRecords();
799
                Ext.each(recU, function (rec) {
800
                    rec.data.FlagCrud = "U";
801
                    records.push(rec); console.log("U");
802
                });
803
                var recD = grd.store.getRemovedRecords();
804
                Ext.each(recD, function (rec) {
805
                    rec.data.FlagCrud = "D";
806
                    records.push(rec);
807
                });
808
            }
809
            Ext.each(records, function (rec) {
810
                var name = GridData[i].tableName;
811
                var obj = Ext.decode('{' + name + ':' + Ext.encode(rec.data) + '}');
812
                GridBuildStrings.push(obj);	
813
            });
814
        }
815
        return GridBuildStrings;
816
		
817
    },
818
    loadTabPanelDocRef: function (dtheader, dtitems) {
819
        var me = this;
820
        var tb = Ext.ComponentQuery.query('[name=panelTab]')[0];
821
        var tabObj = tb.activeTab;
822
        var docno = me.docNo;
823
        var act = me.action;
824

    
825
        var tbl = tabObj.tbl;
826
        tabObj.getEl().mask("loading...");
827
        if (tabObj.layoutType == 'L001') {
828
            var frmDisplay = Ext.ComponentQuery.query('[name=DISPLAY' + tbl + ']')[0];
829
            var frmForm = Ext.ComponentQuery.query('[name=FORM' + tbl + ']')[0];
830
            frmDisplay.reset();
831
            frmForm.reset();
832
            if (dtheader.length > 0) {
833
                frmDisplay.getForm().setValues(dtheader[0]);
834
                frmForm.getForm().setValues(dtheader[0]);
835
            }
836
            frmDisplay.setHidden(true);
837
            frmForm.setHidden(false);
838
        }
839
        if (tabObj.layoutType == 'L002' || tabObj.layoutType == 'L003') {
840
            var frmDisplay = Ext.ComponentQuery.query('[name=DISPLAY' + tbl + ']')[0];
841
            var frmForm = Ext.ComponentQuery.query('[name=FORM' + tbl + ']')[0];
842
            var grdPanel = Ext.ComponentQuery.query('[name=GRID' + tbl + ']')[0];
843
            var store = Ext.StoreMgr.lookup("store" + tbl);
844
            store.removeAll();
845
            Ext.each(dtitems, function (item) {
846
                store.add(item);
847
            });
848
            frmDisplay.reset();
849
            frmForm.reset();
850
            frmDisplay.setHidden(true);
851
            frmForm.setHidden(true);
852
            grdPanel.setHidden(false);
853
        }
854
        if (tabObj.layoutType == 'L005') {
855
            var grdPanel = Ext.ComponentQuery.query('[name=GRID' + tbl + ']')[0];
856
            var store = Ext.StoreMgr.lookup("store" + tbl);
857
            store.removeAll();
858
            Ext.each(dtitems, function (item) {
859
                store.add(item);
860
            });
861
            grdPanel.setHidden(false);
862
        }
863
        if (tabObj.layoutType == 'L006' || tabObj.layoutType == 'L007') {
864
            var grdPanel = Ext.ComponentQuery.query('[name=CELLGRID' + tbl + ']')[0];
865
            grdPanel.setHidden(false);
866
            var btnadd = Ext.ComponentQuery.query('[name=add' + tbl + ']')[0].setDisabled(false);
867
            var btndelete = Ext.ComponentQuery.query('[name=delete' + tbl + ']')[0].setDisabled(false);
868
            var store = Ext.StoreMgr.lookup("store" + tbl);
869
            store.removeAll();
870
            Ext.each(dtitems, function (item) {
871
                store.add(item);
872
            });
873
            if (tabObj.layoutType == 'L007') {
874
                var sumPanel = Ext.ComponentQuery.query('[name=SUM' + tbl + ']')[0];
875
                var sumForm = sumPanel.getForm();
876
                var itm = sumForm.getFields().items;
877
                Ext.each(itm, function (i) {
878
                    var fld = i.name;
879
                    var fldValue = 0;
880
                    Ext.each(dtitems, function (dt) {
881
                        Ext.each(dt, function (d) {
882
                            var fValue = d[fld];
883
                            fldValue = fldValue + parseFloat(fValue);
884
                        });
885
                    });
886
                    fldValue = Ext.util.Format.number(fldValue, '0,000.00');
887
                    sumForm.findField(fld).setValue(fldValue);
888
                });
889
            }
890
        }
891
        tabObj.getEl().unmask();
892
    },
893
    createDocRef: function (dtheader, dtitems, intdocref) {
894
        var me = this;
895
        me.action = '0';
896
        me.docNo = 'None'
897
        var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
898
        var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
899
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
900
        var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
901
        var formHead = panelHead.getForm();
902
        formHead.reset();
903
        var formHeadDisplay = panelDisplayHead.getForm();
904
        formHeadDisplay.reset();
905
        var btnSaveCreate = Ext.ComponentQuery.query('[name=SaveCreateDoc]')[0];
906
        var btnCreate = Ext.ComponentQuery.query('[name=Create1Doc]')[0];
907
        var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
908
        var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
909
        var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
910
        pnlSelect.setHidden(true);
911
        pnlTransaction.setHidden(false);
912
        panelHead.setHidden(false);
913
        panelDisplayHead.setHidden(true);
914
        btnSaveCreate.setDisabled(false);
915
        btnCreate.setDisabled(false);
916
        btnSave.setDisabled(false);
917
        formHead.findField("DocType").setValue(me.docType);
918
        if (dtheader.length > 0) {
919
            formHead.setValues(dtheader[0]);
920
            formHeadDisplay.setValues(dtheader[0]);
921
        }
922
        var docnoref = "";
923
        Ext.each(intdocref, function (doc) {
924
            docnoref = docnoref + "," + doc;
925
        });
926
        var lg = docnoref.length;
927
        if (lg > 0) {
928
            docnoref = docnoref.substring(1, lg);
929
        }
930
        formHead.findField("IntDocRef").setValue(docnoref);
931
        formHead.findField("RefType").setValue("01");
932
        me.loadTabPanelDocRef(dtheader, dtitems);
933
		
934
		var docTypeRef = formHead.findField("DocTypeRef").getValue();
935
		if(me.transType == 'SLS' && me.docType == 'SORD' && docTypeRef == 'PREOD') {
936
			var orderSource = formHead.findField("SalesOrderSource").setValue('03');
937
			console.log('Create Doc Ref, orderSource ',orderSource.getValue());
938
		}
939
		
940
    },
941
    createDoc: function () {
942
		
943
        var me = this
944
		// shofwan 20240508
945
		// Auto Loac Create Doc saat stock adjustment
946
		
947
		var queryString = window.location.search;
948
		var cf = new minovaBlowfish();
949
		var urlEncrypt = cf.minovaDecryptUrl(queryString);
950

    
951
		// Split the string by '&' to separate the parameters
952
		var params = urlEncrypt.split('&');
953

    
954
		// Initialize variables to store the decoded data and the array
955
		var dataArray;
956
		var decodedData;
957

    
958
		// Initialize variable to store the 'from' parameter value
959
		var fromValue;
960
		
961
		try {
962
			// Loop through the parameters to find the 'data' and 'from' parameters
963
			params.forEach(function (param) {
964
				// Split each parameter by '=' to separate the name and value
965
				var parts = param.split('=');
966

    
967
				// Check if the parameter is the 'data' parameter
968
				if (parts[0] === 'data') {
969
					// Decode the URL-encoded string
970
					decodedData = decodeURIComponent(parts[1]);
971

    
972
					// Parse the JSON string to get the array
973
					dataArray = JSON.parse(decodedData);
974
				}
975

    
976
				// Check if the parameter is the 'from' parameter
977
				if (parts[0] === 'from') {
978
					// Get the value of the 'from' parameter
979
					fromValue = parts[1];
980
				}
981
			});
982
			console.log(dataArray);
983
			
984
			// Get the first object from the dataArray
985
			var firstItem = dataArray ? dataArray[0] : undefined;
986

    
987
			// Get the value of the "Warehouse" property from the first object
988
			var	firstWarehouse = firstItem ? firstItem.Warehouse : undefined;
989

    
990
			// Get the first object from the dataArray
991
			var firstItem = dataArray ? dataArray[0] : undefined;
992

    
993
			// Get the value of the "Warehouse" property from the first object
994
			var firstWarehouse = firstItem ? firstItem.Warehouse : undefined;
995
		}
996
		catch (error) {
997
		}
998
		
999
		
1000
        me.action = '0';
1001
        me.docNo = 'None';
1002
		me.dataExist= "";
1003
		me.docStatus= "";
1004
		me.docStatusExist= "";
1005
		me.PostingDateExist= "";
1006
        var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
1007
        var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
1008
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1009
        var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
1010
        var formHead = panelHead.getForm();
1011
		var docdate = formHead.findField("DocDate").getValue(); console.log(docdate); console.log(me.docType); //IntID by Tri nwh
1012
        formHead.reset();
1013
        var formHeadDisplay = panelDisplayHead.getForm();
1014
        formHeadDisplay.reset();		
1015
        var btnSaveCreate = Ext.ComponentQuery.query('[name=SaveCreateDoc]')[0];
1016
        var btnCreate = Ext.ComponentQuery.query('[name=Create1Doc]')[0];
1017
        var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
1018
        var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
1019
        var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
1020
        pnlSelect.setHidden(true);
1021
        pnlTransaction.setHidden(false);
1022
        panelHead.setHidden(false);
1023
        panelDisplayHead.setHidden(true);
1024
		formHead.findField("DocType").setValue(me.docType); //// pindahin by Tri nwh
1025
		
1026
		if(MinovaUtil.GetMenuID() == 'PURCHDEMANDFORGOODS')
1027
		{
1028
			formHead.findField("DocStatus").setValue('2');
1029
		}
1030
		/*// shofwan 20240508 Auto Load warehouse untuk stock adjustment
1031
		try{
1032
			formHead.findField("Warehouse").setValue(firstWarehouse); //// Shofwan
1033
		}
1034
		catch (error){
1035
		};*/ // dicomment krn error autoload saat create, Tri nwh 20250826
1036
		
1037
		if(MinovaUtil.GetMenuID() == 'STOCKADJDOC')	// add autoload wh, Tri nwh 20250826
1038
		{	console.log('wh stockadjust');
1039
			formHead.findField("Warehouse").setValue(firstWarehouse);
1040
		}
1041
		
1042
        btnSaveCreate.setDisabled(false);
1043
        btnCreate.setDisabled(false);
1044
        btnSave.setDisabled(false);
1045
		btnEdit.setDisabled(true);  // nwh tri
1046
        /*formHead.findField("DocType").setValue(me.docType);
1047
		console.log(formHead.findField("DocType").getValue());*/ //// dipindahin keatas by Tri nwh
1048
        me.afterrenderTab();
1049
		
1050
		var tb = Ext.ComponentQuery.query('[name=panelTab]')[0];
1051
		var tbl = tb.activeTab.tbl; console.log(me.transType);
1052
		if(me.transType == 'FIN')
1053
		{
1054
			var btnadd = Ext.ComponentQuery.query('[name=add' + tbl + ']')[0].setDisabled(true);
1055
			var btndelete = Ext.ComponentQuery.query('[name=delete' + tbl + ']')[0].setDisabled(true);
1056
		}	
1057
		else
1058
		{
1059
			var btnadd = Ext.ComponentQuery.query('[name=add' + tbl + ']')[0].setDisabled(false);
1060
			var btndelete = Ext.ComponentQuery.query('[name=delete' + tbl + ']')[0].setDisabled(false);
1061
		}
1062
		
1063
		if(me.transType == 'SLS' && me.docType == 'SORD' ) {
1064
			var orderSource = formHead.findField("SalesOrderSource").setValue('01');
1065
			console.log('Create Doc, orderSource ',orderSource.getValue());
1066
		}
1067
		
1068
		/*MinovaUtil.ExecuteParamQuery({ 	 //// IntID by Tri nwh 
1069
			ID: "CKJLLOGINTID",
1070
			DocType: me.docType,
1071
			DocDate: docdate
1072
		}, function (s) {
1073
			var result = Ext.decode(s.responseText); 
1074
			var dt = Ext.decode(Ext.decode(result.data));
1075
			formHead.findField("InternalID").setValue(dt[0].IntID); 
1076
		}, function (f) {});
1077
		
1078
		MinovaUtil.ExecuteParamQuery({ 	 //// ExtID by Tri nwh 
1079
			ID: "CKJLLOGEXTID",
1080
			DocType: me.docType,
1081
			DocDate: docdate
1082
		}, function (s) {
1083
			var result = Ext.decode(s.responseText); 
1084
			var dt = Ext.decode(Ext.decode(result.data));
1085
			formHead.findField("ExternalID").setValue(dt[0].ExtID); 
1086
		}, function (f) {});*/
1087
    },
1088
    displayDoc: function () {
1089
        var me = this;
1090
        //var documentNo = Ext.ComponentQuery.query('triggerfield[name=DocNo]')[0];
1091
        //var tbl = documentNo.tableName;
1092
        //me.loadDoc(documentNo.getValue(), tbl);
1093
        var grid = Ext.ComponentQuery.query('[name=searchResult]')[0];
1094
        var selection = grid.getView().getSelectionModel().getSelection()[0];
1095
        var documentno = selection.data.DocNo;
1096
        LookupFunction = this.LookupFunction;
1097
        eval(LookupFunction);
1098
        me.loadDoc(documentno, grid.tableName);
1099
    },
1100
    loadDoc: function (documentno, tbl) {
1101
        var me = this;
1102
        me.action = '2';
1103
        me.docNo = documentno;
1104
        var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
1105
        var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
1106
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1107
        var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
1108
        var formHead = panelHead.getForm();
1109
        var formHeadDisplay = panelDisplayHead.getForm();
1110
        var btnSaveCreate = Ext.ComponentQuery.query('[name=SaveCreateDoc]')[0];
1111
        var btnCreate = Ext.ComponentQuery.query('[name=Create1Doc]')[0];
1112
        var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
1113
        var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
1114
        var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
1115
        var dt = undefined;
1116
        Ext.Ajax.request({
1117
            async: false,
1118
            method: 'POST',
1119
            url: '/UserControl/GetStore',
1120
            params: {
1121
                tableName: tbl,
1122
                param: 'DocNo[=]' + me.docNo
1123
            },
1124
            success: function (response) {
1125
                var results = Ext.decode(response.responseText);
1126
                dt = results.data;
1127
            }
1128
        });
1129
		console.log(dt);
1130
        formHead.setValues(dt[0]);
1131
        formHeadDisplay.setValues(dt[0]);
1132
        me.afterrenderTab();
1133
        pnlSelect.setHidden(true);
1134
        pnlTransaction.setHidden(false);
1135
        panelHead.setHidden(false);
1136
        panelDisplayHead.setHidden(true);
1137
        btnSaveCreate.setDisabled(true);
1138
        btnCreate.setDisabled(true);
1139
		if(MinovaUtil.GetActionMenu() == "0")
1140
		{
1141
			btnSave.setHidden(true);
1142
			btnEdit.setHidden(true);
1143
		}
1144
		else
1145
		{
1146
			btnSave.setDisabled(true);
1147
			btnEdit.setDisabled(false);
1148
		}
1149
        btnDelete.setDisabled(false);
1150
		me.dataExist = "Y";
1151
		me.docStatusExist = formHead.findField("DocStatus").getValue();
1152

    
1153
		console.log('Load Doc');
1154
		//Ext.ComponentQuery.query('displayfield[name=totalitem]')[0].setValue('2');
1155
		//me.PostingDateExist = formHead.findField("PostingDate").getValue();
1156
    },
1157
	loadDocList: function (documentno, tbl) {
1158
        var me = this;
1159
        me.action = '2';
1160
        me.docNo = documentno;
1161
        var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
1162
        var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
1163
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1164
        var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
1165
        var formHead = panelHead.getForm();
1166
        var formHeadDisplay = panelDisplayHead.getForm();
1167
        var btnSaveCreate = Ext.ComponentQuery.query('[name=SaveCreateDoc]')[0];
1168
        var btnCreate = Ext.ComponentQuery.query('[name=Create1Doc]')[0];
1169
        var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
1170
        var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
1171
        var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
1172
        var dt = undefined;
1173
        Ext.Ajax.request({
1174
            async: false,
1175
            method: 'POST',
1176
            url: '/UserControl/GetStore',
1177
            params: {
1178
                tableName: tbl,
1179
                param: 'DocNo[=]' + me.docNo
1180
            },
1181
            success: function (response) {
1182
                var results = Ext.decode(response.responseText);
1183
                dt = results.data;
1184
            }
1185
        });
1186
		console.log(dt);
1187
        formHead.setValues(dt[0]);
1188
        formHeadDisplay.setValues(dt[0]);
1189
        me.afterrenderTab();
1190
        pnlSelect.setHidden(true);
1191
        pnlTransaction.setHidden(false);
1192
        panelHead.setHidden(false);
1193
        panelDisplayHead.setHidden(true);
1194
        btnSaveCreate.setDisabled(true);
1195
        btnCreate.setDisabled(true);
1196
		btnSave.setHidden(true);
1197
		btnEdit.setHidden(true);
1198
		btnEdit.setDisabled(false);
1199
		btnSave.setDisabled(true);
1200
        btnDelete.setDisabled(false);
1201
		me.dataExist = "Y";
1202
		me.docStatusExist = formHead.findField("DocStatus").getValue();
1203

    
1204
		//Ext.ComponentQuery.query('displayfield[name=totalitem]')[0].setValue('2');
1205
		//me.PostingDateExist = formHead.findField("PostingDate").getValue();
1206
    },
1207
    copyDoc: function (documentno, tbl) {
1208
        var me = this;
1209
        me.action = '2';
1210
        me.docNo = documentno;
1211
        var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
1212
        var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
1213
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1214
        var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
1215
        var formHead = panelHead.getForm();
1216
        var formHeadDisplay = panelDisplayHead.getForm();
1217
        var btnSaveCreate = Ext.ComponentQuery.query('[name=SaveCreateDoc]')[0];
1218
        var btnSaveCreateDocRef = Ext.ComponentQuery.query('[name=SaveCreateDocRef]')[0];
1219
        var btnCreate = Ext.ComponentQuery.query('[name=Create1Doc]')[0];
1220
        var btnCreateDocRef = Ext.ComponentQuery.query('[name=Create1DocRef]')[0];
1221
        var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
1222
        var btnSaveCopy = Ext.ComponentQuery.query('[name=SaveCopyDoc]')[0];
1223
        var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
1224
        var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
1225
        var dt = undefined;
1226
        Ext.Ajax.request({
1227
            async: false,
1228
            method: 'POST',
1229
            url: '/UserControl/GetStore',
1230
            params: {
1231
                tableName: tbl,
1232
                param: 'DocNo[=]' + me.docNo
1233
            },
1234
            success: function (response) {
1235
                var results = Ext.decode(response.responseText);
1236
				results.data[0].DocNo='';
1237
				results.data[0].ProcessID='';
1238
                dt = results.data;
1239
            }
1240
        });
1241
		console.log(dt);
1242
        formHead.setValues(dt[0]);
1243
        formHeadDisplay.setValues(dt[0]);
1244
        me.afterrenderTab();
1245
        pnlSelect.setHidden(true);
1246
        pnlTransaction.setHidden(false);
1247
        panelHead.setHidden(false);
1248
        panelDisplayHead.setHidden(true);
1249
        btnSaveCreate.setDisabled(true);
1250
        btnCreate.setDisabled(true);
1251
        btnSaveCreateDocRef.setDisabled(true);
1252
        btnCreateDocRef.setDisabled(true);
1253
        btnSave.setDisabled(true);
1254
        btnSaveCopy.setHidden(false);
1255
        btnEdit.setDisabled(false);
1256
        btnDelete.setDisabled(false);
1257
		me.dataExist = "Y";
1258
		me.docStatusExist = formHead.findField("DocStatus").getValue();
1259
    },
1260
    editDoc: function () {
1261
        var me = this;
1262
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1263
        var formheader = panelHead.getForm();
1264
        var status = formheader.findField("DocStatus").getValue();
1265

    
1266
        if (status == "5") {
1267
            Ext.Ajax.request({
1268
                async: false,
1269
                method: 'POST',
1270
                url: '/UserControl/GetStore',
1271
                params: {
1272
                    tableName: 'PCMBSDOCSTATUS',
1273
                    param: 'DocStatus[=]' + status
1274
                },
1275
                success: function (response) {
1276
                    var results = Ext.decode(response.responseText);
1277
                    dt = results.data[0];
1278
                }
1279
            });
1280
            MinovaMessage('000006', 'FILO01', dt.Description, 'W');
1281
			/*me.dataExist = "Y";
1282
			me.docStatusExist = formheader.findField("DocStatus").getValue();
1283
			me.PostingDateExist = formheader.findField("PostingDate").getValue();*/
1284
        } else {
1285
            me.action = '1';
1286
            var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
1287
            var btnSaveCreate = Ext.ComponentQuery.query('[name=SaveCreateDoc]')[0];
1288
            var btnCreate = Ext.ComponentQuery.query('[name=Create1Doc]')[0];
1289
            var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
1290
            var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
1291
            var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
1292
            panelHead.setHidden(false);
1293
            panelDisplayHead.setHidden(true);
1294
            btnSaveCreate.setDisabled(false);
1295
            btnCreate.setDisabled(false);
1296
            btnSave.setDisabled(false);
1297
            me.afterrenderTab();
1298
			/*me.dataExist = "Y";
1299
			me.docStatusExist = formheader.findField("DocStatus").getValue();
1300
			me.PostingDateExist = formheader.findField("PostingDate").getValue();*/			
1301
        }
1302
    },
1303
    saveDoc: function () {
1304
        var me = this;
1305
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1306
        var tbl = panelHead.tableName;
1307
        var formHead = panelHead.getForm();
1308
		var docStatus = formHead.findField("DocStatus").getValue();
1309
		var DocNo = formHead.findField("DocNo").getValue();
1310
		
1311
		
1312
				
1313
        if (me.transType == 'FIN') {
1314
            var FiscalYear = formHead.findField("FiscalYear").getValue();
1315
            var FiscalPeriod = formHead.findField("FiscalPeriod").getValue();
1316
			var pd = formHead.findField("PostingDate").getValue();
1317
            var debet = Ext.ComponentQuery.query('displayfield[name=AmountDebet]')[0];
1318
            var kredit = Ext.ComponentQuery.query('displayfield[name=AmountCredit]')[0];
1319
			
1320
            if (pd == null || pd == "" || pd == undefined) {
1321
				if(docStatus == '9')
1322
				{
1323
					MinovaMessage("", "FILO05", "", "E");
1324
					return;
1325
				}
1326
            }
1327
            if (debet !== undefined && kredit !== undefined) {
1328
                if (debet.getValue() !== kredit.getValue()) {
1329
                    MinovaMessage("", "FILO10", "", "E");
1330
                    return;
1331
                }
1332
            }
1333
			
1334
            console.log('FIN!'); 
1335

    
1336
			if (debet.getValue() == 0 && kredit.getValue() == 0 && docStatus == '9' ) {
1337
				if(me.dataExist == 'Y')
1338
				{
1339
					formHead.findField("DocStatus").setValue("3");
1340
					Ext.Ajax.request({
1341
					async: false,
1342
					method: 'POST',
1343
					url: '/UserControl/GetStore',
1344
					params: {
1345
						tableName: 'PDSFILODELETEDATATABLEPOST',
1346
						param: DocNo
1347
					},
1348
					success: function (response) {
1349
					}
1350
					});
1351
				}
1352
				else 
1353
				{
1354
					MinovaMessage("", "FILO11", "", "E");
1355
					return;
1356
				}
1357
            }
1358
			
1359
			if(me.docStatusExist == '9' || me.docStatusExist == '3')
1360
			{
1361
				if(docStatus == '1' || docStatus == '2')
1362
				{
1363
					MinovaMessage("", "FILO12", "", "E");
1364
					return;
1365
				}
1366
				if(pd != me.PostingDateExist)
1367
				{
1368
					MinovaMessage("", "FILO13", "", "E");
1369
					return;
1370
				}
1371
				if(docStatus == '3')//if(me.docStatus == '3')
1372
				{	
1373
					Ext.Ajax.request({
1374
					async: false,
1375
					method: 'POST',
1376
					url: '/UserControl/GetStore',
1377
					params: {
1378
						tableName: 'PDSFILODELETEDATATABLEPOST',
1379
						param: DocNo
1380
					},
1381
					success: function (response) {
1382
					}
1383
					});
1384
				}
1385
			}
1386
			
1387
			if(me.docStatusExist == '1' && docStatus == '1')
1388
			{
1389
				if(pd != me.PostingDateExist)
1390
				{
1391
					Ext.Ajax.request({
1392
					async: false,
1393
					method: 'POST',
1394
					url: '/UserControl/GetStore',
1395
					params: {
1396
						tableName: 'PDSFILOUPDATEPERIODFINANCEITEM',
1397
						param: DocNo + ',' + FiscalYear + ',' + FiscalPeriod
1398
					},
1399
					success: function (response) {
1400
					}
1401
					});
1402
				}
1403
			}
1404
			
1405
			if(me.docStatusExist == '1' && docStatus == '9')
1406
			{
1407
				if(pd != me.PostingDateExist)
1408
				{
1409
					
1410
					Ext.Ajax.request({
1411
					async: false,
1412
					method: 'POST',
1413
					url: '/UserControl/GetStore',
1414
					params: {
1415
						tableName: 'PDSFILOUPDATEPERIODFINANCEITEM',
1416
						param: DocNo + ',' + FiscalYear + ',' + FiscalPeriod
1417
					},
1418
					success: function (response) {
1419
					}
1420
					});
1421
				}
1422
			}
1423
        }
1424
		
1425
        if (formHead.isValid()) {
1426
            panelHead.mask("Loading...");
1427
            var dataHeader = Ext.encode(formHead.getValues());
1428
            var token = MinovaUtil.SESSIONS.Token;
1429
            var objGrid;
1430
            var objGridCell;
1431
            var objGridCellSum;
1432
            try {
1433
                objGrid = me.buildMultiGrid();
1434
                objGridCell = me.buildMultiGridEditCell();
1435
                objGridCellSum = me.buildMultiGridEditCellSum();
1436
                for (var i = 0; i < objGridCell.length; i++) {
1437
                    objGrid.push(objGridCell[i]);
1438
                }
1439
                for (var i = 0; i < objGridCellSum.length; i++) {
1440
                    objGrid.push(objGridCellSum[i]);
1441
                }
1442
            } catch (e) {
1443
                Ext.Msg.alert('Build Grid error', e);
1444
                return;
1445
            }
1446
           
1447
			
1448
			// Shofwan 20240524 Untuk Push Data Detail
1449
			var queryString = window.location.search;
1450
			var cf = new minovaBlowfish();
1451
			var urlEncrypt = cf.minovaDecryptUrl(queryString);
1452

    
1453
			// Split the string by '&' to separate the parameters
1454
			var params = urlEncrypt.split('&');
1455

    
1456
			// Initialize variables to store the decoded data and the array
1457
			var dataArray;
1458
			var decodedData;
1459
			var dataDetail;
1460
			// Initialize variable to store the 'from' parameter value
1461
			var fromValue;
1462

    
1463
			// Try-catch block to handle potential errors
1464
			try {
1465
				// Loop through the parameters to find the 'data' and 'from' parameters
1466
				params.forEach(function (param) {
1467
					// Split each parameter by '=' to separate the name and value
1468
					var parts = param.split('=');
1469

    
1470
					// Check if the parameter is the 'data' parameter
1471
					if (parts[0] === 'data') {
1472
						// Decode the URL-encoded string
1473
						decodedData = decodeURIComponent(parts[1]);
1474

    
1475
						// Parse the JSON string to get the array
1476
						dataArray = JSON.parse(decodedData);
1477
					}
1478

    
1479
					// Check if the parameter is the 'from' parameter
1480
					if (parts[0] === 'from') {
1481
						// Get the value of the 'from' parameter
1482
						fromValue = parts[1];
1483
					}
1484
				});
1485

    
1486
				// Check if fromValue is 'STOCKADJUSTMENT'
1487
				if (fromValue === 'STOCKADJUSTMENT') {
1488
					var storeItems = Ext.StoreManager.lookup('storePTRMATERIALITEM').data.items;
1489
					var objGrid_ = [];
1490
					storeItems.forEach(function(item) {
1491
						var data = item.data; // Extract the data from the item
1492

    
1493
						// Create an object to hold the transformed data
1494
						var transformedData = {
1495
							PTRMATERIALITEM: {
1496
								PriceAmount: "0.00",
1497
								Discount: 0,
1498
								FlagCrud: "I"
1499
							}
1500
						};
1501
						
1502
						// Get Specify Data
1503
						 var fieldsToInclude = [
1504
							"DocNo",
1505
							"DocItemID",
1506
							"ItemType",
1507
							"MaterialID",
1508
							"StockStatus",
1509
							"Quantity",
1510
							"ItemFlow",
1511
							"UnitMeasurement",
1512
							"QtyReal",
1513
							"QtyAdjust",
1514
							"Notes",
1515
							"id",
1516
							"MaterialType",
1517
							"NetPrice",
1518
							"PriceAmount",
1519
							"Discount",
1520
							"FlagCrud"
1521
						];
1522

    
1523
						// Copy all properties from data to PTRMATERIALITEM
1524
						 fieldsToInclude.forEach(function(key) {
1525
							if (data.hasOwnProperty(key)) {
1526
								transformedData.PTRMATERIALITEM[key] = data[key];
1527
							}
1528
						});
1529
						// Add the transformed data to the objGrid_ array
1530
						objGrid_.push(transformedData);
1531
						dataDetail = Ext.encode(objGrid_);
1532
					});
1533
				}else{
1534
					 dataDetail = Ext.encode(objGrid);
1535
				}
1536
			} catch (error) {
1537
				
1538
			}
1539
			
1540
			var PanelData = Ext.ComponentQuery.query('[name=panelTab]')[0];
1541
			var GridData = PanelData.query('docgridcelleditsum');
1542
			var GridLength = GridData.length;
1543
			var glaccount = '';
1544
			var glaccount_ = '';
1545

    
1546
			if (me.transType == 'FIN') {  //// add by Tri nwh 20211201
1547
				for (var i = 0; i < GridLength; i++) {
1548
					glaccount_ = '';
1549
					var records = [];
1550
					var grd = GridData[i].query('grid')[0];
1551
					
1552
					var recC = grd.store.getNewRecords();
1553
					Ext.each(recC, function (rec) {
1554
						glaccount = rec.data.GLAccountID.toString();
1555
						//glaccount = glaccount + ',' + rec.data.GLAccountID.toString();
1556
					});
1557
					var recU = grd.store.getUpdatedRecords();
1558
					Ext.each(recU, function (rec) {
1559
						glaccount = rec.data.GLAccountID.toString();
1560
						//glaccount = glaccount + ',' + rec.data.GLAccountID.toString();
1561
					});
1562
					
1563
					/*if(glaccount == '')
1564
					{
1565
						MinovaMessage("", "FILO15", "", "E");
1566
						//alert('nwh');
1567
						panelHead.unmask();
1568
						return;
1569
					}*/ ////comment krn tidak bisa rubah status 20210830 by Tri
1570
					
1571
					Ext.Ajax.request({
1572
						async : false,
1573
						method : 'POST',
1574
						url : '/UserControl/GetStore',
1575
						params : {
1576
							tableName : 'PCMFILOCOAGL',
1577
							param : 'GlAccount[equal]' + glaccount
1578
						},
1579
						success : function (response) {
1580
							var results = Ext.decode(response.responseText);
1581
							if( results.totalRecords != '0')
1582
							{ glaccount_ = results.data[0].GlAccount; }
1583
						}
1584
					});
1585
					
1586
					
1587
					if(glaccount_ == '')
1588
					{
1589
						MinovaMessage("", "FILO14", "", "E");
1590
						panelHead.unmask();
1591
						return;
1592
					};
1593
				}	
1594
			}
1595
			
1596
            var params = {
1597
                serviceName: 'Logistic.asmx',
1598
                methodName: 'SaveTableDoc',
1599
                parameter: 'transType=' + me.transType + '&docType=' + me.docType +
1600
                '&header=' + dataHeader + '&detail=' + dataDetail + '&action=' + me.action + '&token=' + token
1601
            };
1602
            MinovaAjaxPost('/InvokeService/Invoke/', params, function (xhr) {
1603
                console.log('Post!');
1604
                var result = Ext.decode(xhr.responseText);
1605
                if (result.success) {
1606
                    var idNo = result.data;
1607
                    formHead.findField("DocNo").setValue(idNo);
1608
                    /* add by mae 20200702 */
1609
                    /* #region update item status */
1610
                    if (me.transType == "FIN" && me.docType == "IP" && formHead.getValues().DocTypeRef == "AR") {
1611
                        Ext.Ajax.request({
1612
                            async: false,
1613
                            method: 'POST',
1614
                            url: '/Devt/SaveTable',
1615
                            params: {
1616
                                tableName: 'PTRFINANCEITEM',
1617
                                data: Ext.encode({
1618
                                    DocNo: formHead.getValues().DocIDRef,
1619
                                    ItemStatus: '2'
1620
                                }),
1621
                                action: 1
1622
                            },
1623
                            waitMsg: 'Saving Data...',
1624
                            success: function (response) {
1625
                                var result = Ext.decode(response.responseText);
1626
                                if (result.success) {
1627
                                    console.log('update item status');
1628
                                }
1629
                            },
1630
                            failure: function (response) {}
1631
                        });
1632
                    }
1633
                    /* #endregion update item status */
1634
                    MinovaMessage('Not Null', '000006', '', 'S');
1635
                    panelHead.unmask();
1636
                    me.loadDoc(idNo, tbl);
1637
                } else {
1638
                    MinovaMessage('', '000005', result.message.text, 'E');
1639
                    panelHead.unmask();
1640
                }
1641
            });
1642
        }
1643
    },
1644
	SaveCopyDoc: function () {
1645
        var me = this
1646
		if (me.transType == 'PUR') {
1647
			var myStringArray_item = Ext.StoreManager.lookup('storePTRPURCHITEM').data.items;
1648
			var myStringArray_Cost = Ext.StoreManager.lookup('storePTRPURCHOTHRCOST').data.items;
1649
			var myStringArray_Payterm = Ext.StoreManager.lookup('storePTRPURCHPAYTERM').data.items;
1650
			var myStringArray_Notes = Ext.StoreManager.lookup('storeCTRPURCHNOTES').data.items;
1651
			
1652
			var arrayLength_item = myStringArray_item.length;
1653
			for (var i = 0; i < arrayLength_item; i++) {
1654
				myStringArray_item[i].data.DocNo='';
1655
				myStringArray_item[i].phantom=true;
1656
			}
1657
			
1658
			var arrayLength_Cost = myStringArray_Cost.length;
1659
			for (var i = 0; i < arrayLength_Cost; i++) {
1660
				myStringArray_Cost[i].data.DocNo='';
1661
				myStringArray_Cost[i].phantom=true;
1662
			}
1663
			
1664
			var arrayLength_Payterm = myStringArray_Payterm.length;
1665
			for (var i = 0; i < arrayLength_Payterm; i++) {
1666
				myStringArray_Payterm[i].data.DocNo='';
1667
				myStringArray_Payterm[i].phantom=true;
1668
			}
1669
			
1670
			var arrayLength_Notes = myStringArray_Notes.length;
1671
			for (var i = 0; i < arrayLength_Notes; i++) {
1672
				myStringArray_Notes[i].data.DocNo='';
1673
				myStringArray_Notes[i].phantom=true;
1674
			}
1675
			
1676
		}
1677
		else if (me.transType == 'SLS') {
1678
			var myStringArray_Item = Ext.StoreManager.lookup('storePTRSALESITEMS').data.items;
1679
			var myStringArray_Allocation = Ext.StoreManager.lookup('storePTRALLOCATION').data.items;
1680
			var myStringArray_Payterm = Ext.StoreManager.lookup('storePTRSALESPAYTERM').data.items;
1681
			var myStringArray_OtherCost = Ext.StoreManager.lookup('storePTRSALESOTHRCOST').data.items;
1682
			
1683
			var arrayLength_item = myStringArray_Item.length;
1684
			for (var i = 0; i < arrayLength_item; i++) {
1685
				myStringArray_Item[i].data.DocNo='';
1686
				myStringArray_Item[i].phantom=true;
1687
			}
1688
			
1689
			var arrayLength_Allocation = myStringArray_Allocation.length;
1690
			for (var i = 0; i < arrayLength_Allocation; i++) {
1691
				myStringArray_Allocation[i].data.DocNo='';
1692
				myStringArray_Allocation[i].phantom=true;
1693
			}
1694
			
1695
			var arrayLength_Payterm = myStringArray_Payterm.length;
1696
			for (var i = 0; i < arrayLength_Payterm; i++) {
1697
				myStringArray_Payterm[i].data.DocNo='';
1698
				myStringArray_Payterm[i].phantom=true;
1699
			}
1700
			
1701
			var arrayLength_OtherCost = myStringArray_OtherCost.length;
1702
			for (var i = 0; i < arrayLength_OtherCost; i++) {
1703
				myStringArray_OtherCost[i].data.DocNo='';
1704
				myStringArray_OtherCost[i].phantom=true;
1705
			}
1706
		}
1707
		else if (me.transType == 'MTR') {
1708
			var myStringArray_Material = Ext.StoreManager.lookup('storePTRMATERIALITEM').data.items;
1709
			
1710
			var arrayLength_Material = myStringArray_Material.length;
1711
			for (var i = 0; i < arrayLength_Material; i++) {
1712
				myStringArray_Material[i].data.DocNo='';
1713
				myStringArray_Material[i].phantom=true;
1714
			}
1715
		}
1716
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1717
        var tbl = panelHead.tableName;
1718
        var formHead = panelHead.getForm();
1719
		var docStatus = formHead.findField("DocStatus").getValue();
1720
		var DocNo = formHead.findField("DocNo").getValue();
1721
		
1722
        if (formHead.isValid()) {
1723
            panelHead.mask("Loading...");
1724
            var dataHeader = Ext.encode(formHead.getValues());
1725
            var token = MinovaUtil.SESSIONS.Token;
1726
            var objGrid;
1727
            var objGridCell;
1728
            var objGridCellSum;
1729
            try {
1730
                objGrid = me.buildMultiGrid();
1731
                objGridCell = me.buildMultiGridEditCell();
1732
                objGridCellSum = me.buildMultiGridEditCellSum();
1733
				console.log(objGrid); console.log(objGridCell); console.log(objGridCellSum);
1734
                for (var i = 0; i < objGridCell.length; i++) {
1735
                    objGrid.push(objGridCell[i]);
1736
                }
1737
                for (var i = 0; i < objGridCellSum.length; i++) {
1738
                    objGrid.push(objGridCellSum[i]);
1739
                }
1740
            } catch (e) {
1741
                Ext.Msg.alert('Build Grid error', e);
1742
                return;
1743
            }
1744
            var dataDetail = Ext.encode(objGrid);
1745
			
1746
			var PanelData = Ext.ComponentQuery.query('[name=panelTab]')[0];
1747
			var GridData = PanelData.query('docgridcelleditsum');
1748
			var GridLength = GridData.length;
1749
			var glaccount = '';
1750
			var glaccount_ = '';
1751
			
1752
            var params = {
1753
                serviceName: 'Logistic.asmx',
1754
                methodName: 'SaveTableDoc',
1755
                parameter: 'transType=' + me.transType + '&docType=' + me.docType +
1756
                '&header=' + dataHeader + '&detail=' + dataDetail + '&action=' + '0' + '&token=' + token
1757
            };
1758
            MinovaAjaxPost('/InvokeService/Invoke/', params, function (xhr) {
1759
                console.log('Post!');
1760
                var result = Ext.decode(xhr.responseText);
1761
                if (result.success) {
1762
                    var idNo = result.data;
1763
                    formHead.findField("DocNo").setValue(idNo);
1764
                    /* add by mae 20200702 */
1765
                    /* #region update item status */
1766
                    if (me.transType == "FIN" && me.docType == "IP" && formHead.getValues().DocTypeRef == "AR") {
1767
                        Ext.Ajax.request({
1768
                            async: false,
1769
                            method: 'POST',
1770
                            url: '/Devt/SaveTable',
1771
                            params: {
1772
                                tableName: 'PTRFINANCEITEM',
1773
                                data: Ext.encode({
1774
                                    DocNo: formHead.getValues().DocIDRef,
1775
                                    ItemStatus: '2'
1776
                                }),
1777
                                action: 1
1778
                            },
1779
                            waitMsg: 'Saving Data...',
1780
                            success: function (response) {
1781
                                var result = Ext.decode(response.responseText);
1782
                                if (result.success) {
1783
                                    console.log('update item status');
1784
                                }
1785
                            },
1786
                            failure: function (response) {}
1787
                        });
1788
                    }
1789
                    /* #endregion update item status */
1790
                    MinovaMessage('Not Null', '000006', '', 'S');
1791
                    panelHead.unmask();
1792
                    me.loadDoc(idNo, tbl);
1793
                } else {
1794
                    MinovaMessage('', '000005', result.message.text, 'E');
1795
                    panelHead.unmask();
1796
                }
1797
            });
1798
        }
1799
    },
1800
    deleteDoc: function () {},
1801
    cancelDoc: function () {
1802
        var me = this;
1803
        me.action = '2';
1804
        me.docNo = 'None';
1805
        MinovaMessage('Message', '000011', '', 'C', function (respone) {
1806
            if (respone == "yes") {
1807
                me.afterrenderTab();
1808
                var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
1809
                var tes = Ext.ComponentQuery.query('[name=searchResultInfo]')[0];
1810
                var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
1811
                var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1812
                var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
1813
                var formHead = panelHead.getForm();
1814
                formHead.reset();
1815
                var formHeadDisplay = panelDisplayHead.getForm();
1816
                formHeadDisplay.reset();
1817
                var btnCreate = Ext.ComponentQuery.query('[name=CreateDoc]')[0];
1818
                var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
1819
                var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
1820
                var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
1821
                pnlSelect.setHidden(false);
1822
                tes.setHidden(true);
1823
                pnlTransaction.setHidden(true);
1824
                panelHead.setHidden(false);
1825
                panelDisplayHead.setHidden(true);
1826

    
1827
            }
1828
        });
1829
    },
1830
    createNew: function () {
1831
        console.log('CreateNew!');
1832
        var me = this;
1833
        me.action = '0';
1834
        me.docNo = 'None'
1835
            var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
1836
        var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
1837
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1838
        var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
1839
        var formHead = panelHead.getForm();
1840
        formHead.reset();
1841
        var formHeadDisplay = panelDisplayHead.getForm();
1842
        formHeadDisplay.reset();
1843
        var btnSaveCreate = Ext.ComponentQuery.query('[name=SaveCreateDoc]')[0];
1844
        var btnCreate = Ext.ComponentQuery.query('[name=Create1Doc]')[0];
1845
        var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
1846
        var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
1847
        var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
1848
        pnlSelect.setHidden(true);
1849
        pnlTransaction.setHidden(false);
1850
        panelHead.setHidden(false);
1851
        panelDisplayHead.setHidden(true);
1852
        btnSaveCreate.setDisabled(false);
1853
        btnCreate.setDisabled(false);
1854
        btnSave.setDisabled(false);
1855
        formHead.findField("DocType").setValue(me.docType);
1856
        me.afterrenderTab();
1857
    },
1858
    reloadDoc: function () {
1859
        console.log('reloadDoc');
1860
        var me = this;
1861
        me.action = '2';
1862
        me.docNo = 'None';
1863
        //MinovaMessage('Message', '000011', '', 'C', function (respone) {
1864
        //if (respone == "yes") {
1865
        me.afterrenderTab();
1866
        var pnlSelect = Ext.ComponentQuery.query('[name=DocSelectionJoil]')[0];
1867
        var pnlTransaction = Ext.ComponentQuery.query('[name=DocTransaction]')[0];
1868
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1869
        var panelDisplayHead = Ext.ComponentQuery.query('[name=DisplayMainHeaderDocument]')[0];
1870
        var formHead = panelHead.getForm();
1871
        formHead.reset();
1872
        var formHeadDisplay = panelDisplayHead.getForm();
1873
        formHeadDisplay.reset();
1874
        var btnCreate = Ext.ComponentQuery.query('[name=CreateDoc]')[0];
1875
        var btnSave = Ext.ComponentQuery.query('[name=SaveDoc]')[0];
1876
        var btnEdit = Ext.ComponentQuery.query('[name=EditDoc]')[0];
1877
        var btnDelete = Ext.ComponentQuery.query('[name=DeleteDoc]')[0];
1878
        pnlSelect.setHidden(false);
1879
        pnlTransaction.setHidden(true);
1880
        panelHead.setHidden(false);
1881
        panelDisplayHead.setHidden(true);
1882
        //}
1883
        //});
1884
    },
1885
    backDoc: function () {
1886
        var me = this;
1887
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1888
        var tbl = panelHead.tableName;
1889
        var formHead = panelHead.getForm();
1890

    
1891
        if (me.transType == 'FIN') {
1892
            var pd = formHead.findField("PostingDate").getValue();
1893
            var debet = Ext.ComponentQuery.query('displayfield[name=AmountDebet]')[0];
1894
            var kredit = Ext.ComponentQuery.query('displayfield[name=AmountCredit]')[0];
1895

    
1896
            if (pd == null || pd == "" || pd == undefined) {
1897
                MinovaMessage("", "FILO05", "", "E");
1898
                return;
1899
            }
1900
            if (debet !== undefined && kredit !== undefined) {
1901
                if (debet.getValue() !== kredit.getValue()) {
1902
                    MinovaMessage("", "FILO10", "", "E");
1903
                    return;
1904
                }
1905
            }
1906
        }
1907
        if (formHead.isValid()) {
1908
            panelHead.mask("Loading...");
1909
            var dataHeader = Ext.encode(formHead.getValues());
1910
            var token = MinovaUtil.SESSIONS.Token;
1911
            var objGrid;
1912
            var objGridCell;
1913
            var objGridCellSum;
1914
            try {
1915
                objGrid = me.buildMultiGrid();
1916
                objGridCell = me.buildMultiGridEditCell();
1917
                objGridCellSum = me.buildMultiGridEditCellSum();
1918
                for (var i = 0; i < objGridCell.length; i++) {
1919
                    objGrid.push(objGridCell[i]);
1920
                }
1921
                for (var i = 0; i < objGridCellSum.length; i++) {
1922
                    objGrid.push(objGridCellSum[i]);
1923
                }
1924
            } catch (e) {
1925
                Ext.Msg.alert('Build Grid error', e);
1926
                return;
1927
            }
1928
            var dataDetail = Ext.encode(objGrid);
1929
            var params = {
1930
                serviceName: 'Filo.asmx',
1931
                methodName: 'SaveTableDoc',
1932
                parameter: 'transType=' + me.transType + '&docType=' + me.docType +
1933
                '&header=' + dataHeader + '&detail=' + dataDetail + '&action=' + me.action + '&token=' + token
1934
            };
1935
            MinovaAjaxPost('/InvokeService/Invoke/', params, function (xhr) {
1936
                var result = Ext.decode(xhr.responseText);
1937
                if (result.success) {
1938
                    var idNo = result.data;
1939
                    formHead.findField("DocNo").setValue(idNo);
1940
                    MinovaMessage('Not Null', '000006', '', 'S');
1941
                    panelHead.unmask();
1942
                    me.loadDoc(idNo, tbl);
1943

    
1944
                    me.reloadDoc();
1945

    
1946
                } else {
1947
                    MinovaMessage('', '000005', result.message.text, 'E');
1948
                    panelHead.unmask();
1949
                }
1950
            });
1951
        }
1952
        console.log('backDoc');
1953

    
1954
    },
1955
    backCreateDoc: function () {
1956
        console.log('backCreateDoc!');
1957
        var me = this;
1958
        var panelHead = Ext.ComponentQuery.query('[name=MainHeaderDocument]')[0];
1959
        var tbl = panelHead.tableName;
1960
        var formHead = panelHead.getForm();
1961

    
1962
        if (me.transType == 'FIN') {
1963
            var pd = formHead.findField("PostingDate").getValue();
1964
            var debet = Ext.ComponentQuery.query('displayfield[name=AmountDebet]')[0];
1965
            var kredit = Ext.ComponentQuery.query('displayfield[name=AmountCredit]')[0];
1966

    
1967
            if (pd == null || pd == "" || pd == undefined) {
1968
                MinovaMessage("", "FILO05", "", "E");
1969
                return;
1970
            }
1971
            if (debet !== undefined && kredit !== undefined) {
1972
                if (debet.getValue() !== kredit.getValue()) {
1973
                    MinovaMessage("", "FILO10", "", "E");
1974
                    return;
1975
                }
1976
            }
1977
        }
1978
        if (formHead.isValid()) {
1979
            panelHead.mask("Loading...");
1980
            var dataHeader = Ext.encode(formHead.getValues());
1981
            var token = MinovaUtil.SESSIONS.Token;
1982
            var objGrid;
1983
            var objGridCell;
1984
            var objGridCellSum;
1985
            try {
1986
                objGrid = me.buildMultiGrid();
1987
                objGridCell = me.buildMultiGridEditCell();
1988
                objGridCellSum = me.buildMultiGridEditCellSum();
1989
                for (var i = 0; i < objGridCell.length; i++) {
1990
                    objGrid.push(objGridCell[i]);
1991
                }
1992
                for (var i = 0; i < objGridCellSum.length; i++) {
1993
                    objGrid.push(objGridCellSum[i]);
1994
                }
1995
            } catch (e) {
1996
                Ext.Msg.alert('Build Grid error', e);
1997
                return;
1998
            }
1999
            var dataDetail = Ext.encode(objGrid);
2000
            var params = {
2001
                serviceName: 'Filo.asmx',
2002
                methodName: 'SaveTableDoc',
2003
                parameter: 'transType=' + me.transType + '&docType=' + me.docType +
2004
                '&header=' + dataHeader + '&detail=' + dataDetail + '&action=' + me.action + '&token=' + token
2005
            };
2006
            MinovaAjaxPost('/InvokeService/Invoke/', params, function (xhr) {
2007
                var result = Ext.decode(xhr.responseText);
2008
                if (result.success) {
2009
                    var idNo = result.data;
2010
                    formHead.findField("DocNo").setValue(idNo);
2011
                    /* add by mae 20200702 */
2012
                    /* #region update item status */
2013
                    if (me.transType == "FIN" && me.docType == "IP" && formHead.getValues().DocTypeRef == "AR") {
2014
                        Ext.Ajax.request({
2015
                            async: false,
2016
                            method: 'POST',
2017
                            url: '/Devt/SaveTable',
2018
                            params: {
2019
                                tableName: 'PTRFINANCEITEM',
2020
                                data: Ext.encode({
2021
                                    DocNo: formHead.getValues().DocIDRef,
2022
                                    ItemStatus: '2'
2023
                                }),
2024
                                action: 1
2025
                            },
2026
                            waitMsg: 'Saving Data...',
2027
                            success: function (response) {
2028
                                var result = Ext.decode(response.responseText);
2029
                                if (result.success) {
2030
                                    console.log('update item status');
2031
                                }
2032
                            },
2033
                            failure: function (response) {}
2034
                        });
2035
                    }
2036
                    /* #endregion update item status */
2037
                    MinovaMessage('Not Null', '000006', '', 'S');
2038
                    panelHead.unmask();
2039
                    me.loadDoc(idNo, tbl);
2040
                    me.reloadDoc();
2041
                    me.createDoc();
2042
					me.getLookupRefDoc();
2043
                } else {
2044
                    MinovaMessage('', '000005', result.message.text, 'E');
2045
                    panelHead.unmask();
2046
                }
2047
            });
2048
        }
2049
        console.log('backDoc');
2050

    
2051
    },
2052

    
2053
    getLookupDoc: function (obj) {
2054
        var popup = Ext.ComponentQuery.query('[name=LookupDocumentTrans]').length;
2055

    
2056
        if (popup == 1) {
2057
            Ext.ComponentQuery.query('[name=LookupDocumentTrans]')[0].targetField = "DocNo";
2058
            Ext.ComponentQuery.query('[name=LookupDocumentTrans]')[0].show();
2059
        } else {
2060
            Ext.create('MinovaUtil.MinovaES.LookupDoc', {
2061
                tableName: obj.tableName,
2062
                targetField: "DocNo",
2063
                fieldValue: "",
2064
                LookupFunction: "",
2065
                filterParam: "DocType[=]" + obj.docType,
2066
            }).show()
2067
        }
2068
    },
2069
    getLookupRefDoc: function () {
2070

    
2071
        var me = this;
2072
        var popup = Ext.ComponentQuery.query('[name=LookupDocRef]')[0];
2073
        if (popup === undefined) {
2074
            popup = Ext.create('MinovaUtil.MinovaES.LookupDocRef', {
2075
                targetField: "DocNo",
2076
                fieldValue: "",
2077
                LookupFunction: "",
2078
                filterParam: "DocType[=]" + me.docType,
2079
            });
2080
        }
2081
        popup.show();
2082
        var btnSelect = popup.query('button[name=select]')[0];
2083
        if (btnSelect !== undefined)
2084
            btnSelect.on('click', me.selectDocRef, me);
2085
    },
2086
    selectDocRef: function () {
2087
        var me = this;
2088
        var popup = Ext.ComponentQuery.query('[name=LookupDocRef]')[0];
2089
        var grid = Ext.ComponentQuery.query('[name=gridlookupdocref]')[0];
2090
        if (grid !== undefined) {
2091
            var selection = grid.getView().getSelectionModel();
2092
            var dt = selection.getSelection();
2093
            if (dt.length > 0) {
2094
                var intdocref = [];
2095
                var refheader = [];
2096
                var refitems = [];
2097
                for (var i = 0; i < dt.length; i++) {
2098
                    var d = dt[i];
2099
                    var trtype = d.data.TransType;
2100
                    var dctype = d.data.DocType;
2101
                    var trtyperef = d.data.TransTypeRef;
2102
                    var dctyperef = d.data.DocTypeRef;
2103
                    var dcno = d.data.DocNo;
2104
                    var company = d.data.CompanyID;
2105
                    var bu = d.data.BusinessUnit;
2106
                    var params = {
2107
                        serviceName: 'Logistic.asmx',
2108
                        methodName: 'GetReferenceDoc',
2109
                        parameter: 'transType=' + trtype + '&docType=' + dctype +
2110
                        '&transTypeRef=' + trtyperef + '&docTypeRef=' + dctyperef + '&docNo=' + dcno
2111
                    };
2112
                    MinovaAjaxPostSync('/InvokeService/Invoke/', params, function (xhr) {
2113
                        var result = Ext.decode(xhr.responseText);
2114
                        var dtref = Ext.decode(result.data);
2115
                        refheader.push(dtref.Header);
2116
                        if (trtype == "FIN" && dctype == "IP" && trtyperef == "FIN" && dctyperef == "AR") {
2117
                            var a = dtref.Items[0];
2118
                            var b = JSON.parse(JSON.stringify(dtref.Items[0]));
2119
                            a.GLAccountID = '';
2120
                            a.ItemStatus = '2';
2121
                            b.AmountCredit = b.AmountDebet;
2122
                            b.AmountCreditCompCurr = b.AmountDebetCompCurr;
2123
                            b.AmountDebet = '0';
2124
                            b.AmountDebetCompCurr = '0';
2125
                            b.ItemStatus = '2';
2126
                            var c = [a, b];
2127
                            refitems.push(c);
2128
                        } else {
2129
                            refitems.push(dtref.Items);
2130
                        }
2131
                        intdocref.push(dcno);
2132
                    });
2133
                };
2134
                if (trtype = 'FIN') {
2135
                    popup.hide();
2136
                    me.createDocRef(refheader, refitems, intdocref);
2137
                } else {
2138
                    me.getLookupItemDetailRef(trtype, dctype, trtyperef, dctyperef, refheader, refitems, intdocref);
2139
                }
2140
            }
2141
        }
2142
    },
2143
    getLookupItemDetailRef: function (trtype, dctype, trtyperef, dctyperef, refheader, refitems, intdocref) {
2144
        var me = this;
2145
        var refTable = '';
2146
        Ext.Ajax.request({
2147
            async: false,
2148
            method: 'POST',
2149
            url: '/UserControl/GetStore',
2150
            params: {
2151
                tableName: 'PCMBSTRANSLIST',
2152
                param: 'ItemDetailRef[=]' + '1' + ',TransType[=]' + trtyperef
2153
            },
2154
            success: function (response) {
2155
                var results = Ext.decode(response.responseText);
2156
                data_ = results.data;
2157
                refTable = data_[0].TableName;
2158
            }
2159
        });
2160
        var popupitemref = Ext.ComponentQuery.query('[name=LookupItemDetailRef]')[0];
2161
        if (popupitemref === undefined) {
2162
            popupitemref = Ext.create('MinovaUtil.MinovaES.LookupItemDetailRef', {
2163
                targetField: "DocNo",
2164
                fieldValue: "",
2165
                LookupFunction: "",
2166
                tableName: refTable,
2167
            });
2168
        }
2169
        popupitemref.show();
2170
        var storeItemm = Ext.data.StoreManager.lookup('storeadvanceitem');
2171
        var p = [];
2172
        for (var i = 0; i < intdocref.length; i++) {
2173
            p.push('value == ' + '\'' + intdocref[i] + '\'');
2174
        }
2175
        storeItemm.filter(function (r) {
2176
            var value = r.get('DocNo');
2177
            return (eval(p.join(' || ')));
2178
        });
2179

    
2180
        var btnSelect = popupitemref.query('button[name=select]')[0];
2181
        if (btnSelect !== undefined)
2182
            btnSelect.on('click', me.selectItemDetailRef, me);
2183
    },
2184
    selectItemDetailRef: function () {
2185
        var me = this;
2186
        var popup = Ext.ComponentQuery.query('[name=LookupDocRef]')[0];
2187
        var popupitemref = Ext.ComponentQuery.query('[name=LookupItemDetailRef]')[0];
2188
        var grid = Ext.ComponentQuery.query('[name=gridlookupdocref]')[0];
2189
        var griditemref = Ext.ComponentQuery.query('[name=gridlookupitemdetailref]')[0];
2190
        if (grid !== undefined) {
2191
            if (griditemref !== undefined) {
2192
                var selection = grid.getView().getSelectionModel();
2193
                var selectionitemref = griditemref.getView().getSelectionModel();
2194
                var dt = selection.getSelection();
2195
                var dtitemref = selectionitemref.getSelection();
2196
                if (dt.length > 0 && dtitemref.length > 0) {
2197
                    var intdocref = [];
2198
                    var refheader = [];
2199
                    var refitems = [];
2200
                    var refitems2 = [];
2201
                    var dtref;
2202
                    for (var i = 0; i < dt.length; i++) {
2203
                        var d = dt[i];
2204
                        var trtype = d.data.TransType;
2205
                        var dctype = d.data.DocType;
2206
                        var trtyperef = d.data.TransTypeRef;
2207
                        var dctyperef = d.data.DocTypeRef;
2208
                        var dcno = d.data.DocNo;
2209
                        var params = {
2210
                            serviceName: 'Logistic.asmx',
2211
                            methodName: 'GetReferenceDoc',
2212
                            parameter: 'transType=' + trtype + '&docType=' + dctype +
2213
                            '&transTypeRef=' + trtyperef + '&docTypeRef=' + dctyperef + '&docNo=' + dcno
2214
                        };
2215
                        MinovaAjaxPostSync('/InvokeService/Invoke/', params, function (xhr) {
2216
                            var result = Ext.decode(xhr.responseText);
2217
                            dtref = Ext.decode(result.data);
2218
                            refheader.push(dtref.Header);
2219
                            //refitems.push(dtref.Items);
2220
                            for (var j = 0; j < dtref.Items.length; j++) {
2221
                                refitems.push(dtref.Items[j]);
2222
                            }
2223
                            intdocref.push(dcno);
2224
                        });
2225
                    };
2226
                    for (var k = 0; k < refitems.length; k++) {
2227
                        for (var l = 0; l < dtitemref.length; l++) {
2228
                            if (refitems[k].hasOwnProperty('MaterialID') == true && dtitemref[l].data.hasOwnProperty('MaterialID') == true) {
2229
                                if (refitems[k].MaterialID == dtitemref[l].data.MaterialID /*&& refitems[k].DocItemRef == dtitemref[l].data.DocItemID*/) {
2230
                                    refitems2.push(refitems[k]);
2231
                                }
2232
                            } else if (refitems[k].hasOwnProperty('Material') == true && dtitemref[l].data.hasOwnProperty('MaterialID') == true) {
2233
                                if (refitems[k].Material == dtitemref[l].data.MaterialID /*&& refitems[k].DocItemRef == dtitemref[l].data.DocItemID*/) {
2234
                                    refitems2.push(refitems[k]);
2235
                                }
2236
                            } else if (refitems[k].hasOwnProperty('MaterialID') == true && dtitemref[l].data.hasOwnProperty('Material') == true) {
2237
                                if (refitems[k].MaterialID == dtitemref[l].data.Material /*&& refitems[k].DocItemRef == dtitemref[l].data.DocItemID*/) {
2238
                                    refitems2.push(refitems[k]);
2239
                                }
2240
                            } else {
2241
                                if (refitems[k].Material == dtitemref[l].data.Material /*&& refitems[k].DocItemRef == dtitemref[l].data.DocItemID*/) {
2242
                                    refitems2.push(refitems[k]);
2243
                                }
2244
                            }
2245
                        }
2246
                    }
2247
                    popup.hide();
2248
                    popupitemref.hide();
2249
                    me.createDocRef(refheader, refitems2, intdocref);
2250
                }
2251
            }
2252
        }
2253
    },
2254
    specialKey: function (f, e) {
2255
        var me = this;
2256
        if (e.getKey() == e.ENTER) {
2257
            getLookupDoc(f);
2258
        }
2259
    },
2260
    displayResultInfo: function () {
2261
        var me = this;
2262
        var gridInfo = Ext.ComponentQuery.query('[name=searchResultInfo]')[0];
2263
        var grid = Ext.ComponentQuery.query('[name=searchResult]')[0];
2264
        var selection = grid.getView().getSelectionModel().getSelection()[0];
2265
        var documentno = selection.data.DocNo;
2266
        //me.action = '2';
2267
        me.docNo = documentno;
2268
        var store = Ext.StoreMgr.lookup("storeadvance2");
2269

    
2270
        var menuid = MinovaUtil.GetMenuID();
2271
        var module = undefined;
2272
        var tableItem = undefined;
2273
        Ext.Ajax.request({
2274
            async: false,
2275
            method: 'POST',
2276
            url: '/UserControl/GetStore',
2277
            params: {
2278
                tableName: 'PCMEPMODULETYPE',
2279
                param: 'MenuID[=]' + menuid
2280
            },
2281
            success: function (response) {
2282
                var results = Ext.decode(response.responseText);
2283
                if (results.data.length > 0) {
2284
                    module = results.data[0].ModuleItem;
2285
                }
2286
            }
2287
        });
2288
        Ext.Ajax.request({
2289
            async: false,
2290
            method: 'POST',
2291
            url: '/UserControl/GetStore',
2292
            params: {
2293
                tableName: 'PCMBSTRANSLIST',
2294
                param: "TransType[=]" + module + ",Sequence[=]1"
2295
            },
2296
            success: function (response) {
2297
                var results = Ext.decode(response.responseText);
2298
                if (results.data.length > 0) {
2299
                    tableItem = results.data[0].TableName;
2300
                }
2301
            }
2302
        });
2303
        store.proxy.url = '/UserControl/GetStore';
2304
        store.proxy.extraParams = {
2305
            tableName: tableItem,
2306
            param: "DocNo" + '[=]' + me.docNo
2307
        };
2308
        store.removeAll();
2309
        store.reload();
2310
        gridInfo.setHidden(false);
2311
    },
2312
});
2313

    
2314
//# sourceURL=https://remote.minovais.com:61124/app/controller/logistic/documentlogistic.js
    (1-1/1)