Project

General

Profile

Feature #1457 » wizard.js

Tri Rizqiaty, 08/12/2022 02:36 PM

 
1
Ext.define('MinovaES.controller.wizard.wizard', {
2
    extend: 'Ext.app.ViewController',
3
    alias: 'controller.wizard',
4
    //typeWizard: undefined,
5
    init: function () {
6
        var typeWizard = null;
7
        var selectionValues = null;
8
        var wzFunc = null;
9
        this.control({
10

    
11
            //'wizard [name=ApplicantID]': {
12
            //    change: this.ApplicantIDChange
13
            //},
14
            'wizard [name=selectionForm]': {
15
                //afterrender: this.afterrenderFunc
16
                afterrender: this.cekMsg
17
            },
18
            'wizard [name=Action]': {
19
                select: this.actionSelect
20
            },
21
            'wizard [name=search]': {
22
                click: this.btnSearch
23
            },
24
            'wizard [name=execute]': {
25
                click: this.execute
26
            },
27
            'wizard [name=processflow]': {
28
                afterrender: this.processflowGrid
29
            },
30

    
31
            'runwizards [name=saveWizard]': {
32
                click: this.saveWizard
33
            },
34
            'runwizards [name=prevWizard]': {
35
                click: this.prevWizard
36
            },
37

    
38
            'runwizards [name=selectionFormDisplay]': {
39
                afterrender: this.selectionFormDisplay
40
            },
41

    
42
            'runwizards [name=skipWizard]': {
43
                click: this.skipMd
44
            },
45

    
46
            'runwizards [name=skipAllWizard]': {
47
                click: this.skipAll
48
            },
49

    
50
            ' [name=mainWizard]': {
51
                afterrender: this.afterrenderMainWizard
52
            },
53
            ' [name=ApplicantID]': {
54
                change: this.ChangeApp
55
            },
56

    
57
        });
58
    },
59
    afterrenderMainWizard: function () {
60
        setTimeout(function () {
61
            if (getParam('wizard').toLowerCase() != 'a001') {
62

    
63
                Ext.ComponentQuery.query('[name=Action]')[0].setRawValue(localStorage.getItem('Action'))
64
                var CompanyID = Ext.ComponentQuery.query('displayfield[name=CompanyID]')[0];
65
                if (CompanyID) {
66
                    var s = CompanyID.store;
67
                    var dt = '';//s.findRecord(CompanyID.valueField, CompanyID.getValue());
68
                    var data_ = undefined;
69
                    Ext.Ajax.request({
70
                        async: false,
71
                        method: 'POST',
72
                        url: '/UserControl/GetStore',
73
                        params: {
74
                            tableName: 'PCMEPCOMPID',
75
                            param: 'StartDate[<=]' + MinovaUtil.GetNowDate() + ',EndDate[>=]' + MinovaUtil.GetNowDate() + ',CompanyID[=]' + CompanyID.getValue()
76
                        },
77
                        success: function (response) {
78
                            var results = Ext.decode(response.responseText);
79
                            data_ = results.data;
80
                            if (data_.length != 0) {
81
                                CompanyID.setValue(data_[0].CompanyDescription);
82
                            }
83
                        }
84
                    });
85

    
86
                }
87
                var PayrollGroup = Ext.ComponentQuery.query('displayfield[name=PayrollGroup]')[0];
88
                if (PayrollGroup) {
89
                    Ext.Ajax.request({
90
                        async: false,
91
                        method: 'POST',
92
                        url: '/UserControl/GetStore',
93
                        params: {
94
                            tableName: 'PHRPYPGRUP',
95
                            param: 'StartDate[<=]' + MinovaUtil.GetNowDate() + ',EndDate[>=]' + MinovaUtil.GetNowDate() + ',PayrollGroup[=]' + PayrollGroup.getValue()
96
                        },
97
                        success: function (response) {
98
                            var results = Ext.decode(response.responseText);
99
                            data_ = results.data;
100
                            if (data_.length != 0) {
101
                                PayrollGroup.setValue(data_[0].PayrollGroupDescription);
102
                            }
103
                        }
104
                    });
105
                }
106
            } else {
107
                Ext.ComponentQuery.query('displayfield[name=EmployeeID]')[0].labelEl.update('Employee ID');
108
                Ext.ComponentQuery.query('displayfield[name=CompanyID]')[0].setHidden(true);
109
                Ext.ComponentQuery.query('displayfield[name=PayrollGroup]')[0].setHidden(true);
110
            }
111
        }, 200);
112
        Ext.ComponentQuery.query('[name=Action]')[0].setValue('');
113
        var app = getParam('app');
114
        if (app === "null") {
115
            app = '';
116
        }
117
        if (app != '') {
118
            Ext.ComponentQuery.query('[name=pnlProgress]')[0].setTitle('Applicant Movement');
119
        }
120
        if (getParam('wizard').toLowerCase().substr(0, 1) == 'a') {
121
            if (Ext.ComponentQuery.query('[title=Employee Movement]')[0]) {
122
                Ext.ComponentQuery.query('[title=Employee Movement]')[0].setTitle('Applicant Movement');
123
            }
124

    
125
        }
126
    },
127
    ApplicantIDChange: function () {
128
        var ActF = Ext.ComponentQuery.query('[name=Action]')[0]
129
        var Act = ActF.getValue();
130
        var Return = false;
131
        if (Act != null) {
132
            var btn = Ext.ComponentQuery.query('[name=execute]')[0];
133
            btn.setDisabled(false);
134
            var app = Ext.ComponentQuery.query('[name=ApplicantID]')[0].getValue();
135
            if (app != "") {
136
                Ext.Ajax.request({
137
                    async: false,
138
                    method: 'POST',
139
                    url: '/UserControl/GetStore',
140
                    params: {
141
                        tableName: 'phrrc0002',
142
                        param: 'EmployeeID[equal]' + app + ',StartDate[<=]' + MinovaUtil.GetNowDate() + ',EndDate[>=]' + MinovaUtil.GetNowDate() + ',ApplicantAction[=]8'
143
                    },
144
                    success: function (response) {
145
                        var results = Ext.decode(response.responseText);
146
                        data_ = results.data;
147
                        if (Act == "A900") { // transfer to Employee
148
                            if (data_.length == 0) {
149
                                //app.setValue('');
150
                                MinovaMessage('', 'WZAPPNOFOUND', '', "E");
151
                                btn.setDisabled(true);
152
                            } else {
153
                                if (data_[0].ApplicantStatus != '05' && Act == "A900") {
154
                                    MinovaMessage('', 'RCVALTEMP', '', "E");
155
                                    btn.setDisabled(true);
156
                                }
157
                            }
158
                        } else {
159
                            Return = true;
160
                        }
161

    
162
                    }
163
                });
164
            }
165
        }
166
        return Return
167
    },
168
    execute: function () {
169
        var me = this;
170

    
171
        var Return = undefined;
172
        var s = Ext.ComponentQuery.query('[name=Action]')[0].getStore();
173
        var ActF = Ext.ComponentQuery.query('[name=Action]')[0]
174
        var Act = ActF.getValue();
175
        var wizFunc = '';
176
        if (Act == '') { 
177
            wizFunc = s.findRecord('WizardDescription', Ext.ComponentQuery.query('[name=Action]')[0].rawValue).data.WizardFunction;
178
        } else {
179
            wizFunc = s.findRecord('Wizard', Act).data.WizardFunction;
180
        }
181

    
182
        if (wizFunc != 'APPI' && wizFunc != 'EMPI' && wizFunc != 'APPT'&& wizFunc != 'EMP') {
183
            if (Ext.ComponentQuery.query('[name=ApplicantID]')[0]) {
184
                Return = me.ApplicantIDChange();  
185
            } else {
186
                Return = me.empChange();
187
            }
188

    
189
        } else {
190
            Return = true;
191
        }
192

    
193
        if (Return) {
194
            me.btnexecute();
195
        }
196
    },
197
    empChange: function () {
198
        var ActF = Ext.ComponentQuery.query('[name=Action]')[0]
199
        var Act = ActF.getValue();
200
        var Return = false;
201
        if (Act != null) {
202
            var emp = Ext.ComponentQuery.query('[name=EmployeeID]')[0].getValue();
203
            var btn = Ext.ComponentQuery.query('[name=execute]')[0];
204
            btn.setDisabled(false);
205
            if (emp != "") {
206
                Ext.Ajax.request({
207
                    async: false,
208
                    method: 'POST',
209
                    url: '/UserControl/GetStore',
210
                    params: {
211
                        tableName: 'phrpa0002',
212
                        param: 'EmployeeID[equal]' + emp + ',StartDate[<=]' + MinovaUtil.GetNowDate() + ',EndDate[>=]' + MinovaUtil.GetNowDate() + ',EmployeeStatus[=]01'
213

    
214
                    },
215
                    success: function (response) {
216
                        var results = Ext.decode(response.responseText);
217
                        data_ = results.data;
218
                        if (data_.length > 0) {
219
                            Ext.ComponentQuery.query('[name=CompanyID]')[0].setValue(data_[0].CompanyID);
220
                            Ext.ComponentQuery.query('[name=PayrollGroup]')[0].setValue(data_[0].PayrollGroup);
221
                            Return = true;
222
                        } else {
223
                            if (Act != "E001") { // not hiring
224
                                //btn.setDisabled(true);
225
                                MinovaMessage('', 'WZEMPNOFOUND', '', "E");
226
                            }
227
                        }
228

    
229
                    }
230
                });
231
            }
232
        }
233
        return Return;
234
    },
235
    afterrenderFunc: function () {
236
        var menuDt = undefined;
237
        Ext.Ajax.request({
238
            async: false,
239
            method: 'POST',
240
            url: '/UserControl/GetStore',
241
            params: {
242
                tableName: 'smenu',
243
                param: 'MenuId[equal]' + MinovaUtil.GetMenuID()
244

    
245
            },
246
            success: function (response) {
247
                var results = Ext.decode(response.responseText);
248
                data_ = results.data[0];
249
                if (data_ != undefined) {
250
                    menuDt = data_;
251
                }
252
            }
253
        });
254
        formSelection = Ext.ComponentQuery.query('[name=selectionForm]')[0].getForm();
255

    
256
        if (menuDt) {
257
            typeWizard = menuDt.Variant;
258

    
259
            if (typeWizard == '100') { // for empolyee md
260
                formSelection.findField("ApplicantID").setVisible(false);
261

    
262
            } else {
263
                formSelection.findField("PayrollGroup").setVisible(false);
264
                formSelection.findField("EmployeeID").setVisible(false);
265

    
266
            }
267
        } else {
268
            formSelection.findField("ApplicantID").setVisible(false);
269
        }
270

    
271
    },
272
    actionSelect: function (c) {
273
        formSelection = Ext.ComponentQuery.query('[name=selectionForm]')[0].getForm();
274
        formValues_ = formSelection.getValues();
275
        var storeFlow = Ext.ComponentQuery.query('[name=processflow]')[0];
276
        storeFlow.mask('Loading...');
277
        var result_ = undefined;
278
        if (MinovaUtil.GetMenuID() != 'RC01') {
279
            Ext.Ajax.request({
280
                async: false,
281
                method: 'POST',
282
                url: '/UserControl/GetStore',
283
                params: {
284
                    tableName: 'PDSPA0005',
285
                    param: 'Wizard[equal]' + formValues_.Action
286

    
287
                },
288
                success: function (response) {
289
                    var results = Ext.decode(response.responseText);
290
                    data_ = results.data;
291
                    if (data_ != undefined) {
292
                        //result_ = data_;
293
                        //sorting results
294
                        // result_ = data_.sort(MinovaUtil.SortBy("Sequence"))
295
                        result_ = data_;
296
                    }
297
                }
298
            });
299

    
300
        } else {
301
            Ext.Ajax.request({
302
                async: false,
303
                method: 'POST',
304
                url: '/UserControl/GetStore',
305
                params: {
306
                    tableName: 'PDSPA0005',
307
                    param: 'WizardDescription[equal]' + Ext.ComponentQuery.query('[name=Action]')[0].rawValue
308

    
309
                },
310
                success: function (response) {
311
                    var results = Ext.decode(response.responseText);
312
                    data_ = results.data;
313
                    if (data_ != undefined) {
314
                        //result_ = data_;
315
                        //sorting results
316
                        // result_ = data_.sort(MinovaUtil.SortBy("Sequence"))
317
                        result_ = data_;
318
                    }
319
                }
320
            });
321

    
322
        }
323

    
324
        storeFlow.getStore().loadData(result_);
325
        storeFlow.unmask();
326

    
327
        var cbStore = c.getStore();
328
        var cbValue = c.getValue();
329
        //find data
330
        var data_ = cbStore.findRecord(c.valueField, cbValue);
331
        //var WizardFunction = data_.data.WizardFunction;
332
        var WizardFunction = result_[0].WizardFunction;
333
        formSelection = Ext.ComponentQuery.query('[name=selectionForm]')[0].getForm();
334
        if (WizardFunction == 'APP') { // exsist aplicant
335
            formSelection.findField("ApplicantID").allowBlank = false;
336
            formSelection.findField("ApplicantID").setReadOnly(false);
337
            //formSelection.findField("Reason").setHidden(true);
338
            formSelection.findField("CompanyID").setHidden(true);
339
            formSelection.findField("PayrollGroup").setHidden(true);
340
            //formSelection.findField("Reason").allowBlank = true;
341
            formSelection.findField("CompanyID").allowBlank = true;
342
            formSelection.findField("PayrollGroup").allowBlank = true;
343
            formSelection.findField("PayrollGroup").setHidden(true);
344
        } else if (WizardFunction == 'APPI') { // new aplicant
345
            formSelection.findField("ApplicantID").allowBlank = true;
346
            formSelection.findField("ApplicantID").setReadOnly(true);
347
            //formSelection.findField("Reason").setHidden(true)
348
            formSelection.findField("CompanyID").setHidden(true);
349
            formSelection.findField("PayrollGroup").setHidden(true);
350
            //formSelection.findField("Reason").allowBlank = true;
351
            formSelection.findField("CompanyID").allowBlank = true;
352
            formSelection.findField("PayrollGroup").allowBlank = true;
353
            formSelection.findField("PayrollGroup").setHidden(true);
354
            //formSelection.findField("EmployeeID").setHidden(true)
355

    
356
        } else if (WizardFunction == 'APPT') { // app to emp
357
            formSelection.findField("ApplicantID").allowBlank = false;
358
            formSelection.findField("ApplicantID").setValue('');
359
            formSelection.findField("ApplicantID").setReadOnly(false);
360
            //formSelection.findField("MovementType").setHidden(true)
361
            formSelection.findField("CompanyID").setHidden(false);
362
            formSelection.findField("PayrollGroup").setHidden(false);
363

    
364
        } else if (WizardFunction == 'EMP') { // for exsist employee
365
            formSelection.findField("EmployeeID").allowBlank = false;
366
            formSelection.findField("EmployeeID").setReadOnly(false);
367
            formSelection.findField("CompanyID").setHidden(true);
368
            formSelection.findField("PayrollGroup").setHidden(true);
369
            formSelection.findField("CompanyID").allowBlank = true;
370
            formSelection.findField("PayrollGroup").allowBlank = true;
371
        } else if (WizardFunction == 'EMPI') { // new employee
372
            formSelection.findField("EmployeeID").setValue("");
373
            formSelection.findField("EmployeeID").allowBlank = true;
374
            formSelection.findField("EmployeeID").setReadOnly(true);
375

    
376
            formSelection.findField("CompanyID").setHidden(false);
377
            formSelection.findField("PayrollGroup").setHidden(false);
378
        }
379
        this.loadMoveReason();
380
        //this.cekMsg();
381
    },
382
    loadMoveReason: function () {
383
        var ActF = Ext.ComponentQuery.query('[name=Action]')[0]
384
        var Act = ActF.getValue();
385
        localStorage.setItem("Action", ActF.getRawValue());
386

    
387
        if (Act != '') {
388
            var s = Ext.ComponentQuery.query('[name=Action]')[0].getStore();
389
            var actVal = s.findRecord('Wizard', Act).data.MovementType;
390
            var Res = Ext.ComponentQuery.query('[name=Reason]')[0];
391
            if (Res) {
392
                var ResStore = Res.getStore();
393
                ResStore.removeAll();
394

    
395
                Ext.Ajax.request({
396
                    async: false,
397
                    method: 'POST',
398
                    url: '/UserControl/GetStore',
399
                    params: {
400
                        tableName: 'PCMEPMOVR',
401
                        param: 'MovementType[equal]' + actVal
402

    
403
                    },
404
                    success: function (response) {
405
                        var results = Ext.decode(response.responseText);
406
                        data_ = results.data;
407
                        if (data_ != undefined) {
408
                            ResStore.loadData(data_)
409
                        }
410
                    }
411
                });
412
            }
413

    
414
        }
415

    
416
    },
417
    // btnexecute: function () {
418
        // // get wizard func
419
        // var payrollStatus = true;
420
        // var ActF = Ext.ComponentQuery.query('[name=Action]')[0]
421
        // var Act = ActF.getValue();
422
        // var s = Ext.ComponentQuery.query('[name=Action]')[0].getStore();
423
        // //var wizFunc = s.findRecord('Wizard', Act).data.WizardFunction;
424
        // var wizFunc = '';
425
        // if (Act == '') {
426
            // wizFunc = s.findRecord('WizardDescription', Ext.ComponentQuery.query('[name=Action]')[0].rawValue).data.WizardFunction;
427
        // } else {
428
            // wizFunc = s.findRecord('Wizard', Act).data.WizardFunction;
429
        // }
430
        // //if (wizFunc == 'EMPI' || wizFunc == 'APPT') {
431
        // //if (wizFunc != 'EMPI' && wizFunc != 'APPT') {
432
        // //if (wizFunc == 'EMPI' || wizFunc == 'APPI') {
433
        // payrollStatus = this.cekPayrollStatus();
434
        // if (payrollStatus == false && wizFunc != 'EMPI' && wizFunc != 'APPT' && wizFunc != 'APPI') {
435
            // //if (Ext.ComponentQuery.query('[name=PayrollGroup]')[0].getValue() == null) {
436
            // //    MinovaMessage('', '000009', '', "E");
437
            // //} else {
438
            // //    MinovaMessage('', 'PYVAL1', '', "E");
439
            // //}
440
            // MinovaMessage('', 'PYVAL1', '', "E");
441
        // }
442
        // // }
443

    
444

    
445
        // var wzFunc = undefined;
446
        // selectionValues = Ext.ComponentQuery.query('[name=selectionForm]')[0].getValues();
447
        // if (Ext.ComponentQuery.query('[name=selectionForm]')[0].getForm().isValid()) {
448
            // if (payrollStatus == true) {
449

    
450
                // Ext.Ajax.request({
451
                    // async: false,
452
                    // method: 'POST',
453
                    // url: '/UserControl/GetStore',
454
                    // params: {
455
                        // tableName: 'PHRPAWIZMAIN',
456
                        // param: 'Wizard[equal]' + selectionValues.Action
457

    
458
                    // },
459
                    // success: function (response) {
460
                        // var results = Ext.decode(response.responseText);
461
                        // data_ = results.data[0];
462
                        // if (data_ != undefined) {
463
                            // localStorage.setItem('wzFunc', JSON.stringify(results.data));
464
                            // wzFunc = data_.WizardFunction;
465
                        // }
466
                    // }
467
                // });
468

    
469
                // oldID = null;
470
                // app_ = null;
471

    
472
                // //localStorage.setItem('selectionValues', JSON.stringify(selectionValues));
473
                // if (wzFunc == 'APPT') {
474
                    // Ext.Ajax.request({
475
                        // async: false,
476
                        // method: 'POST',
477
                        // url: '/UserControl/GetLastID?class_=E',
478

    
479
                        // success: function (response) {
480
                            // oldID = response.responseText;Last
481

    
482
                        // }
483
                    // });
484
                    // //Ext.ComponentQuery.query('[name=ApplicantID]')[0].setValue(oldID);
485
                    // //app_ = Ext.ComponentQuery.query('[name=ApplicantID]')[0].getValue();
486
                    // app_ = selectionValues.ApplicantID;
487

    
488
                // } else if (wzFunc == 'EMPI') {
489
                    // /*Ext.Ajax.request({
490
                        // async: false,
491
                        // method: 'POST',
492
                        // url: '/UserControl/GetLastID?class_=E',
493

    
494
                        // success: function (response) {
495
                            // oldID = response.responseText;
496
                        // }
497
                    // });*/
498
                    
499
					// var PayrollGroup = '';
500
					// var HiringYear = '';
501
					// var LastID = '';
502
					// Ext.Ajax.request({
503
						// async: false,
504
						// method: 'POST',
505
						// url: '/UserControl/GetStore',
506
						// params: {
507
							// tableName: 'PHRPYPGRUP',
508
							// param: 'PayrollGroup[equal]' + selectionValues.PayrollGroup
509
						// },
510
						// success: function (response) {
511
							// var results = Ext.decode(response.responseText);
512
							// data_ = results.data[0];
513
							// if (data_ != undefined) {
514
								// PayrollGroup = data_.Notes;
515
							// }
516
						// }
517
					// });
518
					// HiringYear = selectionValues.EffectiveDate.substring(2, 4);
519
					// Ext.Ajax.request({
520
						// async: false,
521
						// method: 'POST',
522
						// url: '/UserControl/GetStore',
523
						// params: {
524
							// tableName: 'PCMEPORMOBJ',
525
							// param: 'ObjectClass[equal]E'
526
						// },
527
						// success: function (response) {
528
							// var results = Ext.decode(response.responseText);
529
							// var dt = results.data;
530
							// data_ = dt[0];
531
							// LastID = data_.LastID.substring(4, 8);
532
						// }
533
					// });
534
					
535
                    // Ext.Ajax.request({
536
                        // async: false,
537
                        // method: 'POST',
538
                        // url: '/UserControl/GetStore',
539
                        // params: {
540
                            // tableName: 'CDSWIZEMPID',
541
                            // param: 'PayrollGroup[equal]' + PayrollGroup + ',HiringYear[equal]' + HiringYear + ',LastID[equal]' + LastID
542
                        // },
543
                        // success: function (response) {
544
                            // var results = Ext.decode(response.responseText);
545
                            // var dt = results.data;
546
                            // data_ = dt[0];
547
                            // oldID = data_.EmployeeID;
548
                        // }
549
                    // });
550

    
551
                    // Ext.ComponentQuery.query('[name=EmployeeID]')[0].setValue(oldID);
552

    
553
                // } else if (wzFunc == 'APPI') {
554
                    // Ext.Ajax.request({
555
                        // async: false,
556
                        // method: 'POST',
557
                        // url: '/UserControl/GetLastID?class_=A',
558

    
559
                        // success: function (response) {
560
                            // oldID = response.responseText;
561

    
562
                        // }
563
                    // });
564
                    // Ext.ComponentQuery.query('[name=ApplicantID]')[0].setValue(oldID)
565
                // } else {
566
                    // if (selectionValues.ApplicantID) {
567
                        // oldID = selectionValues.ApplicantID;
568
                    // } else if (selectionValues.EmployeeID) {
569
                        // oldID = selectionValues.EmployeeID
570
                    // }
571
                // }
572

    
573
                // selectionValues = Ext.ComponentQuery.query('[name=selectionForm]')[0].getValues();
574
                // var wiz = selectionValues.Action;
575
                // if (wiz == '') {
576
                    // wiz = s.findRecord('WizardDescription', Ext.ComponentQuery.query('[name=Action]')[0].rawValue).data.Wizard;
577
                // }
578
                // localStorage.setItem('selectionValues', JSON.stringify(selectionValues));
579
                // var nextUrl = MinovaUtil.GetMenuID() + '&wizard=' + wiz + '&id=' + oldID + '&app=' + app_;
580
                // var mb = new minovaBlowfish();
581
                // e = mb.minovaEncryptUrl(nextUrl);
582
                // //if (wizFunc == 'APPI' || wizFunc == 'APPT')
583
                // {
584
                    // var EmployeeID = oldID;
585
                // }
586
                // window.open('runwizards?' + e, "_self");
587
            // }
588
        // }
589

    
590
    // },
591
	  btnexecute: function () {
592
        // get wizard func
593
        var payrollStatus = true;
594
        var ActF = Ext.ComponentQuery.query('[name=Action]')[0]
595
        var Act = ActF.getValue();
596
        var s = Ext.ComponentQuery.query('[name=Action]')[0].getStore();
597
        //var wizFunc = s.findRecord('Wizard', Act).data.WizardFunction;
598
        var wizFunc = '';
599
        if (Act == '') {
600
            wizFunc = s.findRecord('WizardDescription', Ext.ComponentQuery.query('[name=Action]')[0].rawValue).data.WizardFunction;
601
        } else {
602
            wizFunc = s.findRecord('Wizard', Act).data.WizardFunction;
603
        }
604
        //if (wizFunc == 'EMPI' || wizFunc == 'APPT') {
605
        //if (wizFunc != 'EMPI' && wizFunc != 'APPT') {
606
        //if (wizFunc == 'EMPI' || wizFunc == 'APPI') {
607
        payrollStatus = this.cekPayrollStatus();
608
        //if (payrollStatus == false && wizFunc != 'EMPI' && wizFunc != 'APPT' && wizFunc != 'APPI') {
609
            //if (Ext.ComponentQuery.query('[name=PayrollGroup]')[0].getValue() == null) {
610
            //    MinovaMessage('', '000009', '', "E");
611
            //} else {
612
            //    MinovaMessage('', 'PYVAL1', '', "E");
613
            //}
614
			if (payrollStatus == false ){
615
            MinovaMessage('', 'PYVAL1', '', "E");
616
        }
617
        // }
618

    
619

    
620
        var wzFunc = undefined;
621
        selectionValues = Ext.ComponentQuery.query('[name=selectionForm]')[0].getValues();
622
        if (Ext.ComponentQuery.query('[name=selectionForm]')[0].getForm().isValid()) {
623
            if (payrollStatus == true) {
624

    
625
                Ext.Ajax.request({
626
                    async: false,
627
                    method: 'POST',
628
                    url: '/UserControl/GetStore',
629
                    params: {
630
                        tableName: 'PHRPAWIZMAIN',
631
                        param: 'Wizard[equal]' + selectionValues.Action
632

    
633
                    },
634
                    success: function (response) {
635
                        var results = Ext.decode(response.responseText);
636
                        data_ = results.data[0];
637
                        if (data_ != undefined) {
638
                            localStorage.setItem('wzFunc', JSON.stringify(results.data));
639
                            wzFunc = data_.WizardFunction;
640
                        }
641
                    }
642
                });
643

    
644
                oldID = null;
645
                app_ = null
646

    
647
                //localStorage.setItem('selectionValues', JSON.stringify(selectionValues));
648
                if (wzFunc == 'APPT') {
649
                    
650
					//// comment by Tri nwh 20220811 start
651
					// Ext.Ajax.request({
652
                        // async: false,
653
                        // method: 'POST',
654
                        // url: '/UserControl/GetLastID?class_=E',
655

    
656
                        // success: function (response) {
657
                            // oldID = response.responseText;
658
							// alert('chani');
659
                        // }
660
                    // });
661
					//// comment by Tri nwh 20220811 end
662
					
663
					//// add by Tri nwh 20220811 start
664
					var hiringdate =  selectionValues.EffectiveDate;
665
					MinovaUtil.ExecuteParamQuery({
666
						ID: "GENEMPID",
667
						HiringDate : hiringdate.toString()
668
					}, function (s) {
669
						var result = Ext.decode(s.responseText);
670
						var dt = Ext.decode(Ext.decode(result.data));
671
						oldID = dt[0].EmpID.toString();
672
					}, function (f) {});
673
					//// add by Tri nwh 20220811 end
674
					
675
                    //Ext.ComponentQuery.query('[name=ApplicantID]')[0].setValue(oldID);
676
                    //app_ = Ext.ComponentQuery.query('[name=ApplicantID]')[0].getValue();
677
                    app_ = selectionValues.ApplicantID;
678

    
679
                } else if (wzFunc == 'EMPI') {
680
                    
681
					// Ext.Ajax.request({		//// comment by Tri nwh 20220811
682
                        // async: false,
683
                        // method: 'POST',
684
                        // url: '/UserControl/GetLastID?class_=E',
685

    
686
                        // success: function (response) {
687
                            // oldID = response.responseText;
688
                        // }
689
                    // });
690
					
691
					//// add by Tri nwh 20220811 start
692
					var hiringdate =  selectionValues.EffectiveDate;
693
					MinovaUtil.ExecuteParamQuery({
694
						ID: "GENEMPID",
695
						HiringDate : hiringdate.toString()
696
					}, function (s) {
697
						var result = Ext.decode(s.responseText);
698
						var dt = Ext.decode(Ext.decode(result.data));
699
						oldID = dt[0].EmpID.toString();
700
					}, function (f) {});
701
					//// add by Tri nwh 20220811 end
702
					
703
                    Ext.ComponentQuery.query('[name=EmployeeID]')[0].setValue(oldID)
704
                } else if (wzFunc == 'APPI') {
705
                    Ext.Ajax.request({
706
                        async: false,
707
                        method: 'POST',
708
                        url: '/UserControl/GetLastID?class_=A',
709

    
710
                        success: function (response) {
711
                            oldID = response.responseText;
712

    
713
                        }
714
                    });
715
                    Ext.ComponentQuery.query('[name=ApplicantID]')[0].setValue(oldID)
716
                } else {
717
                    if (selectionValues.ApplicantID) {
718
                        oldID = selectionValues.ApplicantID;
719
                    } else if (selectionValues.EmployeeID) {
720
                        oldID = selectionValues.EmployeeID;
721
                    }
722
                }
723

    
724
                selectionValues = Ext.ComponentQuery.query('[name=selectionForm]')[0].getValues();
725
                var wiz = selectionValues.Action;
726
                if (wiz == '') {
727
                    wiz = s.findRecord('WizardDescription', Ext.ComponentQuery.query('[name=Action]')[0].rawValue).data.Wizard;
728
                }
729
                localStorage.setItem('selectionValues', JSON.stringify(selectionValues));
730
                var nextUrl = MinovaUtil.GetMenuID() + '&wizard=' + wiz + '&id=' + oldID + '&app=' + app_;
731
                var mb = new minovaBlowfish();
732
                e = mb.minovaEncryptUrl(nextUrl);
733
                //if (wizFunc == 'APPI' || wizFunc == 'APPT')
734
                {
735
                    var EmployeeID = oldID;
736
                }
737
                window.open('runwizards?' + e, "_self");
738
            }
739
        }
740

    
741
    },
742
	
743
	
744

    
745
    cekMsg: function () {
746
        formSelection = Ext.ComponentQuery.query('[name=selectionForm]')[0].getForm();
747
        formValues_ = formSelection.getValues();
748
        if (Ext.ComponentQuery.query('[name=Reason]')[0]) {
749
            Ext.ComponentQuery.query('[name=Reason]')[0].setHidden(true);
750
            formSelection.findField("PayrollGroup").setHidden(true);
751

    
752
        }
753
        var flag = getParam('S');
754
        if (flag == 'S') {
755
            MinovaMessage('', '000006', '', 'S');
756
        }
757
    },
758
    changeProgress: function (idx, idNext, skip) {
759
        //$("#stepStatus" + idx).removeClass("active");
760
        //$("#stepStatus" + idNext).addClass("active");
761
        if (skip) {
762
            //$("#checkStatus" + idx).addClass("fa fa-check");
763
        } else {
764
            $("#checkStatus" + idx).addClass("fa fa-check");
765
        }
766

    
767
    },
768
    cekPayrollStatus: function () {
769

    
770
        formSelection = Ext.ComponentQuery.query('[name=selectionForm]')[0].getForm();
771
        if (formSelection.isValid()) {
772
            // cek payroll status by input payroll group
773
            formValues_ = formSelection.getValues();
774
            var result = undefined;
775
            if (formValues_.PayrollGroup != "") {
776
                Ext.Ajax.request({
777
                    async: false,
778
                    method: 'POST',
779
                    url: '/UserControl/GetStore',
780
                    params: {
781
                        tableName: 'PHRPYPGCTRL',
782
                        param: 'PayrollGroup[equal]' + formValues_.PayrollGroup
783

    
784
                    },
785
                    success: function (response) {
786
                        var results = Ext.decode(response.responseText);
787
                        data_ = results.data[0];
788
                        if (data_ != undefined) {
789
                            result = data_;
790
                        }
791
                    }
792
                });
793
            }
794
            var cek = true;
795
            if (result) {
796
                if (result.PayrollControlStatus == "V") {
797
                    // massage corection
798
                    cek = false;
799
                } else if (result.PayrollControlStatus == "S") {
800
                    // massage corection
801
                    cek = false;
802
                }
803

    
804
            }
805
            if (cek) {
806
                //var storeFlow = Ext.ComponentQuery.query('[name=processflow]')[0];
807
                //storeFlow.mask('Loading...');
808
                //var result_ = undefined;
809
                //Ext.Ajax.request({
810
                //    async: false,
811
                //    method: 'POST',
812
                //    url: '/UserControl/GetStore',
813
                //    params: {
814
                //        tableName: 'PDSPA0005',
815
                //        param: 'Wizard[equal]' + formValues_.Action
816

    
817
                //    },
818
                //    success: function (response) {
819
                //        var results = Ext.decode(response.responseText);
820
                //        data_ = results.data;
821
                //        if (data_ != undefined) {
822
                //            //result_ = data_;
823
                //            //sorting results
824
                //            result_ = data_.sort(MinovaUtil.SortBy("Sequence"))
825
                //        }
826
                //    }
827
                //});
828

    
829
                //storeFlow.getStore().loadData(result_);
830
                //storeFlow.unmask();
831
            }
832
        }
833
        //else {
834
        //    //masih ada field mandtory yang kosong
835
        //}
836
        return cek;
837
    },
838
    processflowGrid: function (g) {
839
        setTimeout(function () {
840
            var g_ = Ext.ComponentQuery.query('[name=processflow]')[0];
841
            g_.getStore().removeAll();
842
        }, 200);
843

    
844
    },
845
    // fungsi ke form sebelumnya
846
    prevWizard: function () {
847
        var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
848
        var next_ = prog_.getNextMD() - 1;
849
        var last_ = prog_.getNextMD() - 2;
850
        if (last_ == 0) {
851
            last_ = 1;
852
        }
853
        var currPage = Ext.ComponentQuery.query('[itemId=MD' + next_ + ']')[0];
854
        var _last = Ext.ComponentQuery.query('[itemId=MD' + last_ + ']')[0];
855
        currPage.setHidden(true);
856
        _last.setHidden(false);
857

    
858
        // set ulang next and prev page
859
        prog_.setNextMD(next_);
860
        prog_.setPrevMD(last_);
861
        this.setButton(_last);
862

    
863
    },
864
    skipAll: function () {
865
        var me = this;
866
        // if (Formheader.isValid()) {
867
        Ext.Msg.show({
868
            title: "",
869
            msg: MinovaMessageData('WD002', ''),
870
            buttons: Ext.Msg.YESNO,
871
            icon: Ext.Msg.QUESTION,
872
            fn: function (choice) {
873
                console.log(choice);
874
                if (choice === 'yes') {
875
                    // me.saveMD();
876
                    var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
877
                    var page = 'wizards';
878
                    if (prog_.wizardFunction.substring(0, 1) == "A") {
879
                        page = 'rcwizards';
880
                    }
881
                    nextUrl = MinovaUtil.GetMenuID() + '&S=S';
882
                    var mb = new minovaBlowfish();
883
                    e = mb.minovaEncryptUrl(nextUrl);
884
                    window.open(page + '?' + e, "_self");
885

    
886
                }
887

    
888
            }
889
        });
890

    
891
        // }
892

    
893
    },
894
    skipMd: function () {
895
        var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
896
        var next_ = prog_.getNextMD(); // id form selanjutnya
897
        var me = this;
898
        if (prog_.totalPage < next_) { // md form sudah selesai
899
            // run save data to md
900
            //me.saveToLoacalStorage();
901
            //if (Formheader.isValid()) {
902
            Ext.Msg.show({
903
                title: "",
904
                msg: MinovaMessageData('WD001', ''),
905
                buttons: Ext.Msg.YESNO,
906
                icon: Ext.Msg.QUESTION,
907
                fn: function (choice) {
908
                    console.log(choice);
909
                    if (choice === 'yes') {
910
                        document.getElementById("progressbar").style.width = '100%';
911
                        me.changeProgress(prog_.totalPage, next_, true)
912
                        //me.saveMD();
913
                        var page = 'wizards';
914
                        if (prog_.wizardFunction.substring(0, 1) == "A") {
915
                            page = 'rcwizards';
916
                        }
917
                        nextUrl = MinovaUtil.GetMenuID() + '&S=S';
918
                        var mb = new minovaBlowfish();
919
                        e = mb.minovaEncryptUrl(nextUrl);
920
                        window.open(page + '?' + e, "_self");
921
                    }
922

    
923
                }
924
            });
925

    
926
            // }
927

    
928
        } else {
929
            var lastHide = next_ - 1;
930
            var self_ = Ext.ComponentQuery.query('[itemId=MD' + lastHide + ']')[0]; // formm yang sedang activ
931
            var nextPage = Ext.ComponentQuery.query('[itemId=MD' + next_ + ']')[0];
932
            if (nextPage.WizardLayout == 'F') {
933

    
934
                //formName = 'formWizard' + nextPage.tableName;
935
                formName = 'MinovaGridFormEdit' + nextPage.tableName;
936

    
937
                if (Ext.ComponentQuery.query('[name=' + formName + ']')[0].mandatory == '1') {
938
                    Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(true);
939
                    Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(true);
940
                } else {
941
                    Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(false);
942
                    Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(false);
943
                }
944

    
945
            } else {
946
                if (Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + nextPage.tableName + ']')[0].mandatory) {
947
                    Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(true);
948
                    Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(true);
949

    
950
                } else {
951
                    Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(false);
952
                    Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(false);
953
                }
954
            }
955

    
956
            nextPage.setHidden(false);
957
            self_.setHidden(true);
958
            // set ulang next and prev page
959
            this.changeProgress(next_, next_ + 1, true);
960
            prog_.setNextMD(next_ + 1);
961
            prog_.setPrevMD(next_);
962
            total_ = ((next_ - 1) / prog_.totalPage) * 100;
963
            document.getElementById("progressbar").style.width = total_ + '%';
964
        }
965

    
966
    },
967
    selectionFormDisplay: function (me) {
968
        var data_ = JSON.parse(localStorage.getItem('selectionValues'));
969
        if (data_) {
970
            if (data_ != null) {
971
                me.getForm().setValues(data_);
972
            }
973
            if (data_.ApplicantID != "") {
974
                me.getForm().findField('EmployeeID').setValue(data_.ApplicantID);
975
            }
976
            me.getForm().findField('EmployeeID').setValue(getParam('id'))
977
        }
978

    
979
        if (getParam('wizard').substr(0, 1) == 'A') {
980
            
981
			 if (getParam('app') != 'null') {
982
				me.getForm().findField('ApplicantID').setHidden(true)
983
				me.getForm().findField('EmployeeID').setFieldLabel('Employee ID');
984
			} else{
985
				setTimeout(function(){ me.getForm().findField('EmployeeID').setFieldLabel('Applicant ID'); }, 10);	
986
				me.getForm().findField('ApplicantID').setHidden(false);	
987
				me.getForm().findField('EmployeeID').setHidden(true)				
988
			}
989
        }
990
       else {
991
            me.getForm().findField('EmployeeID').setFieldLabel('Employee ID');
992
			me.getForm().findField('ApplicantID').setHidden(true);	
993
			me.getForm().findField('EmployeeID').setHidden(false)
994
        }
995

    
996
    },
997
    // funsi next dan save data
998
    saveWizardold: function () {
999
        var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
1000
        var oldTableName = prog_.getTableName(); // nama table form yang sedang aktif
1001
        var oldTableData = prog_.getTableData(); // nama table untuk data set value form yang sedang aktif
1002
        var next_ = prog_.getNextMD(); // id form selanjutnya
1003
        var me = this;
1004
        if (prog_.totalPage < next_) { // md form sudah selesai
1005
            // run save data to md
1006
            //me.saveToLoacalStorage();
1007
            //if (Formheader.isValid()) {
1008
            Ext.Msg.show({
1009
                title: "",
1010
                msg: MinovaMessageData('WD001', ''),
1011
                buttons: Ext.Msg.YESNO,
1012
                icon: Ext.Msg.QUESTION,
1013
                fn: function (choice) {
1014
                    console.log(choice);
1015
                    if (choice === 'yes') {
1016
                        document.getElementById("progressbar").style.width = '100%';
1017
                        me.changeProgress(prog_.totalPage, next_, false)
1018
                        me.saveMD();
1019

    
1020
                    }
1021

    
1022
                }
1023
            });
1024

    
1025
            //}
1026

    
1027
        } else {
1028
            var lastHide = next_ - 1;
1029
            var cekValid = true;
1030
            var self_ = Ext.ComponentQuery.query('[itemId=MD' + lastHide + ']')[0]; // formm yang sedang activ
1031
            var tableName = self_.tableName;
1032
            var formName = undefined;
1033
            var nextPage = Ext.ComponentQuery.query('[itemId=MD' + next_ + ']')[0];
1034

    
1035
            if (self_.WizardLayout == 'F') {
1036
                formName = 'MinovaGridFormEdit' + tableName;
1037
                frmSelf = Ext.ComponentQuery.query('[name=' + formName + ']')[0];
1038
                frmSelf.getForm().findField("EmployeeID").setValue(getParam('id'));
1039
                cekValid = frmSelf.getForm().isValid();
1040

    
1041
            } else {
1042

    
1043
                gridPnl = Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + tableName + ']')[0].mandatory;
1044
                if (gridPnl == '1') {
1045
                    var storeGrid = Ext.StoreMgr.lookup(tableName + "WizardStore");
1046
                    var storeCount_ = storeGrid.getCount();
1047
                    if (storeCount_ > 0) {
1048
                        cekValid = true;
1049
                    } else {
1050
                        cekValid = false;
1051
                    }
1052
                }
1053

    
1054
            }
1055
            // disable button
1056
            if (cekValid) {
1057
                //me.saveToLoacalStorage();
1058
                if (nextPage.mandatory == "1") {
1059
                    if (nextPage.nextMD == 1) {
1060
                        Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(true);
1061
                        //Ext.ComponentQuery.query('[name=saveWizard]')[0].setDisabled(true);
1062
                        //Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setText("Finish")
1063
                        Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(true);
1064

    
1065
                    } else {
1066
                        Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(true);
1067
                        Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(true);
1068

    
1069
                    }
1070

    
1071
                } else {
1072
                    Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(false);
1073
                    Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(false);
1074
                }
1075
                nextPage.setHidden(false);
1076
                self_.skip_ = false;
1077

    
1078
                if (Ext.ComponentQuery.query('[name=' + "MinovaGridFormEdit" + self_.tableName + ']')[0]) {
1079
                    Ext.ComponentQuery.query('[name=' + "MinovaGridFormEdit" + self_.tableName + ']')[0].skip_ = false;
1080
                }
1081
                if (Ext.ComponentQuery.query('[name=' + "MinovaGridFormEdit" + self_.tableName + ']')[0]) {
1082
                    Ext.ComponentQuery.query('[name=' + "MinovaGridFormEdit" + self_.tableName + ']')[0].skip_ = false;
1083
                }
1084
                self_.setHidden(true);
1085
                // set ulang next and prev page
1086
                prog_.setNextMD(next_ + 1);
1087
                prog_.setPrevMD(next_);
1088

    
1089
                //change progress bar
1090
                total_ = ((next_ - 1) / prog_.totalPage) * 100;
1091
                document.getElementById("progressbar").style.width = total_ + '%';
1092
                var idx = next_ - 1;
1093
                me.changeProgress(idx, next_, false);
1094
                Ext.ComponentQuery.query('[name=prevWizard]')[0].setDisabled(false);
1095
                var wzFunc = undefined
1096
                //if (Ext.ComponentQuery.query('[name=selectionForm]')[0].getForm().isValid()) {
1097
                Ext.Ajax.request({
1098
                    async: false,
1099
                    method: 'POST',
1100
                    url: '/UserControl/GetStore',
1101
                    params: {
1102
                        tableName: 'PHRPAWIZMAIN',
1103
                        param: 'Wizard[equal]' + getParam('wizard')
1104

    
1105
                    },
1106
                    success: function (response) {
1107
                        var results = Ext.decode(response.responseText);
1108
                        data_ = results.data[0];
1109
                        if (data_ != undefined) {
1110
                            wzFunc = data_.WizardFunction;
1111
                        }
1112
                    }
1113
                });
1114
                if (wzFunc == 'APPT') {
1115
                    if (nextPage.WizardLayout == "F") {
1116
                        var datatable = 'PHRRC' + nextPage.tableName.substring(5, 9);
1117
                        var nowDate = MinovaUtil.GetNowDate();
1118
                        var data_ = JSON.parse(localStorage.getItem(datatable));
1119
                        Ext.Ajax.request({
1120
                            async: false,
1121
                            method: 'POST',
1122
                            url: '/UserControl/GetStore',
1123
                            params: {
1124
                                tableName: datatable,
1125
                                param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + getParam("app")
1126

    
1127
                            },
1128
                            success: function (response) {
1129
                                var results = Ext.decode(response.responseText);
1130
                                dataForm = results.data[0];
1131
                                var _form = Ext.ComponentQuery.query('[name=MinovaGridFormEdit' + nextPage.tableName + ']')[0]
1132
                                var form_ = _form.getForm();
1133
                                form_.setValues(dataForm);
1134
                                me.setValueFromParameter(_form);
1135
                                var temData = JSON.parse(localStorage.getItem('selectionValues'));
1136
                                
1137
                                if (datatable == "phrpa0002" || datatable == "PHRPA0002") {
1138
                                    form_.findField('StartDate').setValue(temData.EffectiveDate);
1139
                                    form_.findField('CompanyID').setValue(temData.CompanyID);
1140
                                    form_.findField('PayrollGroup').setValue(temData.PayrollGroup);
1141
                                    form_.findField('MovementReason').setValue(temData.Reason);
1142
                                }
1143
                                else {
1144
                                    form_.findField('StartDate').setValue(temData.EffectiveDate);
1145
                                }
1146
                            }
1147
                        });
1148
                    } else {
1149
                        tbl = 'PHRRC' + nextPage.tableName.substring(5, 9)
1150
                        var data_ = JSON.parse(localStorage.getItem(tbl));
1151
                        var dataForm = undefined;
1152
                        var nowDate = MinovaUtil.GetNowDate()
1153

    
1154
                        Ext.Ajax.request({
1155
                            async: false,
1156
                            method: 'POST',
1157
                            url: '/UserControl/GetStore',
1158
                            params: {
1159
                                tableName: tbl,
1160
                                param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + getParam("app")
1161

    
1162
                            },
1163
                            success: function (response) {
1164
                                var results = Ext.decode(response.responseText);
1165
                                dataForm = results.data;
1166
                                var gridStore = Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + nextPage.tableName + ']')[0].getStore();
1167
                                gridStore.loadData(Ext.decode(dataForm));
1168

    
1169
                            }
1170
                        });
1171
                    }
1172

    
1173
                } else if (wzFunc != 'APPI' && wzFunc != 'EMPI' && wzFunc != 'APPT') {
1174
                    var nowDate = MinovaUtil.GetNowDate();
1175
                    if (nextPage.WizardLayout == "F") {
1176
                        Ext.Ajax.request({
1177
                            async: false,
1178
                            method: 'POST',
1179
                            url: '/UserControl/GetStore',
1180
                            params: {
1181
                                tableName: nextPage.tableName,
1182
                                param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + getParam("id")
1183

    
1184
                            },
1185
                            success: function (response) {
1186
                                var results = Ext.decode(response.responseText);
1187
                                dataForm = results.data[0];
1188
                                var _form = Ext.ComponentQuery.query('[name=MinovaGridFormEdit' + nextPage.tableName + ']')[0];
1189
                                var form_ = _form.getForm();
1190
                                form_.setValues(dataForm);
1191
                                me.setValueFromParameter(_form);
1192
                                var temData = JSON.parse(localStorage.getItem('selectionValues'));
1193
                                form_.findField('StartDate').setValue(temData.StartDate)
1194
                            }
1195
                        });
1196
                    } else {
1197
                        Ext.Ajax.request({
1198
                            async: false,
1199
                            method: 'POST',
1200
                            url: '/UserControl/GetStore',
1201
                            params: {
1202
                                tableName: nextPage.tableName,
1203
                                param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + getParam("id")
1204

    
1205
                            },
1206
                            success: function (response) {
1207
                                var results = Ext.decode(response.responseText);
1208
                                dataForm = results.data;
1209
                                var gridStore = Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + nextPage.tableName + ']')[0].getStore();
1210
                                gridStore.loadData(Ext.decode(dataForm));
1211

    
1212
                            }
1213
                        });
1214
                    }
1215
                } else {
1216
                    //
1217
                    var frm_ = "MinovaGridFormEdit";
1218
                    if (nextPage.WizardLayout == "G") {
1219
                        frm_ = "formGridWizard";
1220
                    }
1221
                    var form_ = Ext.ComponentQuery.query('[name=' + frm_ + nextPage.tableName + ']')[0];
1222
                    var emp = form_.getForm().findField("EmployeeID");
1223
                    var temData = JSON.parse(localStorage.getItem('selectionValues'));
1224
                    form_.getForm().findField('StartDate').setValue(temData.StartDate)
1225
                    if (emp) {
1226
                        emp.setValue(getParam("id"));
1227

    
1228
                    } else {
1229
                        Ext.ComponentQuery.query('[name=' + frm_ + nextPage.tableName + ']')[0].getForm().findField("ApplicantID").setValue(getParam("id"))
1230
                    }
1231
                }
1232

    
1233
                //} else {
1234
                //    // message jika form tidak valid
1235
                //}
1236

    
1237
            }
