(function (app) {
    app
        .controller('listar', function ($scope, $rootScope, spsservice, SweetAlert) {     
            
            $rootScope.menuActivo();


            $scope.obtenerAsuntos = function(){

                $scope.asuntosFiltroDesde = null;
                $scope.asuntosFiltroHasta = null;


                var getList = spsservice.get_type('lists/getbytitle', 'Asuntos', "/Items?$select=OtraComuna,Author/Title,Editor/Title,FechaReunion,Participantes,Presupuesto,Gastado,Diferencia,ID,Title,Operacion,Ambito,Programa,Comuna&$orderby=ID desc" + $rootScope.filterOperacion + "&$expand=Author,Editor");
                getList.then(function (resp_sup) {
                    $rootScope.Asuntos = resp_sup.d.results;               
                });
            }

      


            $scope.filtrarAsuntos = function(){
                
                
                $scope.asuntosFiltroDesde;
                $scope.asuntosFiltroHasta;

              

                debugger;

                if($scope.asuntosFiltroDesde){

                    let _filterDate = "";
                    if($scope.asuntosFiltroHasta){

                        _filterDate = " and (FechaReunion ge datetime'" + $scope.asuntosFiltroDesde.localeFormat("yyyy-MM-ddT00:00:00Z") + "' and FechaReunion le datetime'" + $scope.asuntosFiltroHasta.localeFormat("yyyy-MM-ddT23:59:59Z") + "')";

                    }
                    else{
                        _filterDate = " and (FechaReunion ge datetime'" + $scope.asuntosFiltroDesde.localeFormat("yyyy-MM-ddT00:00:00Z") + "')";

                    }


                    
                    
                   
                    spsservice.get_type('lists/getbytitle', 'Asuntos', "/Items?$select=OtraComuna,Author/Title,Editor/Title,FechaReunion,Participantes,Presupuesto,Gastado,Diferencia,ID,Title,Operacion,Ambito,Programa,Comuna&$orderby=ID desc" + $rootScope.filterOperacion + _filterDate + "&$expand=Author,Editor").then(function (resp_sup) {
                        $rootScope.Asuntos = resp_sup.d.results;      
                    });

                }

               

            }


          

            //Inicializar variable para asignar zona por defecto al tener solo 1 en filtro          
            $scope.filtro = new Object();
            if ($rootScope.zonasUsuario.length == 1) {
                $scope.filtro.Operacion = $rootScope.zonasUsuario[0].zona;

                //Obtener comunas
                if($rootScope.comunasUsuario == null){
                    spsservice.get_type('lists/getbytitle', 'ZonasComunas', "/Items?$select=ID,Zona,Comuna&$top=5000&$filter=Zona eq '" + $rootScope.zonasUsuario[0].zona + "'&$orderby=Comuna asc").then(function (_zonascomunasResponse) {
                        debugger;
                        if (_zonascomunasResponse.d.results.length > 0) {
                            $rootScope.comunasUsuario = _zonascomunasResponse.d.results;
                            $rootScope.comunasUsuario.push({
                                "Comuna": "Otra",
                                "Zona": ""
                            });

                            //Setear 
                            $rootScope.comunasUsuarioData = $rootScope.comunasUsuario.filter(x => x.Zona == $scope.filtro.Operacion || x.Zona == "");
                        }
                    });

                }
                else{
                    $rootScope.comunasUsuarioData = $rootScope.comunasUsuario.filter(x => x.Zona == $scope.filtro.Operacion || x.Zona == "");
                }                
            }


            $scope.obtenerProgramas = function (ambito) {
                var _ambito = $scope.ambitos.filter(x => x.Valor == ambito);
                $rootScope.programas = $rootScope.parametros.filter(x => x.Title == 'Programa' && x.RelacionadoId == _ambito[0].ID);


                //$rootScope.programas = $rootScope.parametros.filter(x => x.Title == 'Programa' && x.RelacionadoId == ambito);
            }


            $scope.eliminarStakeholder = function(stakeholderid){
                SweetAlert.swal({
                    title: "¿Está seguro(a) de eliminar el Stakeholder?",
                    text: "No debe actualizar la página hasta que el proceso haya finalizado.",
                    type: "warning",
                    showCancelButton: true,
                    confirmButtonColor: "#16AB39",
                    confirmButtonText: "Si, eliminar Stakeholder!",
                    cancelButtonText: "Cancelar",
                    closeOnConfirm: true
                },
                function (isConfirm) {
                    if (isConfirm) {
                        spsservice.get_type('lists/getbytitle', 'ActividadesStakeholders', "/Items?select=ID&$filter=StakeholderId eq  " + stakeholderid).then(function (resp_sup) {                    
                            if(resp_sup.d.results.length == 0){
                               spsservice.delete_data("lists/getbytitle('Stakeholder')/items(" + stakeholderid + ")").then(function () {
                                   $rootScope.ObtenerStackeholders();   
                                   SweetAlert.swal("Stakeholder eliminado.", "", "success");                   
                               })                        
                            }
                            else{
                               SweetAlert.swal("No se puede eliminar el Stakeholder ya que esta relacionado a una actividad", "", "warning");
                            }
                       });
                    }
                })                
            }


            $scope.obtenerAsuntos();
            $rootScope.ObtenerStackeholders();

            
        })

        .controller('StakeholdersController', function ($scope, $rootScope, spsservice, SweetAlert) {     
            
            $rootScope.menuActivo();


            $scope.obtenerAsuntos = function(){

                $scope.asuntosFiltroDesde = null;
                $scope.asuntosFiltroHasta = null;


                var getList = spsservice.get_type('lists/getbytitle', 'Asuntos', "/Items?$select=OtraComuna,Author/Title,Editor/Title,FechaReunion,Participantes,Presupuesto,Gastado,Diferencia,ID,Title,Operacion,Ambito,Programa,Comuna&$orderby=ID desc" + $rootScope.filterOperacion + "&$expand=Author,Editor");
                getList.then(function (resp_sup) {
                    $rootScope.Asuntos = resp_sup.d.results;               
                });
            }

      


            $scope.filtrarAsuntos = function(){
                
                
                $scope.asuntosFiltroDesde;
                $scope.asuntosFiltroHasta;

              

                debugger;

                if($scope.asuntosFiltroDesde){

                    let _filterDate = "";
                    if($scope.asuntosFiltroHasta){

                        _filterDate = " and (FechaReunion ge datetime'" + $scope.asuntosFiltroDesde.localeFormat("yyyy-MM-ddT00:00:00Z") + "' and FechaReunion le datetime'" + $scope.asuntosFiltroHasta.localeFormat("yyyy-MM-ddT23:59:59Z") + "')";

                    }
                    else{
                        _filterDate = " and (FechaReunion ge datetime'" + $scope.asuntosFiltroDesde.localeFormat("yyyy-MM-ddT00:00:00Z") + "')";

                    }


                    
                    
                   
                    spsservice.get_type('lists/getbytitle', 'Asuntos', "/Items?$select=OtraComuna,Author/Title,Editor/Title,FechaReunion,Participantes,Presupuesto,Gastado,Diferencia,ID,Title,Operacion,Ambito,Programa,Comuna&$orderby=ID desc" + $rootScope.filterOperacion + _filterDate + "&$expand=Author,Editor").then(function (resp_sup) {
                        $rootScope.Asuntos = resp_sup.d.results;      
                    });

                }

               

            }


          

            //Inicializar variable para asignar zona por defecto al tener solo 1 en filtro          
            $scope.filtro = new Object();
            if ($rootScope.zonasUsuario.length == 1) {
                $scope.filtro.Operacion = $rootScope.zonasUsuario[0].zona;

                //Obtener comunas
                if($rootScope.comunasUsuario == null){
                    spsservice.get_type('lists/getbytitle', 'ZonasComunas', "/Items?$select=ID,Zona,Comuna&$top=5000&$filter=Zona eq '" + $rootScope.zonasUsuario[0].zona + "'&$orderby=Comuna asc").then(function (_zonascomunasResponse) {
                        debugger;
                        if (_zonascomunasResponse.d.results.length > 0) {
                            $rootScope.comunasUsuario = _zonascomunasResponse.d.results;
                            $rootScope.comunasUsuario.push({
                                "Comuna": "Otra",
                                "Zona": ""
                            });

                            //Setear 
                            $rootScope.comunasUsuarioData = $rootScope.comunasUsuario.filter(x => x.Zona == $scope.filtro.Operacion || x.Zona == "");
                        }
                    });

                }
                else{
                    $rootScope.comunasUsuarioData = $rootScope.comunasUsuario.filter(x => x.Zona == $scope.filtro.Operacion || x.Zona == "");
                }                
            }


            $scope.obtenerProgramas = function (ambito) {
                var _ambito = $scope.ambitos.filter(x => x.Valor == ambito);
                $rootScope.programas = $rootScope.parametros.filter(x => x.Title == 'Programa' && x.RelacionadoId == _ambito[0].ID);


                //$rootScope.programas = $rootScope.parametros.filter(x => x.Title == 'Programa' && x.RelacionadoId == ambito);
            }


            $scope.eliminarStakeholder = function(stakeholderid){
                SweetAlert.swal({
                    title: "¿Está seguro(a) de eliminar el Stakeholder?",
                    text: "No debe actualizar la página hasta que el proceso haya finalizado.",
                    type: "warning",
                    showCancelButton: true,
                    confirmButtonColor: "#16AB39",
                    confirmButtonText: "Si, eliminar Stakeholder!",
                    cancelButtonText: "Cancelar",
                    closeOnConfirm: true
                },
                function (isConfirm) {
                    if (isConfirm) {
                        spsservice.get_type('lists/getbytitle', 'ActividadesStakeholders', "/Items?select=ID&$filter=StakeholderId eq  " + stakeholderid).then(function (resp_sup) {                    
                            if(resp_sup.d.results.length == 0){
                               spsservice.delete_data("lists/getbytitle('Stakeholder')/items(" + stakeholderid + ")").then(function () {
                                   $rootScope.ObtenerStackeholders();   
                                   SweetAlert.swal("Stakeholder eliminado.", "", "success");                   
                               })                        
                            }
                            else{
                               SweetAlert.swal("No se puede eliminar el Stakeholder ya que esta relacionado a una actividad", "", "warning");
                            }
                       });
                    }
                })                
            }


            $scope.obtenerAsuntos();
            $rootScope.ObtenerStackeholders();

            
        })

        .controller('HomeController', function ($scope, $rootScope, spsservice, SweetAlert) {     
            
            $rootScope.menuActivo();                   
        })

}(angular.module('spsmodule')));