app.controller("auxCentroCustosController", function ($scope, $modal, $rootScope, dataService, httpRequestFactory, notificationFactory, ngProgress) {
    
    $scope.lstExistentes = [];
    $scope.emExecucao = false;
    $scope.anoletivo = 0;
    $scope.anoEconomico = new Date().getFullYear();

    $scope.carregarAnosLetivos = function () {
        var anoAtual = new Date().getFullYear();
        $scope.lstAnosLetivos = [];
        for (i = 2015; i <= anoAtual + 1; i++) {
            var p2 = i + 1;
            var item = { anoLetivo: i, descricao: i + '/' + p2 }
            $scope.lstAnosLetivos.push(item);
        }
        
        $scope.selectedAnoLetivo = $scope.lstAnosLetivos[0];

    };

    $scope.selAnoLetivo = function (item) {
        $scope.selectedAnoLetivo = item;
    };
        

    $scope.carregarGuardados = function () {
        $scope.verEndPoint();

        if ($scope.lstAnosLetivos == null)
            $scope.carregarAnosLetivos();
        else if ($scope.lstAnosLetivos.length == 0)
            $scope.carregarAnosLetivos();

        var getSuccessCallback = function (data, status) {
            $scope.lstExistentes = angular.copy(data.ListaSelecionados);
            $scope.emExecucao = false;
        };

        var errorCallback = function (data, status, headers, config) {
            $scope.emExecucao = false;
        };
        var parametros = {};

        var anoletivo = $scope.selectedAnoLetivo.anoLetivo;
        $scope.anoEconomico = anoletivo + 1;

        $scope.emExecucao = true;
        httpRequestFactory.getData('../api/centrocustos/geral/' + anoletivo + '/' + $scope.anoEconomico, parametros).success(getSuccessCallback).error(errorCallback);

    };

    
    $scope.selRow = function (row) {
        $scope.selectedRow = row;
    }

    $scope.contaNovaSubstituir = "";

    $scope.substituirContaLocal = function () {
        if ($scope.selectedRow == null) {
            notificationFactory.error("Escolha a linha com a conta que deseja substituir")
            return;
        }

        var getSuccessCallback = function (data, status) {
            notificationFactory.success(data);

            $scope.emExecucao = false;
            ngProgress.complete();
            $scope.carregarGuardados();
        };

        var errorCallback = function (data, status, headers, config) {
            notificationFactory.error(data);
            $scope.emExecucao = false;
            ngProgress.reset();
            $scope.carregarGuardados();
        };

       
        $scope.emExecucao = true;
        var d = angular.copy($scope.selectedRow);
        d.CodNivel5 = $scope.contaNovaSubstituir;
        d.Ano = $scope.anoEconomico;
        var info = {
            ContaSubstituir: $scope.selectedRow.CodNivel5,
            Dados: d,
            AnoLetivo: $scope.selectedAnoLetivo.anoLetivo
        };

        httpRequestFactory.addData('../api/centrocustos/corrigeContas/geral', info).success(getSuccessCallback).error(errorCallback);
        ngProgress.start();
    };

    $scope.verEndPoint = function () {
        var getSuccessCallback = function (data, status) {

        };

        var errorCallback = function (data, status, headers, config) {
            notificationFactory.error(data);
        };

        var dados = {};

        httpRequestFactory.getData('../api/centrocustos/verificaEndpoint', dados).success(getSuccessCallback).error(errorCallback);
    };

    $scope.tipout = window.sessionStorage.getItem('tipout.cibe.inovar');

});