1238

    
1239
        }
1240
    },
1241
    // fungsi save data to md
1242
    saveMD: function () {
1243

    
1244
        var pnlProgress = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
1245
        var mainWizard = Ext.ComponentQuery.query('[name=mainWizard]')[0];
1246
        mainWizard.mask('Loading...');
1247
        var allTable = pnlProgress.allTable;
1248
        var allData = pnlProgress.allData;
1249
        var wizardFunction = pnlProgress.wizardFunction;
1250
        // md 15 boleh diinput jika statusMD1=true dan statusMD2=true
1251
        var statusMD1 = false;
1252
        var statusMD2 = false;
1253
        var sukses = true;
1254
        var i = 0;
1255
        var data_ = undefined;
1256
        var skip_ = undefined; // only grid or form with skip property is false will be save to md
1257
        Ext.each(allData, function (rec) {
1258
            //console.log(tbl)
1259
            //var data_ = JSON.parse(localStorage.getItem(tbl));
1260
            var tbl_ = rec.TableName
1261
            if (wizardFunction == "APPT") {
1262
                if (tbl_.substring(0, 5) == 'PHRRC') {
1263
                    tbl_ = 'PHRPA' + tbl_.substring(5, 9);
1264
                }
1265
            }
1266

    
1267
            i++;
1268
            if (rec.WizardLayout == 'F') { // jika layout form
1269
                var formname = "MinovaGridFormEdit" + tbl_;
1270
                var frm = Ext.ComponentQuery.query('[name=' + formname + ']')[0];
1271
                var validForm_ = Ext.ComponentQuery.query('[name=' + formname + ']')[0].getForm().isValid();
1272
                var formValues_ = frm.getValues();
1273
                // if (formValues_.EmployeeID == "") {
1274
                if (formValues_.EmployeeID == "") {
1275
                    formValues_["EmployeeID"] = getParam('id');
1276
                }
1277
                //}
1278

    
1279
                if (wizardFunction == "APPT") {
1280
                    formValues_["EmployeeID"] = getParam('id');
1281
                }
1282
                //var end_ = formValues_.EndDate;
1283
                //if (end_ == "") {
1284
                //    skip_ = true;
1285
                //}
1286
                if (validForm_) {
1287
                    skip_ = false;
1288
                } else {
1289
                    skip_ = true;
1290
                }
1291
                data_ = Ext.encode(formValues_);
1292

    
1293
            } else { // jika layout grid
1294
                var gridName = "MinovaGridFormGrid" + tbl_;
1295
                var grid_ = Ext.ComponentQuery.query('[name=' + gridName + ']')[0];
1296
                var gridStore = grid_.getStore();
1297

    
1298
                if (gridStore.count() > 0) {
1299
                    data_ = Ext.encode(Ext.pluck(gridStore.data.items, 'data'));
1300
                    skip_ = false;
1301
                } else {
1302
                    skip_ = true;
1303
                }
1304

    
1305
            }
1306
            // run save
1307

    
1308
            if (skip_ == false && sukses == true) {
1309
                Ext.Ajax.request({
1310
                    async: false,
1311
                    method: 'POST',
1312
                    url: '/Devt/SaveTable',
1313
                    params: {
1314
                        tableName: tbl_,
1315
                        data: data_,
1316
                        action: 0
1317
                    },
1318
                    waitMsg: 'Saving Data...',
1319
                    success: function (response) {
1320
                        var result = Ext.decode(response.responseText);
1321
                        if (result.success) {
1322
                            // MinovaMessage('Not Null', '000006', '', 'S');
1323
                            sukses = true;
1324
                        } else {
1325
                            MinovaMessage('', '000005', result.message.text, 'E');
1326
                            sukses = false;
1327
                        }
1328
                    },
1329
                    failure: function (response) {
1330
                        var result = Ext.decode(response.responseText);
1331
                        MinovaMessage('', '000005', result.message.text, 'E');
1332
                        sukses = false;
1333
                    }
1334
                });
1335
            }
1336

    
1337
        });
1338

    
1339
        //save md 0015
1340
        if (wizardFunction == 'APPT' || wizardFunction == 'EMPI') {
1341
            ApplicantID = '';
1342
            if (wizardFunction == 'APPT') {
1343
                ApplicantID = getParam('app')
1344
            }
1345
            var date_ = Ext.ComponentQuery.query('[name=MinovaGridFormEditPHRPA0002]')[0].getValues().StartDate;
1346
            data = {
1347
                EmployeeID: getParam('id'),
1348
                PaymentUpTo: '',
1349
                RetroDate: date_,
1350
                HiringDate: date_,
1351
                ApplicantID: ApplicantID,
1352
                CorrectStatus: ''
1353
            };
1354
            dataDelete = {
1355
                EmployeeID: getParam('id'),
1356
                PaymentUpTo: '',
1357
                RetroDate: '',
1358
                //HiringDate: date_,
1359
                ApplicantID: ApplicantID,
1360
                CorrectStatus: ''
1361
            };
1362
            data_ = Ext.encode(data);
1363
            dataDelete_ = Ext.encode(dataDelete);
1364

    
1365
            Ext.Ajax.request({
1366
                async: false,
1367
                method: 'POST',
1368
                url: '/Devt/SaveTable',
1369
                params: {
1370
                    tableName: 'PHRPA0015',
1371
                    data: data_,
1372
                    action: 0
1373
                },
1374
                waitMsg: 'Saving Data...',
1375
                success: function (response) {
1376
                    var result = Ext.decode(response.responseText);
1377
                    if (result.success) {
1378
                        MinovaMessage('Not Null', '000006', '', 'S');
1379
                        sukses = true;
1380
                    } else {
1381
                        MinovaMessage('Not Null', '000005', result.message.text, 'E');
1382
                        sukses = false;
1383
                    }
1384
                },
1385
                failure: function (response) {
1386
                    var result = Ext.decode(response.responseText);
1387
                    sukses = false;
1388
                }
1389
            });
1390
        }
1391
        mainWizard.unmask();
1392
        if (sukses == true && allData.length == i) {
1393
            var page = 'wizards';
1394
            if (wizardFunction.substring(0, 1) == "A") {
1395
                page = 'rcwizards';
1396
            }
1397
            nextUrl = MinovaUtil.GetMenuID() + '&S=S';
1398
            var mb = new minovaBlowfish();
1399
            e = mb.minovaEncryptUrl(nextUrl);
1400
            window.open(page + '?' + e, "_self");
1401
            //window.open(nextUrl, "_self");
1402
        }
1403

    
1404
    },
