Project

General

Profile

Bug #1155 » MinovaUtil.FieldGenerator.js

Tri Rizqiaty, 06/09/2022 04:13 PM

 
1
Ext.define('MinovaUtil.FieldGenerator', {});
2
MinovaUtil.FieldGenerator.Form = function (formname, rec, null_, viewOnly, tbl, isLookup) {
3
	var lw=150;
4
	if(isDesk== false){
5
		lw=100;
6
	}
7
    var formfield = undefined;
8
    var ReadOnly_ = false;
9
    var Hidden_ = false;
10
    var start_ = null;
11
    var end_ = null;
12
    var defaultValue = rec.DefaultValue;
13

    
14
    if (defaultValue.substring(0, 2).toLowerCase() == 'fn') {
15
        Ext.Ajax.request({
16
            async: false,
17
            method: 'POST',
18
            url: '/UserControl/GetStore',
19
            params: {
20
                tableName: 'PCMFUNC',
21
                param: 'FuncName[equal]' + rec.DefaultValue
22
            },
23
            success: function (response) {
24
                var results = Ext.decode(response.responseText);
25
                data_ = results.data;
26
                if (data_.length > 0) {
27
                    defaultValue = eval(data_[0].FunctionCode);
28
                }
29
            }
30
        });
31

    
32
    }
33

    
34
    if (rec.FieldName == 'StartDate' || rec.FieldName == 'EndDate') {
35
        start_ = 'StartDate';
36
        end_ = 'EndDate';
37
    }
38
    if (rec.FieldName == 'ValidFrom' || rec.FieldName == 'ValidThrough') {
39
        start_ = 'ValidFrom';
40
        end_ = 'ValidThrough';
41
    }
42
    if (rec.ReadOnly == '1') {
43
        ReadOnly_ = true;
44
    }
45

    
46
    if (rec.IsHidden == '1' || rec.Sequence == '' || rec.Sequence == '0' || rec.ColumnNo == '' || rec.GridView == '') {
47
        Hidden_ = true;
48
        null_ = true;
49
    }
50
    if (viewOnly == true) {
51
        if (rec.TableRef != '' && rec.SearchType == "2") {
52
            formfield = new Ext.form.Display({
53
                fieldBodyCls: 'x-form-trigger-wrap-minova',
54
                fieldLabel: rec.ScreenCaption,
55
                readOnly: ReadOnly_,
56
                hidden: Hidden_,
57
                name: rec.FieldName,
58
                value: defaultValue,
59
                padding: 0,
60
                anchor: '100%',
61
                IsPrimaryKey: rec.IsPrimaryKey,
62
                labelCls: 'label-minova',
63
                labelWidth: lw,
64
                tableRef: rec.TableRef,
65
                listeners: {
66
                    change: function () {
67
                        var me = this;
68
                        data_ = undefined;
69
                        Ext.Ajax.request({
70
                            async: false,
71
                            method: 'POST',
72
                            url: '/UserControl/GetStore',
73
                            params: {
74
                                tableName: 'PDSCMTABLE',
75
                                param: me.tableRef + ',' + me.getValue() + ',hasil'
76
                            },
77
                            success: function (response) {
78
                                var results = Ext.decode(response.responseText);
79
                                data_ = results.data;
80
                                if (data_ != null) {
81
                                    if (data_.length > 0) {
82
                                        value = value + '-' + data_[0].hasil;
83
                                        me.setRawValue(value);
84
                                    }
85
                                }
86
                            }
87
                        });
88
                    }
89
                }
90
            });
91
        }
92
        if (rec.TableRef != '' && rec.SearchType != "" && rec.SearchType != "2") {
93

    
94
            valueField = null;
95
            displayValue = null;
96
            Ext.Ajax.request({
97
                async: false,
98
                method: 'POST',
99
                url: '/UserControl/GetStore',
100
                params: {
101
                    tableName: 'SDATATABLEFIELD',
102
                    param: 'TableName[equal]' + rec.TableRef
103
                },
104
                success: function (response) {
105
                    var results = Ext.decode(response.responseText);
106
                    data_ = results.data;
107
                    if (data_ != undefined) {
108
                        valueField_ = $.grep(data_, function (r) {
109
                            return r.ValueField == '1'
110
                        });
111
                        valueField = valueField_[0].FieldName
112
                        displayValue_ = $.grep(data_, function (r) {
113
                            return r.DisplayValue == '1'
114
                        });
115
                        displayValue = displayValue_[0].FieldName
116

    
117
                    }
118
                }
119
            });
120
            var objClass = '';
121
            var comboParam = ''
122
            if (rec.TableRef.toLowerCase() == 'phrom0001') {
123
                var splitParam = rec.ParamCombo.split(']');
124
                if (splitParam.length == 1) {
125
                    objClass = ',ObjectClass[=]' + splitParam[0]
126
                } else {
127
                    objClass = rec.ParamCombo
128
                }
129
                comboParam = objClass;
130
                var sdate = Ext.ComponentQuery.query('displayfield[name=StartDate]')[0];
131
                var date = MinovaUtil.GetNowDate();
132
                var sdateVal = '';
133
                var edateVal = '';
134
                if (sdate) {
135
                    sdateVal = sdate.getValue();
136
                } else {
137
                    sdateVal = date;
138
                }
139
                if (sdateVal == '') {
140
                    sdateVal = date
141
                }
142
                objClass = objClass + ',StartDate[<=]' + sdateVal + ',EndDate[>=]' + sdateVal
143
            } else {
144
                objClass = rec.ParamCombo
145
            }
146
            formfield = new Ext.form.Display({
147
                fieldBodyCls: 'x-form-trigger-wrap-minova',
148
                fieldLabel: rec.ScreenCaption,
149
                readOnly: ReadOnly_,
150
                hidden: Hidden_,
151
                name: rec.FieldName,
152
                //value: defaultValue, //Untuk Display jangan diisi default, karena event change ga akan tereksekusi jika value = defaultvalue
153
                padding: 0,
154
                anchor: '100%',
155
                IsPrimaryKey: rec.IsPrimaryKey,
156
                labelCls: 'label-minova',
157
                labelWidth: lw,
158
                objClass: objClass,
159
                comboParam: comboParam,
160
                //store : Ext.create('Ext.data.Store', {
161
                //	storeId : 'storeDisplay' + rec.FieldName,
162
                //	autoLoad : false,
163

    
164
                //}),
165
				store: Ext.StoreMgr.lookup('storeDisplay' + rec.FieldName),
166
				/*
167
                store: Ext.create('Ext.data.Store', {
168
                    storeId: 'storeDisplay' + rec.FieldName,
169
                    autoLoad: true,
170
                    //fields: ['MenuType', 'MenuDesc'],
171
                    proxy: {
172
                        method: 'POST',
173
                        async: false,
174
                        type: 'ajax',
175
                        url: '/UserControl/GetStore?tableName=' + rec.TableRef + '&param=' + objClass,
176

    
177
                        reader: {
178
                            type: 'json',
179
                            root: 'data'
180
                        }
181
                    }
182
                }),*/
183
                listeners: {
184

    
185
                    //	var store = Ext.StoreMgr.lookup('storeDisplay' + rec.FieldName);
186
                    //	Ext.Ajax.request({
187
                    //		method : 'POST',
188
                    //		async : true,
189
                    //		url : '/UserControl/GetStore',
190
                    //		params : {
191
                    //			tableName : rec.TableRef,
192
                    //			param : ''
193
                    //		},
194
                    //		success : function (response) {
195
                    //			var results = Ext.decode(response.responseText);
196
                    //			store.loadData(results.data);
197

    
198
                    //		}
199
                    //	});
200
                    //},
201
                    afterrenderer: function (f) {
202
                        var display = this.displayField;
203
                        var value = this.getValue();
204
                        var store = Ext.StoreMgr.lookup('storeDisplay' + rec.FieldName);
205
                        //store.load();
206
                        var r = store.findRecord(f.valueField, f.value)
207
                        if (r != null) {
208
                            f.setRawValue(r.get(f.displayField))
209
                        }
210
                    },
211

    
212
                    change: function (f) {
213
                        //alert(this.valueField, value);
214
                        var display = this.displayField;
215
                        var objClass = this.objClass;
216
                        //var field_ = Ext.ComponentQuery.query('[name=' + rec.FieldName + ']')[0];
217
                        var field_ = this;
218
                        var sdateVal = MinovaUtil.GetNowDate();
219
                        if (Ext.ComponentQuery.query('displayfield[name=StartDate]')[0]) {
220
                            sdateVal = Ext.ComponentQuery.query('displayfield[name=StartDate]')[0].getValue();
221
							sdateVal_=sdateVal.substring(6,10)+sdateVal.substring(3,5)+sdateVal.substring(0,2);
222
							sdateVal=sdateVal_;
223
                        }
224
                        var comboParam = field_.comboParam;
225
                        comboParam = comboParam + ',StartDate[<=]' + sdateVal + ',EndDate[>=]' + sdateVal
226
                        var value = this.getValue();
227
						storeName = 'storeDisplay' + rec.FieldName;
228
						var store = Ext.StoreMgr.lookup(storeName);
229
						if (store == undefined) {
230
							var storeRef = Ext.create('Ext.data.Store', {
231
								storeId: storeName,
232
								autoLoad: true,
233
								f: f,
234
								proxy: {
235
									method: 'POST',
236
									type: 'ajax',
237
									url: '/UserControl/GetStore',
238
									extraParams: {
239
										tableName: rec.TableRef,
240
										param: rec.ParamCombo
241
									},
242
									reader: {
243
										type: 'json',
244
										root: 'data',
245
										totalProperty: 'data[0].TotalCount'
246
									},
247
									//autoLoad: {
248
									//    callback: function (f, storeName){
249
									//        console.log(f);
250
									//    }
251
									//}
252
								}
253
							});
254
							storeRef.on("load", function (me) {
255
								f = me.f;
256
								var r = me.findRecord(f.valueField, f.value);
257
								if (r != null) {
258
									f.setRawValue(r.get(f.displayField));
259
								}
260
							});
261
							//storeRef.load();
262
							//store = storeRef;
263
						}
264
						else {
265
							if (store.data.length == 0) {
266
								Ext.Ajax.request({
267
									method: 'POST',
268
									async: false,
269
									url: '/UserControl/GetStore',
270
									params: {
271
										tableName: rec.TableRef,
272
										param: f.valueField + '[=]' + field_.getValue() + ',' + comboParam
273
									},
274
									success: function (response) {
275
										var results = Ext.decode(response.responseText);
276
										var data_ = results.data;
277
										if (data_.length > 0) {
278
											var dt = eval('data_[0].' + field_.displayField);
279
											field_.setRawValue(dt);
280
										}
281
									}
282
								});
283
							} else {
284
								var r = store.findRecord(f.valueField, f.value)
285
								if (r != null) {
286
									f.setRawValue(r.get(f.displayField))
287
								}
288
							}
289
						}
290
						/*
291
                        var store = Ext.StoreMgr.lookup('storeDisplay' + rec.FieldName);
292
                        if (store.data.length == 0) {
293
                            Ext.Ajax.request({
294
                                method: 'POST',
295
                                async: false,
296
                                url: '/UserControl/GetStore',
297
                                params: {
298
                                    tableName: rec.TableRef,
299
                                    param: f.valueField + '[=]' + field_.getValue() + ',' + comboParam
300
                                },
301
                                success: function (response) {
302
                                    var results = Ext.decode(response.responseText);
303
                                    var data_ = results.data;
304
                                    if (data_.length > 0) {
305
                                        var dt = eval('data_[0].' + field_.displayField);
306
                                        field_.setRawValue(dt);
307

    
308
                                    }
309

    
310
                                }
311
                            });
312

    
313
                        } else {
314
                            var r = store.findRecord(f.valueField, f.value)
315
                            if (r != null) {
316
                                f.setRawValue(r.get(f.displayField))
317
                            }
318

    
319
                        }*/
320

    
321
                    }
322

    
323
                },
324
                queryMode: 'local',
325
                displayField: displayValue,
326
                valueField: valueField,
327
            });
328
        } else {
329
            switch (rec.FormatRef) {
330
                //case 'date':
331
                //    formfield = new Ext.form.Display({
332
                //        ieldBodyCls: 'x-form-trigger-wrap-minova',
333
                //        labelCls: 'label-minova',
334
                //        labelWidth: lw,
335
                //        hidden: Hidden_,
336
                //        fieldLabel: rec.ScreenCaption,
337
                //        name: rec.FieldName,
338
                //        value: rec.DefaultValue,
339
                //        IsPrimaryKey: rec.IsPrimaryKey,
340
                //        padding: 0,
341
                //        anchor: '100%',
342
                //        listeners: {
343
                //            change: function (f) {
344
                //                var value_ = f.getValue();
345
                //                if (value_ != '' && value_ != undefined && value_.length == 8) {
346
                //                    f.setValue(value_.substring(6, 8) + '/' + value_.substring(4, 6) + '/' + value_.substring(0, 4))
347
                //                }
348
                //            }
349
                //        }
350
                //    });
351
                //    break;
352
                case 'date':
353
                    formfield = new Ext.form.Display({
354
                        fieldBodyCls: 'x-form-trigger-wrap-minova',
355
                        labelCls: 'label-minova',
356
                        labelWidth: lw,
357
                        hidden: Hidden_,
358
                        fieldLabel: rec.ScreenCaption,
359
                        name: rec.FieldName,
360
                        value: defaultValue,
361
                        IsPrimaryKey: rec.IsPrimaryKey,
362
                        padding: 0,
363
                        anchor: '100%',
364
                        readOnly: ReadOnly_,
365
                        listeners: {
366
                            change: function (f) {
367
                                var value_ = f.getValue();
368
                                if (value_ != '' && value_ != undefined && value_.length == 8) {
369
                                    f.setValue(value_.substring(6, 8) + '/' + value_.substring(4, 6) + '/' + value_.substring(0, 4))
370
                                }
371
                            }
372
                        }
373
                    });
374
                    break;
375
                case 'datetime':
376
                    formfield = new Ext.form.Display({
377
                        fieldBodyCls: 'x-form-trigger-wrap-minova',
378
                        labelCls: 'label-minova',
379
                        labelWidth: lw,
380
                        hidden: Hidden_,
381
                        fieldLabel: rec.ScreenCaption,
382
                        name: rec.FieldName,
383
                        value: defaultValue,
384
                        IsPrimaryKey: rec.IsPrimaryKey,
385
                        padding: 0,
386
                        readOnly: ReadOnly_,
387
                        anchor: '100%',
388
                        listeners: {
389
                            change: function (f) {
390
                                var value_ = f.getValue();
391
                                if (value_ != '' && value_ != undefined && value_.length == 14) {
392
                                    f.setValue(value_.substring(6, 8) + '/' + value_.substring(4, 6) + '/' + value_.substring(0, 4) + ' ' + value_.substring(8, 10) + ':' + value_.substring(10, 12) + ':' + value_.substring(12, 14))
393
                                }
394
                            }
395
                        }
396
                    });
397
                    break
398
                case "amountencrypt":
399
                    formfield = new Ext.form.Display({
400
                        fieldBodyCls: 'x-form-trigger-wrap-minova',
401
                        labelCls: 'label-minova',
402
                        labelWidth: lw,
403
                        hidden: Hidden_,
404
                        fieldLabel: rec.ScreenCaption,
405
                        name: rec.FieldName,
406
                        value: defaultValue,
407
                        fieldStyle: 'text-align:right;',
408
                        IsPrimaryKey: rec.IsPrimaryKey,
409
                        padding: 0,
410
                        readOnly: ReadOnly_,
411
                        anchor: '100%',
412
                        isEncryptDisplay: true,
413
                        nameTable: tbl
414
                    });
415
                    break
416
                default:
417
                    if (rec.FixedValue == '') {
418
                        formfield = new Ext.form.Display({
419
                            fieldBodyCls: 'x-form-trigger-wrap-minova',
420
                            labelCls: 'label-minova',
421
                            labelWidth: lw,
422
                            hidden: Hidden_,
423
                            readOnly: ReadOnly_,
424
                            fieldLabel: rec.ScreenCaption,
425
                            name: rec.FieldName,
426
                            value: defaultValue,
427
                            IsPrimaryKey: rec.IsPrimaryKey,
428
                            padding: 0,
429
                            anchor: '100%',
430

    
431
                        });
432
                    } else {
433
                        formfield = new Ext.form.Display({
434
                            fieldBodyCls: 'x-form-trigger-wrap-minova',
435
                            labelCls: 'label-minova',
436
                            labelWidth: lw,
437
                            hidden: Hidden_,
438
                            readOnly: ReadOnly_,
439
                            fieldLabel: rec.ScreenCaption,
440
                            name: rec.FieldName,
441
                            value: defaultValue,
442
                            IsPrimaryKey: rec.IsPrimaryKey,
443
                            padding: 0,
444
                            anchor: '100%',
445
                            fixedValue: rec.FixedValue,
446
                            cek: true,
447
                            listeners: {
448

    
449
                                change: function (val) {
450
                                    if (val.cek) {
451
                                        var valueField = val.getValue();
452
                                        var fixed = val.fixedValue;
453
                                        var hasil = fixed.split('||');
454
                                        var code = '';
455
                                        hasil.forEach(function (h) {
456
                                            store_ = h.split('=')
457
                                            //storeData.push({
458
                                            //    code: store_[0],
459
                                            //    desc: store_[1],
460

    
461
                                            //});
462
                                            code = store_[0]
463
                                            if (code == valueField) {
464
                                                val.setValue(store_[1]);
465
                                                val.cek = false;
466
                                            }
467
                                        });
468
                                    }
469
                                }
470
                            }
471
                        });
472
                    }
473
                    break;
474
            }
475
        }
476

    
477
    } else {
478
        switch (rec.FormatRef) {
479
			case "area":
480
			    formfield = new Ext.form.TextArea({
481
                            allowBlank: null_,
482
                            fieldLabel: rec.ScreenCaption,
483
                            readOnly: ReadOnly_,
484
                            readOnlyCls: 'minova-readonly',
485
                            labelCls: 'label-minova',
486
                            labelWidth: lw,
487
                            hidden: Hidden_,
488
                            name: rec.FieldName,
489
                            msgTarget: 'side',
490
                            value: defaultValue,
491
                            IsPrimaryKey: rec.IsPrimaryKey,
492
                            maxLength: rec.Length,
493
                            anchor: '100%',
494
                            formname: formname,
495
                            vtype: 'validateMinovaXss',
496
                            nameTable: tbl,
497
                            listeners: {
498

    
499
                                change: function (val) {
500
                                    var _label = val.name;
501
                                    var _form = val.formname;
502
                                    var _Value = val.getValue();
503
                                    var target = rec.TriggerCombo;
504
                                    var custumFunc = rec.SelectFunction;
505
                                    if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
506
                                        Ext.Ajax.request({
507
                                            async: false,
508
                                            method: 'POST',
509
                                            url: '/UserControl/GetStore',
510
                                            params: {
511
                                                tableName: 'PCMFUNC',
512
                                                param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
513
                                            },
514
                                            success: function (response) {
515
                                                var results = Ext.decode(response.responseText);
516
                                                data_ = results.data[0];
517
                                                if (data_ != undefined) {
518
                                                    custumFunc = data_.FunctionCode;
519
                                                }
520
                                            }
521
                                        });
522
                                    }
523
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
524
                                    if (frm) {
525

    
526
                                        if (target) {
527
                                            var f = frm.getForm().findField(target)
528
                                            _store = f.getStore();
529
                                            var _tbl = _store.proxy.extraParams.tableName;
530
                                            var oldParam = _store.proxy.extraParams.param;
531
                                            _store.proxy.extraParams = {
532
                                                tableName: _tbl,
533
                                                param: _label + '[=]' + _Value
534
                                            };
535
                                            _store.load();
536
                                        }
537

    
538
                                        if (custumFunc) {
539
                                            eval(custumFunc)
540
                                        }
541

    
542
                                    }
543

    
544
                                },
545

    
546
                            },
547
                        });
548
                    break
549
            case "date":
550
                if (rec.FieldName == 'StartDate' || rec.FieldName == 'EndDate' || rec.FieldName == 'ValidFrom' || rec.FieldName == 'ValidThrough') {
551
                    formfield = new Ext.form.DateField({
552
                        allowBlank: null_,
553
                        readOnlyCls: 'minova-readonly',
554
                        fieldLabel: rec.ScreenCaption,
555
                        readOnly: ReadOnly_,
556
                        msgTarget: 'side',
557
                        hidden: Hidden_,
558
                        labelCls: 'label-minova',
559
                        labelWidth: lw,
560
                        name: rec.FieldName,
561
                        format: 'd/m/Y',
562
                        submitFormat: 'Ymd',
563
                        IsPrimaryKey: rec.IsPrimaryKey,
564
                        value: defaultValue,
565
                        anchor: '100%',
566
                        vtype: 'daterange',
567
                        start: start_,
568
                        end: end_,
569
                        pnl: formname,
570
                        formname: formname,
571
                        nameTable: tbl,
572
                        hideMode: 'visibility',
573
                        listeners: {
574

    
575
                            change: function (val) {
576
                                var _label = val.name;
577
                                var _form = val.formname;
578
                                var _Value = val.getValue();
579
                                var target = rec.TriggerCombo;
580
                                var custumFunc = rec.SelectFunction;
581
                                if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
582
                                    Ext.Ajax.request({
583
                                        async: false,
584
                                        method: 'POST',
585
                                        url: '/UserControl/GetStore',
586
                                        params: {
587
                                            tableName: 'PCMFUNC',
588
                                            param: 'FuncName[equal]' + custumFunc + ',Active[=]1'
589
                                        },
590
                                        success: function (response) {
591
                                            var results = Ext.decode(response.responseText);
592
                                            data_ = results.data[0];
593
                                            if (data_ != undefined) {
594
                                                custumFunc = data_.FunctionCode;
595
                                            }
596
                                        }
597
                                    });
598
                                }
599
                                var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
600
                                if (frm) {
601

    
602
                                    if (target) {
603
                                        var f = frm.getForm().findField(target)
604
                                        _store = f.getStore();
605
                                        var _tbl = _store.proxy.extraParams.tableName;
606
                                        var oldParam = _store.proxy.extraParams.param;
607
                                        _store.proxy.extraParams = {
608
                                            tableName: _tbl,
609
                                            param: _label + '[=]' + _Value
610
                                        };
611
                                        _store.load();
612
                                    }
613

    
614
                                    if (custumFunc) {
615
                                        eval(custumFunc)
616
                                    }
617

    
618
                                }
619

    
620
                            },
621

    
622
                        },
623
                    });
624
                } else {
625
                    formfield = new Ext.form.DateField({
626
                        allowBlank: null_,
627
                        fieldLabel: rec.ScreenCaption,
628
                        readOnlyCls: 'minova-readonly',						
629
                        readOnly: ReadOnly_,
630
                        msgTarget: 'side',
631
                        labelCls: 'label-minova',
632
                        labelWidth: lw,
633
                        hidden: Hidden_,
634
                        name: rec.FieldName,
635
						format: 'd/m/Y',
636
                        submitFormat: 'Ymd',
637
                        value: defaultValue,
638
                        IsPrimaryKey: rec.IsPrimaryKey,
639
                        anchor: '100%',
640
                        formname: formname,
641
                        nameTable: tbl,
642
                        hideMode: 'visibility',
643
                        listeners: {
644

    
645
                            change: function (val) {
646
                                var _label = val.name;
647
                                var _form = val.formname;
648
                                var _Value = val.getValue();
649
                                var target = rec.TriggerCombo;
650
                                var custumFunc = rec.SelectFunction;
651
                                if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
652
                                    Ext.Ajax.request({
653
                                        async: false,
654
                                        method: 'POST',
655
                                        url: '/UserControl/GetStore',
656
                                        params: {
657
                                            tableName: 'PCMFUNC',
658
                                            param: 'FuncName[equal]' + custumFunc + ',Active[=]1'
659
                                        },
660
                                        success: function (response) {
661
                                            var results = Ext.decode(response.responseText);
662
                                            data_ = results.data[0];
663
                                            if (data_ != undefined) {
664
                                                custumFunc = data_.FunctionCode;
665
                                            }
666
                                        }
667
                                    });
668
                                }
669
                                var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
670
                                if (frm) {
671

    
672
                                    if (target) {
673
                                        var f = frm.getForm().findField(target)
674
                                        _store = f.getStore();
675
                                        var _tbl = _store.proxy.extraParams.tableName;
676
                                        var oldParam = _store.proxy.extraParams.param;
677
                                        _store.proxy.extraParams = {
678
                                            tableName: _tbl,
679
                                            param: _label + '[=]' + _Value
680
                                        };
681
                                        _store.load();
682
                                    }
683

    
684
                                    if (custumFunc) {
685
                                        eval(custumFunc)
686
                                    }
687

    
688
                                }
689

    
690
                            },
691

    
692
                        },
693
                    });
694
                }
