controller.js 2.21 KB
angular.module('focaCabeceraFacturador')
    .controller('focaCabeceraFacturadorController', [
        '$scope',
        '$filter',
        function($scope, $filter) {

            $scope.showCabecera = true;
            $scope.cabeceras = [
                cabecera = {
                    cabeceras: []
                }
            ];

            $scope.$on('addCabecera', function(event, data) {

                var seccion = $scope.cabeceras[0];

                if (data.seccion) {
                    seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0];

                    if (!seccion) {
                        seccion = {}
                        seccion.seccion = data.seccion;
                        seccion.cabeceras = [];
                        $scope.cabeceras.push(seccion);
                    }
                }

                var propiedad = $filter('filter')(seccion.cabeceras, { label: data.label }, true);

                if (propiedad.length === 1) {
                    propiedad[0].valor = data.valor;
                } else {
                    seccion.cabeceras.push({label: data.label, valor: data.valor});
                }
            });

            $scope.$on('removeCabecera', function(event, data) {

                var seccion = $scope.cabeceras[0];
                if (data.seccion) {
                    seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0];
                }
                var propiedad = $filter('filter')(seccion.cabeceras, {label: data}, true);
                if (propiedad.length === 1) {
                    seccion.cabeceras.splice(seccion.cabeceras.indexOf(propiedad[0]), 1);
                }
            });

            $scope.$on('cleanCabecera', function(event, data) {
                if (!data) {
                    $scope.cabeceras = [
                        cabecera = {
                            cabeceras: []
                        }
                    ];
                } else {
                    var seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0];
                    $scope.cabeceras.splice($scope.cabeceras.indexOf(seccion), 1)
                }
            });

    }]);