1405
    saveToLoacalStorage: function () {
1406
        var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
1407
        var myID = prog_.getNextMD() - 1;
1408
        var self_ = Ext.ComponentQuery.query('[itemId=MD' + myID + ']')[0];
1409
        var tableName = self_.tableName;
1410
        var WizardLayout = self_.WizardLayout;
1411
        var valuesData = undefined;
1412
        var formName = undefined;
1413
        var mandatory = self_.mandatory
1414

    
1415
        if (WizardLayout == 'F') { // jika tipe layout form
1416
            formName = 'MinovaGridFormEdit' + tableName;
1417
            frm = Ext.ComponentQuery.query('form[name=' + formName + ']')[0].getForm();
1418
            if (frm.isValid()) { // cek semua field mandatory sudah diisi
1419
                valuesData = frm.getValues();
1420
            }
1421

    
1422
        } else { // jika tipe layout grid
1423
            formName = 'MinovaGridFormEdit' + tableName;
1424
            var storeGrid = Ext.StoreMgr.lookup(tableName + "WizardStore");
1425
            valuesData = Ext.encode(Ext.pluck(storeGrid.data.items, 'data'));
1426
        }
1427

    
1428
        //save to local storage
1429
        //localStorage.setItem(tableName, JSON.stringify(valuesData));
1430

    
1431
    },