695

    
696
                break
697
            case "time":
698
                if (defaultValue == '') {
699
                    defaultValue = '00:00';
700
                }
701
                formfield = new Ext.form.TimeField({
702
                    allowBlank: null_,
703
                    fieldLabel: rec.ScreenCaption,
704
                    readOnlyCls: 'minova-readonly',
705
                    readOnly: ReadOnly_,
706
                    labelCls: 'label-minova',
707
                    labelWidth: lw,
708
                    hidden: Hidden_,
709
                    name: rec.FieldName,
710
                    msgTarget: 'side',
711
                    format: 'H:i',
712
                    submitFormat: 'Hi',
713
                    increment: 5,
714
                    value: defaultValue,
715
                    IsPrimaryKey: rec.IsPrimaryKey,
716
                    anchor: '100%',
717
                    formname: formname,
718
                    nameTable: tbl,
719
                    //vtype: 'validateMinovaTime',
720
                    maxLength: 5,
721
                    minLength: 5,
722
                    listeners: {
723

    
724
                        change: function (val) {
725
                            var rv = this.rawValue;
726
                            var me_ = this;
727
                            if (rv.length == 4 && rv != '') {
728
                                var sp = rv.split(':')
729
                                if (sp.length == 1) {
730
                                    me_.setValue(rv.substring(0, 2) + ':' + rv.substring(2, 4));
731
                                }
732
                            }
733
                            var _label = val.name;
734
                            var _form = val.formname;
735
                            var _Value = val.getValue();
736
                            var target = rec.TriggerCombo;
737
                            var custumFunc = rec.SelectFunction;
738
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
739
                                Ext.Ajax.request({
740
                                    async: false,
741
                                    method: 'POST',
742
                                    url: '/UserControl/GetStore',
743
                                    params: {
744
                                        tableName: 'PCMFUNC',
745
                                        param: 'FuncName[equal]' + custumFunc + ',Active[=]1'
746
                                    },
747
                                    success: function (response) {
748
                                        var results = Ext.decode(response.responseText);
749
                                        data_ = results.data[0];
750
                                        if (data_ != undefined) {
751
                                            custumFunc = data_.FunctionCode;
752
                                        }
753
                                    }
754
                                });
755
                            }
756
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
757
                            if (frm) {
758

    
759
                                if (target) {
760
                                    var f = frm.getForm().findField(target)
761
                                    _store = f.getStore();
762
                                    var _tbl = _store.proxy.extraParams.tableName;
763
                                    var oldParam = _store.proxy.extraParams.param;
764
                                    _store.proxy.extraParams = {
765
                                        tableName: _tbl,
766
                                        param: _label + '[=]' + _Value
767
                                    };
768
                                    _store.load();
769
                                }
770

    
771
                                if (custumFunc) {
772
                                    eval(custumFunc)
773
                                }
774

    
775
                            }
776

    
777
                        },
778

    
779
                    },
780
                });
781
                break
782
            case "password":
783
                min_ = 1;
784
                max_ = 8;
785
                Ext.Ajax.request({
786
                    async: false,
787
                    method: 'POST',
788
                    url: '/UserControl/GetStore',
789
                    params: {
790
                        tableName: 'PCMEPAPPCONFIG',
791
                        param: 'Active[equal]1'
792
                    },
793
                    success: function (response) {
794
                        var results = Ext.decode(response.responseText);
795
                        data_ = results.data;
796
                        if (data_ != undefined) {
797
                            _min = $.grep(data_, function (r) {
798
                                return r.ConfigName == 'SYSPWDMINLENGTH'
799
                            });
800
                            max_ = _min[0].Value;
801
                            _max = $.grep(data_, function (r) {
802
                                return r.ConfigName == 'SYSPWDMAXLENGTH'
803
                            });
804
                            max_ = _max[0].Value;
805

    
806
                        }
807
                    }
808
                });
809
                formfield = new Ext.form.TextField({
810
                    allowBlank: null_,
811
                    inputType: 'password',
812
                    fieldLabel: rec.ScreenCaption,
813
                    readOnlyCls: 'minova-readonly',
814
                    readOnly: ReadOnly_,
815
                    labelCls: 'label-minova',
816
                    labelWidth: lw,
817
                    hidden: Hidden_,
818
                    name: rec.FieldName,
819
                    msgTarget: 'side',
820
                    value: defaultValue,
821
                    IsPrimaryKey: rec.IsPrimaryKey,
822
                    anchor: '100%',
823
                    formname: formname,
824
                    vtype: 'minovaPassword',
825
                    //vtype: 'passwordConfirm',
826
                    initialPassField: 'RePasword',
827
                    maxLength: max_,
828
                    minLength: min_,
829
                    nameTable: tbl,
830
                    listeners: {
831

    
832
                        change: function (val) {
833
                            var _label = val.name;
834
                            var _form = val.formname;
835
                            var _Value = val.getValue();
836
                            var target = rec.TriggerCombo;
837
                            var custumFunc = rec.SelectFunction;
838
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
839
                                Ext.Ajax.request({
840
                                    async: false,
841
                                    method: 'POST',
842
                                    url: '/UserControl/GetStore',
843
                                    params: {
844
                                        tableName: 'PCMFUNC',
845
                                        param: 'FuncName[equal]' + custumFunc + ',Active[=]1'
846
                                    },
847
                                    success: function (response) {
848
                                        var results = Ext.decode(response.responseText);
849
                                        data_ = results.data[0];
850
                                        if (data_ != undefined) {
851
                                            custumFunc = data_.FunctionCode;
852
                                        }
853
                                    }
854
                                });
855
                            }
856
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
857
                            if (frm) {
858

    
859
                                if (target) {
860
                                    var f = frm.getForm().findField(target)
861
                                    _store = f.getStore();
862
                                    var _tbl = _store.proxy.extraParams.tableName;
863
                                    var oldParam = _store.proxy.extraParams.param;
864
                                    _store.proxy.extraParams = {
865
                                        tableName: _tbl,
866
                                        param: _label + '[=]' + _Value
867
                                    };
868
                                    _store.load();
869
                                }
870

    
871
                                if (custumFunc) {
872
                                    eval(custumFunc)
873
                                }
874

    
875
                            }
876

    
877
                        },
878

    
879
                    },
880
                });
881
                break
882
            case "repassword":
883

    
884
                formfield = new Ext.form.TextField({
885
                    allowBlank: null_,
886
                    inputType: 'password',
887
                    readOnlyCls: 'minova-readonly',
888
                    fieldLabel: rec.ScreenCaption,
889
                    readOnly: ReadOnly_,
890
                    labelCls: 'label-minova',
891
                    labelWidth: lw,
892
                    hidden: Hidden_,
893
                    name: rec.FieldName,
894
                    msgTarget: 'side',
895
                    value: defaultValue,
896
                    IsPrimaryKey: rec.IsPrimaryKey,
897
                    anchor: '100%',
898
                    formname: formname,
899
                    vtype: 'passwordConfirm',
900
                    initialPassField: 'Password',
901
                    nameTable: tbl,
902
                    listeners: {
903

    
904
                        change: function (val) {
905
                            var _label = val.name;
906
                            var _form = val.formname;
907
                            var _Value = val.getValue();
908
                            var target = rec.TriggerCombo;
909
                            var custumFunc = rec.SelectFunction;
910
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
911
                                Ext.Ajax.request({
912
                                    async: false,
913
                                    method: 'POST',
914
                                    url: '/UserControl/GetStore',
915
                                    params: {
916
                                        tableName: 'PCMFUNC',
917
                                        param: 'FuncName[equal]' + custumFunc + ',Active[=]1'
918
                                    },
919
                                    success: function (response) {
920
                                        var results = Ext.decode(response.responseText);
921
                                        data_ = results.data[0];
922
                                        if (data_ != undefined) {
923
                                            custumFunc = data_.FunctionCode;
924
                                        }
925
                                    }
926
                                });
927
                            }
928
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
929
                            if (frm) {
930

    
931
                                if (target) {
932
                                    var f = frm.getForm().findField(target)
933
                                    _store = f.getStore();
934
                                    var _tbl = _store.proxy.extraParams.tableName;
935
                                    var oldParam = _store.proxy.extraParams.param;
936
                                    _store.proxy.extraParams = {
937
                                        tableName: _tbl,
938
                                        param: _label + '[=]' + _Value
939
                                    };
940
                                    _store.load();
941
                                }
942

    
943
                                if (custumFunc) {
944
                                    eval(custumFunc)
945
                                }
946

    
947
                            }
948

    
949
                        },
950

    
951
                    },
952
                });
