(function () {
    "use strict";

    angular.module('pos').controller('relatorioVendasDiaController', controller);
    controller.$inject = ['$scope', 'produtoService'];

    function controller($scope, produtoService) {
        $scope.state = {
            filtro: { ativo: false, },
            data: [],
            carregando: false,
        };
        $scope.showGrife = [];

        $scope.refresh = function () {
            debugger;
            $scope.state.carregando = true;

            if ($scope.state.filtro.de) {
                var emissaoDe = $scope.state.filtro.de;
                var emissaoDeNoTime = getDateWithoutTime(emissaoDe);
                $scope.state.filtro.de = emissaoDeNoTime;
            }

            if ($scope.state.filtro.ate) {
                var emissaoAte = $scope.state.filtro.ate;
                var emissaoAteNoTime = getDateWithoutTime(emissaoAte);
                $scope.state.filtro.ate = emissaoAteNoTime;
            }


            produtoService.getProdutoVendido($scope.state.filtro).then(
                function (response) {
                    $scope.state.data = response.Data;
                    $scope.state.carregando = false;
                },
                function (error) {
                    $scope.state.carregando = false;
                    $scope.$parent.toastr.error(error, 'Servico');
                }
                );

        }
        $scope.sumGrife = function (array, attribute, value) {
            var sum = 0;

            for (var i = 0; i < array.length; i++)
                if (array[i].Produto[attribute] == value)
                    sum += array[i].Total;

            return sum
        }

        $scope.sumColecao = function (array, grife, colecao) {
            var sum = 0;

            for (var i = 0; i < array.length; i++)
                if (array[i].Produto.Grife == grife && array[i].Produto.Colecao.Codigo == colecao)
                    sum += array[i].Total;

            return sum
        }

        $scope.sumGrupo = function (array, grife, colecao, grupo) {
            var sum = 0;

            for (var i = 0; i < array.length; i++)
                if (array[i].Produto.Grife == grife && array[i].Produto.Colecao.Codigo == colecao && array[i].Produto.Grupo == grupo)
                    sum += array[i].Total;

            return sum
        }

        $scope.get = function (array, attribute, value) {
            var returnArray = [];
            var total = 0;

            for (var i = 0; i < array.length; i++) {
                if (array[i].Produto[attribute] == value) {
                    returnArray.push(array[i]);
                    total += array[i].Total;
                }

            }

            return { array: returnArray, Total: total };
        }

        function getDateWithoutTime(date) {
            var dateObj = new Date(date);
            var dateWithoutTime = dateObj.toLocaleDateString();

            return dateWithoutTime;
        }

        var createList = function (Array) {

        }

        $scope.toggleFilter = function () {
            $scope.state.filtro.ativo = !$scope.state.filtro.ativo;
        }


        var initialize = function () {
            debugger;
            $scope.state.filtro.de = new Date((new Date()).setHours(0, 0, 0, 0));
            $scope.state.filtro.ate = null;

            if (($scope.$parent.config.TerminalVenda && !$scope.$parent.environment.perfil.IndicaGerente) || ($scope.$parent.config.GerenteVendaTerminal && $scope.$parent.environment.perfil.IndicaGerente))
                $scope.setTerminal();

            $scope.refresh();
        }

        $scope.changeStatus = function (item) {
            return item.show;
        }


        $scope.setTerminal = function () {
            $scope.state.filtro.terminal = $scope.$parent.config.Terminal.Codigo;
        };


        initialize();

    }

})();