(function () {
    "use strict";

    angular.module('pos').controller('gestaoController', controller);
    controller.$inject = ["$scope", "$window"];

    function controller($scope, $window) {
        $scope.$parent.initializeLayout('Gestão da Loja');

        $scope.state = {
            estoque: [
                { titulo: 'Entradas de Mercadorias', materialIcon: 'flight_land', state: 'state-entrada', descricao: 'Gerenciamento de notas fiscais de entrada e devoluções de saida.', visivelEstoquista: true },
                { titulo: 'Saídas de Mercadorias', materialIcon: 'flight_takeoff', state: 'state-saida', descricao: 'Gerenciamento de notas fiscais de entrada e devoluções de entrada.', visivelEstoquista: true },
                { titulo: 'Estoque e Trânsito', materialIcon: 'view_quilt', state: 'state-produto-gerente', descricao: 'Gerenciamento de produtos em trânsito e estoque', visivelEstoquista: true },
                { titulo: 'Inventário', materialIcon: 'group_work', state: 'state-inventario', descricao: 'Lançamento de inventário de mercadorias.', visivelEstoquista: true },
                { titulo: 'Notas Fiscais', materialIcon: 'memory', state: 'state-nota-fiscal', descricao: 'Notas fiscais eletrônicas e de movimentações fiscais.', visivelEstoquista: true },
                { titulo: 'Reserva de Pré-Venda', materialIcon: 'event_note', state: 'state-reserva', descricao: 'Reserva de pré-venda de produtos.' },
                { titulo: 'Reserva de Consignação', materialIcon: 'account_balance_wallet', state: 'state-consignacao', descricao: 'Reserva de consignação de produtos.' },
            ],
            config: [
                { titulo: 'Configurações', materialIcon: 'settings', state: 'state-config', descricao: 'Área de configuração e parametrização do sistema.', allowed: true },
                { titulo: 'Operações de Venda', materialIcon: 'settings_applications', state: 'state-operacao-venda', descricao: 'Gerenciamento e manutenção de operações de venda.', allowed: true },
                { titulo: 'Vendedores', materialIcon: 'account_box', state: 'state-vendedor', descricao: 'Acesso ao cadastro de vendedores.', allowed: true},
                { titulo: 'Realocar Vendedores', materialIcon: 'account_box', state: 'state-vendedor-realocar', descricao: 'Gerencia a realocação de vendedores volante.', allowed: true},
                { titulo: 'Fechamento de Caixas da Loja', materialIcon: 'account_box', state: 'state-fechamento-caixa', descricao: 'Fechamento dos caixas da loja.', allowed: $scope.$parent.config.UsaPOS },
            ],
            relatorios: [
                { titulo: 'Evolução de Vendas', class: 'responsiveHidden', materialIcon: 'equalizer', state: 'state-evolucao-de-venda', descricao: 'Indicador de evolução de vendas nos últimos 3 anos com top 5 produtos e top 5 vendedores.', allowed: $scope.$parent.config.UsaPOS },
                { titulo: 'Evolução de Vendas por Vendedor', class: 'responsiveHidden', materialIcon: 'equalizer', state: 'state-evolucao-de-venda-por-vendedor', descricao: 'Indicador de evolução de vendas no ano.', allowed: $scope.$parent.config.UsaPOS },
                { titulo: 'Ranking de Vendedores', class: 'responsiveHidden', materialIcon: 'equalizer', state: 'state-ranking-de-vendedor', descricao: 'Indicador de ranking de vendedores por determinado período e percentual de representatividade.', allowed: $scope.$parent.config.UsaPOS },
                { titulo: 'Ranking de Produtos', class: 'responsiveHidden', materialIcon: 'equalizer', state: 'state-top-10-de-produto', descricao: 'Indicador de ranking de produtos por determinado período e percentual de representatividade.', allowed: $scope.$parent.config.UsaPOS },
                { titulo: 'Consolidado por Vendedor', materialIcon: 'equalizer', state: 'state-consolidado-vendedor', descricao: 'Indicador de vendas por vendedor.', allowed: true },
                { titulo: 'Notas em Contingência', class: 'responsiveHidden', materialIcon: 'equalizer', state: 'state-nota-contingencia', descricao: 'Relatório de notas em contingênciamento.', allowed: $scope.$parent.config.UsaPOS },
                { titulo: 'Pagamentos por Tipo', materialIcon: 'equalizer', state: 'state-pagamento-por-tipo-gestao', descricao: 'Relatório de Pagamentos por Tipo.', allowed: true },
                { titulo: 'Consulta de clientes', class: 'responsiveHidden', materialIcon: 'equalizer', state: 'state-cliente-consulta', descricao: 'Relatório de Consulta de Clientes.', allowed: true },
                { titulo: 'Vendas por Vendedor', materialIcon: 'equalizer', state: 'state-venda-por-vendedor-gestao', descricao: 'Relatório de Vendas por Vendedor.', allowed: $scope.$parent.config.UsaPOS },
                { titulo: 'Vendas por Linha', class: 'responsiveHidden', materialIcon: 'equalizer', state: 'state-venda-por-linha-gestao', descricao: 'Relatório de Vendas por Linha.', allowed: $scope.$parent.config.RelatorioLinha && $scope.$parent.config.UsaPOS },
                { titulo: 'Resumo do Caixa', materialIcon: 'equalizer', state: 'state-resumo-caixa', descricao: 'Relatório que exibe o resumo diário do caixa.', allowed: $scope.$parent.config.UsaPOS },
                { titulo: 'Pagamento por Administradora', class: 'responsiveHidden',materialIcon: 'equalizer', state: 'state-pagamento-por-adm-de-cartao-gestao', descricao: 'Relatório de Pagamento por Administradora.', allowed: true }
            ]
        };

        $scope.searchFocus = function () {
            $('input[ng-model=searchkey]').focus();
        }

        $scope.checkProfileNotEstoquista = function () {
            debugger;
            if ($scope.environment.perfil.IndicaGerente && !$scope.environment.perfil.IndicaOperador && !$scope.environment.perfil.IndicaEspecial)
                return false
            else
                return true
        };

        $scope.historyBack = function () {
            $window.history.back();
        };

        $scope.initialize = function () {
        };

        $scope.initialize();

    }

})();