angular.module('focaModal') .controller('focaModalMailController', [ '$scope', '$uibModalInstance', 'FileSaver', 'Blob', 'focaModalService', 'options', function ($scope, $uibModalInstance, FileSaver, Blob, focaModalService, options) { 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 = options.titulo; $scope.mailCliente = options.envio.mailCliente; $scope.checkboxVar = false; $scope.aceptar = function () { $uibModalInstance.close(); }; $scope.salir = function () { $uibModalInstance.close($scope.descargado); }; $scope.validarImpresion = function () { var rutaComprobante; if ($scope.checkboxVar === true) { rutaComprobante = options.descargaSinValorizar; } else { rutaComprobante = options.descarga; } imprimir(rutaComprobante); } imprimir = function (rutaComprobante) { $scope.descargado = true; $scope.esperando = true; focaModalService .imprimirComprobante(rutaComprobante.url, options.options) .then(function (res) { var data = new Blob([res.data], { type: 'application/pdf' }); FileSaver.saveAs( data, rutaComprobante.nombre ); $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; Object.assign(options.options, { receiver: $scope.mailCliente }); focaModalService .enviarCorreo(options.envio.url, options.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; } } ]);