953
                break
954
            case "number":
955

    
956
                formfield = new Ext.form.TextField({
957
                    allowBlank: null_,
958
                    readOnlyCls: 'minova-readonly',
959
                    fieldLabel: rec.ScreenCaption,
960
                    readOnly: ReadOnly_,
961
                    labelCls: 'label-minova',
962
                    labelWidth: lw,
963
                    hidden: Hidden_,
964
                    name: rec.FieldName,
965
                    msgTarget: 'side',
966
                    value: defaultValue,
967
                    IsPrimaryKey: rec.IsPrimaryKey,
968
                    anchor: '100%',
969
                    formname: formname,
970
                    fieldStyle: 'text-align:right;',
971
                    vtype: 'validateMinovaNumber',
972
                    nameTable: tbl,
973
                    listeners: {
974

    
975
                        change: function (val) {
976
                            var _label = val.name;
977
                            var _form = val.formname;
978
                            var _Value = val.getValue();
979
                            var target = rec.TriggerCombo;
980
                            var custumFunc = rec.SelectFunction;
981
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
982
                                Ext.Ajax.request({
983
                                    async: false,
984
                                    method: 'POST',
985
                                    url: '/UserControl/GetStore',
986
                                    params: {
987
                                        tableName: 'PCMFUNC',
988
                                        param: 'FuncName[equal]' + custumFunc + ',Active[=]1'
989
                                    },
990
                                    success: function (response) {
991
                                        var results = Ext.decode(response.responseText);
992
                                        data_ = results.data[0];
993
                                        if (data_ != undefined) {
994
                                            custumFunc = data_.FunctionCode;
995
                                        }
996
                                    }
997
                                });
998
                            }
999
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1000
                            if (frm) {
1001

    
1002
                                if (target) {
1003
                                    var f = frm.getForm().findField(target)
1004
                                    _store = f.getStore();
1005
                                    var _tbl = _store.proxy.extraParams.tableName;
1006
                                    var oldParam = _store.proxy.extraParams.param;
1007
                                    _store.proxy.extraParams = {
1008
                                        tableName: _tbl,
1009
                                        param: _label + '[=]' + _Value
1010
                                    };
1011
                                    _store.load();
1012
                                }
1013

    
1014
                                if (custumFunc) {
1015
                                    eval(custumFunc)
1016
                                }
1017

    
1018
                            }
1019

    
1020
                        },
1021

    
1022
                    },
1023
                });
1024
                break
1025
            case "alfa":
1026

    
1027
                formfield = new Ext.form.TextField({
1028
                    allowBlank: null_,
1029
                    readOnlyCls: 'minova-readonly',
1030
                    fieldLabel: rec.ScreenCaption,
1031
                    readOnly: ReadOnly_,
1032
                    labelCls: 'label-minova',
1033
                    labelWidth: lw,
1034
                    hidden: Hidden_,
1035
                    name: rec.FieldName,
1036
                    msgTarget: 'side',
1037
                    value: defaultValue,
1038
                    IsPrimaryKey: rec.IsPrimaryKey,
1039
                    anchor: '100%',
1040
                    formname: formname,
1041
                    vtype: 'alfa',
1042
                    nameTable: tbl,
1043
                    listeners: {
1044

    
1045
                        change: function (val) {
1046
                            var _label = val.name;
1047
                            var _form = val.formname;
1048
                            var _Value = val.getValue();
1049
                            var target = rec.TriggerCombo;
1050
                            var custumFunc = rec.SelectFunction;
1051
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1052
                                Ext.Ajax.request({
1053
                                    async: false,
1054
                                    method: 'POST',
1055
                                    url: '/UserControl/GetStore',
1056
                                    params: {
1057
                                        tableName: 'PCMFUNC',
1058
                                        param: 'FuncName[equal]' + custumFunc + ',Active[=]1'
1059
                                    },
1060
                                    success: function (response) {
1061
                                        var results = Ext.decode(response.responseText);
1062
                                        data_ = results.data[0];
1063
                                        if (data_ != undefined) {
1064
                                            custumFunc = data_.FunctionCode;
1065
                                        }
1066
                                    }
1067
                                });
1068
                            }
1069
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1070
                            if (frm) {
1071

    
1072
                                if (target) {
1073
                                    var f = frm.getForm().findField(target)
1074
                                    _store = f.getStore();
1075
                                    var _tbl = _store.proxy.extraParams.tableName;
1076
                                    var oldParam = _store.proxy.extraParams.param;
1077
                                    _store.proxy.extraParams = {
1078
                                        tableName: _tbl,
1079
                                        param: _label + '[=]' + _Value
1080
                                    };
1081
                                    _store.load();
1082
                                }
1083

    
1084
                                if (custumFunc) {
1085
                                    eval(custumFunc)
1086
                                }
1087

    
1088
                            }
1089

    
1090
                        },
1091

    
1092
                    },
1093
                });
1094
                break
1095
            case "amount":
1096
                formfield = new Ext.form.TextField({
1097
                    allowBlank: null_,
1098
                    fieldLabel: rec.ScreenCaption,
1099
                    readOnly: ReadOnly_,
1100
                    readOnlyCls: 'minova-readonly',
1101
                    labelCls: 'label-minova',
1102
                    labelWidth: lw,
1103
                    hidden: Hidden_,
1104
                    name: rec.FieldName,
1105
                    fieldStyle: 'text-align:right;',
1106
                    msgTarget: 'side',
1107
                    IsPrimaryKey: rec.IsPrimaryKey,
1108
                    value: defaultValue,
1109
                    maxLength: rec.Length,
1110
                    anchor: '100%',
1111
                    formname: formname,
1112
                    nameTable: tbl,
1113
                    listeners: {
1114

    
1115
                        change: function (val) {
1116
                            var _label = val.name;
1117
                            var _form = val.formname;
1118
                            var _Value = val.getValue();
1119
                            var target = rec.TriggerCombo;
1120
                            var custumFunc = rec.SelectFunction;
1121
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1122
                                Ext.Ajax.request({
1123
                                    async: false,
1124
                                    method: 'POST',
1125
                                    url: '/UserControl/GetStore',
1126
                                    params: {
1127
                                        tableName: 'PCMFUNC',
1128
                                        param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
1129
                                    },
1130
                                    success: function (response) {
1131
                                        var results = Ext.decode(response.responseText);
1132
                                        data_ = results.data[0];
1133
                                        if (data_ != undefined) {
1134
                                            custumFunc = data_.FunctionCode;
1135
                                        }
1136
                                    }
1137
                                });
1138
                            }
1139
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1140
                            if (frm) {
1141

    
1142
                                if (target) {
1143
                                    var f = frm.getForm().findField(target)
1144
                                    _store = f.getStore();
1145
                                    var _tbl = _store.proxy.extraParams.tableName;
1146
                                    var oldParam = _store.proxy.extraParams.param;
1147
                                    _store.proxy.extraParams = {
1148
                                        tableName: _tbl,
1149
                                        param: _label + '[=]' + _Value
1150
                                    };
1151
                                    _store.load();
1152
                                }
1153

    
1154
                                if (custumFunc) {
1155
                                    eval(custumFunc)
1156
                                }
1157

    
1158
                            }
1159

    
1160
                        },
1161

    
1162
                    },
1163
                });
1164
                break
1165
            case "amountencrypt":
1166
                formfield = new Ext.form.TextField({
1167
                    allowBlank: null_,
1168
                    fieldLabel: rec.ScreenCaption,
1169
                    readOnlyCls: 'minova-readonly',
1170
                    readOnly: ReadOnly_,
1171
                    labelCls: 'label-minova',
1172
                    labelWidth: lw,
1173
                    hidden: Hidden_,
1174
                    name: rec.FieldName,
1175
                    msgTarget: 'side',
1176
                    IsPrimaryKey: rec.IsPrimaryKey,
1177
                    value: defaultValue,
1178
                    maxLength: rec.Length,
1179
                    anchor: '100%',
1180
                    isEncrypt: true,
1181
                    formname: formname,
1182
                    nameTable: tbl,
1183
                    vtype: 'validateMinovaXss',
1184
                    fieldStyle: 'text-align:right;',
1185
                    listeners: {
1186

    
1187
                        change: function (val) {
1188
                            var _label = val.name;
1189
                            var _form = val.formname;
1190
                            var _Value = val.getValue();
1191
                            var target = rec.TriggerCombo;
1192
                            var custumFunc = rec.SelectFunction;
1193
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1194
                                Ext.Ajax.request({
1195
                                    async: false,
1196
                                    method: 'POST',
1197
                                    url: '/UserControl/GetStore',
1198
                                    params: {
1199
                                        tableName: 'PCMFUNC',
1200
                                        param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
1201
                                    },
1202
                                    success: function (response) {
1203
                                        var results = Ext.decode(response.responseText);
1204
                                        data_ = results.data[0];
1205
                                        if (data_ != undefined) {
1206
                                            custumFunc = data_.FunctionCode;
1207
                                        }
1208
                                    }
1209
                                });
1210
                            }
1211
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1212
                            if (frm) {
1213

    
1214
                                if (target) {
1215
                                    var f = frm.getForm().findField(target)
1216
                                    _store = f.getStore();
1217
                                    var _tbl = _store.proxy.extraParams.tableName;
1218
                                    var oldParam = _store.proxy.extraParams.param;
1219
                                    _store.proxy.extraParams = {
1220
                                        tableName: _tbl,
1221
                                        param: _label + '[=]' + _Value
1222
                                    };
1223
                                    _store.load();
1224
                                }
1225

    
1226
                                if (custumFunc) {
1227
                                    eval(custumFunc)
1228
                                }
1229

    
1230
                            }
1231

    
1232
                        },
1233

    
1234
                    },
1235

    
1236
                });
1237
                break
1238
            case "monthpicker":
1239
                formfield = new MinovaUtil.MinovaES.MinovaMonthPicker({
1240
                    tableName: undefined,
1241
                    allowBlank: null_,
1242
                    fieldLabel: rec.ScreenCaption,
1243
                    readOnly: ReadOnly_,
1244
                    readOnlyCls: 'minova-readonly',
1245
                    hidden: Hidden_,
1246
                    msgTarget: 'side',
1247
                    param: undefined,
1248
                    name: rec.FieldName,
1249
                    formtarget_: rec.FieldName,
1250
                    fieldname: rec.FieldName,
1251
                    IsPrimaryKey: rec.IsPrimaryKey,
1252
                    Sequence: rec.Sequence,
1253
                    labelCls: 'label-minova',
1254
                    vtype: 'validateMinovaXss',
1255
                    nameTable: tbl,
1256
                    listeners: {
1257

    
1258
                        change: function (val) {
1259
                            var _label = val.name;
1260
                            var _form = val.formname;
1261
                            var _Value = val.getValue();
1262
                            var target = rec.TriggerCombo;
1263
                            var custumFunc = rec.SelectFunction;
1264
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1265
                                Ext.Ajax.request({
1266
                                    async: false,
1267
                                    method: 'POST',
1268
                                    url: '/UserControl/GetStore',
1269
                                    params: {
1270
                                        tableName: 'PCMFUNC',
1271
                                        param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
1272
                                    },
1273
                                    success: function (response) {
1274
                                        var results = Ext.decode(response.responseText);
1275
                                        data_ = results.data[0];
1276
                                        if (data_ != undefined) {
1277
                                            custumFunc = data_.FunctionCode;
1278
                                        }
1279
                                    }
1280
                                });
1281
                            }
1282
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1283
                            if (frm) {
1284

    
1285
                                if (target) {
1286
                                    var f = frm.getForm().findField(target)
1287
                                    _store = f.getStore();
1288
                                    var _tbl = _store.proxy.extraParams.tableName;
1289
                                    var oldParam = _store.proxy.extraParams.param;
1290
                                    _store.proxy.extraParams = {
1291
                                        tableName: _tbl,
1292
                                        param: _label + '[=]' + _Value
1293
                                    };
1294
                                    _store.load();
1295
                                }
1296

    
1297
                                if (custumFunc) {
1298
                                    eval(custumFunc)
1299
                                }
1300

    
1301
                            }
1302

    
1303
                        },
1304

    
1305
                    },
1306
                })
1307
                break
1308
            case "file":
1309
                //update by hamid 12012017
1310
                formfield = new MinovaUtil.MinovaES.UploadFile({
1311
                    allowBlank: null_,
1312
                    fieldLabel: rec.ScreenCaption,
1313
                    readOnly: ReadOnly_,
1314
                    readOnlyCls: 'minova-readonly',
1315
                    hidden: Hidden_,
1316
                    labelCls: 'label-minova',
1317
                    name: rec.FieldName,
1318
                    msgTarget: 'side',
1319
                    fieldname: rec.FieldName,
1320
                    IsPrimaryKey: rec.IsPrimaryKey,
1321
                    tableName: rec.TableRef, //name tabel yang jadi ref-nya
1322
                    triggerCls: 'x-form-search-trigger',
1323
                    //vtype : 'alphanum', // disable space
1324
                    formtarget: formname, // nama form  yang akan di set value-nya
1325
                    //isLookup: isLookup,
1326
                    anchor: '100%',
1327
                    formname: formname,
1328
                    vtype: 'validateMinovaXss',
1329
                    nameTable: tbl,
1330
                    maxFileSize:rec.SearchFunction,
1331
                    listeners: {
1332

    
1333
                        change: function (val) {
1334
                            var _label = val.name;
1335
                            var _form = val.formname;
1336
                            var _Value = val.getValue();
1337
                            var target = rec.TriggerCombo;
1338
                            var custumFunc = rec.SelectFunction;
1339
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1340
                                Ext.Ajax.request({
1341
                                    async: false,
1342
                                    method: 'POST',
1343
                                    url: '/UserControl/GetStore',
1344
                                    params: {
1345
                                        tableName: 'PCMFUNC',
1346
                                        param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
1347
                                    },
1348
                                    success: function (response) {
1349
                                        var results = Ext.decode(response.responseText);
1350
                                        data_ = results.data[0];
1351
                                        if (data_ != undefined) {
1352
                                            custumFunc = data_.FunctionCode;
1353
                                        }
1354
                                    }
1355
                                });
1356
                            }
1357
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1358
                            if (frm) {
1359

    
1360
                                if (target) {
1361
                                    var f = frm.getForm().findField(target)
1362
                                    _store = f.getStore();
1363
                                    var _tbl = _store.proxy.extraParams.tableName;
1364
                                    var oldParam = _store.proxy.extraParams.param;
1365
                                    _store.proxy.extraParams = {
1366
                                        tableName: _tbl,
1367
                                        param: _label + '[=]' + _Value
1368
                                    };
1369
                                    _store.load();
1370
                                }
1371

    
1372
                                if (custumFunc) {
1373
                                    eval(custumFunc)
1374
                                }
1375

    
1376
                            }
1377

    
1378
                        },
1379

    
1380
                    },
1381

    
1382
                });
1383
                break
1384
            case "html": {
1385
                formfield = new Ext.form.TextArea({
1386
                    allowBlank: null_,
1387
                    fieldLabel: rec.ScreenCaption,
1388
                    readOnly: ReadOnly_,
1389
                    readOnlyCls: 'minova-readonly',
1390
                    labelCls: 'label-minova',
1391
                    labelWidth: lw,
1392
                    hidden: Hidden_,
1393
                    name: rec.FieldName,
1394
                    msgTarget: 'side',
1395
                    value: defaultValue,
1396
                    IsPrimaryKey: rec.IsPrimaryKey,
1397
                    maxLength: rec.Length,
1398
                    anchor: '100%',
1399
                    formname: formname,
1400
                    //vtype: 'validateMinovaXss',
1401
                    nameTable: tbl,
1402
                    listeners: {
1403

    
1404
                        change: function (val) {
1405
                            var _label = val.name;
1406
                            var _form = val.formname;
1407
                            var _Value = val.getValue();
1408
                            var target = rec.TriggerCombo;
1409
                            var custumFunc = rec.SelectFunction;
1410
                            if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1411
                                Ext.Ajax.request({
1412
                                    async: false,
1413
                                    method: 'POST',
1414
                                    url: '/UserControl/GetStore',
1415
                                    params: {
1416
                                        tableName: 'PCMFUNC',
1417
                                        param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
1418
                                    },
1419
                                    success: function (response) {
1420
                                        var results = Ext.decode(response.responseText);
1421
                                        data_ = results.data[0];
1422
                                        if (data_ != undefined) {
1423
                                            custumFunc = data_.FunctionCode;
1424
                                        }
1425
                                    }
1426
                                });
1427
                            }
1428
                            var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1429
                            if (frm) {
1430

    
1431
                                if (target) {
1432
                                    var f = frm.getForm().findField(target)
1433
                                    _store = f.getStore();
1434
                                    var _tbl = _store.proxy.extraParams.tableName;
1435
                                    var oldParam = _store.proxy.extraParams.param;
1436
                                    _store.proxy.extraParams = {
1437
                                        tableName: _tbl,
1438
                                        param: _label + '[=]' + _Value
1439
                                    };
1440
                                    _store.load();
1441
                                }
1442

    
1443
                                if (custumFunc) {
1444
                                    eval(custumFunc)
1445
                                }
1446

    
1447
                            }
1448

    
1449
                        },
1450

    
1451
                    },
1452
                });