1432
    setValueFromParameter: function (_form) {
1433
        // set value from wizard parameter
1434
        var wizardID = _form.Wizard;
1435
        var _tablename = _form.tableName;
1436
        var form_ = _form.getForm();
1437
        hasil = undefined;
1438
        Ext.Ajax.request({
1439
            async: false,
1440
            method: 'POST',
1441
            url: '/UserControl/GetStore',
1442
            params: {
1443
                tableName: 'PDSBS0010',
1444
                param: 'Wizard[=]' + wizardID + ',TableName[=]' + _tablename
1445
            },
1446
            success: function (response) {
1447
                var results = Ext.decode(response.responseText);
1448
                hasil = results.data;
1449
            }
1450
        });
1451

    
1452
        if (hasil.length > 0) {
1453
            var value_ = undefined;
1454
            Ext.each(hasil, function (rec) {
1455

    
1456
                if (rec.DefaultValue.substring(0, 2) == 'fn' && rec.FunctionCode != '') {
1457
                    value_ = eval(rec.FunctionCode);
1458
                } else {
1459
                    value_ = rec.DefaultValue;
1460
                }
1461
                if (form_.findField(rec.FieldName)) {
1462
                    form_.findField(rec.FieldName).setValue(value_);
1463
                }
1464
            });
1465
        }
1466
        // set value from wizard parameter
1467
    },
