invoiceModule.controller('invoiceConfirmController', ['$log', '$scope', '$translate', '$document', '$uibModal', '$timeout',
    'vatOutputInvoiceManageService', 'SweetAlert', 'enums', '$state', 'loginContext', 'orgService',
    function($log, $scope, $translate, $document, $uibModal, $timeout, vatOutputInvoiceManageService, SweetAlert, enums, $state, loginContext, orgService) {
        'use strict';


        var mainModule = {


            main: function() {
                $scope.editModel = {};

                mainModule.watchCollection();
            },

            getBdInvoiceInventory: function() {
                if (!$scope.model.taxControlDiskID) {
                    return;
                }



                var dataParse = function(data) {
                    var obj = {};

                    if ($scope.model.type === 1) {
                        obj.title = $translate.instant('ManualIssuingConfirm');
                        obj.text = $translate.instant('BDInvoiceConfirmText');
                        obj.secondTitle = $translate.instant('BDInvoiceConfirmSecondText');
                        obj.invoiceType = $translate.instant('TslCarInvoiceVehicle');

                    } else {
                        obj.title = $translate.instant('GDIssuingConfirm');
                        obj.text = $translate.instant('GDInvoiceConfirmText');
                        obj.secondTitle = $translate.instant('GDInvoiceConfirmSecondText');
                        obj.invoiceType = $translate.instant('TslOutInvoiceSpecial');
                    }

                    obj.list = [];
                    obj.list.push({ name: $translate.instant('InvoiceTypeColon'), value: obj.invoiceType });
                    obj.list.push({ name: $translate.instant('InvoiceInventoryColon'), value: data.inventory });
                    obj.list.push({ name: $translate.instant('NextInvoiceCodeColon'), value: data.nextInvoiceCode });
                    obj.list.push({ name: $translate.instant('NextInvoiceNoColon'), value: data.nextInvoiceNo });


                    if (data.inventory === 0) {

                        obj.inventoryType = 1;

                    } else if (data.inventory < data.thresholdValue) {

                        obj.inventoryType = 2;
                    } else {

                        obj.inventoryType = 3;
                    }

                    return obj;
                };

                vatOutputInvoiceManageService.getBdInvoiceInventory($scope.model.taxControlDiskID).then(function(data) {
                    if (data && data.data && data.data.data) {
                        $scope.preIssueEntity = data.data.data;
                    } else {
                        $scope.preIssueEntity.inventory = 0;
                        $scope.preIssueEntity.thresholdValue = 20;
                    }

                    var editModel = dataParse($scope.preIssueEntity);

                    mainModule.open(editModel);
                });
            },

            open: function(editModel) {

                $scope.editModel = editModel;

                var modalInstance = $uibModal.open({
                    animation: false,
                    backdrop: false,
                    ariaLabelledBy: 'modal-title',
                    ariaDescribedBy: 'modal-body',
                    templateUrl: 'invoiceConfirmTemplate.html',
                    //windowClass: 'printInvoiceListModal',
                    size: 'invoice-confirm-size',
                    scope: $scope,
                    resolve: {
                        editModel: editModel
                    }
                });

                modalInstance.result.then(function(data) {
                    $scope.operateType = null;
                }, function() {
                    $scope.operateType = null;
                });


                $scope.confirm = function() {
                    if ($scope.onConfirm && $scope.editModel.inventoryType > 1) {
                        var obj = {

                            param: {},
                        };

                        $scope.onConfirm(obj);
                    }

                    modalInstance.close({});
                };

                // 取消
                $scope.cancel = function() {

                    modalInstance.dismiss('cancel');
                };
            },
            watchCollection: function() {
                $scope.$watch('operateType', function(newValue, oldValue) {
                    if (newValue) {

                        if (newValue === constant.Operation.Open) {
                            mainModule.getBdInvoiceInventory();
                        }
                    }
                });
            },

        };

        (function initialize() {
            mainModule.main();

        })();
    }
])