1453
            }
1454
            default:
1455

    
1456
                if (rec.SearchType != '') {
1457
                    if (rec.SearchType == '3') { // lookup tree grid
1458
                        var objClass = rec.ParamCombo;
1459
                        var splitClass = objClass.split("]");
1460
                        var objParent = '';
1461
                        var objClassValueTarget = '';
1462
                        if (splitClass.length == 1) {
1463
                            objClassValueTarget = splitClass[0];
1464
                        } else {
1465
                            if (splitClass.length > 1) {
1466
                                objClassValueTarget = splitClass[1];
1467
                            }
1468
                        }
1469
                        var rel = rec.SearchFunction;
1470
                        var relSplit = rel.split('-');
1471
                        objParent = relSplit[0];
1472
                        var valFilter = relSplit.filter(MinovaUtil.RemoveDuplicateArray);
1473
                        formfield = new MinovaUtil.MinovaES.MinovaLookupTree({
1474
                            allowBlank: null_,
1475
                            fieldLabel: rec.ScreenCaption,
1476
                            readOnly: ReadOnly_,
1477
                            readOnlyCls: 'minova-readonly',
1478
                            IsPrimaryKey: rec.IsPrimaryKey,
1479
                            labelCls: 'label-minova',
1480
                            labelWidth: lw,
1481
                            hidden: Hidden_,
1482
                            name: rec.FieldName,
1483
                            msgTarget: 'side',
1484
                            triggerCls: 'x-form-search-trigger',
1485
                            //vtype: 'alphanum', // disable space
1486
                            treeSructure: rec.SearchFunction, //'O-O-P',
1487
                            objClassValue: objClassValueTarget, //'O',
1488
                            objParent: objParent,
1489
                            objFilter: valFilter,
1490
                            formname: formname,
1491
                            targetField: rec.FieldName,
1492
                            anchor: '100%',
1493
                            formname: formname,
1494
                            nameTable: tbl,
1495
                            //vtype: 'validateLookupTree',
1496
                            editable: false,
1497
                            listeners: {
1498
                                change: function (val) {
1499
                                    // alert('a')
1500
									var me=val;
1501
									var valueFiled=val.getValue();
1502
									if(valueFiled.split('-').length == 1 && valueFiled != '' && valueFiled !='a' ){
1503
										 Mainform = Ext.ComponentQuery.query('[name=' + me.formname + ']')[0].getForm();
1504
										 var _StartDate = MinovaUtil.GetNowDate();
1505
										if (Mainform) {
1506
											if (Mainform.findField('StartDate')) {
1507
												_StartDate = Mainform.findField('StartDate').getValue();
1508
											}
1509
										}
1510
										Ext.Ajax.request({
1511
											async : false,
1512
											method : 'POST',
1513
											url : '/UserControl/GetStore',
1514
											params : {
1515
												tableName : 'PHROM0001',
1516
												param : 'ObjectClass[=]'+me.objClassValue+',ObjectID[=]'+valueFiled+',StartDate[<=]'+_StartDate+',EndDate[>=]'+_StartDate
1517
											},
1518
											success : function (response) {
1519
												var results = Ext.decode(response.responseText);
1520
												data_ = results.data
1521
													if (data_.length > 0) {
1522
														me.setValue(valueFiled + ' - ' + data_[0].ObjectDescription)
1523

    
1524
													}
1525
											}
1526
										});
1527
									}
1528
                                },
1529
                                focus: function (val) {
1530
                                    // alert('focus')
1531
                                },
1532
                                blur: function (val) {
1533
                                    //             alert('focus')
1534
                                    var _label = val.name;
1535
                                    var _form = val.formname;
1536
                                    var _Value = val.getValue();
1537
                                    var target = rec.TriggerCombo;
1538
                                    var custumFunc = rec.SelectFunction;
1539
                                    if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1540
                                        Ext.Ajax.request({
1541
                                            async: false,
1542
                                            method: 'POST',
1543
                                            url: '/UserControl/GetStore',
1544
                                            params: {
1545
                                                tableName: 'PCMFUNC',
1546
                                                param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
1547
                                            },
1548
                                            success: function (response) {
1549
                                                var results = Ext.decode(response.responseText);
1550
                                                data_ = results.data[0];
1551
                                                if (data_ != undefined) {
1552
                                                    custumFunc = data_.FunctionCode;
1553
                                                }
1554
                                            }
1555
                                        });
1556
                                    } else {
1557
                                        eval(custumFunc);
1558
                                    }
1559
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1560
                                    if (frm) {
1561

    
1562
                                        if (target) {
1563
											////---- add by Tri nwh 20220606 start
1564
											if (target =='Profiency'){
1565
												_store = frm.getForm().findField('Proficiency').getStore();
1566
												_store.proxy.extraParams = {
1567
													tableName: 'PHROM0027',
1568
													param: 'EndDate[=]99991231,ObjectID[=]' + Ext.ComponentQuery.query('[name=QualificationID]')[0].valData
1569
												};
1570
												_store.load();												
1571
											}else{
1572
												var f = frm.getForm().findField(target)
1573
												_store = f.getStore();
1574
												var _tbl = _store.proxy.extraParams.tableName;
1575
												var oldParam = _store.proxy.extraParams.param;
1576
												_store.proxy.extraParams = {
1577
													tableName: _tbl,
1578
													param: _label + '[=]' + _Value
1579
												};
1580
												_store.load();
1581
											}
1582
											//---- add by Tri nwh 20220606 end
1583
											
1584
                                            //var f = frm.getForm().findField(target)
1585
                                            //_store = f.getStore();
1586
                                            //var _tbl = _store.proxy.extraParams.tableName;
1587
                                            //var oldParam = _store.proxy.extraParams.param;
1588
                                            //_store.proxy.extraParams = {
1589
                                            //    tableName: _tbl,
1590
                                            //  param: _label + '[=]' + _Value
1591
                                            //};
1592
                                            //_store.load(); //// comment by Tri nwh 20220606
1593
                                        }
1594

    
1595
                                        if (custumFunc) {
1596
                                            eval(custumFunc)
1597
                                        }
1598

    
1599
                                    }
1600

    
1601
                                },
1602

    
1603
                            },
1604

    
1605
                        });
1606
                    }
1607
                    if (rec.TableRef != "") {
1608
                        if (rec.SearchType == '0') {
1609
                            valueField = null;
1610
                            displayValue = null;
1611
                            Ext.Ajax.request({
1612
                                async: false,
1613
                                method: 'POST',
1614
                                url: '/UserControl/GetStore',
1615
                                params: {
1616
                                    tableName: 'SDATATABLEFIELD',
1617
                                    param: 'TableName[equal]' + rec.TableRef
1618
                                },
1619
                                success: function (response) {
1620
                                    var results = Ext.decode(response.responseText);
1621
                                    data_ = results.data;
1622
                                    if (data_ != undefined) {
1623
                                        valueField_ = $.grep(data_, function (r) {
1624
                                            return r.ValueField == '1'
1625
                                        });
1626
                                        if (valueField_.length > 0) {
1627
                                            valueField = valueField_[0].FieldName
1628
                                        }
1629

    
1630
                                        displayValue_ = $.grep(data_, function (r) {
1631
                                            return r.DisplayValue == '1'
1632
                                        });
1633
                                        if (displayValue_.length > 0) {
1634
                                            displayValue = displayValue_[0].FieldName
1635
                                        }
1636

    
1637
                                    }
1638
                                }
1639
                            });
1640

    
1641
                            formfield = new Ext.form.ComboBox({
1642
                                allowBlank: null_,
1643
                                fieldLabel: rec.ScreenCaption,
1644
                                readOnlyCls: 'minova-readonly',
1645
                                //forceSelection : true,
1646
                                readOnly: ReadOnly_,
1647
                                labelCls: 'label-minova',
1648
                                labelWidth: lw,
1649
                                hidden: Hidden_,
1650
                                IsPrimaryKey: rec.IsPrimaryKey,
1651
                                msgTarget: 'side',
1652
                                name: rec.FieldName,
1653
                                value: defaultValue,
1654
                                formname: formname,
1655
                                validateOnChange: true,
1656
                                width: '95%',
1657
                                vtype: 'validateCombobox',
1658
                                store: Ext.create('Ext.data.Store', {
1659
                                    storeId: 'store' + rec.FieldName,
1660
                                    autoLoad: true,
1661
                                    proxy: {
1662
                                        async: false,
1663
                                        method: 'POST',
1664
                                        type: 'ajax',
1665
                                        url: '/UserControl/GetStoreAuth',
1666
                                        extraParams: {
1667
                                            tableName: rec.TableRef,
1668
                                            param: rec.ParamCombo,
1669
                                            menuId: MinovaUtil.GetMenuID()
1670
                                        },
1671
                                        reader: {
1672
                                            type: 'json',
1673
                                            root: 'data',
1674
                                            totalProperty: 'data[0].TotalCount'
1675
                                        }
1676
                                    }
1677
                                }),
1678
                                formtarget: formname,
1679
                                nameTable: tbl,
1680
                                listeners: {
1681
                                    afterrender: function (f) {
1682
                                        //var store_ = f.getStore();
1683
                                        //store_.load();
1684
                                    },
1685
                                    change: function (val) {
1686
                                        var _label = val.name;
1687
                                        var _form = val.formname;
1688
                                        var _Value = val.getValue();
1689
                                        var target = rec.TriggerCombo;
1690
                                        var custumFunc = rec.SelectFunction;
1691
                                        if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1692
                                            Ext.Ajax.request({
1693
                                                async: false,
1694
                                                method: 'POST',
1695
                                                url: '/UserControl/GetStore',
1696
                                                params: {
1697
                                                    tableName: 'PCMFUNC',
1698
                                                    param: 'FuncName[equal]' + custumFunc + ',Active[=]1'
1699
                                                },
1700
                                                success: function (response) {
1701
                                                    var results = Ext.decode(response.responseText);
1702
                                                    data_ = results.data[0];
1703
                                                    if (data_ != undefined) {
1704
                                                        custumFunc = data_.FunctionCode;
1705
                                                    }
1706
                                                }
1707
                                            });
1708
                                        }
1709
                                        var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1710
                                        if (frm) {
1711

    
1712
                                            if (target) {
1713
                                                var f = frm.getForm().findField(target)
1714
                                                _store = f.getStore();
1715
                                                var _tbl = _store.proxy.extraParams.tableName;
1716
                                                var oldParam = _store.proxy.extraParams.param;
1717
                                                _store.proxy.extraParams = {
1718
                                                    tableName: _tbl,
1719
                                                    param: _label + '[=]' + _Value,
1720
                                                    menuId: MinovaUtil.GetMenuID()
1721
                                                };
1722
                                                _store.load();
1723
                                            }
1724

    
1725
                                            if (custumFunc) {
1726
                                                eval(custumFunc)
1727
                                            }
1728

    
1729
                                        }
1730

    
1731
                                    },
1732

    
1733
                                },
1734
                                queryMode: 'local',
1735
                                displayField: displayValue,
1736
                                valueField: valueField,
1737
                            });
1738

    
1739
                        } else if (rec.SearchType == '2') {
1740
                            formfield = new MinovaUtil.MinovaES.MinovaLookupGrid({
1741
                                allowBlank: null_,
1742
                                fieldLabel: rec.ScreenCaption,
1743
                                readOnly: ReadOnly_,
1744
                                readOnlyCls: 'minova-readonly',
1745
                                IsPrimaryKey: rec.IsPrimaryKey,
1746
                                msgTarget: 'side',
1747
                                labelCls: 'label-minova',
1748
                                //labelWidth : 250,
1749
                                hidden: Hidden_,
1750
                                name: rec.FieldName,
1751
                                tableName: rec.TableRef, //name tabel yang jadi ref-nya
1752
                                //triggerCls: 'x-form-search-trigger',
1753
                                //vtype: 'alphanum', // disable space
1754
                                vtype: 'validateMinovaXss',
1755
                                formtarget: formname, // nama form  yang akan di set value-nya
1756
                                anchor: '100%',
1757
                                formname: formname,
1758
                                nameTable: tbl,
1759
                                editable: false,
1760
								value: defaultValue,
1761
                                LookupFunction: rec.LookupFunction,
1762
                                listeners: {
1763

    
1764
                                    change: function (val) {
1765
                                        var _label = val.name;
1766
                                        var _form = val.formname;
1767
                                        var _Value = val.getValue();
1768
                                        var target = rec.TriggerCombo;
1769
                                        var custumFunc = rec.SelectFunction;
1770
                                        if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1771
                                            Ext.Ajax.request({
1772
                                                async: false,
1773
                                                method: 'POST',
1774
                                                url: '/UserControl/GetStore',
1775
                                                params: {
1776
                                                    tableName: 'PCMFUNC',
1777
                                                    param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
1778
                                                },
1779
                                                success: function (response) {
1780
                                                    var results = Ext.decode(response.responseText);
1781
                                                    data_ = results.data[0];
1782
                                                    if (data_ != undefined) {
1783
                                                        custumFunc = data_.FunctionCode;
1784
                                                    }
1785
                                                }
1786
                                            });
1787
                                        }
1788
                                        var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1789
                                        if (frm) {
1790

    
1791
                                            if (target) {
1792
                                                var f = frm.getForm().findField(target)
1793
                                                _store = f.getStore();
1794
                                                var _tbl = _store.proxy.extraParams.tableName;
1795
                                                var oldParam = _store.proxy.extraParams.param;
1796
                                                _store.proxy.extraParams = {
1797
                                                    tableName: _tbl,
1798
                                                    param: _label + '[=]' + _Value
1799
                                                };
1800
                                                _store.load();
1801
                                            }
1802

    
1803
                                            if (custumFunc) {
1804
                                                eval(custumFunc)
1805
                                            }
1806

    
1807
                                        }
1808
                                        //set raw value
1809
                                        val.valData = val.getValue()
1810
                                        if (val.getValue() != "") {
1811
                                            data_ = undefined;
1812
                                            Ext.Ajax.request({
1813
                                                async: false,
1814
                                                method: 'POST',
1815
                                                url: '/UserControl/GetStore',
1816
                                                params: {
1817
                                                    tableName: 'PDSCMTABLE',
1818
                                                    param: val.tableName + ',' + val.getValue() + ',hasil'
1819
                                                },
1820
                                                success: function (response) {
1821
                                                    var results = Ext.decode(response.responseText);
1822
                                                    data_ = results.data;
1823
                                                    if (data_ != null) {
1824
                                                        if (data_.length > 0) {
1825
                                                            val.setRawValue(val.getValue() + ' - ' + data_[0].hasil)
1826

    
1827
                                                        }
1828
                                                    }
1829
                                                }
1830
                                            });
1831
                                        }
1832

    
1833
                                    },
1834

    
1835
                                },
1836
                            });