1468
    saveWizard: function () {
1469
		var sukses= false;
1470
        var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
1471
        var _self = prog_.getNextMD() - 1;
1472
        if (_self == 0) {
1473
            _self = 1;
1474
            prog_.setNextMD(2);
1475
        }
1476
        var self_ = Ext.ComponentQuery.query('[itemId=MD' + _self + ']')[0];
1477
        var type_ = self_.WizardLayout;
1478

    
1479
        if (type_ == 'F') { // form layout
1480
            if (self_.getForm().isValid()) {
1481
                this.saveForm(self_);
1482
            } else { // form not valid
1483

    
1484
            }
1485
        } else { // grid layout
1486
            var cekData = false;
1487
            storeCount = 0;
1488
            dataStore = undefined;
1489
            if (Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + self_.tableName + ']')[0]) {
1490
                dataStore = Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + self_.tableName + ']')[0].getStore();
1491
                storeCount = dataStore.count();
1492
            } else {
1493

    
1494
                dataStore = Ext.StoreMgr.lookup("store" + self_.tableName);
1495
                storeCount = dataStore.count();
1496
            }
1497
            if (self_.mandatory == "1") {
1498

    
1499
                if (storeCount > 0) {
1500
                    cekData = true;
1501
                } else {
1502
                    cekData = false;
1503
                    // mesaage
1504
                }
1505
            } else {
1506
                cekData = true;
1507
            }
1508
            //save grid data
1509
            if (storeCount > 0) {
1510
				sukses= true;
1511
				var dtTableSet = null;
1512
				Ext.Ajax.request({
1513
					async : false,
1514
					method : 'POST',
1515
					url : '/UserControl/GetStore',
1516
					params : {
1517
						tableName : 'SDATATABLEFIELD',
1518
						param : 'TableName[equal]'+self_.tableName+',FormatRef[=]amountencrypt'
1519
						//param : 'TableName[equal]' + self_.tableName
1520
					},
1521
					success : function (response) {
1522
						var results = Ext.decode(response.responseText);
1523
						dtTableSet = results.data;
1524
						
1525
					}
1526
				})
1527
                for (var i = 0; i < storeCount; i++) {
1528
					dataSub=dataStore.data.items[i].data;
1529
                    if (dataStore.data.items[i].data.Flag == '0') {
1530
						if(dtTableSet.length > 0){
1531
							m=0;
1532
							for (var m = 0; m < dtTableSet.length; m++) {
1533
								var valEnc='';
1534
								var f=dtTableSet[m].FieldName;
1535
								eval('valEnc=dataSub.'+f)
1536
								if(valEnc !=''){
1537
									Ext.Ajax.request({
1538
										async : false,
1539
										method : 'POST',
1540
										url : '/Devt/DecryptData',
1541
										params : {
1542
											dt : valEnc
1543

    
1544
										},
1545
										success : function (response) {
1546
											var results = Ext.decode(response.responseText);
1547
											value = results.data;
1548
											eval('dataSub.'+f+'='+value);
1549
											
1550
										}
1551
			
1552
									});
1553
								}
1554
							}
1555
						}
1556
                        Ext.Ajax.request({
1557
                            async: false,
1558
                            method: 'POST',
1559
                            url: '/Devt/SaveTable',
1560
                            params: {
1561
                                tableName: self_.tableName,
1562
                                data: Ext.encode(dataSub),
1563
                                action: 0
1564
                            },
1565
                            waitMsg: 'Saving Data...',
1566
                            success: function (response) {
1567
                                var result = Ext.decode(response.responseText);
1568
                                if (result.success) {
1569
                                    // MinovaMessage('Not Null', '000006', '', 'S');
1570
                                    sukses = true;
1571
                                } else {
1572
                                    MinovaMessage('', '000005', result.message.text, 'E');
1573
                                    sukses = false;
1574
                                }
1575
                            },
1576
                            failure: function (response) {
1577
                                var result = Ext.decode(response.responseText);
1578
                                MinovaMessage('', '000005', result.message.text, 'E');
1579
                                sukses = false;
1580
                            }
1581
                        });
1582
                    }
1583

    
1584
                }
1585
				//send mail
1586
				if(sukses){
1587
					var _param = {
1588
						serviceName : 'ERecruitmentAuthentication.asmx',
1589
						methodName : 'SendMailChangeMD',
1590
						parameter : 'TableName=' + self_.tableName + '&EmployeeID=' + dataStore.data.items[0].data.EmployeeID
1591

    
1592
					};
1593

    
1594
					//var results = null;
1595
					Ext.Ajax.request({
1596
						method : 'post',
1597
						type : 'ajax',
1598
						params : _param,
1599
						url : '/InvokeService/Invoke/',
1600
						loadMask : {
1601
							msg : 'please wait...'
1602
						},
1603
						success : function (response) {}
1604
					});
1605
				}
1606

    
1607
            }
1608
            if (cekData) {
1609
				prog_.sukses=true;
1610
                this.goNextMD(prog_, self_);
1611
                //change progress bar
1612
                total_ = ((prog_.getNextMD() - 1) / prog_.totalPage) * 100;
1613
                document.getElementById("progressbar").style.width = total_ + '%';
1614
                var idx = prog_.getNextMD() - 1;
1615
                this.changeProgress(idx, prog_.getNextMD(), false);
1616

    
1617
                prog_.setNextMD(prog_.getNextMD() + 1);
1618
                prog_.setPrevMD(prog_.getNextMD() - 1);
1619
            }
1620
			if(sukses== true || total_== 100 ){
1621
				if(_self == self_.nextMD){
1622
					    Ext.Msg.show({
1623
						title: "",
1624
						msg: MinovaMessageData('WD001', ''),
1625
						buttons: Ext.Msg.YESNO,
1626
						icon: Ext.Msg.QUESTION,
1627
						fn: function (choice) {
1628
							console.log(choice);
1629
							if (choice === 'yes') {
1630
								document.getElementById("progressbar").style.width = '100%';
1631
								if (sukses) {
1632
									var page = 'wizards';
1633
									if (prog_.wizardFunction.substring(0, 1) == "A") {
1634
										page = 'rcwizards';
1635
									}
1636
									nextUrl = MinovaUtil.GetMenuID() + '&S=S';
1637
									var mb = new minovaBlowfish();
1638
									e = mb.minovaEncryptUrl(nextUrl);
1639
									window.open(page + '?' + e, "_self");
1640

    
1641
								}
1642
							}
1643

    
1644
						}
1645
					});
1646
                                
1647
				}
1648
			}
1649

    
1650
        }
1651

    
1652
    },
