~jlungo/zhris/trunk

« back to all changes in this revision

Viewing changes to interface/html5/views/policy/pay_code/PayCodeViewController.js

  • Committer: Juma Lungo
  • Date: 2017-11-16 08:54:53 UTC
  • Revision ID: juma.lungo@zalongwa.com-20171116085453-q3jxht0gcab8jbya
codebase commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
PayCodeViewController = BaseViewController.extend( {
 
2
        el: '#pay_code_view_container',
 
3
        type_array: null,
 
4
        //pay_type_array: null,
 
5
        //wage_source_type_array: null,
 
6
        initialize: function( options ) {
 
7
                this._super( 'initialize', options );
 
8
                this.edit_view_tpl = 'PayCodeEditView.html';
 
9
                this.permission_id = 'pay_code';
 
10
                this.viewId = 'PayCode';
 
11
                this.script_name = 'PayCodeView';
 
12
                this.table_name_key = 'pay_code';
 
13
                this.context_menu_name = $.i18n._( 'Pay Code' );
 
14
                this.navigation_label = $.i18n._( 'Pay Code' ) + ':';
 
15
                this.api = new (APIFactory.getAPIClass( 'APIPayCode' ))();
 
16
 
 
17
                this.render();
 
18
                this.buildContextMenu();
 
19
 
 
20
                this.initData();
 
21
                this.setSelectRibbonMenuIfNecessary( 'PayCode' );
 
22
 
 
23
        },
 
24
 
 
25
        initOptions: function() {
 
26
                var $this = this;
 
27
                this.initDropDownOption( 'type' );
 
28
                //this.initDropDownOption( 'pay_type' );
 
29
                //this.initDropDownOption( 'wage_source_type' );
 
30
        },
 
31
 
 
32
 
 
33
        buildContextMenuModels: function() {
 
34
 
 
35
                //Context Menu
 
36
                var menu = new RibbonMenu( {
 
37
                        label: this.context_menu_name,
 
38
                        id: this.viewId + 'ContextMenu',
 
39
                        sub_menu_groups: []
 
40
                } );
 
41
 
 
42
                //menu group
 
43
                var editor_group = new RibbonSubMenuGroup( {
 
44
                        label: $.i18n._( 'Editor' ),
 
45
                        id: this.viewId + 'Editor',
 
46
                        ribbon_menu: menu,
 
47
                        sub_menus: []
 
48
                } );
 
49
 
 
50
                var other_group = new RibbonSubMenuGroup( {
 
51
                        label: $.i18n._( 'Other' ),
 
52
                        id: this.viewId + 'other',
 
53
                        ribbon_menu: menu,
 
54
                        sub_menus: []
 
55
                } );
 
56
 
 
57
                var add = new RibbonSubMenu( {
 
58
                        label: $.i18n._( 'New' ),
 
59
                        id: ContextMenuIconName.add,
 
60
                        group: editor_group,
 
61
                        icon: Icons.new_add,
 
62
                        permission_result: true,
 
63
                        permission: null
 
64
                } );
 
65
 
 
66
                var view = new RibbonSubMenu( {
 
67
                        label: $.i18n._( 'View' ),
 
68
                        id: ContextMenuIconName.view,
 
69
                        group: editor_group,
 
70
                        icon: Icons.view,
 
71
                        permission_result: true,
 
72
                        permission: null
 
73
                } );
 
74
 
 
75
                var edit = new RibbonSubMenu( {
 
76
                        label: $.i18n._( 'Edit' ),
 
77
                        id: ContextMenuIconName.edit,
 
78
                        group: editor_group,
 
79
                        icon: Icons.edit,
 
80
                        permission_result: true,
 
81
                        permission: null
 
82
                } );
 
83
 
 
84
                var mass_edit = new RibbonSubMenu( {
 
85
                        label: $.i18n._( 'Mass<br>Edit' ),
 
86
                        id: ContextMenuIconName.mass_edit,
 
87
                        group: editor_group,
 
88
                        icon: Icons.mass_edit,
 
89
                        permission_result: true,
 
90
                        permission: null
 
91
                } );
 
92
 
 
93
                var del = new RibbonSubMenu( {
 
94
                        label: $.i18n._( 'Delete' ),
 
95
                        id: ContextMenuIconName.delete_icon,
 
96
                        group: editor_group,
 
97
                        icon: Icons.delete_icon,
 
98
                        permission_result: true,
 
99
                        permission: null
 
100
                } );
 
101
 
 
102
                var delAndNext = new RibbonSubMenu( {
 
103
                        label: $.i18n._( 'Delete<br>& Next' ),
 
104
                        id: ContextMenuIconName.delete_and_next,
 
105
                        group: editor_group,
 
106
                        icon: Icons.delete_and_next,
 
107
                        permission_result: true,
 
108
                        permission: null
 
109
                } );
 
110
 
 
111
                var copy = new RibbonSubMenu( {
 
112
                        label: $.i18n._( 'Copy' ),
 
113
                        id: ContextMenuIconName.copy,
 
114
                        group: editor_group,
 
115
                        icon: Icons.copy_as_new,
 
116
                        permission_result: true,
 
117
                        permission: null
 
118
                } );
 
119
 
 
120
                var copy_as_new = new RibbonSubMenu( {
 
121
                        label: $.i18n._( 'Copy<br>as New' ),
 
122
                        id: ContextMenuIconName.copy_as_new,
 
123
                        group: editor_group,
 
124
                        icon: Icons.copy,
 
125
                        permission_result: true,
 
126
                        permission: null
 
127
                } );
 
128
 
 
129
                var save = new RibbonSubMenu( {
 
130
                        label: $.i18n._( 'Save' ),
 
131
                        id: ContextMenuIconName.save,
 
132
                        group: editor_group,
 
133
                        icon: Icons.save,
 
134
                        permission_result: true,
 
135
                        permission: null
 
136
                } );
 
137
 
 
138
                var save_and_continue = new RibbonSubMenu( {
 
139
                        label: $.i18n._( 'Save<br>& Continue' ),
 
140
                        id: ContextMenuIconName.save_and_continue,
 
141
                        group: editor_group,
 
142
                        icon: Icons.save_and_continue,
 
143
                        permission_result: true,
 
144
                        permission: null
 
145
                } );
 
146
 
 
147
                var save_and_next = new RibbonSubMenu( {
 
148
                        label: $.i18n._( 'Save<br>& Next' ),
 
149
                        id: ContextMenuIconName.save_and_next,
 
150
                        group: editor_group,
 
151
                        icon: Icons.save_and_next,
 
152
                        permission_result: true,
 
153
                        permission: null
 
154
                } );
 
155
 
 
156
                var save_and_copy = new RibbonSubMenu( {
 
157
                        label: $.i18n._( 'Save<br>& Copy' ),
 
158
                        id: ContextMenuIconName.save_and_copy,
 
159
                        group: editor_group,
 
160
                        icon: Icons.save_and_copy,
 
161
                        permission_result: true,
 
162
                        permission: null
 
163
                } );
 
164
 
 
165
                var save_and_new = new RibbonSubMenu( {
 
166
                        label: $.i18n._( 'Save<br>& New' ),
 
167
                        id: ContextMenuIconName.save_and_new,
 
168
                        group: editor_group,
 
169
                        icon: Icons.save_and_new,
 
170
                        permission_result: true,
 
171
                        permission: null
 
172
                } );
 
173
 
 
174
                var cancel = new RibbonSubMenu( {
 
175
                        label: $.i18n._( 'Cancel' ),
 
176
                        id: ContextMenuIconName.cancel,
 
177
                        group: editor_group,
 
178
                        icon: Icons.cancel,
 
179
                        permission_result: true,
 
180
                        permission: null
 
181
                } );
 
182
 
 
183
                var wizard = new RibbonSubMenu( {
 
184
                        label: $.i18n._( 'Migrate<br>Pay Codes' ),
 
185
                        id: ContextMenuIconName.migrate_pay_codes,
 
186
                        group: other_group,
 
187
                        icon: Icons.wizard,
 
188
                        permission_result: true,
 
189
                        permission: null
 
190
                } );
 
191
 
 
192
                var export_csv = new RibbonSubMenu( {
 
193
                        label: $.i18n._( 'Export' ),
 
194
                        id: ContextMenuIconName.export_excel,
 
195
                        group: other_group,
 
196
                        icon: Icons.export_excel,
 
197
                        permission_result: true,
 
198
                        permission: null,
 
199
                        sort_order: 9000
 
200
                } );
 
201
 
 
202
                return [menu];
 
203
 
 
204
        },
 
205
 
 
206
        buildEditViewUI: function() {
 
207
 
 
208
                this._super( 'buildEditViewUI' );
 
209
 
 
210
                var $this = this;
 
211
 
 
212
                this.setTabLabels( {
 
213
                        'tab_pay_code': $.i18n._( 'Pay Code' ),
 
214
                        'tab_audit': $.i18n._( 'Audit' )
 
215
                } );
 
216
 
 
217
 
 
218
                this.navigation.AComboBox( {
 
219
                        api_class: (APIFactory.getAPIClass( 'APIPayCode' )),
 
220
                        id: this.script_name + '_navigation',
 
221
                        allow_multiple_selection: false,
 
222
                        layout_name: ALayoutIDs.PAY_CODE,
 
223
                        navigation_mode: true,
 
224
                        show_search_inputs: true} );
 
225
 
 
226
                this.setNavigation();
 
227
 
 
228
//                this.edit_view_tab.css( 'width', '700' );
 
229
 
 
230
                //Tab 0 start
 
231
 
 
232
                var tab_pay_code = this.edit_view_tab.find( '#tab_pay_code' );
 
233
 
 
234
                var tab_pay_code_column1 = tab_pay_code.find( '.first-column' );
 
235
 
 
236
                this.edit_view_tabs[0] = [];
 
237
 
 
238
                this.edit_view_tabs[0].push( tab_pay_code_column1 );
 
239
 
 
240
                //Name
 
241
                var form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
 
242
 
 
243
                form_item_input.TTextInput( {field: 'name', width: '100%'} );
 
244
                this.addEditFieldToColumn( $.i18n._( 'Name' ), form_item_input, tab_pay_code_column1, '' );
 
245
 
 
246
                form_item_input.parent().width( '45%' );
 
247
 
 
248
 
 
249
                // Description
 
250
                form_item_input = Global.loadWidgetByName( FormItemType.TEXT_AREA );
 
251
                form_item_input.TTextArea( { field: 'description', width: '100%' } );
 
252
                this.addEditFieldToColumn( $.i18n._( 'Description' ), form_item_input, tab_pay_code_column1, '', null, null, true );
 
253
 
 
254
                form_item_input.parent().width( '45%' );
 
255
 
 
256
                //Code
 
257
                form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
 
258
                form_item_input.TTextInput( {field: 'code', width: 150} );
 
259
                this.addEditFieldToColumn( $.i18n._( 'Code' ), form_item_input, tab_pay_code_column1, '' );
 
260
 
 
261
                // Type
 
262
                form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
 
263
                form_item_input.TComboBox( {field: 'type_id', set_empty: false} );
 
264
                form_item_input.setSourceData( Global.addFirstItemToArray( $this.type_array ) );
 
265
                this.addEditFieldToColumn( $.i18n._( 'Type' ), form_item_input, tab_pay_code_column1 );
 
266
/*
 
267
                // Pay Type
 
268
                form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
 
269
                form_item_input.TComboBox( {field: 'pay_type_id', set_empty: false} );
 
270
                form_item_input.setSourceData( Global.addFirstItemToArray( $this.pay_type_array ) );
 
271
                this.addEditFieldToColumn( $.i18n._( 'Pay Type' ), form_item_input, tab_pay_code_column1 );
 
272
 
 
273
                // Wage Source
 
274
                form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
 
275
                form_item_input.TComboBox( {field: 'wage_source_type_id', set_empty: false} );
 
276
                form_item_input.setSourceData( Global.addFirstItemToArray( $this.wage_source_type_array ) );
 
277
                this.addEditFieldToColumn( $.i18n._( 'Wage Source' ), form_item_input, tab_pay_code_column1 );
 
278
 
 
279
                //Wage Source Contributing Shift
 
280
                form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
 
281
                form_item_input.AComboBox( {
 
282
                        api_class: (APIFactory.getAPIClass( 'APIContributingShiftPolicy' )),
 
283
                        allow_multiple_selection: false,
 
284
                        layout_name: ALayoutIDs.CONTRIBUTING_SHIFT_POLICY,
 
285
                        show_search_inputs: true,
 
286
                        set_empty: true,
 
287
                        field: 'wage_source_contributing_shift_policy_id'} );
 
288
                this.addEditFieldToColumn( $.i18n._( 'Wage Source Contributing Shift Policy' ), form_item_input, tab_pay_code_column1 );
 
289
 
 
290
                //Time Source Contributing Shift
 
291
                form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
 
292
                form_item_input.AComboBox( {
 
293
                        api_class: (APIFactory.getAPIClass( 'APIContributingShiftPolicy' )),
 
294
                        allow_multiple_selection: false,
 
295
                        layout_name: ALayoutIDs.CONTRIBUTING_SHIFT_POLICY,
 
296
                        show_search_inputs: true,
 
297
                        set_empty: true,
 
298
                        field: 'time_source_contributing_shift_policy_id'} );
 
299
                this.addEditFieldToColumn( $.i18n._( 'Time Source Contributing Shift Policy' ), form_item_input, tab_pay_code_column1 );
 
300
 
 
301
                // Wage Group
 
302
                form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
 
303
                form_item_input.AComboBox( {
 
304
                        api_class: (APIFactory.getAPIClass( 'APIWageGroup' )),
 
305
                        allow_multiple_selection: false,
 
306
                        layout_name: ALayoutIDs.WAGE_GROUP,
 
307
                        show_search_inputs: true,
 
308
                        set_empty: true,
 
309
                        field: 'wage_group_id'} );
 
310
                this.addEditFieldToColumn( $.i18n._( 'Wage Group' ), form_item_input, tab_pay_code_column1 );
 
311
 
 
312
                // Rate
 
313
                form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
 
314
                form_item_input.TTextInput( {field: 'rate', width: 100} );
 
315
                this.addEditFieldToColumn( $.i18n._( 'Rate' ), form_item_input, tab_pay_code_column1 );
 
316
 
 
317
                // Deposit Accrual Policy
 
318
                form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
 
319
                form_item_input.AComboBox( {
 
320
                        api_class: (APIFactory.getAPIClass( 'APIAccrualPolicy' )),
 
321
                        allow_multiple_selection: false,
 
322
                        layout_name: ALayoutIDs.ACCRUAL_POLICY,
 
323
                        show_search_inputs: true,
 
324
                        set_empty: true,
 
325
                        field: 'accrual_policy_id'} );
 
326
                this.addEditFieldToColumn( $.i18n._( 'Deposit Accrual Policy' ), form_item_input, tab_pay_code_column1, '' );
 
327
*/
 
328
                //Pay Formula Policy
 
329
                form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
 
330
                form_item_input.AComboBox( {
 
331
                        api_class: (APIFactory.getAPIClass( 'APIPayFormulaPolicy' )),
 
332
                        allow_multiple_selection: false,
 
333
                        layout_name: ALayoutIDs.PAY_FORMULA_POLICY,
 
334
                        show_search_inputs: true,
 
335
                        set_empty: true,
 
336
                        field: 'pay_formula_policy_id',
 
337
                        custom_first_label: $.i18n._( '-- Defined By Policy --' ),
 
338
                        added_items: [
 
339
                                {value: 0, label: $.i18n._( '-- Defined By Policy --' )}
 
340
                        ]
 
341
                        } );
 
342
                this.addEditFieldToColumn( $.i18n._( 'Pay Formula Policy' ), form_item_input, tab_pay_code_column1 );
 
343
 
 
344
                // Pay Stub Account
 
345
                form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
 
346
                form_item_input.AComboBox( {
 
347
                        api_class: (APIFactory.getAPIClass( 'APIPayStubEntryAccount' )),
 
348
                        allow_multiple_selection: false,
 
349
                        layout_name: ALayoutIDs.PAY_STUB_ACCOUNT,
 
350
                        show_search_inputs: true,
 
351
                        set_empty: true,
 
352
                        field: 'pay_stub_entry_account_id'} );
 
353
                this.addEditFieldToColumn( $.i18n._( 'Pay Stub Account' ), form_item_input, tab_pay_code_column1 );
 
354
        },
 
355
 
 
356
 
 
357
        buildSearchFields: function() {
 
358
 
 
359
                this._super( 'buildSearchFields' );
 
360
                this.search_fields = [
 
361
 
 
362
                        new SearchField( {label: $.i18n._( 'Name' ),
 
363
                                in_column: 1,
 
364
                                field: 'name',
 
365
                                multiple: true,
 
366
                                basic_search: true,
 
367
                                adv_search: false,
 
368
                                form_item_type: FormItemType.TEXT_INPUT} ),
 
369
 
 
370
                        new SearchField( {label: $.i18n._( 'Type' ),
 
371
                                in_column: 1,
 
372
                                field: 'type_id',
 
373
                                multiple: true,
 
374
                                basic_search: true,
 
375
                                adv_search: false,
 
376
                                layout_name: ALayoutIDs.OPTION_COLUMN,
 
377
                                form_item_type: FormItemType.AWESOME_BOX} ),
 
378
 
 
379
                        new SearchField( {label: $.i18n._( 'Pay Formula Policy' ),
 
380
                                in_column: 1,
 
381
                                field: 'pay_formula_policy_id',
 
382
                                layout_name: ALayoutIDs.PAY_FORMULA_POLICY,
 
383
                                api_class: (APIFactory.getAPIClass( 'APIPayFormulaPolicy' )),
 
384
                                multiple: true,
 
385
                                basic_search: true,
 
386
                                adv_search: false,
 
387
                                form_item_type: FormItemType.AWESOME_BOX} ),
 
388
 
 
389
                        new SearchField( {label: $.i18n._( 'Pay Stub Account' ),
 
390
                                in_column: 2,
 
391
                                field: 'pay_stub_entry_account_id',
 
392
                                layout_name: ALayoutIDs.PAY_STUB_ACCOUNT,
 
393
                                api_class: (APIFactory.getAPIClass( 'APIPayStubEntryAccount' )),
 
394
                                multiple: true,
 
395
                                basic_search: true,
 
396
                                adv_search: false,
 
397
                                form_item_type: FormItemType.AWESOME_BOX} ),
 
398
 
 
399
                        new SearchField( {label: $.i18n._( 'Created By' ),
 
400
                                in_column: 2,
 
401
                                field: 'created_by',
 
402
                                layout_name: ALayoutIDs.USER,
 
403
                                api_class: (APIFactory.getAPIClass( 'APIUser' )),
 
404
                                multiple: true,
 
405
                                basic_search: true,
 
406
                                adv_search: false,
 
407
                                form_item_type: FormItemType.AWESOME_BOX} ),
 
408
 
 
409
                        new SearchField( {label: $.i18n._( 'Updated By' ),
 
410
                                in_column: 2,
 
411
                                field: 'updated_by',
 
412
                                layout_name: ALayoutIDs.USER,
 
413
                                api_class: (APIFactory.getAPIClass( 'APIUser' )),
 
414
                                multiple: true,
 
415
                                basic_search: true,
 
416
                                adv_search: false,
 
417
                                form_item_type: FormItemType.AWESOME_BOX} )];
 
418
        },
 
419
 
 
420
 
 
421
        onCustomContextClick: function( id ) {
 
422
                switch ( id ) {
 
423
                        case ContextMenuIconName.migrate_pay_codes:
 
424
                                ProgressBar.showOverlay();
 
425
                                this.onWizardClick();
 
426
                                break;
 
427
 
 
428
                }
 
429
        },
 
430
 
 
431
        onWizardClick: function() {
 
432
                var $this = this;
 
433
                IndexViewController.openWizard( 'PayCodeWizard', null, function(){
 
434
//                      $this.search();
 
435
                } );
 
436
        }
 
437
 
 
438
 
 
439
} );