TimeTrex Community Edition v16.2.0
This commit is contained in:
@@ -0,0 +1,347 @@
|
||||
import '@/global/widgets/formula_builder/FormulaBuilder.js';
|
||||
|
||||
export class PayStubEntryAccountViewController extends BaseViewController {
|
||||
constructor( options = {} ) {
|
||||
_.defaults( options, {
|
||||
el: '#pay_stub_entry_account_view_container',
|
||||
|
||||
type_array: null,
|
||||
status_array: null,
|
||||
accrual_type_array: null,
|
||||
|
||||
api_general_ledger_summary_report: null
|
||||
} );
|
||||
|
||||
super( options );
|
||||
}
|
||||
|
||||
init( options ) {
|
||||
//this._super('initialize', options );
|
||||
this.edit_view_tpl = 'PayStubEntryAccountEditView.html';
|
||||
this.permission_id = 'pay_stub_account';
|
||||
this.viewId = 'PayStubEntryAccount';
|
||||
this.script_name = 'PayStubEntryAccountView';
|
||||
this.table_name_key = 'pay_stub_entry_account';
|
||||
this.context_menu_name = $.i18n._( 'Pay Stub Accounts' );
|
||||
this.navigation_label = $.i18n._( 'Pay Stub Account' );
|
||||
this.api = TTAPI.APIPayStubEntryAccount;
|
||||
this.api_general_ledger_summary_report = TTAPI.APIGeneralLedgerSummaryReport;
|
||||
|
||||
this.render();
|
||||
this.buildContextMenu();
|
||||
|
||||
this.initData();
|
||||
}
|
||||
|
||||
initOptions() {
|
||||
var options = [
|
||||
{ option_name: 'type', api: this.api },
|
||||
{ option_name: 'status', api: this.api },
|
||||
{ option_name: 'accrual_type', api: this.api },
|
||||
];
|
||||
|
||||
this.initDropDownOptions( options );
|
||||
}
|
||||
|
||||
onFormItemChange( target, doNotValidate ) {
|
||||
this.setIsChanged( target );
|
||||
this.setMassEditingFieldsWhenFormChange( target );
|
||||
|
||||
var key = target.getField();
|
||||
var c_value = target.getValue();
|
||||
|
||||
this.current_edit_record[key] = c_value;
|
||||
|
||||
if ( key === 'type_id' ) {
|
||||
this.onTypeChange();
|
||||
}
|
||||
if ( key === 'accrual_pay_stub_entry_account_id' ) {
|
||||
this.onAccrualPayStubEntryAccountChange();
|
||||
}
|
||||
|
||||
if ( !doNotValidate ) {
|
||||
this.validate();
|
||||
}
|
||||
}
|
||||
|
||||
setEditViewDataDone() {
|
||||
super.setEditViewDataDone();
|
||||
this.onTypeChange();
|
||||
this.onAccrualPayStubEntryAccountChange();
|
||||
}
|
||||
|
||||
onTypeChange() {
|
||||
if ( this.current_edit_record.type_id == 50 ) {
|
||||
this.detachElement( 'accrual_pay_stub_entry_account_id' );
|
||||
this.detachElement( 'accrual_type_id' );
|
||||
|
||||
} else {
|
||||
this.attachElement( 'accrual_pay_stub_entry_account_id' );
|
||||
this.onAccrualPayStubEntryAccountChange();
|
||||
}
|
||||
|
||||
this.editFieldResize();
|
||||
}
|
||||
|
||||
onAccrualPayStubEntryAccountChange() {
|
||||
if ( TTUUID.isUUID( this.current_edit_record.accrual_pay_stub_entry_account_id ) && this.current_edit_record.accrual_pay_stub_entry_account_id != TTUUID.zero_id ) {
|
||||
this.attachElement( 'accrual_type_id' );
|
||||
} else {
|
||||
this.detachElement( 'accrual_type_id' );
|
||||
}
|
||||
|
||||
this.editFieldResize();
|
||||
}
|
||||
|
||||
getCustomContextMenuModel() {
|
||||
var context_menu_model = {
|
||||
exclude: [],
|
||||
include: [
|
||||
{
|
||||
label: '', //Empty label. vue_icon is displayed instead of text.
|
||||
id: 'other_header',
|
||||
menu_align: 'right',
|
||||
action_group: 'other',
|
||||
action_group_header: true,
|
||||
vue_icon: 'tticon tticon-more_vert_black_24dp',
|
||||
},
|
||||
{
|
||||
label: $.i18n._( 'Migrate PS Accounts' ),
|
||||
id: 'migrate_pay_stub_account',
|
||||
menu_align: 'right',
|
||||
action_group: 'other'
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
return context_menu_model;
|
||||
}
|
||||
|
||||
onCustomContextClick( id ) {
|
||||
switch ( id ) {
|
||||
case 'migrate_pay_stub_account':
|
||||
this.onWizardClick();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
onWizardClick() {
|
||||
var $this = this;
|
||||
IndexViewController.openWizard( 'PayStubAccountWizard', null, function() {
|
||||
} );
|
||||
}
|
||||
|
||||
buildEditViewUI() {
|
||||
|
||||
super.buildEditViewUI();
|
||||
|
||||
var $this = this;
|
||||
|
||||
var tab_model = {
|
||||
'tab_pay_stub_account': { 'label': $.i18n._( 'Pay Stub Account' ) },
|
||||
'tab_audit': true,
|
||||
};
|
||||
this.setTabModel( tab_model );
|
||||
|
||||
this.navigation.AComboBox( {
|
||||
api_class: TTAPI.APIPayStubEntryAccount,
|
||||
id: this.script_name + '_navigation',
|
||||
allow_multiple_selection: false,
|
||||
layout_name: 'global_PayStubAccount',
|
||||
navigation_mode: true,
|
||||
show_search_inputs: true
|
||||
} );
|
||||
|
||||
this.setNavigation();
|
||||
|
||||
//Tab 0 start
|
||||
|
||||
var tab_pay_stub_account = this.edit_view_tab.find( '#tab_pay_stub_account' );
|
||||
|
||||
var tab_pay_stub_account_column1 = tab_pay_stub_account.find( '.first-column' );
|
||||
|
||||
this.edit_view_tabs[0] = [];
|
||||
|
||||
this.edit_view_tabs[0].push( tab_pay_stub_account_column1 );
|
||||
|
||||
//Status
|
||||
|
||||
var form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
|
||||
form_item_input.TComboBox( { field: 'status_id', set_empty: false } );
|
||||
form_item_input.setSourceData( $this.status_array );
|
||||
this.addEditFieldToColumn( $.i18n._( 'Status' ), form_item_input, tab_pay_stub_account_column1, '' );
|
||||
|
||||
//Type
|
||||
|
||||
form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
|
||||
form_item_input.TComboBox( { field: 'type_id', set_empty: false } );
|
||||
form_item_input.setSourceData( $this.type_array );
|
||||
this.addEditFieldToColumn( $.i18n._( 'Type' ), form_item_input, tab_pay_stub_account_column1 );
|
||||
|
||||
//Name
|
||||
form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
|
||||
|
||||
form_item_input.TTextInput( { field: 'name', width: '100%' } );
|
||||
this.addEditFieldToColumn( $.i18n._( 'Name' ), form_item_input, tab_pay_stub_account_column1 );
|
||||
|
||||
form_item_input.parent().width( '45%' );
|
||||
|
||||
//Order
|
||||
|
||||
form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
|
||||
|
||||
form_item_input.TTextInput( { field: 'ps_order', width: 359 } );
|
||||
this.addEditFieldToColumn( $.i18n._( 'Order' ), form_item_input, tab_pay_stub_account_column1 );
|
||||
|
||||
//Accrual
|
||||
|
||||
var args = {};
|
||||
var filter_data = {};
|
||||
filter_data.type_id = [50, 80];
|
||||
args.filter_data = filter_data;
|
||||
|
||||
form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
|
||||
form_item_input.AComboBox( {
|
||||
api_class: TTAPI.APIPayStubEntryAccount,
|
||||
allow_multiple_selection: false,
|
||||
layout_name: 'global_PayStubAccount',
|
||||
show_search_inputs: true,
|
||||
set_empty: true,
|
||||
field: 'accrual_pay_stub_entry_account_id'
|
||||
|
||||
} );
|
||||
|
||||
form_item_input.setDefaultArgs( args );
|
||||
this.addEditFieldToColumn( $.i18n._( 'Accrual' ), form_item_input, tab_pay_stub_account_column1, '', null, true );
|
||||
// Accrual Type
|
||||
|
||||
form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
|
||||
form_item_input.TComboBox( { field: 'accrual_type_id', set_empty: false } );
|
||||
form_item_input.setSourceData( $this.accrual_type_array );
|
||||
this.addEditFieldToColumn( $.i18n._( 'Accrual Type' ), form_item_input, tab_pay_stub_account_column1, '', null, true );
|
||||
|
||||
// Debit Account Formula builder
|
||||
form_item_input = Global.loadWidgetByName( FormItemType.FORMULA_BUILDER );
|
||||
form_item_input.FormulaBuilder( {
|
||||
field: 'debit_account', width: '350px', field_type: 'text_input', text_label: $.i18n._('Variables'), onFormulaBtnClick: Global.debounce( function() {
|
||||
$this.api_general_ledger_summary_report.getOptions( 'debit_credit_variables', {
|
||||
onResult: function( fun_result ) {
|
||||
var fun_res_data = fun_result.getResult();
|
||||
|
||||
var default_args = {};
|
||||
default_args.do_not_validate = true;
|
||||
default_args.do_not_show_functions = true;
|
||||
default_args.variables = Global.buildRecordArray( fun_res_data );
|
||||
default_args.formula = $this.current_edit_record.debit_account;
|
||||
default_args.current_edit_record = Global.clone( $this.current_edit_record );
|
||||
default_args.api = $this.api_general_ledger_summary_report;
|
||||
|
||||
IndexViewController.openWizard( 'FormulaBuilderWizard', default_args, function( val ) {
|
||||
$this.current_edit_record.debit_account = val;
|
||||
$this.edit_view_ui_dic.debit_account.setValue( val );
|
||||
} );
|
||||
|
||||
}
|
||||
} );
|
||||
} )
|
||||
} );
|
||||
|
||||
$this.addEditFieldToColumn( $.i18n._( 'Debit Account' ), form_item_input, tab_pay_stub_account_column1, '', null, true, true );
|
||||
|
||||
// Credit Account Formula builder
|
||||
form_item_input = Global.loadWidgetByName( FormItemType.FORMULA_BUILDER );
|
||||
form_item_input.FormulaBuilder( {
|
||||
field: 'credit_account', width: '350px', field_type: 'text_input', text_label: $.i18n._('Variables'), onFormulaBtnClick: Global.debounce( function() {
|
||||
$this.api_general_ledger_summary_report.getOptions( 'debit_credit_variables', {
|
||||
onResult: function( fun_result ) {
|
||||
var fun_res_data = fun_result.getResult();
|
||||
|
||||
var default_args = {};
|
||||
default_args.do_not_validate = true;
|
||||
default_args.do_not_show_functions = true;
|
||||
default_args.variables = Global.buildRecordArray( fun_res_data );
|
||||
default_args.formula = $this.current_edit_record.credit_account;
|
||||
default_args.current_edit_record = Global.clone( $this.current_edit_record );
|
||||
default_args.api = $this.api_general_ledger_summary_report;
|
||||
|
||||
IndexViewController.openWizard( 'FormulaBuilderWizard', default_args, function( val ) {
|
||||
$this.current_edit_record.credit_account = val;
|
||||
$this.edit_view_ui_dic.credit_account.setValue( val );
|
||||
} );
|
||||
|
||||
}
|
||||
} );
|
||||
} )
|
||||
} );
|
||||
|
||||
$this.addEditFieldToColumn( $.i18n._( 'Credit Account' ), form_item_input, tab_pay_stub_account_column1, '', null, true, true );
|
||||
}
|
||||
|
||||
buildSearchFields() {
|
||||
|
||||
super.buildSearchFields();
|
||||
this.search_fields = [
|
||||
|
||||
new SearchField( {
|
||||
label: $.i18n._( 'Name' ),
|
||||
in_column: 1,
|
||||
field: 'name',
|
||||
multiple: true,
|
||||
basic_search: true,
|
||||
adv_search: false,
|
||||
form_item_type: FormItemType.TEXT_INPUT
|
||||
} ),
|
||||
new SearchField( {
|
||||
label: $.i18n._( 'Type' ),
|
||||
in_column: 1,
|
||||
field: 'type_id',
|
||||
multiple: true,
|
||||
basic_search: true,
|
||||
layout_name: 'global_option_column',
|
||||
form_item_type: FormItemType.AWESOME_BOX
|
||||
} ),
|
||||
new SearchField( {
|
||||
label: $.i18n._( 'Debit Account' ),
|
||||
in_column: 1,
|
||||
field: 'debit_account',
|
||||
multiple: true,
|
||||
basic_search: true,
|
||||
adv_search: false,
|
||||
form_item_type: FormItemType.TEXT_INPUT
|
||||
} ),
|
||||
new SearchField( {
|
||||
label: $.i18n._( 'Credit Account' ),
|
||||
in_column: 1,
|
||||
field: 'credit_account',
|
||||
multiple: true,
|
||||
basic_search: true,
|
||||
adv_search: false,
|
||||
form_item_type: FormItemType.TEXT_INPUT
|
||||
} ),
|
||||
new SearchField( {
|
||||
label: $.i18n._( 'Created By' ),
|
||||
in_column: 2,
|
||||
field: 'created_by',
|
||||
layout_name: 'global_user',
|
||||
api_class: TTAPI.APIUser,
|
||||
multiple: true,
|
||||
basic_search: true,
|
||||
adv_search: false,
|
||||
form_item_type: FormItemType.AWESOME_BOX
|
||||
} ),
|
||||
new SearchField( {
|
||||
label: $.i18n._( 'Updated By' ),
|
||||
in_column: 2,
|
||||
field: 'updated_by',
|
||||
layout_name: 'global_user',
|
||||
api_class: TTAPI.APIUser,
|
||||
multiple: true,
|
||||
basic_search: true,
|
||||
adv_search: false,
|
||||
form_item_type: FormItemType.AWESOME_BOX
|
||||
} )
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user