1653
    saveForm: function (self_) {
1654
        var me = this;
1655
        var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
1656
        var next_ = prog_.getNextMD(); // id form selanjutnya
1657
        var _self = prog_.getNextMD() - 1;
1658
        if (self_ == undefined) {
1659
            self_ = Ext.ComponentQuery.query('[itemId=MD' + _self + ']')[0]; // formm yang sedang activ
1660
        }
1661
        var data1 = undefined;
1662
        var data2 = undefined;
1663
        //cek apakah md PHRPA0001
1664
        var cekKtp = true;
1665
        var _tbl = self_.tableName.toLowerCase();
1666

    
1667
        //cek ktp
1668
        if (_tbl == 'phrpa0001' || _tbl == 'phrrc0001') {
1669
            Ext.Ajax.request({
1670
                async: false,
1671
                method: 'POST',
1672
                url: '/UserControl/GetStore',
1673
                params: {
1674
                    tableName: 'PDSPAEMPIDCARD',
1675
                    param: 'WizardFunction[equal]' + self_.WizardFunction + ',BirthDate[=]' + Ext.ComponentQuery.query('[name=BirthDate]')[0].getValue() + ',IDCard[=]' + Ext.ComponentQuery.query('[name=IDCard]')[0].getValue()
1676

    
1677
                },
1678
                success: function (response) {
1679
                    var results = Ext.decode(response.responseText);
1680
                    data_ = results.data;
1681
                    if (data_ != undefined && data_.length > 0) {
1682
                        var MsgParam = "";
1683
                        Ext.each(data_, function (rec) {
1684
                            MsgParam = MsgParam + ' Type  :  ' + rec.Type + ' ,  Company  :  ' + rec.Company + ' ,  Status  :  ' + rec.Status + ' ,  Reason  :  ' + rec.Reason
1685
                        });
1686
                        /* MinovaMessage(' Message ', ' WIZRCIDCARD ', MsgParam, 'C', function (respone) {
1687
                            if (respone == "yes") {
1688
                                cekKtp = false;
1689
                                if (cekKtp) {
1690
                                    if (self_.WizardFunction == "APPT" || self_.WizardFunction == "EMPI") {
1691
                                        if (_tbl == 'phrpa0001') {
1692
                                            // past
1693
                                            if (self_.getForm().isValid()) {
1694
                                                //change progress bar
1695
                                                total_ = ((next_ - 1) / prog_.totalPage) * 100;
1696
                                                document.getElementById("progressbar").style.width = total_ + '%';
1697
                                                var idx = next_ - 1;
1698
                                                me.changeProgress(idx, next_, false);
1699
                                                me.goNextMD(prog_, self_);
1700
                                                me.setFormValuesAfterNext(self_.wizardFunction, prog_);
1701
                                                prog_.setNextMD(prog_.getNextMD() + 1);
1702
                                                prog_.setPrevMD(prog_.getNextMD() - 1);
1703
                                            } else { // jika form error
1704

    
1705
                                            }
1706
                                        } else {
1707
                                            // save data to md
1708
                                            if (self_.getForm().isValid()) {
1709
                                                if (_tbl == 'phrpa0002') {
1710

    
1711
                                                    Ext.Ajax.request({
1712
                                                        async: false,
1713
                                                        method: 'POST',
1714
                                                        url: '/UserControl/GetStore',
1715
                                                        params: {
1716
                                                            tableName: 'PDSPAWIZDEL',
1717
                                                            param: getParam("id")
1718

    
1719
                                                        },
1720
                                                        waitMsg: 'Saving Data...',
1721
                                                        success: function (response) { },
1722
                                                        failure: function (response) { }
1723
                                                    });
1724

    
1725
                                                    formName = 'MinovaGridFormEditPHRPA0001';
1726
                                                    data1 = Ext.ComponentQuery.query('[name=' + formName + ']')[0].getForm().getValues();
1727
                                                    var CreateDate = 'CreateDate';
1728
                                                    var CreateDateValue = "";
1729
                                                    var ChangeDate = 'ChangeDate';
1730
                                                    var ChangeDateValue = "";
1731

    
1732
                                                    data1[CreateDate] = CreateDateValue;
1733
                                                    data1[ChangeDate] = ChangeDateValue;
1734
                                                    data2 = self_.getForm().getValues();
1735
                                                    data2[CreateDate] = CreateDateValue;
1736
                                                    data2[ChangeDate] = ChangeDateValue;
1737
                                                } else {
1738
                                                    data1 = self_.getForm().getValues();
1739
                                                    var CreateDate = 'CreateDate';
1740
                                                    var CreateDateValue = "";
1741
                                                    var ChangeDate = 'ChangeDate';
1742
                                                    var ChangeDateValue = "";
1743

    
1744
                                                    data1[CreateDate] = CreateDateValue;
1745
                                                    data1[ChangeDate] = ChangeDateValue;
1746
                                                }
1747

    
1748
                                                var sukses = me.saveDataToMD(self_.tableName, data1, data2);
1749
                                                if (sukses) {
1750
                                                    //change progress bar
1751
                                                    total_ = ((next_ - 1) / prog_.totalPage) * 100;
1752
                                                    document.getElementById("progressbar").style.width = total_ + '%';
1753
                                                    var idx = next_ - 1;
1754
                                                    me.changeProgress(idx, next_, false);
1755
                                                    me.setFormValuesAfterNext(self_.wizardFunction, prog_);
1756
                                                    prog_.setNextMD(prog_.getNextMD() + 1);
1757
                                                    prog_.setPrevMD(prog_.getNextMD() - 1);
1758
                                                    me.goNextMD(prog_, self_);
1759

    
1760
                                                }
1761

    
1762
                                            } else { // jika form error
1763

    
1764
                                            }
1765
                                        }
1766
                                    } else {
1767
                                        data1 = self_.getForm().getValues();
1768
                                        //cek apakah form terakhir
1769
                                        if (prog_.totalPage < next_) { // md form sudah selesai
1770
                                            Ext.Msg.show({
1771
                                                title: "",
1772
                                                msg: MinovaMessageData('WD001', ''),
1773
                                                //buttons: Ext.Msg.YESNO,
1774
                                                icon: Ext.Msg.QUESTION,
1775
                                                fn: function (choice) {
1776
                                                    console.log(choice);
1777
                                                    if (choice === 'yes') {
1778
                                                        document.getElementById("progressbar").style.width = '100%';
1779

    
1780
                                                        //me.saveDataToMD();
1781

    
1782
                                                        var sukses = me.saveDataToMD(self_.tableName, data1, data2);
1783
                                                        if (sukses) {
1784
                                                            var page = 'wizards';
1785
                                                            if (prog_.wizardFunction.substring(0, 1) == "A") {
1786
                                                                page = 'rcwizards';
1787
                                                            }
1788
                                                            nextUrl = MinovaUtil.GetMenuID() + '&S=S';
1789
                                                            var mb = new minovaBlowfish();
1790
                                                            e = mb.minovaEncryptUrl(nextUrl);
1791
                                                            window.open(page + '?' + e, "_self");
1792

    
1793
                                                        }
1794
                                                    }
1795

    
1796
                                                }
1797
                                            });
1798
                                        } else {
1799
                                            var sukses = me.saveDataToMD(self_.tableName, data1, data2);
1800
                                            if (sukses) {
1801
                                                //change progress bar
1802
                                                total_ = ((next_ - 1) / prog_.totalPage) * 100;
1803
                                                document.getElementById("progressbar").style.width = total_ + '%';
1804
                                                var idx = next_ - 1;
1805
                                                me.changeProgress(idx, next_, false);
1806
                                                me.goNextMD(prog_, self_);
1807
                                                me.setFormValuesAfterNext(self_.WizardFunction, prog_);
1808
                                                prog_.setNextMD(prog_.getNextMD() + 1);
1809
                                                prog_.setPrevMD(prog_.getNextMD() - 1);
1810

    
1811
                                            }
1812
                                        }
1813

    
1814
                                    }
1815

    
1816
                                }
1817

    
1818
                            } else {
1819
                                cekKtp = false;
1820
                            }
1821
                        });
1822
                    */
1823
                        MinovaMessageError(' Message ', ' WIZRCIDCARD ', MsgParam)
1824
                    } else {
1825
                        cekKtp = true;
1826
                        if (cekKtp) {
1827
                            if (self_.WizardFunction == "APPT" || self_.WizardFunction == "EMPI") {
1828
                                if (_tbl == 'phrpa0001') {
1829
                                    // past
1830
                                    if (self_.getForm().isValid()) {
1831
                                        //change progress bar
1832
                                        total_ = ((next_ - 1) / prog_.totalPage) * 100;
1833
                                        document.getElementById("progressbar").style.width = total_ + '%';
1834
                                        var idx = next_ - 1;
1835
                                        me.changeProgress(idx, next_, false);
1836
                                        me.goNextMD(prog_, self_);
1837
                                        me.setFormValuesAfterNext(self_.wizardFunction, prog_);
1838
                                        prog_.setNextMD(prog_.getNextMD() + 1);
1839
                                        prog_.setPrevMD(prog_.getNextMD() - 1);
1840
                                    } else { // jika form error
1841

    
1842
                                    }
1843
                                } else {
1844
                                    // save data to md
1845
                                    if (self_.getForm().isValid()) {
1846
                                        if (_tbl == 'phrpa0002') {
1847

    
1848
                                            Ext.Ajax.request({
1849
                                                async: false,
1850
                                                method: 'POST',
1851
                                                url: '/UserControl/GetStore',
1852
                                                params: {
1853
                                                    tableName: 'PDSPAWIZDEL',
1854
                                                    param: getParam("id")
1855

    
1856
                                                },
1857
                                                waitMsg: 'Saving Data...',
1858
                                                success: function (response) { },
1859
                                                failure: function (response) { }
1860
                                            });
1861

    
1862
                                            formName = 'MinovaGridFormEditPHRPA0001';
1863
                                            data1 = Ext.ComponentQuery.query('[name=' + formName + ']')[0].getForm().getValues();
1864
                                            var CreateDate = 'CreateDate';
1865
                                            var CreateDateValue = "";
1866
                                            var ChangeDate = 'ChangeDate';
1867
                                            var ChangeDateValue = "";
1868

    
1869
                                            data1[CreateDate] = CreateDateValue;
1870
                                            data1[ChangeDate] = ChangeDateValue;
1871
                                            data2 = self_.getForm().getValues();
1872
                                            data2[CreateDate] = CreateDateValue;
1873
                                            data2[ChangeDate] = ChangeDateValue;
1874
                                        } else {
1875
                                            data1 = self_.getForm().getValues();
1876
                                            var CreateDate = 'CreateDate';
1877
                                            var CreateDateValue = "";
1878
                                            var ChangeDate = 'ChangeDate';
1879
                                            var ChangeDateValue = "";
1880

    
1881
                                            data1[CreateDate] = CreateDateValue;
1882
                                            data1[ChangeDate] = ChangeDateValue;
1883
                                        }
1884

    
1885
                                        var sukses = me.saveDataToMD(self_.tableName, data1, data2);
1886
                                        if (sukses) {
1887
                                            //change progress bar
1888
                                            total_ = ((next_ - 1) / prog_.totalPage) * 100;
1889
                                            document.getElementById("progressbar").style.width = total_ + '%';
1890
                                            var idx = next_ - 1;
1891
                                            me.changeProgress(idx, next_, false);
1892
                                            me.setFormValuesAfterNext(self_.wizardFunction, prog_);
1893
                                            prog_.setNextMD(prog_.getNextMD() + 1);
1894
                                            prog_.setPrevMD(prog_.getNextMD() - 1);
1895
                                            me.goNextMD(prog_, self_);
1896

    
1897
                                        }
1898

    
1899
                                    } else { // jika form error
1900

    
1901
                                    }
1902
                                }
1903
                            } else {
1904
                                data1 = self_.getForm().getValues();
1905
                                //cek apakah form terakhir
1906
                                if (prog_.totalPage < next_) { // md form sudah selesai
1907
                                    Ext.Msg.show({
1908
                                        title: "",
1909
                                        msg: MinovaMessageData('WD001', ''),
1910
                                        buttons: Ext.Msg.YESNO,
1911
                                        icon: Ext.Msg.QUESTION,
1912
                                        fn: function (choice) {
1913
                                            console.log(choice);
1914
                                            if (choice === 'yes') {
1915
                                                document.getElementById("progressbar").style.width = '100%';
1916

    
1917
                                                //me.saveDataToMD();
1918

    
1919
                                                var sukses = me.saveDataToMD(self_.tableName, data1, data2);
1920
                                                if (sukses) {
1921
                                                    var page = 'wizards';
1922
                                                    if (prog_.wizardFunction.substring(0, 1) == "A") {
1923
                                                        page = 'rcwizards';
1924
                                                    }
1925
                                                    nextUrl = MinovaUtil.GetMenuID() + '&S=S';
1926
                                                    var mb = new minovaBlowfish();
1927
                                                    e = mb.minovaEncryptUrl(nextUrl);
1928
                                                    window.open(page + '?' + e, "_self");
1929

    
1930
                                                }
1931
                                            }
1932

    
1933
                                        }
1934
                                    });
1935
                                } else {
1936
                                    var sukses = me.saveDataToMD(self_.tableName, data1, data2);
1937
                                    if (sukses) {
1938
                                        //change progress bar
1939
                                        total_ = ((next_ - 1) / prog_.totalPage) * 100;
1940
                                        document.getElementById("progressbar").style.width = total_ + '%';
1941
                                        var idx = next_ - 1;
1942
                                        me.changeProgress(idx, next_, false);
1943
                                        me.goNextMD(prog_, self_);
1944
                                        me.setFormValuesAfterNext(self_.WizardFunction, prog_);
1945
                                        prog_.setNextMD(prog_.getNextMD() + 1);
1946
                                        prog_.setPrevMD(prog_.getNextMD() - 1);
1947

    
1948
                                    }
1949
                                }
1950

    
1951
                            }
1952

    
1953
                        }
1954
                    }
1955
                }
1956
            });
1957
        } else {
1958
            cekKtp = true;;
1959
            if (cekKtp) {
1960
                if (self_.WizardFunction == "APPT" || self_.WizardFunction == "EMPI") {
1961
                    if (_tbl == 'phrpa0001') {
1962
                        // past
1963
                        if (self_.getForm().isValid()) {
1964
                            //change progress bar
1965
                            total_ = ((next_ - 1) / prog_.totalPage) * 100;
1966
                            document.getElementById("progressbar").style.width = total_ + '%';
1967
                            var idx = next_ - 1;
1968
                            me.changeProgress(idx, next_, false);
1969
                            me.goNextMD(prog_, self_);
1970
                            me.setFormValuesAfterNext(self_.wizardFunction, prog_);
1971
                            prog_.setNextMD(prog_.getNextMD() + 1);
1972
                            prog_.setPrevMD(prog_.getNextMD() - 1);
1973
                        } else { // jika form error
1974

    
1975
                        }
1976
                    } else {
1977
                        // save data to md
1978
                        if (self_.getForm().isValid()) {
1979
                            if (_tbl == 'phrpa0002') {
1980

    
1981
                                Ext.Ajax.request({
1982
                                    async: false,
1983
                                    method: 'POST',
1984
                                    url: '/UserControl/GetStore',
1985
                                    params: {
1986
                                        tableName: 'PDSPAWIZDEL',
1987
                                        param: getParam("id")
1988

    
1989
                                    },
1990
                                    waitMsg: 'Saving Data...',
1991
                                    success: function (response) { },
1992
                                    failure: function (response) { }
1993
                                });
1994

    
1995
                                formName = 'MinovaGridFormEditPHRPA0001';
1996
                                data1 = Ext.ComponentQuery.query('[name=' + formName + ']')[0].getForm().getValues();
1997
                                var CreateDate = 'CreateDate';
1998
                                var CreateDateValue = "";
1999
                                var ChangeDate = 'ChangeDate';
2000
                                var ChangeDateValue = "";
2001

    
2002
                                data1[CreateDate] = CreateDateValue;
2003
                                data1[ChangeDate] = ChangeDateValue;
2004
                                data2 = self_.getForm().getValues();
2005
                                data2[CreateDate] = CreateDateValue;
2006
                                data2[ChangeDate] = ChangeDateValue;
2007
                            } else {
2008
                                data1 = self_.getForm().getValues();
2009
                                var CreateDate = 'CreateDate';
2010
                                var CreateDateValue = "";
2011
                                var ChangeDate = 'ChangeDate';
2012
                                var ChangeDateValue = "";
2013

    
2014
                                data1[CreateDate] = CreateDateValue;
2015
                                data1[ChangeDate] = ChangeDateValue;
2016
                            }
2017

    
2018
                            var sukses = me.saveDataToMD(self_.tableName, data1, data2);
2019
                            if (sukses) {
2020
                                //change progress bar
2021
                                total_ = ((next_ - 1) / prog_.totalPage) * 100;
2022
                                document.getElementById("progressbar").style.width = total_ + '%';
2023
                                var idx = next_ - 1;
2024
                                me.changeProgress(idx, next_, false);
2025
                                me.setFormValuesAfterNext(self_.wizardFunction, prog_);
2026
                                prog_.setNextMD(prog_.getNextMD() + 1);
2027
                                prog_.setPrevMD(prog_.getNextMD() - 1);
2028
                                me.goNextMD(prog_, self_);
2029

    
2030
                            }
2031

    
2032
                        } else { // jika form error
2033

    
2034
                        }
2035
                    }
2036
                } else {
2037
                    data1 = self_.getForm().getValues();
2038
                    //cek apakah form terakhir
2039
                    if (prog_.totalPage < next_) { // md form sudah selesai
2040
                        Ext.Msg.show({
2041
                            title: "",
2042
                            msg: MinovaMessageData('WD001', ''),
2043
                            buttons: Ext.Msg.YESNO,
2044
                            icon: Ext.Msg.QUESTION,
2045
                            fn: function (choice) {
2046
                                console.log(choice);
2047
                                if (choice === 'yes') {
2048
                                    document.getElementById("progressbar").style.width = '100%';
2049

    
2050
                                    //me.saveDataToMD();
2051

    
2052
                                    var sukses = me.saveDataToMD(self_.tableName, data1, data2);
2053
                                    if (sukses) {
2054
                                        var page = 'wizards';
2055
                                        if (prog_.wizardFunction.substring(0, 1) == "A") {
2056
                                            page = 'rcwizards';
2057
                                        }
2058
                                        nextUrl = MinovaUtil.GetMenuID() + '&S=S';
2059
                                        var mb = new minovaBlowfish();
2060
                                        e = mb.minovaEncryptUrl(nextUrl);
2061
                                        window.open(page + '?' + e, "_self");
2062

    
2063
                                    }
2064
                                }
2065

    
2066
                            }
2067
                        });
2068
                    } else {
2069
                        var sukses = me.saveDataToMD(self_.tableName, data1, data2);
2070
                        if (sukses) {
2071
                            //change progress bar
2072
                            total_ = ((next_ - 1) / prog_.totalPage) * 100;
2073
                            document.getElementById("progressbar").style.width = total_ + '%';
2074
                            var idx = next_ - 1;
2075
                            me.changeProgress(idx, next_, false);
2076
                            me.goNextMD(prog_, self_);
2077
                            me.setFormValuesAfterNext(self_.WizardFunction, prog_);
2078
                            prog_.setNextMD(prog_.getNextMD() + 1);
2079
                            prog_.setPrevMD(prog_.getNextMD() - 1);
2080

    
2081
                        }
2082
                    }
2083

    
2084
                }
2085

    
2086
            }
2087

    
2088
        }
2089

    
2090
    },
