(function () { 'use strict'; angular .module('app') .controller('ReportsController', reports); function reports($scope, $sce, $state, $modal, $http, reportsRepository, errorHandler, uiNotifications, $translate, localizationHelper) { var vm = this; vm.bookingsReportFileName = "Usage report"; vm.betaFormReportFileName = "Beta form export"; $scope.$on("$destroy", function () { vm.unsubscribe(); }); vm.createFileByBase64 = function (base64Content, fileName) { var source = "data:application/octet-stream;base64,"+base64Content; var link = document.createElement("a"); link.href = source; link.download = fileName + " " + this.getDateFormatForExcelFileName() + '.xlsx'; link.click(); }; vm.getDateFormatForExcelFileName = function () { var options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }; var dateTimeStr = new Date().toLocaleString('en-US', options); return dateTimeStr.replace(/\//g, '-').replace(/,/g, ''); }; //#region Booking Reports vm.bookingsFilter = { startDate: null, endDate: null } vm.exportToExcelBookingReport = function () { var data = {}; if(vm.bookingsFilter.startDate){data.startDate = vm.bookingsFilter.startDate}; if(vm.bookingsFilter.endDate){data.endDate = vm.bookingsFilter.endDate}; reportsRepository.generateBookingsReport(data).success(function (response) { vm.createFileByBase64(response, vm.bookingsReportFileName); }); } $('#bookingsDatefilter').daterangepicker({ autoUpdateInput: false, locale: { cancelLabel: 'Clear' } }); $('#bookingsDatefilter').on('apply.daterangepicker', function(ev, picker) { var startDate = picker.startDate.format('MM/DD/YYYY'); var endDate = picker.endDate.format('MM/DD/YYYY'); $(this).val(startDate + ' - ' + endDate); vm.bookingsFilter.startDate = startDate; vm.bookingsFilter.endDate = endDate; }); $('#bookingsDatefilter').on('cancel.daterangepicker', function(ev, picker) { $(this).val(''); $(this).data('daterangepicker').setStartDate(moment().format("MM-DD-YYYY")); $(this).data('daterangepicker').setEndDate(moment().format("MM-DD-YYYY")); vm.bookingsFilter.startDate = null; vm.bookingsFilter.endDate = null; }); //#endregion //#region Beta Form vm.betaFormFilter = { startDate: null, endDate: null } vm.exportToExcelForCareProviders = function () { var data = {}; if(vm.betaFormFilter.startDate){data.startDate = vm.betaFormFilter.startDate}; if(vm.betaFormFilter.endDate){data.endDate = vm.betaFormFilter.endDate}; reportsRepository.exportToExcelForCareProviders(data).success(function (response) { vm.createFileByBase64(response, vm.betaFormReportFileName); }); } vm.exportToExcelForUsers = function () { var data = {}; if(vm.betaFormFilter.startDate){data.startDate = vm.betaFormFilter.startDate}; if(vm.betaFormFilter.endDate){data.endDate = vm.betaFormFilter.endDate}; reportsRepository.exportToExcelForUsers(data).success(function (response) { vm.createFileByBase64(response, vm.betaFormReportFileName); }); } $('#betaFormDatefilter').daterangepicker({ autoUpdateInput: false, locale: { cancelLabel: 'Clear' } }); $('#betaFormDatefilter').on('apply.daterangepicker', function(ev, picker) { var startDate = picker.startDate.format('MM/DD/YYYY'); var endDate = picker.endDate.format('MM/DD/YYYY'); $(this).val(startDate + ' - ' + endDate); vm.betaFormFilter.startDate = startDate; vm.betaFormFilter.endDate = endDate; }); $('#betaFormDatefilter').on('cancel.daterangepicker', function(ev, picker) { $(this).val(''); $(this).data('daterangepicker').setStartDate(moment().format("MM-DD-YYYY")); $(this).data('daterangepicker').setEndDate(moment().format("MM-DD-YYYY")); vm.betaFormFilter.startDate = null; vm.betaFormFilter.endDate = null; }); //#endregion } // IoC container. reports.$inject = [ "$scope", "$sce", '$state', '$modal', '$http', "repository.reports", "appUtils.errorHandler", "appUtils.uiNotifications", "$translate", "helpers.localization" ]; })();