1837
                        } else if (rec.SearchType == '4' && isLookup != true) {
1838
                            formfield = new MinovaUtil.MinovaES.MinovaLookupEmployee({
1839
                                allowBlank: null_,
1840
                                fieldLabel: rec.ScreenCaption,
1841
                                readOnly: ReadOnly_,
1842
                                readOnlyCls: 'minova-readonly',
1843
                                hidden: Hidden_,
1844
                                labelCls: 'label-minova',
1845
                                name: rec.FieldName,
1846
                                msgTarget: 'side',
1847
                                fieldname: rec.FieldName,
1848
                                IsPrimaryKey: rec.IsPrimaryKey,
1849
                                tableName: rec.TableRef, //name tabel yang jadi ref-nya
1850
                                triggerCls: 'x-form-search-trigger',
1851
                                //vtype: 'alphanum', // disable space
1852
                                vtype: 'validateMinovaXss',
1853
                                formtarget: formname, // nama form  yang akan di set value-nya
1854
                                isLookup: isLookup,
1855
                                anchor: '100%',
1856
                                formname: formname,
1857
                                targetField: targetField_,
1858
                                fieldValue: fieldValue_,
1859
                                nameTable: tbl,
1860
                                value: defaultValue,
1861
                                LookupFunction: rec.LookupFunction,
1862
                                filterParam: rec.ParamCombo,
1863
                                listeners: {
1864

    
1865
                                    change: function (val) {
1866
                                        var _label = val.name;
1867
                                        var _form = val.formname;
1868
                                        var _Value = val.getValue();
1869
                                        var target = rec.TriggerCombo;
1870
                                        var custumFunc = rec.SelectFunction;
1871
                                        if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
1872
                                            Ext.Ajax.request({
1873
                                                async: false,
1874
                                                method: 'POST',
1875
                                                url: '/UserControl/GetStore',
1876
                                                params: {
1877
                                                    tableName: 'PCMFUNC',
1878
                                                    param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
1879
                                                },
1880
                                                success: function (response) {
1881
                                                    var results = Ext.decode(response.responseText);
1882
                                                    data_ = results.data[0];
1883
                                                    if (data_ != undefined) {
1884
                                                        custumFunc = data_.FunctionCode;
1885
                                                    }
1886
                                                }
1887
                                            });
1888
                                        }
1889
                                        var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1890
                                        if (frm) {
1891

    
1892
                                            if (target) {
1893
                                                var f = frm.getForm().findField(target)
1894
                                                _store = f.getStore();
1895
                                                var _tbl = _store.proxy.extraParams.tableName;
1896
                                                var oldParam = _store.proxy.extraParams.param;
1897
                                                _store.proxy.extraParams = {
1898
                                                    tableName: _tbl,
1899
                                                    param: _label + '[=]' + _Value
1900
                                                };
1901
                                                _store.load();
1902
                                            }
1903

    
1904
                                            if (custumFunc) {
1905
                                                eval(custumFunc)
1906
                                            }
1907

    
1908
                                        }
1909

    
1910
                                    },
1911

    
1912
                                },
1913
                            });
1914
                            //}
1915
                        }
1916

    
1917
                    }
1918
                } else {
1919

    
1920
                    if (rec.FixedValue != '') {
1921

    
1922
                        formfield = new MinovaUtil.MinovaES.MinovaFixValue({
1923
                            allowBlank: null_,
1924
                            fieldLabel: rec.ScreenCaption,
1925
                            readOnlyCls: 'minova-readonly',
1926
                            //forceSelection: true,
1927
                            readOnly: ReadOnly_,
1928
                            labelCls: 'label-minova',
1929
                            labelWidth: lw,
1930
                            hidden: Hidden_,
1931
                            name: rec.FieldName,
1932
                            msgTarget: 'side',
1933
                            IsPrimaryKey: rec.IsPrimaryKey,
1934
                            value: defaultValue,
1935
                            anchor: '100%',
1936
                            formname: formname,
1937
                            formtarget: formname,
1938
                            validateOnChange: true,
1939
                            fixedValue: rec.FixedValue,
1940
                            vtype: 'validateMinovaXss',
1941
                            nameTable: tbl,
1942
                            listeners: {
1943
                                change: function (val) {
1944
                                    var _label = val.name;
1945
                                    var _form = val.formtarget;
1946
                                    var _Value = val.getValue();
1947
                                    var target = rec.TriggerCombo;
1948
                                    var custumFunc = rec.SelectFunction;
1949

    
1950
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
1951
                                    if (frm) {
1952

    
1953
                                        if (target) {
1954
                                            var f = frm.getForm().findField(target)
1955
                                            _store = f.getStore();
1956
                                            var _tbl = _store.proxy.extraParams.tableName;
1957
                                            var oldParam = _store.proxy.extraParams.param;
1958
                                            _store.proxy.extraParams = {
1959
                                                tableName: _tbl,
1960
                                                param: _label + '[=]' + _Value
1961
                                            };
1962
                                            // _store.proxy.extraParams = { tableName: _tbl, param: oldParam+','+_label + '[=]' + _Value };
1963
                                            _store.load();
1964
                                        }
1965

    
1966
                                        if (custumFunc) {
1967
                                            eval(custumFunc)
1968
                                        }
1969

    
1970
                                    }
1971

    
1972
                                }
1973

    
1974
                            },
1975
                            valueField: 'code',
1976
                            displayField: 'desc',
1977
                        });
1978
                    } else if (rec.Length > 250 && rec.TableRef == "") {
1979
                        formfield = new Ext.form.TextArea({
1980
                            allowBlank: null_,
1981
                            fieldLabel: rec.ScreenCaption,
1982
                            readOnly: ReadOnly_,
1983
                            readOnlyCls: 'minova-readonly',
1984
                            labelCls: 'label-minova',
1985
                            labelWidth: lw,
1986
                            hidden: Hidden_,
1987
                            name: rec.FieldName,
1988
                            msgTarget: 'side',
1989
                            value: defaultValue,
1990
                            IsPrimaryKey: rec.IsPrimaryKey,
1991
                            maxLength: rec.Length,
1992
                            anchor: '100%',
1993
                            formname: formname,
1994
                            vtype: 'validateMinovaXss',
1995
                            nameTable: tbl,
1996
                            listeners: {
1997

    
1998
                                change: function (val) {
1999
                                    var _label = val.name;
2000
                                    var _form = val.formname;
2001
                                    var _Value = val.getValue();
2002
                                    var target = rec.TriggerCombo;
2003
                                    var custumFunc = rec.SelectFunction;
2004
                                    if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
2005
                                        Ext.Ajax.request({
2006
                                            async: false,
2007
                                            method: 'POST',
2008
                                            url: '/UserControl/GetStore',
2009
                                            params: {
2010
                                                tableName: 'PCMFUNC',
2011
                                                param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
2012
                                            },
2013
                                            success: function (response) {
2014
                                                var results = Ext.decode(response.responseText);
2015
                                                data_ = results.data[0];
2016
                                                if (data_ != undefined) {
2017
                                                    custumFunc = data_.FunctionCode;
2018
                                                }
2019
                                            }
2020
                                        });
2021
                                    }
2022
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
2023
                                    if (frm) {
2024

    
2025
                                        if (target) {
2026
                                            var f = frm.getForm().findField(target)
2027
                                            _store = f.getStore();
2028
                                            var _tbl = _store.proxy.extraParams.tableName;
2029
                                            var oldParam = _store.proxy.extraParams.param;
2030
                                            _store.proxy.extraParams = {
2031
                                                tableName: _tbl,
2032
                                                param: _label + '[=]' + _Value
2033
                                            };
2034
                                            _store.load();
2035
                                        }
2036

    
2037
                                        if (custumFunc) {
2038
                                            eval(custumFunc)
2039
                                        }
2040

    
2041
                                    }
2042

    
2043
                                },
2044

    
2045
                            },
2046
                        });
2047
                    } else if (rec.FieldDataType == 3) {
2048
                        //defaultValue = rec.DefaultValue;
2049
                        if (defaultValue == null || defaultValue == "") {
2050
                            defaultValue = 0;
2051
                        }
2052
                        //formfield = new MinovaUtil.MinovaES.MinovaFloatField({
2053
                        formfield = new Ext.form.TextField({
2054
                            //formfield =MinovaUtil.MinovaES.MinovaDecimal({
2055
                            allowBlank: null_,
2056
                            fieldLabel: rec.ScreenCaption,
2057
                            readOnly: ReadOnly_,
2058
                            labelCls: 'label-minova',
2059
                            readOnlyCls: 'minova-readonly',
2060
                            labelWidth: lw,
2061
                            msgTarget: 'side',
2062
                            hidden: Hidden_,
2063
                            name: rec.FieldName,
2064
                            IsPrimaryKey: rec.IsPrimaryKey,
2065
                            value: defaultValue,
2066
                            maxLength: rec.Length,
2067
                            precision: rec.Prec,
2068
                            anchor: '100%',
2069
                            formname: formname,
2070
                            vtype: 'validateDecimal',
2071
                            //maskRe: '^[0-9]+(\.[0-9]{1,2})?$',
2072
                            nameTable: tbl,
2073
                            fieldStyle: 'text-align:right;',
2074
                            listeners: {
2075

    
2076
                                change: function (val) {
2077
                                    var _label = val.name;
2078
                                    var _form = val.formname;
2079
                                    var _Value = val.getValue();
2080

    
2081
                                    var target = rec.TriggerCombo;
2082
                                    var custumFunc = rec.SelectFunction;
2083
                                    if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
2084
                                        Ext.Ajax.request({
2085
                                            async: false,
2086
                                            method: 'POST',
2087
                                            url: '/UserControl/GetStore',
2088
                                            params: {
2089
                                                tableName: 'PCMFUNC',
2090
                                                param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
2091
                                            },
2092
                                            success: function (response) {
2093
                                                var results = Ext.decode(response.responseText);
2094
                                                data_ = results.data[0];
2095
                                                if (data_ != undefined) {
2096
                                                    custumFunc = data_.FunctionCode;
2097
                                                }
2098
                                            }
2099
                                        });
2100
                                    }
2101
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
2102
                                    if (frm) {
2103

    
2104
                                        if (target) {
2105
                                            var f = frm.getForm().findField(target)
2106
                                            _store = f.getStore();
2107
                                            var _tbl = _store.proxy.extraParams.tableName;
2108
                                            var oldParam = _store.proxy.extraParams.param;
2109
                                            _store.proxy.extraParams = {
2110
                                                tableName: _tbl,
2111
                                                param: _label + '[=]' + _Value
2112
                                            };
2113
                                            _store.load();
2114
                                        }
2115

    
2116
                                        if (custumFunc) {
2117
                                            eval(custumFunc)
2118
                                        }
2119

    
2120
                                    }
2121

    
2122
                                },
2123

    
2124
                            },
2125
                        });
2126
                    } else if (rec.FieldDataType == 1) {
2127
                        formfield = new MinovaUtil.MinovaES.MinovaNumberField({
2128
                            allowBlank: null_,
2129
                            fieldLabel: rec.ScreenCaption,
2130
                            readOnly: ReadOnly_,
2131
                            readOnlyCls: 'minova-readonly',
2132
                            labelCls: 'label-minova',
2133
                            labelWidth: lw,
2134
                            msgTarget: 'side',
2135
                            hideTrigger: true,
2136
                            hidden: Hidden_,
2137
                            name: rec.FieldName,
2138
                            IsPrimaryKey: rec.IsPrimaryKey,
2139
                            value: defaultValue,
2140
                            maxLength: rec.Length,
2141
                            anchor: '100%',
2142
                            formname: formname,
2143
                            nameTable: tbl,
2144
                            fieldStyle: 'text-align:right;',
2145
                            listeners: {
2146

    
2147
                                change: function (val) {
2148
                                    var _label = val.name;
2149
                                    var _form = val.formname;
2150
                                    var _Value = val.getValue();
2151
                                    var target = rec.TriggerCombo;
2152
                                    var custumFunc = rec.SelectFunction;
2153
                                    if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
2154
                                        Ext.Ajax.request({
2155
                                            async: false,
2156
                                            method: 'POST',
2157
                                            url: '/UserControl/GetStore',
2158
                                            params: {
2159
                                                tableName: 'PCMFUNC',
2160
                                                param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
2161
                                            },
2162
                                            success: function (response) {
2163
                                                var results = Ext.decode(response.responseText);
2164
                                                data_ = results.data[0];
2165
                                                if (data_ != undefined) {
2166
                                                    custumFunc = data_.FunctionCode;
2167
                                                }
2168
                                            }
2169
                                        });
2170
                                    }
2171
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
2172
                                    if (frm) {
2173

    
2174
                                        if (target) {
2175
                                            var f = frm.getForm().findField(target)
2176
                                            _store = f.getStore();
2177
                                            var _tbl = _store.proxy.extraParams.tableName;
2178
                                            var oldParam = _store.proxy.extraParams.param;
2179
                                            _store.proxy.extraParams = {
2180
                                                tableName: _tbl,
2181
                                                param: _label + '[=]' + _Value
2182
                                            };
2183
                                            _store.load();
2184
                                        }
2185

    
2186
                                        if (custumFunc) {
2187
                                            eval(custumFunc)
2188
                                        }
2189

    
2190
                                    }
2191

    
2192
                                },
2193

    
2194
                            },
2195
                        });
2196
                    } else if (rec.DataRef == "CREATEBY" || rec.DataRef == "CHANGEBY") {
2197
                        formfield = new Ext.form.TextField({
2198
                            fieldLabel: rec.ScreenCaption,
2199
                            allowBlank: true,
2200
                            readOnlyCls: 'minova-readonly',
2201
                            fieldLabel: rec.ScreenCaption,
2202
                            readOnly: true,
2203
                            labelCls: 'label-minova',
2204
                            labelWidth: lw,
2205
                            hidden: Hidden_,
2206
                            name: rec.FieldName,
2207
                            msgTarget: 'side',
2208
                            maxLength: rec.Length,
2209
                            anchor: '100%',
2210
                            formname: formname,
2211
                            nameTable: tbl,
2212
                            listeners: {
2213

    
2214
                                change: function (val) {
2215
                                    var _label = val.name;
2216
                                    var _form = val.formname;
2217
                                    var _Value = val.getValue();
2218
                                    var target = rec.TriggerCombo;
2219
                                    var custumFunc = rec.SelectFunction;
2220
                                    if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
2221
                                        Ext.Ajax.request({
2222
                                            async: false,
2223
                                            method: 'POST',
2224
                                            url: '/UserControl/GetStore',
2225
                                            params: {
2226
                                                tableName: 'PCMFUNC',
2227
                                                param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
2228
                                            },
2229
                                            success: function (response) {
2230
                                                var results = Ext.decode(response.responseText);
2231
                                                data_ = results.data[0];
2232
                                                if (data_ != undefined) {
2233
                                                    custumFunc = data_.FunctionCode;
2234
                                                }
2235
                                            }
2236
                                        });
2237
                                    }
2238
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
2239
                                    if (frm) {
2240

    
2241
                                        if (target) {
2242
                                            var f = frm.getForm().findField(target)
2243
                                            _store = f.getStore();
2244
                                            var _tbl = _store.proxy.extraParams.tableName;
2245
                                            var oldParam = _store.proxy.extraParams.param;
2246
                                            _store.proxy.extraParams = {
2247
                                                tableName: _tbl,
2248
                                                param: _label + '[=]' + _Value
2249
                                            };
2250
                                            _store.load();
2251
                                        }
2252

    
2253
                                        if (custumFunc) {
2254
                                            eval(custumFunc)
2255
                                        }
2256

    
2257
                                    }
2258

    
2259
                                },
2260

    
2261
                            },
2262
                        });