2091
    goNextMD: function (prog_, form_) {
2092
        var me = this;
2093
        var table_ = form_.tableName.toLowerCase();
2094
        var next_ = prog_.getNextMD() - 1; // id form selanjutnya
2095
        //var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
2096
        /*
2097
		if (prog_.totalPage <= next_) { // md form sudah selesai
2098
		Ext.Msg.show({
2099
		title: "",
2100
		msg: MinovaMessageData('WD001', ''),
2101
		buttons: Ext.Msg.YESNO,
2102
		icon: Ext.Msg.QUESTION,
2103
		fn: function (choice) {
2104
		console.log(choice);
2105
		if (choice === 'yes') {
2106
		document.getElementById("progressbar").style.width = '100%';
2107

    
2108
		//me.saveDataToMD();
2109

    
2110
		var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
2111
		var page = 'wizards';
2112
		if (prog_.wizardFunction.substring(0, 1) == "A") {
2113
		page = 'rcwizards';
2114
		}
2115
		nextUrl = page + '?' + MinovaUtil.GetMenuID() + '&S=S';
2116
		window.open(nextUrl, "_self");
2117
		}
2118

    
2119
		}
2120
		});
2121
		}
2122
		else
2123
		 */
2124
        {
2125
            var next_ = form_.nextMD;
2126
            var _me = next_ - 1;
2127
            var nextPage = Ext.ComponentQuery.query('[itemId=MD' + form_.nextMD + ']')[0];
2128
            var type_ = nextPage.WizardLayout;
2129

    
2130
            if (prog_.sukses == true) {
2131
                if (form_.nextMD != 1) {
2132
                    //set value form or grid from md
2133
                    hisTable = nextPage.tableName;
2134
                    var nowDate = MinovaUtil.GetNowDate();
2135
                    if (nextPage.WizardFunction == 'APPT') {
2136
                        hisTable = "PHRRC" + hisTable.substring(5, 9);
2137
                    }
2138
                    if (nextPage.WizardLayout == 'G') {
2139
						var empID=getParam("app");
2140
						if(getParam('wizard').substring(0,1)== 'E'){
2141
						empID=getParam('id');
2142
						}
2143
                        var gridHis = Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + nextPage.tableName + ']')[0];
2144
                        dataForm = null;
2145
                        Ext.Ajax.request({
2146
                            //async: false,
2147
                            method: 'POST',
2148
                            url: '/UserControl/GetStore',
2149
                            params: {
2150
                                tableName: hisTable,
2151
                                param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + empID
2152

    
2153
                            },
2154
                            success: function (response) {
2155
                                var results = Ext.decode(response.responseText);
2156
                                dataForm = results.data;
2157
                                if (dataForm.length) {
2158
                                    Ext.each(dataForm, function (rec) {
2159
                                        rec["EmployeeID"] = getParam('id');
2160
                                        rec["Flag"] = '0';
2161
                                    });
2162
                                }
2163
                                if (gridHis) {
2164
                                    var gridStore = gridHis.getStore();
2165
                                    gridStore.loadData(dataForm);
2166
                                } else {
2167
                                    var gridStore = Ext.StoreMgr.lookup("store" + nextPage.tableName);
2168
                                    gridStore.loadData(dataForm);
2169
                                }
2170

    
2171
                            }
2172
                        });
2173

    
2174
                    } else {
2175
                        var form = Ext.ComponentQuery.query('[name=MinovaGridFormEdit' + nextPage.tableName + ']')[0];
2176
                    }
2177
                    form_.setHidden(true);
2178
                    nextPage.setHidden(false);
2179
                    me.setButton(nextPage);
2180
                } else {
2181
                    var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
2182
                    var page = 'wizards';
2183
                    if (prog_.wizardFunction.substring(0, 1) == "A") {
2184
                        page = 'rcwizards';
2185
                    }
2186
                    nextUrl = MinovaUtil.GetMenuID() + '&S=S';
2187
                    var mb = new minovaBlowfish();
2188
                    e = mb.minovaEncryptUrl(nextUrl);
2189
                    window.open(page + '?' + e, "_self");
2190
                }
2191

    
2192
            } else if (table_ == 'phrpa0001' || table_ == 'phrpa0002') {
2193
                form_.setHidden(true);
2194
                nextPage.setHidden(false);
2195
                me.setButton(nextPage);
2196
            }
2197

    
2198
        }
2199
    },
