angular.module('focaModalInforme') .controller('focaModalInformeGeneralUnidadController', [ '$filter', '$scope', '$uibModalInstance', 'focaModalInformeGeneralUnidadService', 'i18nService', 'focaModalService', function($filter, $scope, $uibModalInstance, focaModalInformeGeneralUnidadService, i18nService, focaModalService ) { i18nService.setCurrentLang('es'); var fecha = new Date(); $scope.generando = false; $scope.buscar = true; $scope.informe = {}; $scope.params = { fechaHasta: new Date(), fechaDesde: new Date(fecha.setMonth(fecha.getMonth() - 1)), sector: undefined, diferenciarProductos: false, detallarPorMes: false }; $scope.gridOptions = { enableGridMenu: true, exporterMenuCsv: false, exporterPdfPageSize: 'A4', exporterPdfFooter: function (currentPage, pageCount) { return { columns: [ {text: $filter('date')(new Date(), 'dd/MM/yyyy'), margin: [40, 0]}, {text: currentPage + ' de ' + pageCount, margin: [28, 0], alignment: 'right'} ] }; }, columnDefs: [ { field: 'vehiculo', enableSorting: false, cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) { if (grid.getCellValue(row,col).indexOf('Sector:') !== -1) return 'yellow w-100'; if (grid.getCellValue(row,col).indexOf('Producto:') !== -1) return 'red w-100'; if (grid.getCellValue(row,col).indexOf('Mes:') !== -1) return 'green w-100'; } }, { field: 'kmRecorridos', enableSorting: false, cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) { if (!grid.getCellValue(row,col)) return 'd-none'; } }, { field: 'litrosRepartidos', enableSorting: false, cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) { if (!grid.getCellValue(row,col)) return 'd-none'; } }, { field: 'viajes', enableSorting: false, cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) { if (!grid.getCellValue(row,col)) return 'd-none'; } } ] }; $scope.generarInforme = function() { $scope.generando = true; focaModalInformeGeneralUnidadService .getInformeData($scope.params) .then(function(res) { console.log(res); var result = []; res.data.forEach(function(sector) { if (!$scope.params.sector || $scope.params.sector.ID === sector.idSector) { result.push({ vehiculo: 'Sector: ' + $filter('rellenarDigitos')(sector.idSector, 2, '0') + ' - ' + sector.sector.trim() }); sector.productos.forEach(function(producto) { result.push({ vehiculo: 'Producto: ' + producto.idProducto + ' - ' + producto.producto }); producto.fechas.forEach(function(fecha) { result.push({ vehiculo: 'Mes: ' + fecha.fecha }); fecha.vehiculos.forEach(function(vehiculo) { result.push({ vehiculo: vehiculo.vehiculo, kmRecorridos: $filter('number')(vehiculo.data.kms, 2), litrosRepartidos: $filter('number')(vehiculo.data.lts, 2), viajes: $filter('number')(vehiculo.data.viajes, 0) }); }); }); }); } }); $scope.gridOptions.data = result; $scope.generando = false; $scope.buscar = false; }); }; $scope.seleccionarSector = function(key) { if (key === 13) { var parametrosModal = { titulo: 'Búsqueda de Sector', query: '/sector', columnas: [ { nombre: 'Código', propiedad: 'ID' }, { nombre: 'Nombre', propiedad: 'NOMBRE' } ], size: 'md' }; focaModalService.modal(parametrosModal).then( function(sector) { $scope.params.sector = sector; }, function() {} ); } }; $scope.volver = function() { $scope.buscar = true; }; $scope.cancel = function() { $uibModalInstance.dismiss('Cancelar'); }; function agruparProductos(productos) { console.log('productos', productos); var result = { vehiculos: [] }; productos.forEach(function(producto) { result.vehiculos = result.vehiculos.concat(); }); return productos; } } ] );