(function () {
    "use strict";

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

    function controller($scope, $window, omnidashboardService) {
        $scope.$parent.initializeLayout('OMNI');

        $scope.state = {
            data: {}
        }
        $scope.RetiradosLocalXOutrasLojas = {
            data: [],
            carregando: true,
            vazio: false,
            count: 0,
            filtro: {}
        };
        $scope.percentualVendasOMNI = {
            data: [],
            carregando: true,
            vazio: false,
            count: 0,
            filtro: {}
        };

        $scope.GetChartRetiradosLocalXOutrasLojas = function () {
            omnidashboardService.GetChartRetiradosLocalXOutrasLojas().then(
                function (response) {
                    $scope.RetiradosLocalXOutrasLojas.data = response.Data;
                    $scope.RetiradosLocalXOutrasLojas.carregando = false;
                    $scope.RetiradosLocalXOutrasLojas.vazio = response.Data.length == 0;
                    $scope.$parent.tools.buildChart('#RetiradosLocalXOutrasLojaschart', 'Retirados InHouse x OffHouse', $scope.RetiradosLocalXOutrasLojas.data);
                },
                function (error) {
                    $scope.$parent.toastr.error("Erro encontrado ao buscar dados do servidor!", 'Serviço');
                }

                );
        }

        $scope.getDataChartpercentualVendasOMNI = function () {
            $scope.percentualVendasOMNI.carregando = true;
            $scope.percentualVendasOMNI.vazio = false;
            omnidashboardService
                .GetDataChartPercentualVendasOMNI($scope.filtro)
                .then(
                    function (response) {
                        if (response.Status < 0)
                            console.error(response.Message);
                        else
                            angular.copy(angular.fromJson(response.Data), $scope.percentualVendasOMNI.data);

                        $scope.percentualVendasOMNI.carregando = false;
                        $scope.percentualVendasOMNI.vazio = ($scope.percentualVendasOMNI.data.length == 0);

                        $scope.$parent.tools.buildChart('#perentualvendasOMNI-chart', null, $scope.percentualVendasOMNI.data);
                    },
                    function (err) {
                        console.error(err);
                        $scope.percentualVendasOMNI.carregando = false;
                        $scope.percentualVendasOMNI.vazio = ($scope.percentualVendasOMNI.data.length == 0);
                    }
                );
        }

        $scope.GetTotais = function () {

            omnidashboardService.GetTotais().then(
                function (response) {
                    $scope.state.data = response.Data;
                },
                function (error) {
                    $scope.$parent.toastr.error("Erro encontrado ao buscar dados do servidor!", 'Serviço');
                }

                );
        }

        $scope.initialize = function () {
            $scope.getDataChartpercentualVendasOMNI();
            $scope.GetChartRetiradosLocalXOutrasLojas();
            $scope.GetTotais();
        }

        $scope.initialize();

    }

})();
