private Dictionary<String, byte[]> ObtenerArchivosSeleccionados(String prefijoNombreArchivo, SeccionEnvio seccion) { Decimal ID_SOLICITUD = Convert.ToDecimal(TextBox_ID_SOLICITUD.Text.Trim()); Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value); Decimal ID_REQUERIMIENTO = Convert.ToDecimal(HiddenField_ID_REQUERIMIENTO.Value); Decimal ID_CONTRATO = Convert.ToDecimal(HiddenField_ID_CONTRATO.Value); Decimal ID_EMPLEADO = Convert.ToDecimal(Label_ID_EMPLEADO.Text); Operacion _operacion = new Operacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaContrato = _operacion.ObtenerInformacionContratoPorIdEmpleado(ID_EMPLEADO); DataRow filaContrato = tablaContrato.Rows[0]; Decimal ID_REFERENCIA = 0; if (String.IsNullOrEmpty(filaContrato["ID_REFERENCIA"].ToString().Trim()) == false) { ID_REFERENCIA = Convert.ToDecimal(filaContrato["ID_REFERENCIA"]); } Dictionary<String, byte[]> listaArchivos = new Dictionary<String, byte[]>(); maestrasInterfaz _maestrasInterfaz = new maestrasInterfaz(); switch(seccion) { case SeccionEnvio.Seleccion: if (CheckBoxList_DOCUMENTOS_SELECCION.Items[0].Selected == true) { listaArchivos.Add(prefijoNombreArchivo + "INFORME_SELECCION.pdf", _maestrasInterfaz.GenerarPDFEntrevista(ID_SOLICITUD, ID_PERFIL)); } if (CheckBoxList_DOCUMENTOS_SELECCION.Items[1].Selected == true) { Dictionary<String, byte[]> archivosPruebas = _maestrasInterfaz.ObtenerArchivosPruebas(prefijoNombreArchivo, ID_PERFIL, ID_SOLICITUD); foreach (KeyValuePair<String, byte[]> archivoPrueba in archivosPruebas) { listaArchivos.Add(archivoPrueba.Key, archivoPrueba.Value); } } if (ID_REFERENCIA > 0) { if (CheckBoxList_DOCUMENTOS_SELECCION.Items[2].Selected == true) { listaArchivos.Add(prefijoNombreArchivo + "CONFIRMACION_REFERENCIAS_LABORALES.pdf", _maestrasInterfaz.GenerarPDFReferencia(ID_REFERENCIA, ID_SOLICITUD)); } } break; case SeccionEnvio.Contratacion: if (CheckBoxList_DOCUEMENTOS_CONTRATACION.Items[0].Selected == true) { Dictionary<String, byte[]> archivosExamenes = _maestrasInterfaz.ObtenerArchivosExamenes(prefijoNombreArchivo, ID_SOLICITUD, ID_REQUERIMIENTO); foreach (KeyValuePair<String, byte[]> archivoExamen in archivosExamenes) { listaArchivos.Add(archivoExamen.Key, archivoExamen.Value); } } if (CheckBoxList_DOCUEMENTOS_CONTRATACION.Items[1].Selected == true) { byte[] archivoExamenes = _maestrasInterfaz.GenerarPDFExamenes(ID_CONTRATO, ID_SOLICITUD, ID_REQUERIMIENTO); if (archivoExamenes != null) { listaArchivos.Add(prefijoNombreArchivo + "AUTOS_RECOMENDACION.pdf", archivoExamenes); } } if (CheckBoxList_DOCUEMENTOS_CONTRATACION.Items[2].Selected == true) { listaArchivos.Add(prefijoNombreArchivo + "CONTRATO.pdf", _maestrasInterfaz.GenerarPDFContrato(ID_CONTRATO)); } if (CheckBoxList_DOCUEMENTOS_CONTRATACION.Items[3].Selected == true) { byte[] archivoClausulas = _maestrasInterfaz.GenerarPDFClausulas(ID_CONTRATO); if (archivoClausulas != null) { listaArchivos.Add(prefijoNombreArchivo + "CLAUSULAS_CONTRATO.pdf", archivoClausulas); } } if (CheckBoxList_DOCUEMENTOS_CONTRATACION.Items[4].Selected == true) { Dictionary<String, byte[]> archivosAfiliaciones = _maestrasInterfaz.ObtenerArchivosAfiliaciones(prefijoNombreArchivo, ID_CONTRATO); foreach (KeyValuePair<String, byte[]> archivoAfiliacion in archivosAfiliaciones) { listaArchivos.Add(archivoAfiliacion.Key, archivoAfiliacion.Value); } } break; } return listaArchivos; }
private Boolean EnviarArchivo(String prefijoNombreArchivo, SeccionEnvio seccion, Dictionary<String, byte[]> listaArchivos) { String archiveName; if(seccion == SeccionEnvio.Seleccion) { archiveName = String.Format(prefijoNombreArchivo + "DOCUMENTACION_SELECCION_{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd")); } else { archiveName = String.Format(prefijoNombreArchivo + "DOCUMENTACION_CONTRATACION_{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd")); } MemoryStream streamArchivoAEnviar = new MemoryStream(); ZipOutputStream s = new ZipOutputStream(streamArchivoAEnviar); s.SetLevel(9); foreach (KeyValuePair<String, byte[]> archivo in listaArchivos) { ZipEntry entry = new ZipEntry(archivo.Key); entry.DateTime = DateTime.Now; s.PutNextEntry(entry); s.Write(archivo.Value, 0, (int)archivo.Value.Length); } StreamReader archivo_mensaje_correo = new StreamReader(Server.MapPath(@"~\plantillas_reportes\email_envio_docs_trabajador.htm")); String html_mensaje_correo = archivo_mensaje_correo.ReadToEnd(); archivo_mensaje_correo.Dispose(); archivo_mensaje_correo.Close(); html_mensaje_correo = html_mensaje_correo.Replace("[NOMBRE_CLIENTE]", Label_EMPRESA_TRABAJADOR.Text.Trim()); html_mensaje_correo = html_mensaje_correo.Replace("[NUMERO_CONTRATO]", HiddenField_ID_CONTRATO.Value); html_mensaje_correo = html_mensaje_correo.Replace("[NOMBRE_TRABAJADOR]", TextBox_NOMBRES.Text.Trim() + " " + TextBox_APELLIDOS.Text.Trim()); html_mensaje_correo = html_mensaje_correo.Replace("[NUM_DOC_IDENTIDAD]", DropDownList_TIP_DOC_IDENTIDAD.SelectedItem.Text + " " + TextBox_NUM_DOC_IDENTIDAD.Text.Trim()); if (seccion == SeccionEnvio.Seleccion) { html_mensaje_correo = html_mensaje_correo.Replace("[NOMBRE_CONTACTO_CLIENTE]", Label_NOMBRE_CONTACTO_SELECCION.Text.Trim()); } else { html_mensaje_correo = html_mensaje_correo.Replace("[NOMBRE_CONTACTO_CLIENTE]", Label_NOMBRE_CONTACTO_CONTRATACION.Text.Trim()); } usuario _usuario = new usuario(Session["idEmpresa"].ToString()); DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(Session["USU_LOG"].ToString()); DataRow filaUsuario = tablaUsuario.Rows[0]; if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA") { html_mensaje_correo = html_mensaje_correo.Replace("[USUARIO_ENVIO]", filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim()); } else { html_mensaje_correo = html_mensaje_correo.Replace("[USUARIO_ENVIO]", filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim()); } tools _tools = new tools(); if (seccion == SeccionEnvio.Seleccion) { if (_tools.enviarCorreoConCuerpoHtmlyArchivoAdjunto(TextBox_EMAIL_SELECCION.Text, "DOCUMENTACION: CONTRATO " + HiddenField_ID_CONTRATO.Value + " - " + DropDownList_TIP_DOC_IDENTIDAD.SelectedItem.Text.Trim() + " " + TextBox_NUM_DOC_IDENTIDAD.Text.Trim() + " - " + TextBox_NOMBRES.Text.Trim() + " " + TextBox_APELLIDOS.Text.Trim(), html_mensaje_correo, streamArchivoAEnviar, archiveName) == false) { Informar(Panel_MENSAJE_ENVIOARCHOVOS, Label_MENSAJE_ENVIOARCHIVOS, "Error al intentar enviar el correo al contácto de selección: " + _tools.MensajError, Proceso.Error); return false; } else { return true; } } else { if (_tools.enviarCorreoConCuerpoHtmlyArchivoAdjunto(TextBox_EMAIL_CONTRATACION.Text, "DOCUMENTACION: CONTRATO " + HiddenField_ID_CONTRATO.Value + " - " + DropDownList_TIP_DOC_IDENTIDAD.SelectedItem.Text.Trim() + " " + TextBox_NUM_DOC_IDENTIDAD.Text.Trim() + " - " + TextBox_NOMBRES.Text.Trim() + " " + TextBox_APELLIDOS.Text.Trim(), html_mensaje_correo, streamArchivoAEnviar, archiveName) == false) { Informar(Panel_MENSAJE_ENVIOARCHOVOS, Label_MENSAJE_ENVIOARCHIVOS, "Error al intentar enviar el correo al contácto de contratación: " + _tools.MensajError, Proceso.Error); return false; } else { return true; } } s.Finish(); s.Close(); }