2200
    saveDataToMD: function (tableName, data1, data2) {
2201
        var prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
2202
        var sukses = false;
2203
        var TblApp = tableName.toLowerCase().substring(0, 5);
2204
		if(getParam('wizard')=='A900'){
2205
			var EmployeeID = 'EmployeeID';
2206
			var EmployeeIDValue = getParam('id');
2207
			data1[EmployeeID] = EmployeeIDValue;
2208
			if(data2 != undefined){
2209
				var EmployeeID = 'EmployeeID';
2210
				var EmployeeIDValue = getParam('id');
2211
				data2[EmployeeID] = EmployeeIDValue;
2212
			}
2213
		}
2214
		
2215
		var CreateDate = 'CreateDate';
2216
		var CreateDateValue = "";
2217
		var ChangeDate = 'ChangeDate';
2218
		var ChangeDateValue = "";
2219
		data1[CreateDate] = CreateDateValue;
2220
		data1[ChangeDate] = ChangeDateValue;
2221
        if (data2 == undefined) {
2222
		
2223
            if (prog_.sukses = true || TblApp == 'phrrc') {
2224
				
2225
				if(tableName == 'PHRPA0012')
2226
				{
2227
					var ActF = Ext.ComponentQuery.query('[name=Action]')[0]
2228
					var Act = ActF.getValue();
2229
					if(Act == 'E001' ||  Act == 'A009');
2230
					{
2231
						var CommunicationType = Ext.ComponentQuery.query('[name=MinovaGridFormEditPHRPA0012]')[0].getValues().CommunicationType;
2232
						//alert(CommunicationType);
2233
						var EmployeeID = Ext.ComponentQuery.query('[name=MinovaGridFormEditPHRPA0012]')[0].getValues().EmployeeID;
2234
						//alert(EmployeeID);
2235
						var CommunicationDesc = Ext.ComponentQuery.query('[name=MinovaGridFormEditPHRPA0012]')[0].getValues().CommunicationDescription;
2236
						//alert(CommunicationDesc);
2237
						var hasil = undefined;	
2238
						var issuccess = undefined;
2239
						Ext.Ajax.request({
2240
							async: false,
2241
							method: 'POST',
2242
							url: '/UserControl/GetStore',
2243
							params: {
2244
								tableName: 'SGENERATEUSERWIZ',
2245
								param: EmployeeID + ',' + CommunicationType 
2246
							},
2247
							success: function (response) {
2248
								var results = Ext.decode(response.responseText);
2249
								hasil = results.data;
2250
								//issuccess = 'y';
2251
								var UserData = Ext.encode(results.data);
2252
								
2253
								Ext.Ajax.request({
2254
								async: false,
2255
								method: 'POST',
2256
								url: '/UserControl/GenerateMassUser',
2257
								params: {
2258
									UserData: UserData
2259
								},
2260
								success: function (response) {						
2261
									var data_ = Ext.decode(response.responseText);
2262
									issuccess = 'y';
2263
								}
2264
								});								
2265
							},
2266
							failure: function (response) {
2267
								var result = Ext.decode(response.responseText);
2268
								MinovaMessage('', '000005', result.message.text, "E");
2269
							}
2270
						});
2271
						
2272
						if(issuccess == 'y')
2273
						{
2274
							Ext.Ajax.request({
2275
								async: false,
2276
								method: 'POST',
2277
								url: '/UserControl/GetStore',
2278
								params: {
2279
									tableName: 'SGENERATEUSERWIZEMAIL',
2280
									param: EmployeeID + ',' + CommunicationType + ',' + CommunicationDesc
2281
								},
2282
								success: function (response) {
2283
									var results = Ext.decode(response.responseText);					
2284
								},
2285
								failure: function (response) {
2286
									var result = Ext.decode(response.responseText);
2287
									MinovaMessage('', '000005', result.message.text, "E");
2288
								}
2289
							});
2290
						}
2291
					}
2292
				}
2293

    
2294
                Ext.Ajax.request({
2295
                    async: false,
2296
                    method: 'POST',
2297
                    url: '/Devt/SaveTable',
2298
                    params: {
2299
                        tableName: tableName,
2300
                        data: Ext.encode(data1),
2301
                        action: 0
2302
                    },
2303
                    waitMsg: 'Saving Data...',
2304
                    success: function (response) {
2305
                        var result = Ext.decode(response.responseText);
2306
                        if (result.success) {
2307
                            // MinovaMessage('Not Null', '000006', '', 'S');
2308
                            sukses = true;
2309
							//send mail
2310
							var _param = {
2311
										serviceName : 'ERecruitmentAuthentication.asmx',
2312
										methodName : 'SendMailChangeMD',
2313
										parameter : 'TableName=' + tableName + '&EmployeeID=' + data1.EmployeeID
2314

    
2315
									};
2316

    
2317
									//var results = null;
2318
									Ext.Ajax.request({
2319
										method : 'post',
2320
										type : 'ajax',
2321
										params : _param,
2322
										url : '/InvokeService/Invoke/',
2323
										loadMask : {
2324
											msg : 'please wait...'
2325
										},
2326
										success : function (response) {}
2327
									});
2328
                        } else {
2329
                            MinovaMessage('', '000005', result.message.text, 'E');
2330
                            sukses = false;
2331
                        }
2332
                    },
2333
                    failure: function (response) {
2334
                        var result = Ext.decode(response.responseText);
2335
                        MinovaMessage('', '000005', result.message.text, 'E');
2336
                        sukses = false;
2337
                    }
2338
                });
2339
            } else { }
2340
        } else {
2341
			data2[CreateDate] = CreateDateValue;
2342
			data2[ChangeDate] = ChangeDateValue;
2343
            Ext.Ajax.request({
2344
                async: false,
2345
                method: 'POST',
2346
                url: '/Devt/SaveTable',
2347
                params: {
2348
                    tableName: 'phrpa0001',
2349
                    data: Ext.encode(data1),
2350
                    action: 0
2351
                },
2352
                waitMsg: 'Saving Data...',
2353
                success: function (response) {
2354
                    var result = Ext.decode(response.responseText);
2355
                    if (result.success) {
2356
                        // MinovaMessage('Not Null', '000006', '', 'S');
2357
                        sukses = true;
2358
                    } else {
2359
                        MinovaMessage('', '000005', result.message.text, 'E');
2360
                    }
2361
                },
2362
                failure: function (response) {
2363
                    var result = Ext.decode(response.responseText);
2364
                    MinovaMessage('', '000005', result.message.text, 'E');
2365
                }
2366
            });
2367
            if (sukses) {
2368
                Ext.Ajax.request({
2369
                    async: false,
2370
                    method: 'POST',
2371
                    url: '/Devt/SaveTable',
2372
                    params: {
2373
                        tableName: 'PHRPA0002',
2374
                        data: Ext.encode(data2),
2375
                        action: 0
2376
                    },
2377
                    waitMsg: 'Saving Data...',
2378
                    success: function (response) {
2379
                        var result = Ext.decode(response.responseText);
2380
                        if (result.success) {
2381
                            // MinovaMessage('Not Null', '000006', '', 'S');
2382
                            sukses = true;
2383
                        } else {
2384
                            MinovaMessage('', '000005', result.message.text, 'E');
2385
                            sukses = false;
2386
                        }
2387
                    },
2388
                    failure: function (response) {
2389
                        var result = Ext.decode(response.responseText);
2390
                        MinovaMessage('', '000005', result.message.text, 'E');
2391
                    }
2392
                });
2393
            }
2394

    
2395
            //save md 15
2396
            var app = getParam('app');
2397
            if (app === "null") {
2398
                app = '';
2399
            }
2400
            var _date = Ext.ComponentQuery.query('[name=MinovaGridFormEditPHRPA0002]')[0].getValues().StartDate;
2401
            data = {
2402
                EmployeeID: getParam('id'),
2403
                PaymentUpTo: '',
2404
                RetroDate: _date,
2405
                HiringDate: _date,
2406
                ApplicantID: app,
2407
                CorrectStatus: '1'
2408
            };
2409
            Ext.Ajax.request({
2410
                async: false,
2411
                method: 'POST',
2412
                url: '/Devt/SaveTable',
2413
                params: {
2414
                    tableName: 'phrpa0015',
2415
                    data: Ext.encode(data),
2416
                    action: 0
2417
                },
2418
                waitMsg: 'Saving Data...',
2419
                success: function (response) {
2420
                    var result = Ext.decode(response.responseText);
2421
                    if (result.success) {
2422
                        // MinovaMessage('Not Null', '000006', '', 'S');
2423
                        sukses = true;
2424
                    } else {
2425
                        MinovaMessage('', '000005', result.message.text, 'E');
2426
                        sukses = false;
2427
                    }
2428
                },
2429
                failure: function (response) {
2430
                    var result = Ext.decode(response.responseText);
2431
                    MinovaMessage('', '000005', result.message.text, 'E');
2432
                }
2433
            });
2434

    
2435
        }
2436
        prog_.sukses = sukses;
2437
        return (sukses);
2438
    },
2439

    
2440
    setFormValuesAfterNext: function (WizardFunction, prog_) {
2441
        var nowDate = MinovaUtil.GetNowDate();
2442
        //var data_ = JSON.parse(localStorage.getItem(datatable));
2443
        var me = this;
2444
        var next_ = prog_.getNextMD()
2445

    
2446
        if (Ext.ComponentQuery.query('[itemId=MD' + next_ + ']')[0]) {
2447
            var nextPage = Ext.ComponentQuery.query('[itemId=MD' + next_ + ']')[0];
2448
            var type_ = nextPage.WizardLayout;
2449
            var tabl_ = nextPage.tableName;
2450
            switch (nextPage.WizardFunction) {
2451
                case "APP":
2452
                    var tabl_ = nextPage.tableName;
2453
                    me.getLastValue(tabl_, type_);
2454
                    break
2455
                case "APPI":
2456

    
2457
                    break
2458
                case "APPT":
2459
                    var tabl_ = prog_.allTable[next_-1];
2460
                    tbl_ = "PHRRC" + tabl_.substring(5, 9);
2461
					paData= "PHRPA" + tabl_.substring(5, 9);
2462
                    me.getLastValueAPPT(tbl_, type_,paData);
2463
                    break
2464
                case "EMP":
2465
                    var tabl_ = nextPage.tableName;
2466
                    me.getLastValue(tabl_, type_);
2467
                    break
2468
                case "EMPI":
2469

    
2470
                    break
2471
                default:
2472
                    break
2473
            }
2474
            if (type_ == "F") {
2475
                me.setValueFromParameter(nextPage);
2476
            }
2477

    
2478
        }
2479
    },
2480

    
2481
	getLastValueAPPT: function (nextTable, type_,paData) {
2482
        var nowDate = MinovaUtil.GetNowDate();
2483
        if (type_ == "F") {
2484
            Ext.Ajax.request({
2485
                async: false,
2486
                method: 'POST',
2487
                url: '/UserControl/GetStore',
2488
                params: {
2489
                    tableName: nextTable,
2490
                    //param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + getParam("app")
2491
					param: 'EmployeeID[=]' + getParam("app")
2492

    
2493
                },
2494
                success: function (response) {
2495
                    var results = Ext.decode(response.responseText);
2496
                    dataForm = results.data[0];
2497
                    var _form = Ext.ComponentQuery.query('[name=MinovaGridFormEdit' + paData + ']')[0]
2498
                    var form_ = _form.getForm();
2499
                    form_.setValues(dataForm);
2500
                    var temData = JSON.parse(localStorage.getItem('selectionValues'));
2501

    
2502
                    if (nextTable.toLowerCase == "phrpa0002") {
2503
                        form_.findField('StartDate').setValue(temData.EffectiveDate);
2504
                        form_.findField('CompanyID').setValue(temData.CompanyID);
2505
                        form_.findField('PayrollGroup').setValue(temData.PayrollGroup);
2506
                        form_.findField('MovementReason').setValue(temData.Reason);
2507
                    }
2508
                    else {
2509
                        form_.findField('StartDate').setValue(temData.EffectiveDate);
2510
                    }
2511
                }
2512
            });
2513
        } else {
2514
            Ext.Ajax.request({
2515
                async: false,
2516
                method: 'POST',
2517
                url: '/UserControl/GetStore',
2518
                params: {
2519
                    tableName: nextTable,
2520
                    param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + getParam("id")
2521

    
2522
                },
2523
                success: function (response) {
2524
                    var results = Ext.decode(response.responseText);
2525
                    var data_ = results.data;
2526
                    var gridStore = Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + paData + ']')[0].getStore();
2527
                    gridStore.loadData(data_);
2528

    
2529
                }
2530
            });
2531
        }
2532
    },
2533

    
2534
    getLastValue: function (nextTable, type_) {
2535
        var nowDate = MinovaUtil.GetNowDate();
2536
        if (type_ == "F") {
2537
            Ext.Ajax.request({
2538
                async: false,
2539
                method: 'POST',
2540
                url: '/UserControl/GetStore',
2541
                params: {
2542
                    tableName: nextTable,
2543
                    param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + getParam("id")
2544

    
2545
                },
2546
                success: function (response) {
2547
                    var results = Ext.decode(response.responseText);
2548
                    dataForm = results.data[0];
2549
                    var _form = Ext.ComponentQuery.query('[name=MinovaGridFormEdit' + nextTable + ']')[0]
2550
                    var form_ = _form.getForm();
2551
                    form_.setValues(dataForm);
2552
                    var temData = JSON.parse(localStorage.getItem('selectionValues'));
2553

    
2554
                    if (nextTable.toLowerCase == "phrpa0002") {
2555
                        form_.findField('StartDate').setValue(temData.EffectiveDate);
2556
                        form_.findField('CompanyID').setValue(temData.CompanyID);
2557
                        form_.findField('PayrollGroup').setValue(temData.PayrollGroup);
2558
                        form_.findField('MovementReason').setValue(temData.Reason);
2559
                    }
2560
                    else {
2561
                        form_.findField('StartDate').setValue(temData.EffectiveDate);
2562
                    }
2563
                }
2564
            });
2565
        } else {
2566
            Ext.Ajax.request({
2567
                async: false,
2568
                method: 'POST',
2569
                url: '/UserControl/GetStore',
2570
                params: {
2571
                    tableName: nextTable,
2572
                    param: 'StartDate[<=]' + nowDate + ',EndDate[>=]' + nowDate + ',EmployeeID[=]' + getParam("id")
2573

    
2574
                },
2575
                success: function (response) {
2576
                    var results = Ext.decode(response.responseText);
2577
                    var data_ = results.data;
2578
                    var gridStore = Ext.ComponentQuery.query('[name=MinovaGridFormGrid' + nextTable + ']')[0].getStore();
2579
                    gridStore.loadData(data_);
2580

    
2581
                }
2582
            });
2583
        }
2584
    },
2585

    
2586
    setButton: function (nextPage) {
2587

    
2588
        prog_ = Ext.ComponentQuery.query('[name=pnlProgress]')[0];
2589
        id_ = parseInt(nextPage.itemId.substring(2, 3));
2590
        Ext.ComponentQuery.query('[name=prevWizard]')[0].setDisabled(false);
2591
        Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(false);
2592
        Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(false);
2593

    
2594
        if (nextPage.mandatory == "1") {
2595
            //if (nextPage.nextMD == 1) {
2596
            //    Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(true);
2597
            //    Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(true);
2598

    
2599
            //} else {
2600
            //    Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(true);
2601
            //    Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(true);
2602

    
2603
            //}
2604

    
2605
            Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(true);
2606
            Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(true);
2607

    
2608
        } else {
2609
            Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(false);
2610
            Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(false);
2611
        }
2612

    
2613
        if (id_ == prog_.totalPage) {
2614
            Ext.ComponentQuery.query('[name=skipWizard]')[0].setDisabled(true);
2615
            Ext.ComponentQuery.query('[name=skipAllWizard]')[0].setDisabled(true);
2616
        }
2617
    },
2618
    ChangeApp: function () {
2619
        Ext.Ajax.request({
2620
            async: false,
2621
            method: 'POST',
2622
            url: '/UserControl/GetStore',
2623
            params: {
2624
                tableName: "PHRRC0002",
2625
                param: 'StartDate[<=]' + MinovaUtil.GetNowDate() + ',EndDate[>=]' + MinovaUtil.GetNowDate() + ',EmployeeID[=]' + Ext.ComponentQuery.query('[name=ApplicantID]')[0].getValue()
2626

    
2627
            },
2628
            success: function (response) {
2629
                var results = Ext.decode(response.responseText);
2630
                var data = results.data;
2631
                if (data != null && data.length > 0) {
2632
                    var data_ = results.data[0];
2633
                    Ext.ComponentQuery.query('[name=CompanyID]')[0].setValue(data_.CompanyID);
2634
                }
2635
            }
2636
        });
2637
    },
2638
});
(4-4/4)