2263

    
2264
                    } else if (rec.DataRef == "CREATEDT" || rec.DataRef == "CHANGEDT") {
2265
                        formfield = new MinovaUtil.MinovaES.SysDateTime({
2266
                            fieldLabel: rec.ScreenCaption,
2267
                            allowBlank: true,
2268
                            readOnlyCls: 'minova-readonly',
2269
                            labelCls: 'label-minova',
2270
                            IsPrimaryKey: rec.IsPrimaryKey,
2271
                            labelWidth: lw,
2272
                            msgTarget: 'side',
2273
                            fieldLabel: rec.ScreenCaption,
2274
                            readOnly: true,
2275
                            hidden: Hidden_,
2276
                            name: rec.FieldName,
2277
                            anchor: '100%',
2278
                            nameTable: tbl,
2279
                            readOnlyCls: 'minova-readonly',
2280
                            //cls:'x-item-disabled'
2281

    
2282
                        });
2283

    
2284
                    } else if (rec.FieldName == 'EmployeeID' && isLookup != true && rec.SearchType == "" || rec.FieldName == 'ApplicantID' || rec.FieldName == 'EmployeeIDFrom' || rec.FieldName == 'EmployeeIDTo') {
2285
                        // if (rec.SearchType == "" || rec.SearchType == null || rec.SearchType == undefined) {
2286
                        var triger = (rec.TriggerCombo).split('$');
2287
                        var targetField_ = triger[0];
2288
                        var fieldValue_ = triger[1];
2289

    
2290
                        formfield = new MinovaUtil.MinovaES.MinovaLookupEmployee({
2291
                            allowBlank: null_,
2292
                            fieldLabel: rec.ScreenCaption,
2293
                            readOnly: ReadOnly_,
2294
                            readOnlyCls: 'minova-readonly',
2295
                            hidden: Hidden_,
2296
                            labelCls: 'label-minova',
2297
                            name: rec.FieldName,
2298
                            msgTarget: 'side',
2299
                            fieldname: rec.FieldName,
2300
                            IsPrimaryKey: rec.IsPrimaryKey,
2301
                            tableName: rec.TableRef, //name tabel yang jadi ref-nya
2302
                            triggerCls: 'x-form-search-trigger',
2303
                            //vtype: 'alphanum', // disable space
2304
                            vtype: 'validateMinovaXss',
2305
                            formtarget: formname, // nama form  yang akan di set value-nya
2306
                            isLookup: isLookup,
2307
                            anchor: '100%',
2308
                            formname: formname,
2309
                            targetField: targetField_,
2310
                            fieldValue: fieldValue_,
2311
                            nameTable: tbl,
2312
                            value: defaultValue,
2313
                            LookupFunction: rec.LookupFunction,
2314
                            filterParam: rec.ParamCombo,
2315
                            listeners: {
2316

    
2317
                                change: function (val) {
2318
                                    var _label = val.name;
2319
                                    var _form = val.formname;
2320
                                    var _Value = val.getValue();
2321
                                    var target = rec.TriggerCombo;
2322
                                    var custumFunc = rec.SelectFunction;
2323
                                    if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
2324
                                        Ext.Ajax.request({
2325
                                            async: false,
2326
                                            method: 'POST',
2327
                                            url: '/UserControl/GetStore',
2328
                                            params: {
2329
                                                tableName: 'PCMFUNC',
2330
                                                param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
2331
                                            },
2332
                                            success: function (response) {
2333
                                                var results = Ext.decode(response.responseText);
2334
                                                data_ = results.data[0];
2335
                                                if (data_ != undefined) {
2336
                                                    custumFunc = data_.FunctionCode;
2337
                                                }
2338
                                            }
2339
                                        });
2340
                                    }
2341
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
2342
                                    if (frm) {
2343

    
2344
                                        if (target) {
2345
                                            var f = frm.getForm().findField(target)
2346
                                            _store = f.getStore();
2347
                                            var _tbl = _store.proxy.extraParams.tableName;
2348
                                            var oldParam = _store.proxy.extraParams.param;
2349
                                            _store.proxy.extraParams = {
2350
                                                tableName: _tbl,
2351
                                                param: _label + '[=]' + _Value
2352
                                            };
2353
                                            _store.load();
2354
                                        }
2355

    
2356
                                        if (custumFunc) {
2357
                                            eval(custumFunc)
2358
                                        }
2359

    
2360
                                    }
2361

    
2362
                                },
2363

    
2364
                            },
2365
                        });
2366
                        //}
2367
                    } else {
2368
                        formfield = new Ext.form.TextField({
2369
                            allowBlank: null_,
2370
                            fieldLabel: rec.ScreenCaption,
2371
                            readOnly: ReadOnly_,
2372
                            readOnlyCls: 'minova-readonly',
2373
                            labelCls: 'label-minova',
2374
                            labelWidth: lw,
2375
                            msgTarget: 'side',
2376
                            hidden: Hidden_,
2377
                            name: rec.FieldName,
2378
                            IsPrimaryKey: rec.IsPrimaryKey,
2379
                            value: defaultValue,
2380
                            maxLength: rec.Length,
2381
                            anchor: '100%',
2382
                            formname: formname,
2383
                            vtype: 'validateMinovaXss',
2384
                            nameTable: tbl,
2385
                            listeners: {
2386

    
2387
                                change: function (val) {
2388
                                    var _label = val.name;
2389
                                    var _form = val.formname;
2390
                                    var _Value = val.getValue();
2391
                                    var target = rec.TriggerCombo;
2392
                                    var custumFunc = rec.SelectFunction;
2393
                                    if (custumFunc.toLowerCase().substring(0, 2) == 'fn') {
2394
                                        Ext.Ajax.request({
2395
                                            async: false,
2396
                                            method: 'POST',
2397
                                            url: '/UserControl/GetStore',
2398
                                            params: {
2399
                                                tableName: 'PCMFUNC',
2400
                                                param: 'FuncName[equal]' + rec.custumFunc + ',Active[=]1'
2401
                                            },
2402
                                            success: function (response) {
2403
                                                var results = Ext.decode(response.responseText);
2404
                                                data_ = results.data[0];
2405
                                                if (data_ != undefined) {
2406
                                                    custumFunc = data_.FunctionCode;
2407
                                                }
2408
                                            }
2409
                                        });
2410
                                    }
2411
                                    var frm = Ext.ComponentQuery.query('form[name=' + _form + ']')[0];
2412
                                    if (frm) {
2413

    
2414
                                        if (target) {
2415
                                            var f = frm.getForm().findField(target)
2416
                                            _store = f.getStore();
2417
                                            var _tbl = _store.proxy.extraParams.tableName;
2418
                                            var oldParam = _store.proxy.extraParams.param;
2419
                                            _store.proxy.extraParams = {
2420
                                                tableName: _tbl,
2421
                                                param: _label + '[=]' + _Value
2422
                                            };
2423
                                            _store.load();
2424
                                        }
2425

    
2426
                                        if (custumFunc) {
2427
                                            eval(custumFunc)
2428
                                        }
2429

    
2430
                                    }
2431

    
2432
                                },
2433

    
2434
                            },
2435
                        });
2436
                    }
2437
                }
2438

    
2439
        }
2440

    
2441
        //if (rec.IsPrimaryKey == 1) {
2442
        //    formfield = new Ext.form.TextField({
2443
        //        hidden: true,
2444
        //        name: "Key_" + rec.FieldName,
2445
        //    });
2446
        //}
2447
    }
2448

    
2449
    //
2450
    return (formfield);
