TimeTrex/interface/html5/views/payroll/remittance_wizard/PayrollRemittanceAgencyEventWizardStepSubmit.js

512 lines
16 KiB
JavaScript

import { WizardStep } from '@/global/widgets/wizard/WizardStep';
export class PayrollRemittanceAgencyEventWizardStepSubmit extends WizardStep {
constructor( options = {} ) {
_.defaults( options, {
name: 'summary',
api: null,
el: $( '.wizard.process_transactions_wizard' ),
report_paths: {
'FormW2ReportViewController': 'views/reports/formw2/FormW2ReportViewController'
}
} );
super( options );
}
init() {
this.render();
this.api = TTAPI.APIPayrollRemittanceAgencyEvent;
}
getPreviousStepName() {
return 'review';
}
getNextStepName() {
var retval = false;
switch ( this.getWizardObject().selected_remittance_agency_event.type_id ) {
//Canada
case 'T4':
case 'T4A':
retval = 'publish';
break;
//US
case 'FW2':
//Only have a publish step when its a federal W2, since it includes copies of the W2s for State/Local.
if ( this.getWizardObject().selected_remittance_agency_event.payroll_remittance_agency_obj.type_id == 10 ) { //10=Federal
retval = 'publish';
} else {
retval = false;
}
break;
case 'F1099NEC':
retval = 'publish';
break;
default:
retval = false;
break;
}
return retval;
}
isRequiredButtonsClicked() {
//Check to see if every button on this step has been clicked.
//$this.getWizardObject().selected_remittance_agency_event.type_id
if ( Object.keys( this.clicked_buttons ).length >= Object.keys( this.buttons ).length ) {
return true;
}
return false;
}
_render() {
this.setTitle( $.i18n._( 'Submit Verified Information' ) );
this.setInstructions( $.i18n._( 'Submit verified information to the agency' ) + ': ' );
var $this = this;
this.getWizardObject().getPayrollRemittanceAgencyEventById( this.getWizardObject().selected_remittance_agency_event_id, null, function( result ) {
$this.getWizardObject().selected_remittance_agency_event = result;
$this.getWizardObject().buildEventDataBlock( 'payroll_remittance_agency_event_wizard-review-event_details', result );
$this.initCardsBlock();
if ( $this.getWizardObject().selected_remittance_agency_event.status_id == 15 ) { //15=Full Service
switch ( $this.getWizardObject().selected_remittance_agency_event.type_id ) {
//Canada
case 'T4SD':
$this.addButton( 'paymentMethodIcon',
'payment_methods-35x35.png',
$.i18n._( 'Make Payment' ),
$.i18n._( 'Transmit payment with TimeTrex Payment Services automatically.' )
);
break;
case 'T4':
case 'T4A':
$this.addButton( 'eFileIcon',
'export_to_efile-35x35.png',
$.i18n._( 'eFile' ),
$.i18n._( 'Transmit forms to the CRA with TimeTrex Payment Services automatically.' )
);
break;
default:
break;
}
} else {
switch ( $this.getWizardObject().selected_remittance_agency_event.type_id ) {
//Canada
case 'T4':
case 'T4A':
$this.addButton( 'efileDownload',
'export_to_efile-35x35.png',
$.i18n._( 'Download eFile' ),
$.i18n._( 'Download the file to your computer for eFiling in the below step.' )
);
$this.addButton( 'eFileIcon',
'export_to_efile-35x35.png',
$.i18n._( 'Upload eFile' ),
$.i18n._( 'Navigate to the agency\'s website and upload the eFile downloaded in the above step.' )
);
break;
case 'ROE':
$this.addButton( 'efileDownload',
'export-35x35.png',
$.i18n._( 'Download eFile' ),
$.i18n._( 'Download the file to your computer for eFiling in the below step.' )
);
$this.addButton( 'eFileIcon',
'export_to_efile-35x35.png',
$.i18n._( 'Upload eFile' ),
$.i18n._( 'Navigate to the agency\'s website and upload the eFile downloaded in the above step.' )
);
break;
//US
case 'FW2':
$this.addButton( 'efileDownload',
'export_to_efile-35x35.png',
$.i18n._( 'Download eFile' ),
$.i18n._( 'Download the file to your computer for eFiling in the below step.' )
);
$this.addButton( 'eFileIcon',
'export_to_efile-35x35.png',
$.i18n._( 'Upload eFile' ),
$.i18n._( 'Navigate to the agency\'s website and upload the eFile downloaded in the above step.' )
);
break;
case 'F1099NEC':
$this.addButton( 'Government1099Nec',
'print-35x35.png',
$.i18n._( '1099-NEC Forms' ),
$.i18n._( 'Generate the government 1099-NEC forms to print and file manually.' )
);
break;
case 'F940':
$this.addButton( 'Government940',
'view_detail-35x35.png',
$.i18n._( '940 Form' ),
$.i18n._( 'Generate the 940 form to print and file manually.' )
);
$this.addButton( 'paymentMethodIcon',
'payment_methods-35x35.png',
$.i18n._( 'Make Payment' ),
$.i18n._( 'Navigate to the agency\'s website to make a payment if necessary.' )
);
break;
case 'F941':
$this.addButton( 'Government941',
'view_detail-35x35.png',
$.i18n._( '941 Form' ),
$.i18n._( 'Generate the 941 form to print and file manually.' )
);
$this.addButton( 'paymentMethodIcon',
'payment_methods-35x35.png',
$.i18n._( 'Make Payment' ),
$.i18n._( 'Navigate to the agency\'s website to make a payment if necessary.' )
);
break;
case 'PBJ':
$this.addButton( 'efileDownload',
'export-35x35.png',
$.i18n._( 'Download eFile' ),
$.i18n._( 'Download the file to your computer for eFiling in the below step.' )
);
$this.addButton( 'eFileIcon',
'export_to_efile-35x35.png',
$.i18n._( 'Upload eFile' ),
$.i18n._( 'Navigate to the agency\'s website and upload the eFile downloaded in the above step.' )
);
break;
case 'NEWHIRE':
$this.addButton( 'taxReportsIcon',
'tax_reports-35x35.png',
$.i18n._( 'Report' ),
$.i18n._( 'Generate the report to file manually.' )
);
$this.addButton( 'efileDownload',
'export-35x35.png',
$.i18n._( 'Download Excel/CSV File (Optional)' ),
$.i18n._( 'Download the Excel/CSV file to your computer for eFiling in the below step.' )
);
$this.addButton( 'eFileIcon',
'export_to_efile-35x35.png',
$.i18n._( 'File with Agency' ),
$.i18n._( 'Navigate to the agency\'s website to file the necessary information.' )
);
break;
//Generic
case 'AUDIT':
case 'REPORT':
// $this.addButton( 'taxReportsIcon',
// 'tax_reports-35x35.png',
// $.i18n._( 'Report' ),
// $.i18n._( 'Generate the report to file manually.' )
// );
$this.addButton( 'printIcon',
'print-35x35.png',
$.i18n._( 'Report' ),
$.i18n._( 'Generate the report in PDF format to file manually.' )
);
$this.addButton( 'exportExcelIcon',
'export_to_excel-35x35.png',
$.i18n._( 'Excel Report' ),
$.i18n._( 'Generate the report in Excel/CSV format to file manually.' )
);
$this.addButton( 'paymentMethodIcon',
'payment_methods-35x35.png',
$.i18n._( 'File Report' ),
$.i18n._( 'Navigate to the agency\'s website to file the report manually.' )
);
break;
case 'PAYMENT':
case 'PAYMENT+REPORT':
// $this.addButton( 'taxReportsIcon',
// 'tax_reports-35x35.png',
// $.i18n._( 'Report' ),
// $.i18n._( 'Generate the report to file manually.' )
// );
$this.addButton( 'printIcon',
'print-35x35.png',
$.i18n._( 'Report' ),
$.i18n._( 'Generate the report in PDF format to file manually.' )
);
$this.addButton( 'exportExcelIcon',
'export_to_excel-35x35.png',
$.i18n._( 'Excel Report' ),
$.i18n._( 'Generate the report in Excel/CSV format to file manually.' )
);
$this.addButton( 'paymentMethodIcon',
'payment_methods-35x35.png',
$.i18n._( 'Make Payment' ),
$.i18n._( 'Navigate to the agency\'s website to make a payment if necessary.' )
);
break;
default:
if ( $this.getWizardObject().selected_remittance_agency_event.payroll_remittance_agency_obj.country == 'US' &&
(
( $this.getWizardObject().selected_remittance_agency_event.payroll_remittance_agency_obj.type_id == 20 && $this.getWizardObject().selected_remittance_agency_event.payroll_remittance_agency_obj.parsed_agency_id.id == 20 ) //Type: 20=State, Agency ID: 20=Unemployment
||
$.inArray( 'UI', $this.getWizardObject().selected_remittance_agency_event.event_data.tax_codes ) !== -1 //CA, LA, NH, NY, MN combine UI with State tax filing.
)
) {
$this.addButton( 'efileDownload',
'export_to_efile-35x35.png',
$.i18n._( 'Download eFile' ),
$.i18n._( 'Download the file to your computer for eFiling in the below step.' )
);
$this.addButton( 'eFileIcon',
'export_to_efile-35x35.png',
$.i18n._( 'Upload eFile' ),
$.i18n._( 'Navigate to the agency\'s website and upload the eFile downloaded in the above step.' )
);
} else {
// $this.addButton( 'taxReportsIcon',
// 'tax_reports-35x35.png',
// $.i18n._( 'Report' ),
// $.i18n._( 'Generate the report to file manually.' )
// );
$this.addButton( 'printIcon',
'print-35x35.png',
$.i18n._( 'Report' ),
$.i18n._( 'Generate the report in PDF format to file manually.' )
);
$this.addButton( 'exportExcelIcon',
'export_to_excel-35x35.png',
$.i18n._( 'Excel Report' ),
$.i18n._( 'Generate the report in Excel/CSV format to file manually.' )
);
$this.addButton( 'paymentMethodIcon',
'payment_methods-35x35.png',
$.i18n._( 'Make Payment' ),
$.i18n._( 'Navigate to the agency\'s website to make a payment if necessary.' )
);
}
break;
}
}
$this.getWizardObject().enableButtons();
} );
}
_onNavigationClick( icon ) {
//When navigating away, link the wizard.
var $this = this;
if ( $this.getWizardObject().selected_remittance_agency_event.status_id == 15 ) { //15=Full Service
switch ( this.getWizardObject().selected_remittance_agency_event.type_id ) {
//Canada
case 'T4SD':
switch ( icon ) {
case 'paymentMethodIcon':
this.paymentServicesClick( 'payment' );
break;
}
break;
case 'T4':
case 'T4A':
switch ( icon ) {
case 'eFileIcon':
this.paymentServicesClick( 'efile_xml' );
break;
}
break;
}
} else {
switch ( this.getWizardObject().selected_remittance_agency_event.type_id ) {
//Canada
case 'T4':
switch ( icon ) {
case 'efileDownload':
Global.loadScript( 'views/reports/t4_summary/T4SummaryReportViewController', function() {
$this.getWizardObject().getReport( 'efile_xml' );
} );
break;
case 'eFileIcon':
//show report.
this.urlClick( 'file' );
break;
}
break;
case 'T4A':
switch ( icon ) {
case 'efileDownload':
Global.loadScript( 'views/reports/t4a_summary/T4ASummaryReportViewController', function() {
$this.getWizardObject().getReport( 'efile_xml' );
} );
break;
case 'eFileIcon':
//show report.
this.urlClick( 'file' );
break;
}
break;
case 'ROE':
switch ( icon ) {
case 'efileDownload':
$this.getWizardObject().getReport( 'efile_xml' );
break;
case 'eFileIcon':
//show report.
this.urlClick( 'file' );
break;
}
break;
//US
case 'FW2':
switch ( icon ) {
case 'efileDownload':
Global.loadScript( 'views/reports/formw2/FormW2ReportViewController', function() {
$this.getWizardObject().getReport( 'efile' );
} );
break;
case 'eFileIcon':
//show report.
this.urlClick( 'file' );
break;
}
break;
case 'F1099NEC':
switch ( icon ) {
case 'Government1099Nec':
Global.loadScript( 'views/reports/form1099/Form1099NecReportViewController', function() {
$this.getWizardObject().getReport( 'pdf_form_government' );
} );
break;
}
break;
case 'F940':
switch ( icon ) {
case 'Government940':
Global.loadScript( 'views/reports/form940/Form940ReportViewController', function() {
$this.getWizardObject().getReport( 'pdf_form' );
} );
break;
case 'paymentMethodIcon':
//show report.
this.urlClick( 'payment' );
break;
}
break;
case 'F941':
switch ( icon ) {
case 'Government941':
Global.loadScript( 'views/reports/form941/Form941ReportViewController', function() {
$this.getWizardObject().getReport( 'pdf_form' );
} );
break;
case 'paymentMethodIcon':
//show report.
this.urlClick( 'payment' );
break;
}
break;
case 'PBJ':
switch ( icon ) {
case 'efileDownload':
Global.loadScript( 'views/reports/payroll_export/PayrollExportReportViewController', function() {
$this.getWizardObject().getReport( 'payroll_export' );
} );
break;
case 'eFileIcon':
//show report.
this.urlClick( 'file' );
break;
}
break;
case 'NEWHIRE':
switch ( icon ) {
case 'taxReportsIcon_new_window':
this.getWizardObject().showHTMLReport( 'TaxSummary', true );
break;
case 'taxReportsIcon':
this.getWizardObject().showHTMLReport( 'TaxSummary' );
break;
case 'efileDownload':
$this.getWizardObject().getReport( 'csv' ); //Use CSV until we get full eFile support.
break;
case 'eFileIcon':
//show report.
this.urlClick( 'file' );
break;
}
break;
//Generic
default:
if ( $this.getWizardObject().selected_remittance_agency_event.payroll_remittance_agency_obj.type_id == 20 ) {
//US State Unemployment
switch ( icon ) {
case 'taxReportsIcon_new_window': //Show HTML report in new window
this.getWizardObject().showHTMLReport( 'USStateUnemployment', true );
break;
case 'taxReportsIcon': //Show HTML report
this.getWizardObject().showHTMLReport( 'USStateUnemployment' );
break;
case 'exportExcelIcon': //Show Excel Report
$this.getWizardObject().getReport( 'csv' ); //Use CSV until we get full eFile support.
break;
case 'printIcon': //Show PDF Report
$this.getWizardObject().getReport( 'pdf' ); //Use CSV until we get full eFile support.
break;
case 'efileDownload':
Global.loadScript( 'views/reports/us_state_unemployment/USStateUnemploymentReportViewController', function() {
$this.getWizardObject().getReport( 'efile' );
} );
break;
case 'eFileIcon':
this.urlClick( 'file' ); //Redirect to 3rd party page.
break;
case 'paymentMethodIcon':
this.urlClick( 'payment' ); //Redirect to 3rd party page.
break;
}
} else {
switch ( icon ) {
case 'taxReportsIcon_new_window': //Show HTML report in new window
this.getWizardObject().showHTMLReport( 'TaxSummary', true );
break;
case 'taxReportsIcon': //Show HTML report
this.getWizardObject().showHTMLReport( 'TaxSummary' );
break;
case 'exportExcelIcon': //Show Excel Report
$this.getWizardObject().getReport( 'csv' ); //Use CSV until we get full eFile support.
break;
case 'printIcon': //Show PDF Report
$this.getWizardObject().getReport( 'pdf' ); //Use CSV until we get full eFile support.
break;
case 'efileDownload':
Global.loadScript( 'views/reports/tax_summary/TaxSummaryReportViewController', function() {
$this.getWizardObject().getReport( 'efile' );
} );
break;
case 'eFileIcon':
this.urlClick( 'file' ); //Redirect to 3rd party page.
break;
case 'paymentMethodIcon':
this.urlClick( 'payment' ); //Redirect to 3rd party page.
break;
}
}
break;
}
}
}
}