angular.module('focaModalEnviarMail') .controller('focaModalEnviarMailController', [ '$timeout', '$filter', '$scope', '$uibModalInstance', 'FileSaver', 'Blob', 'focaModalEnviarMailService', 'focaModalService', 'parametros', function($timeout, $filter, $scope, $uibModalInstance, FileSaver, Blob, focaModalEnviarMailService, focaModalService, parametros) { var regexMail = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; $scope.descargado = false; $scope.correoEnviado = false; $scope.correoNoEnviado = false; $scope.esperando = false; $scope.titulo = parametros.titulo; $scope.mailCliente = parametros.mailCliente; $scope.aceptar = function() { $uibModalInstance.close(); }; $scope.salir = function() { $uibModalInstance.close($scope.descargado); }; $scope.imprimir = function () { $scope.descargado = true; $scope.esperando = true; focaModalEnviarMailService .imprimirComprobanteById(parametros.urlImprimir, parametros.idComprobante) .then(function(res) { var data = new Blob([res.data], {type: 'application/pdf'}); FileSaver.saveAs( data, parametros.nombrePdf ); $scope.esperando = false; }); }; $scope.enviarCorreo = function(key) { if (key === 13) { if (!validarMail()) { focaModalService.alert('Ingrese email/s vĂ¡lido/s'); return; } $scope.descargado = true; $scope.esperando = true; var options = { para: parametros.mailCliente, idComprobante: parametros.idComprobante }; focaModalEnviarMailService .enviarCorreo(parametros.urlMail, options) .then(function() { $scope.correoEnviado = true; $scope.esperando = false; }, function() { $scope.esperando = false; $scope.correoNoEnviado = true; }); } }; function validarMail() { var emails = $scope.mailCliente.split(','); var result = true; emails.forEach(function(email) { if (!regexMail.test(email.trim())) result = false; }); return result; } }] );