invoiceModule.controller('outputReconciliationOverviewController', ['$scope', '$log', '$document', '$uibModal', 'SweetAlert', '$translate',
    '$q', 'apiInterceptor', '$interval', 'region', '$timeout', '$location', 'vatOutputInvoiceManageService', 'enums', '$state',
    'loginContext', 'modalAdapterService', 'outputReconciliationService',
    function ($scope, $log, $document, $uibModal, SweetAlert, $translate, $q, apiInterceptor, $interval, region, $timeout,
        $location, vatOutputInvoiceManageService, enums, $state, loginContext, modalAdapterService, outputReconciliationService) {
        'use strict';
        //-----------------SearchOption定义-------------------------//start
        var isShowClearButton = true;
        $scope.searchEntity = {};
        $scope.searchOptions = {};
        $scope.searchOptions.Entity = {
            showClearButton: isShowClearButton,
            placeholder: $translate.instant('InputPlaceholder'),
            bindingOptions: {
                value: 'searchEntity.entityName'
            }
        };

        $scope.searchOptions.PeriodStart = {
            type: 'date',
            placeholder: $translate.instant("ChoosePlaceholder"),
            showClearButton: isShowClearButton,
            bindingOptions: {
                value: 'searchEntity.periodStart',
            },
            displayFormat: function (value) {
                return value.dateTimeToString('yyyyMMdd');
            }
        };

        $scope.searchOptions.PeriodEnd = {
            type: 'date',
            placeholder: $translate.instant("ChoosePlaceholder"),
            showClearButton: isShowClearButton,
            bindingOptions: {
                value: 'searchEntity.periodEnd',
            },
            displayFormat: function (value) {
                return value.dateTimeToString('yyyyMMdd');
            }
        };

        var searchService = {
            getIncomeAxList: function () {
                var incomeAxParams = {
                    QueryParam: $scope.searchEntity,
                    PagingParam: $scope.pagingOptions1,
                };

                outputReconciliationService.getIncomeAxList(incomeAxParams).success(function (data) {
                    $scope.pagingOptions1.totalItems = data.pageInfo && data.pageInfo.totalCount;
                    $scope.incomeAxReportGridDataSource = data.list;
                });
            },
            getTaxFaPiaoList: function () {
                var taxFapiaoParams = {
                    QueryParam: $scope.searchEntity,
                    PagingParam: $scope.pagingOptions2,
                };

                outputReconciliationService.getTaxFaPiaoList(taxFapiaoParams).success(function (data) {
                    $scope.pagingOptions2.totalItems = data.pageInfo && data.pageInfo.totalCount;
                    $scope.taxFapiaoGridDataSource = data.list;
                });
            }
        };

        $scope.searchEvent = function () {
            searchService.getIncomeAxList();
            searchService.getTaxFaPiaoList();
        };

        //-----------------SearchOption定义-------------------------//end

        //-----------------incomeAxReportOption定义-----------------//start
        $scope.incomeAxReportOption = {
            keyExpr: 'id',
            showRowLines: true,
            showColumnLines: true,
            showBorders: true,
            allowColumnResizing: true,
            columnAutoWidth: true,
            hoverStateEnabled: true,
            rowAlternationEnabled: true,
            allowColumnReordering: true,
            columnFixing: {
                enabled: true
            },
            paging: {
                enabled: false
            },
            columnChooser: {
                enabled: true
            },
            bindingOptions: {
                dataSource: 'incomeAxReportGridDataSource',
                height: 'incomeAxReportGridHeight'
            }
        };

        $scope.incomeAxReportOption.columns = [
            { caption: '', columns: [{ dataField: 'entity', caption: 'Entity' }] },
            {
                caption: 'Un-invoiced tax income till last mo. end', columns: [
                  { caption: '17%', dataField: 'a1' },
                  { caption: '6%', dataField: 'a2' },
                  { caption: '5%', dataField: 'a3' },
                  { caption: '2%', dataField: 'a4' }
                ]
            },
            {
                caption: 'Un-invoiced tax income this month', columns: [
                  { caption: '17%', dataField: 'b1' },
                  { caption: '6%', dataField: 'b2' },
                  { caption: '5%', dataField: 'b3' },
                  { caption: '2%', dataField: 'b4' }
                ]
            },
            {
                caption: 'Prev. un-invoiced income invoiced this mo', columns: [
                  { caption: '17%', dataField: 'c1' },
                  { caption: '6%', dataField: 'c2' },
                  { caption: '5%', dataField: 'c3' },
                  { caption: '2%', dataField: 'c4' }
                ]
            },
            {
                caption: 'Un-invoiced taxable income till this mo. end', columns: [
                  { caption: '17%', dataField: 'd1' },
                  { caption: '6%', dataField: 'd2' },
                  { caption: '5%', dataField: 'd3' },
                  { caption: '2%', dataField: 'd4' }
                ]
            },
            {
                caption: 'Filing Current month num', columns: [
                  { caption: 'Income', dataField: 'e1' },
                  { caption: 'Check', dataField: 'e2' }
                ]
            },
            { caption: 'Check Result', columns: [{ dataField: 'incomeCheck', caption: 'Income - Check' }] }
        ];

        //-----------------incomeAxReportOption定义-----------------//end

        //-----------------taxFapiaoOption定义----------------------//start
        $scope.taxFapiaoOption = {
            keyExpr: 'id',
            showRowLines: true,
            showColumnLines: true,
            showBorders: true,
            allowColumnResizing: true,
            columnAutoWidth: true,
            hoverStateEnabled: true,
            rowAlternationEnabled: true,
            allowColumnReordering: true,
            columnFixing: {
                enabled: true
            },
            paging: {
                enabled: false
            },
            columnChooser: {
                enabled: true
            },
            bindingOptions: {
                dataSource: 'taxFapiaoGridDataSource',
                height: 'taxFapiaoGridHeight'
            }
        };

        $scope.taxFapiaoOption.columns = [
            { caption: 'Entity', columns: [{ caption: '', dataField: 'entity' }] },
            { caption: 'Rate', columns: [{caption: '', dataField: 'rate'}] },
            { caption: 'Total issued tax amount', columns: [{ caption: 'a1', dataField: 'a1' }] },
            { caption: 'Total recorded but not issued tax amount', columns: [{ caption: 'a2', dataField: 'a2' }] },
            { caption: 'Reported un-issued tax amount', columns: [{ caption: 'a3', dataField: 'a3' }] },
            { caption: 'Un-issued maintenance fee tax amount', columns: [{ caption: 'a4', dataField: 'a4' }] },
            { caption: 'Total to-report tax amount', columns: [{ caption: 'A=a1+a2+a3+a4', dataField: 'a' }] },
            { caption: 'Last period reported tax amount total', columns: [{ caption: 'B-input', dataField: 'b' }] },
            { caption: 'This period to- report tax amount', columns: [{ caption: 'C=A-B', dataField: 'c' }] },
            { caption: 'This period to-report taxable revenue', columns: [{ caption: 'D=C/Rate', dataField: 'd' }] },
            { caption: 'Fapiao car and special tax amount', columns: [{ caption: 'e1', dataField: 'e1' }] },
            { caption: 'Fapiao general tax amount', columns: [{ caption: 'e2', dataField: 'e2' }] },
            { caption: 'This month fapiao total', columns: [{ caption: 'E=e1+e2', dataField: 'e' }] },
            { caption: 'This month un-issued tax amount', columns: [{ caption: 'F=C-E', dataField: 'f' }] },
            { caption: 'This month un-issued revenue total', columns: [{ caption: 'G=F/Rate', dataField: 'g' }] },
            { caption: 'Tax', columns: [{ caption: 'Total=G(17%)+G(6%)', dataField: 'Total' }] },
            { caption: 'Check Result', columns: [{ caption: 'Income-Tax', dataField: 'check' }] }
        ];

        //-----------------taxFapiaoOption定义----------------------//end

        //-----------------分页定义---------------------------------//end

        //设置dataGrid分页
        $scope.pagingOptions1 = {
            pageIndex: 1,  //当前页码
            totalItems: 100,  //总数据
            totalPages: 10,//总页数
            maxSize: 5, //分页数字的限制。
            pageSize: 10,  //每页多少条数据 
            pageSizeString: '20',
            firstPage: $translate.instant('PagingFirstPage'),
            previousPage: $translate.instant('PagingPreviousPage'),
            nextPage: $translate.instant('PagingNextPage'),
            lastPage: $translate.instant('PagingLastPage'),
        };

        //设置dataGrid分页
        $scope.pagingOptions2 = {
            pageIndex: 1,  //当前页码
            totalItems: 100,  //总数据
            totalPages: 10,//总页数
            maxSize: 5, //分页数字的限制。
            pageSize: 10,  //每页多少条数据 
            pageSizeString: '20',
            firstPage: $translate.instant('PagingFirstPage'),
            previousPage: $translate.instant('PagingPreviousPage'),
            nextPage: $translate.instant('PagingNextPage'),
            lastPage: $translate.instant('PagingLastPage'),
        };

        //分页里面的处理
        $scope.pagingService1 = {
            setPage: function (pageNo) {

            },
            //分页的时候改变数字
            pageIndexChanging: function () {
                if ($scope.pagingOptions1.pageIndex > $scope.pagingOptions1.totalPages) {
                    $scope.pagingOptions1.pageIndex = $scope.pagingOptions1.totalPages;
                }

                $log.log('Page changed to: ' + $scope.pagingOptions1.pageIndex);
                searchService.getIncomeAxList();
            },

            //每页显示的数据下拉改变
            pageSizeSelectionChanged: function () {
                $scope.pagingOptions1.pageSize = parseInt($scope.pagingOptions1.pageSizeString);
                searchService.getIncomeAxList();
            }
        };

        //分页里面的处理
        $scope.pagingService2 = {
            setPage: function (pageNo) {

            },
            //分页的时候改变数字
            pageIndexChanging: function () {
                if ($scope.pagingOptions2.pageIndex > $scope.pagingOptions2.totalPages) {
                    $scope.pagingOptions2.pageIndex = $scope.pagingOptions2.totalPages;
                }

                $log.log('Page changed to: ' + $scope.pagingOptions2.pageIndex);
                searchService.getTaxFaPiaoList();
            },

            //每页显示的数据下拉改变
            pageSizeSelectionChanged: function () {
                $scope.pagingOptions2.pageSize = parseInt($scope.pagingOptions2.pageSizeString);
                searchService.getTaxFaPiaoList();
            }
        };
        //-----------------分页定义---------------------------------//end

        $scope.$on('teslaOutputInvoiceMenuClick', function (event, data) {
            //设置表格高度
            $timeout(function () {
                $scope.setInvoiceGridHeight();
            }, 500);
        });

        (function () {
            searchService.getIncomeAxList();
            searchService.getTaxFaPiaoList();
            //设置表格高度
            $timeout(function () {
                $scope.setInvoiceGridHeight();
            }, 500);

        })();
    }]);