//const { type } = require("jquery");

angular.module('IDRMAGISOFT').controller('SerciviosController', InitController);
InitController.$inject = ['$scope', '$state', '$sessionStorage', 'servicios', '$interval', '$http', '$httpParamSerializerJQLike'];
function InitController($scope, $state, $sessionStorage, servicios, $interval, $http,$httpParamSerializerJQLike ) {
    $scope.mostrarNuevo = true;
    
    $scope.multiserviciosSelected = [];
    $scope.CargarServicios= function(nuevo){
        $scope.mostrarNuevo = false;
        $http.get("app/model/Servidor.php?accion=CargarServicios&MostrarSC="
        +$sessionStorage.MostrarSC
        +"&MostrarEntrega="+$sessionStorage.MostrarEntrega+"&Nuevo="+nuevo)
            .then(function (response) {
                var NumServicios = response.data.conteo;
                if (NumServicios <= 8) {
                    $scope.anchor = "60%;";
                    $scope.felxDirection = "column;";
                    $scope.flexwrap = "";
                } else {
                    $scope.anchor = "45%;";
                    $scope.flexwrap = "wrap";
                    $scope.felxDirection = "row;";
                }
                $scope.servicios = Object.values(response.data.estado);
                $scope.serviciosSelected = [];
                console.log($scope.servicios)
                console.log(typeof $scope.servicios)
                 $scope.servicios.map(element => {
                     $scope.serviciosSelected.push({
                         id:element.IdServicio,
                         Servicio: element.Servicio,
                         Selected:true,
                         Secuencia: parseInt(element[$sessionStorage.nuevo==0?'OrdenControl':'OrdenNuevo'])
                     })
                 });
                $scope.adicionales = response.data.adicionales;
                $scope.nuevo = $sessionStorage.nuevo;
            });
    }
    $scope.ChangeServicio = function(id,index,asignar,Servicio) {
        if(asignar){
            $scope.multiserviciosSelected[index].id = id; 
            $scope.multiserviciosSelected[index].Secuencia = 0; 
            $scope.multiserviciosSelected[index].Servicio= Servicio;
        }else{
            $scope.multiserviciosSelected.splice(index, 1);
        }
    }
    
    $scope.ChangeServicios = function(id,index,asignar,Servicio) {
        console.log(id,index,asignar,Servicio)
        if(asignar){
            $scope.serviciosSelected[index].id = id; 
            $scope.serviciosSelected[index].Secuencia = 0; 
            $scope.serviciosSelected[index].Servicio= Servicio;
        }else{
            $scope.serviciosSelected[index].id = id; 
            $scope.serviciosSelected[index].Secuencia = 0; 
            $scope.serviciosSelected[index].Selected = asignar; 
            $scope.serviciosSelected[index].Servicio= Servicio;
        }
    }
    $scope.ClicTarjeta = function () {
        $scope.serviciosSelected = $scope.serviciosSelected.concat($scope.multiserviciosSelected)
        serviciosSelected = ordenarPorSecuencia($scope.serviciosSelected);
        $http.post("app/model/Servidor.php?accion=ClicServicio&idservicio=" + $scope.serviciosSelected[0].id,$httpParamSerializerJQLike({data:serviciosSelected}))
            .then(function (response) {
                $sessionStorage.IdServicio =  serviciosSelected[0].id;
                $sessionStorage.serviciosSelected =  serviciosSelected;
                if (response.data.ContarSubservicio > 0) {
                    //$interval.cancel(intervalVolver);
                    $state.go("Subservicios");
                } else {
                    $sessionStorage.Prioridad = 2;
                    $sessionStorage.idrelacionServicio = response.data.Relacion[0].idrelacionservicio;
                    $state.go("Prioridades");
                }
            });
    }
    function ordenarPorSecuencia(array) {
        array = array.filter(el => el != null)
        array = array.filter(el => el.Selected)
        array.sort((a, b) => a.Secuencia - b.Secuencia);
        return array;
    }
    $scope.RegresarInicio = function() {
        delete $sessionStorage.Prioridad;
        delete $sessionStorage.idrelacionServicio;
        delete $sessionStorage.NombreCliente;
        delete $sessionStorage.IdPersona;
        delete $sessionStorage.Cedula;
        delete $sessionStorage.MostrarSC;
        $scope.mostrarNuevo = true;
        $state.go("index");
    }
    
}