2451
}
2452
MinovaUtil.FieldGenerator.Editor = function (rec, null_) {
2453
    var formfield = undefined;
2454
    switch (rec.FormatRef) {
2455
        case "date":
2456
            formfield = new Ext.form.DateField({
2457
                allowBlank: null_,
2458
                //msgTarget: 'side',
2459
                readOnly: rec.ReadOnly,
2460
                name: rec.FieldName,
2461
                format: 'd/m/Y',
2462
                submitFormat: 'Ymd',
2463
                value: defaultValue,
2464
                anchor: '100%',
2465
                hideMode: 'visibility',
2466

    
2467
            });
2468
            break
2469
        case "time":
2470
            formfield = new Ext.form.TimeField({
2471
                allowBlank: null_,
2472
                //msgTarget: 'side',
2473
                readOnly: rec.ReadOnly,
2474
                name: rec.FieldName,
2475
                format: 'Hi',
2476
                submitFormat: 'Hi',
2477
                increment: 5,
2478
                value: defaultValue,
2479
                anchor: '100%'
2480
            });
2481
            break
2482
        case "file":
2483
            formfield = Ext.create('MinovaES.view.uploadfile.uploadfile')
2484
            break
2485
        default:
2486
            if (rec.Length > 49 && rec.TableRef == "") {
2487
                formfield = new Ext.form.TextArea({
2488
                    allowBlank: null_,
2489
                    //msgTarget: 'side',
2490
                    readOnly: rec.ReadOnly,
2491
                    name: rec.FieldName,
2492
                    value: defaultValue,
2493
                    maxLength: rec.Length,
2494
                    anchor: '100%'
2495
                });
2496
            } else if (rec.DataRef == "CREATEDT" || rec.DataRef == "CHANGEDT" || rec.DataRef == "CREATEBY" || rec.DataRef == "CHANGEBY") {
2497
                formfield = new Ext.form.TextField({
2498
                    allowBlank: true,
2499
                    //msgTarget: 'side',
2500
                    readOnly: true,
2501
                    name: rec.FieldName,
2502
                    maxLength: rec.Length,
2503
                    anchor: '100%'
2504
                });
2505
            } else if (rec.TableRef != "") {
2506
                var fieldsCombo = null;
2507
                Ext.Ajax.request({
2508
                    async: false,
2509
                    method: 'POST',
2510
                    url: '/Devt/GetAllField?tableName=' + rec.TableRef,
2511
                    success: function (response) {
2512
                        var results = Ext.decode(response.responseText);
2513
                        fieldsCombo = results.data;
2514
                    }
2515
                });
2516
                valueField = null;
2517
                Ext.Ajax.request({
2518
                    async: false,
2519
                    method: 'POST',
2520
                    url: '/UserControl/GetStore',
2521
                    params: {
2522
                        tableName: 'SDATATABLEFIELD',
2523
                        param: 'ValueField[equal]1,TableName[equal]' + rec.TableRef
2524
                    },
2525
                    success: function (response) {
2526
                        var results = Ext.decode(response.responseText);
2527
                        data_ = results.data[0];
2528
                        if (data_ != undefined) {
2529
                            valueField = data_.FieldName;
2530
                        }
2531
                    }
2532
                });
2533
                displayValue = null;
2534
                Ext.Ajax.request({
2535
                    async: false,
2536
                    method: 'POST',
2537
                    url: '/UserControl/GetStore',
2538
                    params: {
2539
                        tableName: 'SDATATABLEFIELD',
2540
                        param: 'DisplayValue[equal]1,TableName[equal]' + rec.TableRef
2541
                    },
2542
                    success: function (response) {
2543
                        var results = Ext.decode(response.responseText);
2544
                        data_ = results.data[0];
2545
                        if (data_ != undefined) {
2546
                            displayValue = data_.FieldName;
2547
                            //console.log(data_)
2548
                        }
2549
                    }
2550
                });
2551
                //var field_ = [];
2552
                //fieldsCombo.forEach(function (rec) {
2553
                //    field_.push(rec.FieldName)
2554
                //});
2555

    
2556
                formfield = new Ext.form.ComboBox({
2557
                    allowBlank: null_,
2558
                    //msgTarget: 'side',
2559
                    readOnly: rec.ReadOnly,
2560
                    name: rec.FieldName,
2561
                    value: defaultValue,
2562
                    anchor: '100%',
2563
                    vtype: 'validateCombobox',
2564
                    store: Ext.create('Ext.data.Store', {
2565
                        storeId: 'store' + rec.FieldName,
2566
                        autoLoad: true,
2567
                        //pageSize: 10,
2568
                        //fields: field_,
2569
                        proxy: {
2570
                            method: 'POST',
2571
                            type: 'ajax',
2572
                            url: '/UserControl/GetStore',
2573
                            //params: {
2574
                            extraParams: {
2575
                                tableName: rec.TableRef,
2576
                                param: rec.ParamCombo
2577
                            },
2578
                            reader: {
2579
                                type: 'json',
2580
                                root: 'data',
2581
                                // totalProperty: 'data[0].TotalCount'
2582
                            }
2583
                        }
2584
                    }),
2585
                    listeners: {
2586
                        change: function (val) { }
2587

    
2588
                    },
2589
                    queryMode: 'local',
2590
                    displayField: displayValue,
2591
                    valueField: valueField,
2592
                });
2593
            } else if (rec.FieldDataType == 3) {
2594
                formfield = new MinovaUtil.MinovaES.MinovaFloatField({
2595
                    allowBlank: null_,
2596
                    //msgTarget: 'side',
2597
                    readOnly: rec.ReadOnly,
2598
                    name: rec.FieldName,
2599
                    value: defaultValue,
2600
                    maxLength: rec.Length,
2601
                    precision: rec.Prec,
2602
                    anchor: '100%'
2603
                });
2604
            } else if (rec.FieldDataType == 1) {
2605
                formfield = new MinovaUtil.MinovaES.MinovaNumberField({
2606
                    allowBlank: null_,
2607
                    //msgTarget: 'side',
2608
                    readOnly: rec.ReadOnly,
2609
                    name: rec.FieldName,
2610
                    value: defaultValue,
2611
                    maxLength: rec.Length,
2612
                    anchor: '100%'
2613
                });
2614
            } else {
2615
                formfield = new Ext.form.TextField({
2616
                    allowBlank: null_,
2617
                    //msgTarget: 'side',
2618
                    readOnly: rec.ReadOnly,
2619
                    name: rec.FieldName,
2620
                    value: defaultValue,
2621
                    maxLength: rec.Length,
2622
                    anchor: '100%'
2623
                });
2624
            }
2625
    }
2626
    return (formfield);
2627
}
2628
MinovaUtil.FieldGenerator.Column = function (rec, null_) {
2629
    var gridcol = undefined;
2630
    switch (rec.FormatRef) {
2631
        case "date":
2632
            gridcol = 'minovadatecolumn'
2633
            break
2634
        case "time":
2635
            gridcol = ''
2636
            break
2637
        case "file":
2638
            gridcol = ''
2639
            break
2640
        default:
2641
            if (rec.Length > 49 && rec.TableRef == "") {
2642
                gridcol = ''
2643
            } else if (rec.DataRef == "CREATEDT" || rec.DataRef == "CHANGEDT" || rec.DataRef == "CREATEBY" || rec.DataRef == "CHANGEBY") {
2644
                gridcol = ''
2645
            } else if (rec.TableRef != "") {
2646
                gridcol = 'MinovaComboColumn'
2647
            } else if (rec.FieldDataType == 3) {
2648
                gridcol = 'numbercolumn'
2649
            } else if (rec.FieldDataType == 1) {
2650
                gridcol = 'numbercolumn'
2651
            } else {
2652
                gridcol = ''
2653
            }
2654
    }
2655
    return (gridcol);
2656
}
2657
MinovaUtil.FieldGenerator.Display = function (rec) {
2658
    var formfield = null;
2659
    var Hidden_ = false;
2660
    if (rec.IsHidden == '1' || IsHidden == true) {
2661
        Hidden_ = true;
2662
    }
2663
    switch (rec.FormatRef) {
2664
        case "date":
2665
            formfield = new MinovaUtil.MinovaES.DisplayDate({
2666
                fieldLabel: rec.ScreenCaption,
2667
                //msgTarget: 'side',
2668
                hidden: Hidden_,
2669
                name: rec.FieldName,
2670
                anchor: '100%'
2671
            });
2672
            break;
2673

    
2674
        default:
2675
            if (rec.DataRef == "CREATEDT" || rec.DataRef == "CHANGEDT") {
2676
                formfield = new MinovaUtil.MinovaES.DisplaySysDateTime({
2677
                    fieldLabel: rec.ScreenCaption,
2678
                    //msgTarget: 'side',
2679
                    hidden: Hidden_,
2680
                    name: rec.FieldName,
2681
                    anchor: '100%'
2682
                });
2683
            } else if (rec.TableRef != "") {
2684

    
2685
                valueField = null;
2686
                Ext.Ajax.request({
2687
                    async: false,
2688
                    method: 'POST',
2689
                    url: '/UserControl/GetStore',
2690
                    params: {
2691
                        tableName: 'SDATATABLEFIELD',
2692
                        param: 'ValueField[equal]1,TableName[equal]' + rec.TableRef
2693
                    },
2694
                    success: function (response) {
2695
                        var results = Ext.decode(response.responseText);
2696
                        data_ = results.data[0];
2697
                        if (data_ != undefined) {
2698
                            valueField = data_.FieldName;
2699
                        }
2700
                    }
2701
                });
2702
                displayValue = null;
2703
                Ext.Ajax.request({
2704
                    async: false,
2705
                    method: 'POST',
2706
                    url: '/UserControl/GetStore',
2707
                    params: {
2708
                        tableName: 'SDATATABLEFIELD',
2709
                        param: 'DisplayValue[equal]1,TableName[equal]' + rec.TableRef
2710
                    },
2711
                    success: function (response) {
2712
                        var results = Ext.decode(response.responseText);
2713
                        data_ = results.data[0];
2714
                        if (data_ != undefined) {
2715
                            displayValue = data_.FieldName;
2716
                            //console.log(data_)
2717
                        }
2718
                    }
2719
                });
2720
                //var field_ = [];
2721
                //fieldsCombo.forEach(function (rec) {
2722
                //    field_.push(rec.FieldName)
2723
                //});
2724
                formfield = new Ext.form.ComboBox({
2725
                    allowBlank: null_,
2726
                    fieldLabel: rec.ScreenCaption,
2727
                    //msgTarget: 'side',
2728
                    readOnly: rec.ReadOnly,
2729
                    hidden: Hidden_,
2730
                    name: rec.FieldName,
2731
                    value: defaultValue,
2732
                    vtype: 'validateCombobox',
2733
                    anchor: '100%',
2734
                    store: Ext.create('Ext.data.Store', {
2735
                        storeId: 'store' + rec.FieldName,
2736
                        autoLoad: true,
2737
                        //pageSize: 10,
2738
                        //fields: field_,
2739
                        proxy: {
2740
                            method: 'POST',
2741
                            type: 'ajax',
2742
                            url: '/UserControl/GetStore',
2743
                            //params: {
2744
                            extraParams: {
2745
                                tableName: rec.TableRef,
2746
                                param: ''
2747
                            },
2748
                            reader: {
2749
                                type: 'json',
2750
                                root: 'data',
2751
                                totalProperty: 'data[0].TotalCount'
2752
                            }
2753
                        }
2754
                    }),
2755
                    listeners: {
2756
                        change: function (val) { }
2757

    
2758
                    },
2759
                    queryMode: 'local',
2760
                    displayField: displayValue,
2761
                    valueField: valueField,
2762
                });
2763
            }
2764
            break
2765
    }
2766
}
2767

    
2768
//funsi untuk set value form html
2769
// data json
2770
// form_id= id form yang akan diset valuenya
2771
MinovaUtil.FieldGenerator.HtmlSetValues = function (data, form_id) {
2772
    $.each(data, function (key, value) {
2773
        $('#' + key, form_id).val(value);
2774
    });
2775
}
2776

    
2777
MinovaUtil.FieldGenerator.SimpleHtmlDisplay1 = function (divid, tableName, title) {
2778

    
2779
    code = null;
2780
    Ext.Ajax.request({
2781
        async: false,
2782
        method: 'POST',
2783
        url: '/Devt/GetItenDiv',
2784
        /* params : {
2785
		tableName : 'SDATATABLEFIELD',
2786
		param : 'ValueField[equal]1,TableName[equal]' + rec.TableRef
2787
		}, */
2788
        success: function (response) {
2789
            code = response.responseText;
2790

    
2791
        }
2792
    });
2793

    
2794
    $("#" + divid).append(" <h3 class='form-section'>" + title + "</h3>");
2795
    $("#" + divid).append("<div class='row' id='TableName_Content'> " + code + " </div>");
2796

    
2797
}
2798

    
2799
MinovaUtil.FieldGenerator.SimpleHtmlDisplay2 = function (divid, tableName, title) {
2800

    
2801
    code = null;
2802
    Ext.Ajax.request({
2803
        async: false,
2804
        method: 'POST',
2805
        url: '/Devt/GetItenDiv',
2806
        /* params : {
2807
		tableName : 'SDATATABLEFIELD',
2808
		param : 'ValueField[equal]1,TableName[equal]' + rec.TableRef
2809
		}, */
2810
        success: function (response) {
2811
            code = response.responseText;
2812

    
2813
        }
2814
    });
2815

    
2816
    $("#" + divid).append(" <h3 class='form-section'>" + title + "</h3>");
2817
    $("#" + divid).append("<div class='row' id='TableName_Content'> " + code + " </div>");
2818

    
2819
}
2820

    
2821
MinovaUtil.FieldGenerator.ExtjsBuildGrid = function (divid, tableName) {
2822
    var div_ = tableName + 'div'
2823
    $("#" + divid).append('  <div class="row" id="grid"' + tableName + '>' +
2824
        '<div class="col-md-12">' +
2825
        '<h3 class="form-section">Person Info</h3>' +
2826
        '<div class="portlet-body" id=' + div_ + '> </div></div></div>');
2827

    
2828
    Ext.create('MinovaUtil.MinovaES.MinovaGrid1', {
2829
        renderTo: div_,
2830
        isLookup: 1,
2831
        minHeight: 280,
2832
        height: 100,
2833
        tableName: tableName,
2834
        param: '',
2835
        isLookup: false,
2836
        width: '100%',
2837
        name: 'grid' + tableName,
2838
        hidebutton: 0,
2839
        pagesize: 25,
2840
        storename: 'lgrid' + tableName,
2841
    });
2842
}
2843

    
2844
MinovaUtil.FieldGenerator.BuildSimpleGridHtml = function (divid, tableName, title) {
2845

    
2846
    var header = "";
2847
    var ThThead = "";
2848
    for (var i = 0; i < 4; i++) {
2849
        header = "header" + i;
2850
        ThThead = ThThead + "<th>" + header + "</th>";
2851
    }
2852
    var Thead = "<thead>" + ThThead + "</thead>";
2853

    
2854
    var td = "";
2855
    var tdLabel = "";
2856
    var tr = "";
2857
    for (var a = 0; a <= 2; a++) {
2858
        for (var b = 0; b < 4; b++) {
2859
            tdLabel = b;
2860
            td = td + "<td>" + tdLabel + "</td>";
2861
        }
2862
        tr = tr + "<tr>" + td + "</tr>";
2863
        td = "";
2864
    }
2865
    var Tbody = "<tbody>" + tr + "</tbody>";
2866
    var tbl = tableName + "Table";
2867
    var result = "<div class='row' id=" + tbl + ">" +
2868
		"<div class='col-md-10'>" +
2869
		"<h3 class='form-section'>" + title + "</h3>" +
2870
		"<div class='portlet-body'>" +
2871
		"<div class='table-scrollable'>" +
2872
		"<table class='table table-bordered table-hover'>" +
2873
		Thead +
2874
		Tbody
2875
    "</table>" +
2876
    "</div>" +
2877
    "</div>" +
2878
    "</div>" +
2879
    "</div>";
2880
    $("#" + divid).append(result);
2881
}
2882

    
2883
MinovaUtil.FieldGenerator.Header1 = function (divid, companyCode) {
2884
    var logo = undefined;
2885
    var CompanyDescription = undefined;
2886
    Ext.Ajax.request({
2887
        async: false,
2888
        method: 'POST',
2889
        url: '/UserControl/GetStore',
2890
        params: {
2891
            tableName: 'PCMEPCOMPID',
2892
            param: 'CompanyID[equal]' + companyCode
2893

    
2894
        },
2895
        success: function (response) {
2896
            var results = Ext.decode(response.responseText);
2897
            data_ = results.data;
2898
            if (data_.length > 0) {
2899
                logo = data_[0].Logo;
2900
                CompanyDescription = data_[0].CompanyDescription;
2901
            }
2902
        }
2903
    });
2904

    
2905
    var header = //'<div class="row">' +
2906
		'<div class="col-md-3">' +
2907
		'<div class="page-logo">' +
2908
		'<a href="/">' +
2909
		///Devt/GetFileData?FileName=Foto Fazari.jpg&download=false
2910
		'<img src="/Devt/GetFileData?FileName=' + logo + '&download=false" alt="logo" class="logo-default" />' +
2911
		'</a>' +
2912
		'</div>' +
2913
		'</div>' +
2914
		'<div class="col-md-9">' +
2915
		'<h3>' + CompanyDescription + '</h3>' +
2916

    
2917
		'</div>';
2918
    '<div>';
2919

    
2920
    '</div>';
2921

    
2922
    $("#" + divid).append(header);
2923
}
2924

    
2925
MinovaUtil.FieldGenerator.Header2 = function (divid, companyCode) {
2926
    var header = '<div class="row">' +
2927
		'<div class="col-md-9">' +
2928
		'<div class="page-logo">' +
2929
		'<h3> PT Minova Infotech Solutions</h3>' +
2930
		'</div>' +
2931
		'</div>' +
2932
		'<div class="col-md-3">' +
2933
		'<a href="/">' +
2934
		'<img src="../../Metronic/assets/admin/layout4/img/logo-light.png" alt="logo" class="logo-default" />' +
2935
		'</a>' +
2936
		'</div>' +
2937
		'</div>';
2938
    $("#" + divid).append(header);
2939
}
2940

    
2941
MinovaUtil.FieldGenerator.MDWithImage1 = function (divid) {
2942

    
2943
    var nowDate = MinovaUtil.GetNowDate();
2944
    var Photo = 'nophoto.gif';
2945
    var emp = getParam("EmployeeID");
2946
    if (emp == "null") {
2947
        var VariantID = getParam("VariantName");
2948
        Ext.Ajax.request({
2949
            method: 'POST',
2950
            async: false,
2951
            url: '/UserControl/GetStore',
2952
            params: {
2953
                tableName: 'SDATAVARIANT',
2954
                param: 'VariantName[=]' + VariantID
2955
            },
2956
            success: function (response) {
2957
                var results = Ext.decode(response.responseText);
2958
                hasil = Ext.decode(results.data[0].Data);
2959
                emp = hasil.EmployeeID;
2960

    
2961
            }
2962
        });
2963
    }
2964

    
2965
    // get Photo
2966
    Ext.Ajax.request({
2967
        method: 'POST',
2968
        async: false,
2969
        url: '/UserControl/GetStore',
2970
        params: {
2971
            tableName: 'PHRPA0001',
2972
            param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + emp
2973
        },
2974
        success: function (response) {
2975
            var results = Ext.decode(response.responseText);
2976
            hasil = results.data;
2977
            dataPhoto = hasil[0].Picture
2978
            if (dataPhoto != "") {
2979
                Photo = dataPhoto;
2980
            }
2981

    
2982
        }
2983
    });
2984

    
2985
    var header = '<div class="row">' +
2986
		'<div class="col-md-2">' +
2987
		'<div class="page-logo">' +
2988
		'<a href="/">' +
2989
		'<img src="/Devt/GetFileData?FileName=' + Photo + '&download=false" alt="logo" width="133" height="140" />' +
2990
		'</a>' +
2991
		'</div>' +
2992
		'</div>' +
2993
		'<div class="col-md-10" id="formMD">' +
2994

    
2995
		'</div>' +
2996
		'</div>';
2997
    $("#" + divid).append(header);
2998
}
2999

    
3000
MinovaUtil.FieldGenerator.MDWithImage2 = function (divid, companyCode) {
3001
    var header = '<div class="row">' +
3002
		'<div class="col-md-10" id="formMD">' +
3003

    
3004
		'</div>' +
3005
		'<div class="col-md-2">' +
3006
		'<div class="page-logo">' +
3007
		'<a href="/">' +
3008
		'<img src="../../Metronic/assets/admin/layout4/img/logo-light.png" alt="logo" class="logo-default" />' +
3009
		'</a>' +
3010
		'</div>' +
3011
		'</div>' +
3012
		'</div>';
3013
    $("#" + divid).append(header);
3014
}
3015

    
3016
MinovaUtil.FieldGenerator.CvView = function (divid) {
3017

    
3018
    //get all header
3019
    var emp = getParam('EmployeeID');
3020
    // var divid = 'reportContent';
3021
    var CVType = getParam('CVType');
3022
    if (CVType == "null") {
3023
        var VariantID = getParam("VariantName");
3024
        Ext.Ajax.request({
3025
            method: 'POST',
3026
            async: false,
3027
            url: '/UserControl/GetStore',
3028
            params: {
3029
                tableName: 'SDATAVARIANT',
3030
                param: 'VariantName[=]' + VariantID
3031
            },
3032
            success: function (response) {
3033
                var results = Ext.decode(response.responseText);
3034
                hasil = Ext.decode(results.data[0].Data);
3035
                CVType = hasil.CVType;
3036

    
3037
            }
3038
        });
3039
    }
3040
    var LangId = MinovaUtil.GetLangID();
3041
    var header_ = null;
3042
    var results = null;
3043
    var CVDetailType = null;
3044
    //get all field
3045
    Ext.Ajax.request({
3046
        async: false,
3047
        method: 'POST',
3048
        url: '/UserControl/GetStore',
3049
        params: {
3050
            tableName: 'PDSPA0002',
3051
            param: "hd.CVType = '" + CVType + "' AND rt.LangId = '" + LangId + "'"
3052
            //param : "hd.CVType = "+CVType+" AND rt.LangId = "+LangId
3053
        },
3054
        success: function (response) {
3055
            var result = Ext.decode(response.responseText);
3056
            results = result.data;
3057

    
3058
        }
3059
    });
3060
    // generate ui from all field each panel
3061
    var allTable = null;
3062
    var tbl = null;
3063
    var tblTemp = null;
3064

    
3065
    var allHeader = null;
3066
    var head_ = null;
3067
    var headTemp = null;
3068
    var i = 0;
3069
    var countData = results.length;
3070
    results = results.sort(MinovaUtil.SortBy("Sequence"))
3071
    Ext.each(results, function (rec) {
3072
        tblTemp = results[i].TableName;
3073
        headTemp = results[i].CVHeaderTitle;
3074

    
3075
        if (tbl != tblTemp) {
3076

    
3077
            tbl = tblTemp;
3078
            if (allTable == null) {
3079
                allTable = tbl
3080
            } else {
3081
                allTable = allTable + ',' + tbl
3082
            }
3083

    
3084
        }
3085

    
3086
        if (head_ != headTemp) {
3087

    
3088
            head_ = headTemp;
3089
            if (allHeader == null) {
3090
                allHeader = head_
3091
            } else {
3092
                allHeader = allHeader + ',' + head_
3093
            }
3094

    
3095
        }
3096

    
3097
        if (countData > i) {
3098
            i++
3099
        }
3100

    
3101
    });
3102

    
3103
    var splitHeader = allHeader.split(',')
3104
    var splitTable = allTable.split(',')
3105

    
3106
    splitHeader = splitHeader.filter(MinovaUtil.RemoveDuplicateArray);
3107
    splitTable = splitTable.filter(MinovaUtil.RemoveDuplicateArray);
3108

    
3109
    var panel_ = null;
3110
    // build form/grid
3111
    var contHeader = 0;
3112
    splitHeader.forEach(function (hd) {
3113
        //console.log(h)
3114
        panel_ = null;
3115
        panel_ = $.grep(results, function (r) {
3116
            return r.CVHeaderTitle == hd
3117
        });
3118
        panel_ = panel_.sort(MinovaUtil.SortBy("FieldSequence"))
3119
        //get layout type form/grid
3120
        var layout = panel_[0].CVLayout
3121
        var item_ = null
3122
        if (layout == 'Form') {
3123
            var _temtbl = null;
3124
            var dataValues = null;
3125
            Ext.each(panel_, function (rec) {
3126
                var labelId = "label" + rec.TableName + rec.Field
3127
                var labelValue = rec.ScreenCaption
3128
                var valueId = "val" + rec.TableName + rec.Field
3129

    
3130
                if (_temtbl == null) {
3131
                    _temtbl = rec.TableName;
3132
                    //alert(_temtbl)
3133
                    //get table values
3134
                    Ext.Ajax.request({
3135
                        async: false,
3136
                        method: 'POST',
3137
                        url: '/UserControl/GetStore',
3138
                        params: {
3139
                            tableName: rec.TableName,
3140
                            param: 'EmployeeID[=]' + emp
3141
                            // belum di cek start date dan enddate
3142
                        },
3143
                        success: function (response) {
3144
                            var results = Ext.decode(response.responseText);
3145
                            dataValues = results.data[0];
3146

    
3147
                        }
3148
                    });
3149
                }
3150

    
3151
                if (_temtbl != rec.TableName) {
3152

    
3153
                    //get table values
3154
                    Ext.Ajax.request({
3155
                        async: false,
3156
                        method: 'POST',
3157
                        url: '/UserControl/GetStore',
3158
                        params: {
3159
                            tableName: rec.TableName,
3160
                            param: 'EmployeeID[=]' + emp
3161

    
3162
                        },
3163
                        success: function (response) {
3164
                            var results = Ext.decode(response.responseText);
3165
                            dataValues = results.data[0];
3166
                            // console.log(dataValues)
3167

    
3168
                        }
3169
                    });
3170

    
3171
                }
3172
                var _field = null;
3173
                var valueField = null;
3174
                var TableRef = null;
3175
                if (dataValues) {
3176
                    _field = 'dataValues.' + rec.Field;
3177
                    // case field with table ref
3178
                    //get table ref
3179

    
3180
                    Ext.Ajax.request({
3181
                        async: false,
3182
                        method: 'POST',
3183
                        url: '/UserControl/GetStore',
3184
                        params: {
3185
                            tableName: 'SDATATABLEFIELD',
3186
                            param: 'TableName[=]' + rec.TableName + ',' + 'FieldName[=]' + rec.Field
3187

    
3188
                        },
3189
                        success: function (response) {
3190
                            var results = Ext.decode(response.responseText);
3191
                            if (results.length > 0) {
3192
                                TableRef = results.data[0].TableRef;
3193
                            }
3194

    
3195
                        }
3196
                    });
3197
                    if (TableRef != '' && TableRef != null) {
3198
                        //alert(TableRef);
3199
                        //get valuefield and displayfield tableref
3200
                        var data = null;
3201
                        Ext.Ajax.request({
3202
                            async: false,
3203
                            method: 'POST',
3204
                            url: '/UserControl/GetStore',
3205
                            params: {
3206
                                tableName: 'SDATATABLEFIELD',
3207
                                param: 'TableName[=]' + TableRef
3208

    
3209
                            },
3210
                            success: function (response) {
3211
                                data = Ext.decode(response.responseText).data;
3212
                                // data = data_.data[0];
3213
                            }
3214
                        });
3215
                        code = $.grep(data, function (r) {
3216
                            return r.ValueField == '1'
3217
                        });
3218
                        code = code[0].FieldName;
3219
                        desc = $.grep(data, function (r) {
3220
                            return r.DisplayValue == '1'
3221
                        });
3222
                        desc = desc[0].FieldName;
3223
                        //get value display
3224
                        if (code != '' && code != null) {
3225
                            Ext.Ajax.request({
3226
                                async: false,
3227
                                method: 'POST',
3228
                                url: '/UserControl/GetStore',
3229
                                params: {
3230
                                    tableName: TableRef,
3231
                                    param: code + '[=]' + eval(_field)
3232

    
3233
                                },
3234
                                success: function (response) {
3235
                                    var results = Ext.decode(response.responseText);
3236
                                    result = results.data[0];
3237
                                    field_ = "result." + desc;
3238
                                    valueField = eval(field_);
3239

    
3240
                                }
3241
                            });
3242

    
3243
                        }
3244

    
3245
                    } else {
3246
                        valueField = eval(_field);
3247
                    }
3248

    
3249
                }
3250

    
3251
                if (item_ == null) {
3252

    
3253
                    item_ = "<div class='col-md-6'> <div class='form-group'>"
3254
                         + "<label class='control-label col-md-4 ' id=" + labelId + ">"
3255
                         + labelValue + "</label> <div class='col-md-8' id=" + valueId + "> "
3256
                         + valueField + " </div> </div> </div>"
3257
                } else {
3258

    
3259
                    item_ = item_ + "<div class='col-md-6'> <div class='form-group'>"
3260
                         + "<label class='control-label col-md-4 ' id=" + labelId + ">"
3261
                         + labelValue + "</label> <div class='col-md-8' id=" + valueId + "> "
3262
                         + valueField + " </div> </div> </div>"
3263
                }
3264

    
3265
            });
3266
            if (contHeader == 0) {
3267

    
3268
                $("#formMD").append(" <h3 class='form-section'>" + hd + "</h3>");
3269
                $("#formMD").append("<div class='row' id='TableName_Content'> " + item_ + " </div>");
3270

    
3271
            } else {
3272
                $("#" + divid).append(" <h3 class='form-section'>" + hd + "</h3>");
3273
                $("#" + divid).append("<div class='row' id='TableName_Content'> " + item_ + " </div>");
3274
            }
3275
            contHeader++;
3276

    
3277
        } else {
3278
            var gridPanel = null;
3279
            var header = "";
3280
            var ThThead = "";
3281
            var tr = "";
3282
            var td = "";
3283
            var tdLabel = "";
3284
            var tableName = panel_[0].TableName;
3285
            var allGridCol = null;
3286
            dtEmp = null;
3287
            Ext.Ajax.request({
3288
                async: false,
3289
                method: 'POST',
3290
                url: '/UserControl/GetStore',
3291
                params: {
3292
                    tableName: tableName,
3293
                    param: 'EmployeeID[equal]' + emp
3294
                },
3295
                success: function (response) {
3296
                    var results = Ext.decode(response.responseText);
3297
                    dtEmp = results.data;
3298
                    //  console.log(tableName);
3299
                    //  console.log(dtEmp)
3300

    
3301
                }
3302
            });
3303
            // get structure
3304
            var structure = null
3305
            Ext.Ajax.request({
3306
                async: false,
3307
                method: 'POST',
3308
                url: '/UserControl/GetStore',
3309
                params: {
3310
                    tableName: 'SDATATABLEFIELD',
3311
                    param: 'TableName[equal]' + tableName
3312
                },
3313
                success: function (response) {
3314
                    var results = Ext.decode(response.responseText);
3315
                    structure = results.data;
3316
                    //  console.log(tableName);
3317
                    //  console.log(dtEmp)
3318

    
3319
                }
3320
            });
3321
            Ext.each(panel_, function (rec) {
3322
                header = rec.HeaderTitle;
3323
                if (allGridCol == null) {
3324
                    allGridCol = header
3325
                } else {
3326
                    allGridCol = allGridCol + ',' + header
3327
                }
3328
                ThThead = ThThead + "<th>" + header + "</th>";
3329
            });
3330
            //var splitallGridCol = allGridCol.split(',')
3331
            var Thead = "<thead>" + ThThead + "</thead>";
3332
            // get data by tableName and emp id
3333

    
3334
            for (var a = 0; a < dtEmp.length; a++) { //length data will be populate, create row coloumn
3335
                //console.log(panel_)
3336
                for (var b = 0; b < panel_.length; b++) { //length header
3337
                    // tdLabel = b;
3338

    
3339
                    haed_ = panel_[b].Field;
3340
                    _tdLabel = 'dtEmp[' + a + '].' + haed_;
3341
                    tdLabel = eval(_tdLabel);
3342
                    //structure_ = structure[b].haed_
3343
                    structure_ = $.grep(structure, function (r) {
3344
                        return r.FieldName == haed_
3345
                    });
3346

    
3347
                    var hasil = MinovaUtil.FieldGenerator.GetValueHtml(structure_, tdLabel);
3348

    
3349
                    td = td + "<td>" + hasil + "</td>";
3350

    
3351
                }
3352
                tr = tr + "<tr>" + td + "</tr>";
3353
                td = "";
3354
            }
3355

    
3356
            var Tbody = "<tbody>" + tr + "</tbody>";
3357
            //var tbl = rec.tableName + "Table";
3358
            var tbl = "Table";
3359
            gridPanel = "<div class='row' id=" + tbl + ">" +
3360
                "<div class='col-md-10'>" +
3361
                "<h3 class='form-section'>" + hd + "</h3>" +
3362
                "<div class='portlet-body'>" +
3363
                "<div class='table-scrollable'>" +
3364
                "<table class='table table-bordered table-hover'>" +
3365
                Thead +
3366
                Tbody
3367
            "</table>" +
3368
            "</div>" +
3369
            "</div>" +
3370
            "</div>" +
3371
            "</div>";
3372
            $("#" + divid).append(gridPanel);
3373
        }
3374

    
3375
    });
3376

    
3377
    //set values for/grid
3378
    splitTable.forEach(function (tb) {
3379
        // alert(tb)
3380
    });
3381
}
3382

    
3383
MinovaUtil.FieldGenerator.GetValueHtml = function (structure, oldVlaue) {
3384
    var hasil = null;
3385
    switch (structure_[0].FormatRef) {
3386
        case "date":
3387
            d = oldVlaue.substring(6, 8);
3388
            m = oldVlaue.substring(4, 6);
3389
            y = oldVlaue.substring(0, 4);
3390
            hasil = d + '/' + m + '/' + y;
3391
            break;
3392

    
3393
        case "datetime":
3394
            var d = oldVlaue.substring(6, 8);
3395
            var m = oldVlaue.substring(4, 6);
3396
            var y = oldVlaue.substring(0, 4);
3397
            var h = oldVlaue.substring(8, 10);
3398
            var mt = oldVlaue.substring(10, 12);
3399
            var s = oldVlaue.substring(12, 14);
3400
            hasil = d + '/' + m + '/' + y + '  ' + '  ' + h + ':' + mt + ':' + s;
3401
            break;
3402

    
3403
        default:
3404
            if (structure_[0].SearchType != '') {
3405
                if (structure_[0].TableRef != '') {
3406
                    Ext.Ajax.request({
3407
                        async: false,
3408
                        method: 'POST',
3409
                        url: '/UserControl/GetStore',
3410
                        params: {
3411
                            tableName: 'SDATATABLEFIELD',
3412
                            param: 'TableName[equal]' + structure_[0].TableRef
3413
                        },
3414
                        success: function (response) {
3415
                            var results = Ext.decode(response.responseText);
3416
                            data_ = results.data;
3417
                            code = $.grep(data_, function (r) {
3418
                                return r.ValueField == '1'
3419
                            });
3420
                            desc = $.grep(data_, function (r) {
3421
                                return r.DisplayValue == '1'
3422
                            });
3423
                            code_ = code[0].FieldName;
3424
                            desc_ = desc[0].FieldName;
3425

    
3426
                            if (code) {
3427
                                Ext.Ajax.request({
3428
                                    async: false,
3429
                                    method: 'POST',
3430
                                    url: '/UserControl/GetStore',
3431
                                    params: {
3432
                                        tableName: structure_[0].TableRef,
3433
                                        param: code_ + '[equal]' + oldVlaue
3434
                                    },
3435
                                    success: function (response) {
3436
                                        var results = Ext.decode(response.responseText);
3437
                                        var val = results.data[0];
3438
                                        _val = 'val.' + desc_;
3439
                                        hasil = eval(_val)
3440
                                    }
3441
                                });
3442
                            }
3443

    
3444
                        }
3445
                    });
3446
                }
3447
            } else {
3448
                hasil = oldVlaue;
3449
            }
3450

    
3451
            break
3452

    
3453
    }
3454
    return hasil;
3455
}
3456

    
3457
MinovaUtil.FieldGenerator.BuildHTMLFormView = function (menuid, tableName) {
3458
    var param = '';
3459
    var LangID = '';
3460
    var dataSet = 'PDSBS0007';
3461
    if (menuid != '') {
3462
        param = 'MenuID[=]' + menuid + ',LangId[=]' + LangID;
3463
        dataSet = 'PDSBS0009';
3464
    } else {
3465
        param = "LangID='" + LangID + "',TableName='" + tableName
3466
    }
3467

    
3468
    // get data field structure
3469
    var structure = undefined;
3470
    Ext.Ajax.request({
3471
        async: false,
3472
        method: 'POST',
3473
        url: '/UserControl/GetStore',
3474
        params: {
3475
            tableName: dataSet,
3476
            param: param
3477
        },
3478
        success: function (response) {
3479
            structure = Ext.decode(response.responseText).data;
3480

    
3481
        }
3482
    });
3483

    
3484
    //create html component
3485
    var col = '1';
3486
    var index1 = 0;
3487
    var index2 = 0;
3488
    var jmlhData = structure.length;
3489
    var jmlCol1 = 0;
3490
    var jmlCol2 = 0;
3491
    var dataCol1 = null;
3492
    var dataCol2 = null;
3493
    var countCol1 = 0;
3494
    var countCol2 = 0;
3495
    if (dataSet == 'PDSBS0009') {
3496
        dataCol1 = $.grep(structure, function (r) {
3497
            return r.Column == '1'
3498
        });
3499
        jmlCol1 = dataCol1.length;
3500
        dataCol2 = $.grep(structure, function (r) {
3501
            return r.Column == '2'
3502
        });
3503
        jmlCol2 = dataCol2.length;
3504
    } else {
3505
        dataCol1 = $.grep(structure, function (r) {
3506
            return r.ColumnNo == '1'
3507
        });
3508
        jmlCol1 = dataCol1.length;
3509
        dataCol2 = $.grep(structure, function (r) {
3510
            return r.ColumnNo == '2'
3511
        });
3512
        jmlCol2 = dataCol2.length;
3513
    }
3514

    
3515
    var item_ = null;
3516
    for (i = 0; i < jmlhData; i++) {
3517
        if (i == 0) {
3518
            var dt = dataCol1[countCol1];
3519
            var dt = dataCol1[countCol1];
3520
            var labelId = dt.FieldName + 'id';
3521
            var labelValue = dt.ScreenCaption;
3522
            var valueId = dt.FieldName;
3523
            var valueField = '';
3524
            item_ = "<div class='col-md-6'> <div class='form-group'>"
3525
				 + "<label class='control-label col-md-4 ' id=" + labelId + ">"
3526
				 + labelValue + "</label> <div class='col-md-8' id=" + valueId + "> "
3527
				 + valueField + " </div> </div> </div>";
3528

    
3529
            countCol1++;
3530
            col = '2';
3531
        } else {
3532
            if (col == '1' && countCol1 < jmlCol1) {
3533
                var dt = dataCol1[countCol1];
3534
                var labelId = dt.FieldName + 'id';
3535
                var labelValue = dt.ScreenCaption;
3536
                var valueId = dt.FieldName;
3537
                var valueField = '';
3538

    
3539
                item_ = "<div class='col-md-6'> <div class='form-group'>"
3540
					 + "<label class='control-label col-md-4 ' id=" + labelId + ">"
3541
					 + labelValue + "</label> <div class='col-md-8' id=" + valueId + "> "
3542
					 + valueField + " </div> </div> </div>";
3543

    
3544
                countCol1++;
3545
                col = '2';
3546
            } else if (col == '2' && countCol2 < jmlCol2) {
3547
                var dt = dataCol2[countCol2];
3548
                var dt = dataCol1[countCol1];
3549
                var labelId = dt.FieldName + 'id';
3550
                var labelValue = dt.ScreenCaption;
3551
                var valueId = dt.FieldName;
3552
                var valueField = '';
3553
                item_ = "<div class='col-md-6'> <div class='form-group'>"
3554
					 + "<label class='control-label col-md-4 ' id=" + labelId + ">"
3555
					 + labelValue + "</label> <div class='col-md-8' id=" + valueId + "> "
3556
					 + valueField + " </div> </div> </div>";
3557

    
3558
                countCol2++;
3559
                col = '1';
3560
            } else {
3561
                // create empety field
3562
                var labelId = 'EmpetyID';
3563
                var labelValue = '';
3564
                var valueId = 'EmpetyField';
3565
                var valueField = '';
3566
                item_ = "<div class='col-md-6'> <div class='form-group'>"
3567
					 + "<label class='control-label col-md-4 ' id=" + labelId + ">"
3568
					 + labelValue + "</label> <div class='col-md-8' id=" + valueId + "> "
3569
					 + valueField + " </div> </div> </div>";
3570
                //change base value
3571
                if (col == '1') {
3572
                    col = '2';
3573
                    countCol1++;
3574
                } else {
3575
                    col = '1';
3576
                    countCol2++
3577
                }
3578
            }
3579
        }
3580
        // add to form
3581
        if (dataSet == 'PDSBS0009') { //
3582
            $("#formHeaderMD").append("<div class='row' id='TableName_Content'> " + item_ + " </div>");
3583
        } else {
3584
            $("#formViewMD").append("<div class='row' id='TableName_Content'> " + item_ + " </div>");
3585
        }
3586
    }
3587

    
3588
}
3589

    
3590
/*Fungsi untuk Report Generator	*/
3591
MinovaUtil.FieldGenerator.ReportGenerator = function (tableName, store, filter, divid) {
3592
    Ext.create('MinovaUtil.MinovaES.MinovaRptGeneratorGrid', {
3593
        renderTo: divid,
3594
        name: 'result' + tableName,
3595
        storeOutput: store,
3596
        storeName: 'store' + tableName,
3597
        filter: filter,
3598
        tableName: tableName,
3599
        pagesize: 25,
3600
        autoLoad: true,
3601
        height: 400,
3602
        tbar: [{
3603
            xtype: 'button',
3604
            text: 'Action',
3605
            name: 'actionBtn',
3606
            menu: [{
3607
                text: 'Save',
3608
                name: 'Save',
3609
                action: 'Save',
3610
                style: 'font-family: FontAwesome',
3611
                iconCls: 'fa-plus-circle',
3612
            }, {
3613
                text: 'Export Table',
3614
                name: 'ExportTable',
3615
                action: 'ExportTable',
3616
                style: 'font-family: FontAwesome',
3617
                iconCls: 'fa-file-excel-o',
3618
            }
3619
            ],
3620
            layout: {
3621
                type: 'vbox',
3622
                align: 'stretch',
3623
                padding: 5
3624
            }
3625
        }, {
3626
            xtype: 'displayfield',
3627
            value: (Ext.Date.format(new Date(), 'd/m/Y g:i a')),
3628
            id: 'cur_date',
3629
            margin: '0 0 0 810'
3630
        }
3631
        ],
3632
        dockedItems: [{
3633
            xtype: 'pagingtoolbar',
3634
            store: 'store' + tableName,
3635
            dock: 'bottom',
3636
            pageSize: 25,
3637
            displayInfo: true
3638
        }
3639
        ]
3640
    });
3641
}
(3-3/3)