Esempio n. 1
0
        public void EROfisisPendientes()
        {
            InterfacesDBContext InterfacesDB = new InterfacesDBContext();

            try
            {
                bool envioCorreo = Convert.ToBoolean(ConfigurationManager.AppSettings["envioCorreo"].ToString());
                Logger.WriteLine("Inicia Llamado SP USP_LISTA_ER");
                var listaEROfisisDTO = InterfacesDB.Set <EROfisisDTO>().FromSqlRaw($"exec USP_LISTA_ER").ToList();

                //Inicio Crear archivo excel
                var stream = new MemoryStream();
                using (var package = new ExcelPackage(stream))
                {
                    var workSheet = package.Workbook.Worksheets.Add("ListadoER");
                    workSheet.Cells.LoadFromCollection(listaEROfisisDTO, true);
                    package.Save();
                }
                stream.Position = 0;
                var    archivoExcel = stream.ToArray();
                string excelName    = string.Format("EntregasRendir-{0}.xlsx", DateTime.Now.ToString("yyyyMMddHHmmssfff"));
                //Fin Crear archivo excel

                Correo correo = new Correo();

                correo.Adjuntos.Add(new Adjunto
                {
                    archivo       = archivoExcel,
                    nombreArchivo = excelName
                });

                try
                {
                    correo.Asunto = $"Entregar a Rendir Pendientes";
                    string cuerpo = "Existen Entregas a Rendir Pendientes, se adjunta Excel.";

                    Helpers.Helper.ConstruirCorreoError(correo, cuerpo);
                    Helpers.Helper.EnviarCorreoElectronico(correo, true);
                }
                catch (Exception ex)
                {
                    Logger.WriteLine($"{ex.Message}\n{ex.InnerException?.Message}");
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLine($"{ex.Message}\n{ex.InnerException?.Message}");
            }
            finally
            {
                Logger.WriteLine("Fin Ejecución");
            }
        }
        public IActionResult Get(bool EnvioCorreo)
        {
            var listaInconsistencias = interfacesDB.Set <VentaDiferenciaMontoDTO>().FromSqlRaw($"exec USP_LISTA_VENTAS_DIFERENCIAS_MONTOS_BDI_OFISIS").ToList();
            var envio = false;

            if (EnvioCorreo && listaInconsistencias.Count > 0)
            {
                //Crear archivo excel
                var stream = new MemoryStream();
                using (var package = new ExcelPackage(stream))
                {
                    var workSheet = package.Workbook.Worksheets.Add("Inconsistencias");
                    workSheet.Cells.LoadFromCollection(listaInconsistencias, true);
                    package.Save();
                }
                stream.Position = 0;
                var    archivoExcel = stream.ToArray();
                string excelName    = string.Format("InconsistenciasVentasDiferenciasMontos-{0}.xlsx", DateTime.Now.ToString("yyyyMMddHHmmssfff"));

                //Enviar Correo
                Correo correo = new Correo();

                correo.CorreoEmisor.Mail     = config.GetValue <string>("EnvioLogCorreo:CorreoEnvio:Mail");
                correo.CorreoEmisor.NameMail = config.GetValue <string>("EnvioLogCorreo:CorreoEnvio:NameMail");
                correo.CorreoEmisor.Password = config.GetValue <string>("EnvioLogCorreo:CorreoEnvio:Password");

                var CorreoDefectoPara = config.GetSection("EnvioLogCorreo:CorreoDefectoPara").Get <List <string> >();

                if (CorreoDefectoPara.Count > 0)
                {
                    foreach (var correoPara in CorreoDefectoPara)
                    {
                        correo.CorreosPara.Add(new StructMail
                        {
                            Mail     = correoPara,
                            NameMail = string.Empty
                        });
                    }
                }

                var ConCopia = config.GetSection("EnvioLogCorreo:ConCopia").Get <List <string> >();
                if (ConCopia.Count > 0)
                {
                    foreach (var CorreoCC in ConCopia)
                    {
                        try
                        {
                            correo.CorreosCC.Add(new StructMail
                            {
                                Mail     = CorreoCC,
                                NameMail = string.Empty
                            }
                                                 );
                        }
                        catch (Exception ex)
                        {
                            continue;
                        }
                    }
                }

                correo.Adjuntos.Add(new Adjunto
                {
                    archivo       = archivoExcel,
                    nombreArchivo = excelName
                });

                try
                {
                    correo.Asunto = $"Inconsistencias Traslado de Facturacion Montos de Facturas BDI vs. Ofisis";

                    string cuerpo = "Existen documentos con diferencias en montos de la BDI vs. Ofisis, en el excel adjunto se detallan los documentos.";

                    Helpers.Helpers.ConstruirCorreoError(correo, cuerpo);


                    envio = Helpers.Helpers.EnviarCorreoElectronico(correo, true);
                }
                catch (Exception ex)
                {
                }
            }

            return(Ok(new {
                listaInconsistencias,
                correo = envio
            }));
        }