/// <summary> /// Método que agrega una marca de agua a los documentos que no son formatos ni ayudas visuales. /// </summary> /// <param name="version"></param> private async Task <bool> SetElectronicStamp(Model.ControlDocumentos.Version version, int idTipoDocumento) { bool res = false; if (idTipoDocumento != 1003 && idTipoDocumento != 1005 && idTipoDocumento != 1006 && idTipoDocumento != 1012 && idTipoDocumento != 1013 && idTipoDocumento != 1014 && idTipoDocumento != 1011) { BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false); ObservableCollection <Archivo> archivos = DataManagerControlDocumentos.GetArchivos(version.id_version); DateTime fecha_sello = DataManagerControlDocumentos.Get_DateTime(); string dia = fecha_sello.Day.ToString().Length == 1 ? "0" + fecha_sello.Day : fecha_sello.Day.ToString(); string anio = fecha_sello.Year.ToString(); string mes = fecha_sello.Month.ToString().Length == 1 ? "0" + fecha_sello.Month : fecha_sello.Month.ToString(); string fecha = dia + "/" + mes + "/" + anio; foreach (Archivo item in archivos) { string waterMarkText = "MAHLE CONTROL DE DOCUMENTOS / DOCUMENTO LIBERADO ELECTRÓNICAMENTE Y TIENE VALIDEZ SIN FIRMA." + " DISPOSICIÓN: " + fecha; string waterMarkText2 = "ÚNICAMENTE TIENE VALIDEZ EL DOCUMENTO DISPONIBLE EN INTRANET."; string waterMarkText3 = "LAS COPIAS NO ESTÁN SUJETAS A NINGÚN SERVICIO DE ACTUALIZACIÓN."; byte[] newarchivo = AddWatermark(item.archivo, bfTimes, waterMarkText, waterMarkText2, waterMarkText3, false); item.archivo = newarchivo; int r = DataManagerControlDocumentos.UpdateArchivo(item); res = r == 0 ? false : true; } } return(res); }
private async Task <bool> iniciarLiberacion(int idVersion, int idSolicitud) { Documento objDocumento = DataManagerControlDocumentos.GetDocumento(idVersion); Model.ControlDocumentos.Version objVersion = new Model.ControlDocumentos.Version(); objVersion = DataManagerControlDocumentos.GetVersion(idVersion); objDocumento.version = objVersion; if (await sellar(idVersion)) { if (liberar(objDocumento, objVersion)) { if (notificarLiberacion(objDocumento)) { //Establecemos que esta solicitud ya fué realizada. DataManagerControlDocumentos.setDoneSolicitudControlDocumentos(idSolicitud); //Eliminamos el registro de la tabla solictudes. DataManagerControlDocumentos.deleteSolicitudControlDocumentos(idSolicitud); Console.WriteLine("Listo Campeón!!, este documento fué liberado exitosamente, Juntos somos Invensibles."); System.Threading.Thread.Sleep(2000); Console.WriteLine("Arriba el Ame!."); Console.WriteLine("Cualquier cosa estoy al pendiente y te aviso ok. Tu sigue durmiendo."); } else { Console.WriteLine("Uuhhh!! valió mauser la notificación por correo."); Console.WriteLine("Pero el documento ya esta liberado, haz paro y notifica de manera manual, y después arreglame para no tener estos pedos."); //Eliminamos el registro de la tabla solictudes. DataManagerControlDocumentos.deleteSolicitudControlDocumentos(idSolicitud); System.Threading.Thread.Sleep(4000); Console.WriteLine("Voy a seguir al pendiente por cualquier cosa que se ofrezca."); } } else { Console.WriteLine("Uta! no pude liberar el documento we, porfa liberalo manualmente ya que!!!"); return(false); } } else { Console.WriteLine("Uta!! no pude sellar el documento, porfa arreglame para poder estar al 100!"); return(false); } return(true); }
/// <summary> /// Método que agrega una marca de agua a los documentos que no son formatos ni ayudas visuales. /// </summary> /// <param name="version"></param> private bool SetElectronicStamp(Model.ControlDocumentos.Version version) { bool res = false; BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false); ObservableCollection <Archivo> archivos = DataManagerControlDocumentos.GetArchivos(version.id_version, true); DateTime fecha_sello = DataManagerControlDocumentos.Get_DateTime(); string dia = fecha_sello.Day.ToString().Length == 1 ? "0" + fecha_sello.Day : fecha_sello.Day.ToString(); string anio = fecha_sello.Year.ToString(); string mes = fecha_sello.Month.ToString().Length == 1 ? "0" + fecha_sello.Month : fecha_sello.Month.ToString(); string fecha = dia + "/" + mes + "/" + anio; Documento documento = DataManagerControlDocumentos.GetDocumento(version.id_version); int contadorArchivo = 0; foreach (Archivo item in archivos) { string waterMarkText = "MAHLE CONTROL DE DOCUMENTOS / DOCUMENTO LIBERADO ELECTRÓNICAMENTE Y TIENE VELIDEZ SIN FIRMA." + " DISPOSICIÓN: " + fecha; string waterMarkText2 = "ÚNICAMENTE TIENE VALIDEZ EL DOCUMENTO DISPONIBLE EN INTRANET."; string waterMarkText3 = "LAS COPIAS NO ESTÁN SUJETAS A NINGÚN SERVICIO DE ACTUALIZACIÓN"; byte[] newarchivo = AddWatermark(item.archivo, bfTimes, waterMarkText, waterMarkText2, waterMarkText3); item.archivo = newarchivo; item.ruta = saveFileToServer(item, documento.id_tipo_documento, documento.nombre, version.no_version, contadorArchivo); int r = DataManagerControlDocumentos.UpdateArchivo(item); res = r == 0 ? false : true; contadorArchivo++; } return(res); }
private async Task <bool> sellar(int idVersion) { bool respuesta = false; Console.WriteLine("Estoy sellando el documento...."); Model.ControlDocumentos.Version version = DataManagerControlDocumentos.GetVersion(idVersion); int idTipoDocumento = DataManagerControlDocumentos.GetTipoDocumentoByIdVersion(idVersion); respuesta = await SetElectronicStamp(version, idTipoDocumento); System.Threading.Thread.Sleep(3000); Console.WriteLine("Mientras lo voy sellando, recuerdo cuando sellabas el documento a mano... que fácil te estoy haciendo la vida....."); System.Threading.Thread.Sleep(6000); Console.WriteLine("Listo, documento sellado..."); System.Threading.Thread.Sleep(4000); Console.WriteLine("Ahora vamos a lo que sigue."); System.Threading.Thread.Sleep(3000); return(respuesta); }
private bool liberar(Documento objDocumento, Model.ControlDocumentos.Version objVersion) { Console.WriteLine("Deja empiezo a liberar el documento..."); System.Threading.Thread.Sleep(3000); Console.WriteLine("Que tiempos aquellos cuando tenias que registrar uno por uno las liberaciones!!!"); System.Threading.Thread.Sleep(5000); Console.WriteLine("Como ha cambiado el tiempo verdad?, tan fácil que es ahora."); System.Threading.Thread.Sleep(4000); //Ejecutamos el método para obtener el id de la versión anterior int last_version = DataManagerControlDocumentos.GetID_LastVersion(objDocumento.id_documento, objVersion.id_version); //si el documento sólo tiene una versión, se modifica el estatus del documento y la versión, se cambia el estatus a liberado. if (last_version == 0) { //Estatus de documento liberado objDocumento.id_estatus = 5; //Ejecutamos el método para actualizar el estatus del documento. int update_documento = DataManagerControlDocumentos.Update_EstatusDocumento(objDocumento); if (update_documento != 0) { objVersion.id_estatus_version = 1; //Ejecutamos el método para guardar la versión. El resultado lo guardamos en una variable local. int update_version = DataManagerControlDocumentos.UpdateVersion(objVersion, User, objDocumento.nombre); if (update_version != 0) { string file = SaveFile(objDocumento.id_tipo_documento, objDocumento.nombre, objVersion.no_version, objVersion.id_version); if (file == null) { // Llamamos el método para eliminar los registros de la tabla TR_USUARIO_NOTIFICACION_VERSION por ID_VERSION, una vez que el documento sea liberado DataManagerControlDocumentos.EliminarRegistroVersion(objVersion.id_version); } else { Console.WriteLine("Error al copiar el documento al servidor\nidVersion: " + objVersion.id_version); return(false); } } else { Console.WriteLine("Error al actualizar version\nidVersion : " + objVersion.id_version); objDocumento.id_estatus = 2; update_documento = DataManagerControlDocumentos.Update_EstatusDocumento(objDocumento); return(false); } } else { Console.WriteLine("Error al actualizar el estátus del documento\nidDocumento : " + objDocumento.id_documento); objDocumento.id_estatus = 2; return(false); } } else { //si el documento tiene más de un versión, sólo se modifica el estatus de la versión a liberado //la versión anterior se modifica el estatus a obsoleto. int fecha_actualizacion = DataManagerControlDocumentos.UpdateFecha_actualizacion(objDocumento.id_documento); objVersion.id_estatus_version = 1; objVersion.no_copias = 0; //Ejecutamos el método para modificar el estatus de la versión. El resultado lo guardamos en una variable local. int update_version = DataManagerControlDocumentos.UpdateVersion(objVersion, User, objDocumento.nombre); if (update_version != 0) { //obetemos el id de la versión anterior int last_id = DataManagerControlDocumentos.GetID_LastVersion(objDocumento.id_documento, objVersion.id_version); //Creamos un objeto para la versión anterior Model.ControlDocumentos.Version lastVersion = new Model.ControlDocumentos.Version(); //asigamos el id y el estatus obsoleto lastVersion.id_version = last_id; lastVersion.id_estatus_version = 2; //Se obtienen el número de versión de la version anterior lastVersion.no_version = DataManagerControlDocumentos.GetNum_Version(last_id); //Ejecutamos el método para actualizar el estatus de la versión(liberamos el documento). int update = DataManagerControlDocumentos.Update_EstatusVersion(lastVersion, User, objDocumento.nombre); //si se actualizó correctamente if (update != 0) { string file = SaveFile(objDocumento.id_tipo_documento, objDocumento.nombre, objVersion.no_version, objVersion.id_version); //Si los registros fueron guardados exitosamente el archivo que queda como obsoleto se pasa a la carpeta de respaldo y se elimina de la base de datos _LiberarEspacioBD(last_id); // Llamamos el método para eliminar los registros de la tabla TR_USUARIO_NOTIFICACION_VERSION por ID_VERSION, una vez que el documento sea liberado DataManagerControlDocumentos.EliminarRegistroVersion(objVersion.id_version); } else { Console.WriteLine("Error al copiar el documento al servidor\nidVersion:" + objVersion.id_version); return(false); } } else { Console.WriteLine("Error al actualizar version\nidVersion : " + objVersion.id_version); return(false); } } Console.WriteLine("Listo, el documento ya esta liberado"); System.Threading.Thread.Sleep(3000); Console.WriteLine("Vamos al último paso"); System.Threading.Thread.Sleep(3000); return(true); }
public void etiquetar() { List <DO_SolicitudEtiquetado> solicitudes = DataManagerControlDocumentos.GetSolicitudEtiquetar(0); Console.WriteLine("Hay " + solicitudes.Count + " Solicitudes pendientes para etiquetar."); foreach (var solicitud in solicitudes) { Console.Beep(5000, 1000); List <Archivo> archivos = DataManagerControlDocumentos.GetArchivo(solicitud.IdVersion); BaseFont bfTimes = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, false); DO_ClassificationLevel classificationLevel = DataManagerControlDocumentos.GetClassificationLevel(solicitud.IdClasificationLevel); foreach (var archivo in archivos) { int noCopias = DataManagerControlDocumentos.GetCopias(solicitud.IdVersion); DO_Respuesta respuesta = setCLJES(archivo.archivo, bfTimes, classificationLevel.ClassificationLevel, noCopias); byte[] archivoEtiquetado = respuesta.Archivo; if (respuesta.idRespuesta == 1) { File.WriteAllBytes(archivo.ruta, archivoEtiquetado); DataManagerControlDocumentos.UpdateVersion(solicitud.IdVersion, solicitud.IdClasificationLevel, solicitud.IdUsuario); DataManagerControlDocumentos.UpdateSolicitudEtiquetar(solicitud.IdSolicitud, 1); DataManagerControlDocumentos.UpdateNoCopias(solicitud.IdVersion, 0); Documento objDocumento = DataManagerControlDocumentos.GetDocumento(solicitud.IdVersion); Version version = DataManagerControlDocumentos.GetVersion(solicitud.IdVersion); String title = "Control de documentos - Etiquetado de documento : " + objDocumento.nombre; string correoUsuarioElaboro = DataManager.GetUsuario(solicitud.IdUsuario).Correo; ServiceEmail SO_Email = new ServiceEmail(); string[] correos = new string[2]; correos[0] = correoUsuarioElaboro; correos[1] = "*****@*****.**"; string body; body = "<HTML>"; body += "<head>"; body += "<meta http-equiv=\"Content - Type\" content=\"text / html; charset = utf - 8\"/>"; body += "</head>"; body += "<body text=\"white\">"; body += "<p><font font=\"verdana\" size=\"3\" color=\"black\">" + definirSaludo() + "</font> </p>"; body += "<ul>"; body += "<li><font font=\"verdana\" size=\"3\" color=\"black\">Para notificar que la JES con el número <b> " + objDocumento.nombre + "</b> versión <b> " + version.no_version + ".0" + " </b> fué etiquetada con la clasificación de seguridad: <b>" + classificationLevel.ClassificationLevel + " </b></font> </li>"; body += "<li><font font=\"verdana\" size=\"3\" color=\"black\">Adicionalmente informo que el documento a partir de este momento pasa a su nombre y queda actualizado en sistema.</font></li>"; body += "<br/>"; body += "</ul>"; body += "<p><font font=\"verdana\" size=\"3\" color=\"black\">Cualquier duda quedo a sus órdenes</font> </p>"; body += "<br/>"; body += "<br/>"; body += "<p><font font=\"default Sans Serif\" size=\"3\" color=\"black\">Saludos / Kind regards</font> </p>"; body += "</body>"; body += "</HTML>"; //Ejecutamos el método para notificar por correo bool respuestaCorreo = SO_Email.SendEmailLotusCustom(correos, title, body, "CONTROL_DOCUMENTOS_ETIQUETADO", 0); if (respuestaCorreo) { Console.WriteLine("El correo se envió perron!!"); } else { Console.WriteLine("Hubo un error al enviar el correo"); } //bool respuesta = SO_Email.SendEmailOutlook(correos, title, body, new List<string>()); Console.WriteLine("Se etiqueto la versión " + solicitud.IdVersion); } else { //TODO: No se pudo etiquetar tu documento. Console.WriteLine("No se pudo etiquetar el documento " + solicitud.IdVersion); DataManagerControlDocumentos.UpdateSolicitudEtiquetar(solicitud.IdSolicitud, 1); string correoUsuarioElaboro = DataManager.GetUsuario(solicitud.IdUsuario).Correo; Documento objDocumento = DataManagerControlDocumentos.GetDocumento(solicitud.IdVersion); Version version = DataManagerControlDocumentos.GetVersion(solicitud.IdVersion); ServiceEmail SO_Email = new ServiceEmail(); string[] correos = new string[2]; correos[0] = correoUsuarioElaboro; correos[1] = "*****@*****.**"; string body; body = "<HTML>"; body += "<head>"; body += "<meta http-equiv=\"Content - Type\" content=\"text / html; charset = utf - 8\"/>"; body += "</head>"; body += "<body text=\"white\">"; body += "<p><font font=\"verdana\" size=\"3\" color=\"black\">" + definirSaludo() + "</font> </p>"; body += "<ul>"; body += "<li><font font=\"verdana\" size=\"3\" color=\"black\">Para notificar que la JES con el número <b> " + objDocumento.nombre + "</b> versión <b> " + version.no_version + ".0" + " </b> <b>NO</b> fué etiquetada con la clasificación de seguridad: <b>" + classificationLevel.ClassificationLevel + " </b></font> </li>"; body += "<li><font font=\"verdana\" size=\"3\" color=\"black\">Para mas información favor de contactar al administrador de Control de documentos</font></li>"; body += "<br/>"; body += "</ul>"; body += "<p><font font=\"verdana\" size=\"3\" color=\"black\">Cualquier duda quedo a sus órdenes</font> </p>"; body += "<br/>"; body += "<br/>"; body += "<p><font font=\"default Sans Serif\" size=\"3\" color=\"black\">Saludos / Kind regards</font> </p>"; body += "</body>"; body += "</HTML>"; String title = "Control de documentos - Solicitud no dispobible : " + objDocumento.nombre; bool respuestaCorreo = SO_Email.SendEmailLotusCustom(correos, title, body, "CONTROL_DOCUMENTOS_ETIQUETADO", 0); if (respuestaCorreo) { Console.WriteLine("El correo se envió perron!!"); } else { Console.WriteLine("Hubo un error al enviar el correo"); } } } } }
/// <summary> /// Método que cambia el estatus aprobado o pendiente por liberar /// Si el documento sólo tiene una versión cambia el estatus de documento y versión /// De lo contrario cambia estatus de versión /// </summary> private async void guardarEstatus() { //isSelected es false, id_estatus=pendiente por corregir, verdadero estatus= aprobado pendiente por liberar bool Confirmacion = false; bool Aprobado = false; string version = SelectedDocumento.version.no_version; Model.ControlDocumentos.Version objVersion = new Model.ControlDocumentos.Version(); objVersion.id_version = SelectedDocumento.version.id_version; //objVersion.no_version = SelectedDocumento.version.no_version; objVersion = DataManagerControlDocumentos.GetVersion(selectedDocumento.version.id_version); int last_id = DataManagerControlDocumentos.GetID_LastVersion(SelectedDocumento.id_documento, SelectedDocumento.version.id_version); if (selectedDocumento.id_tipo_documento == 1003 || selectedDocumento.id_tipo_documento == 1005 || selectedDocumento.id_tipo_documento == 1006 || selectedDocumento.id_tipo_documento == 1011 || selectedDocumento.id_tipo_documento == 1012 || selectedDocumento.id_tipo_documento == 1013 || selectedDocumento.id_tipo_documento == 1014) { Confirmacion = true; } // Si el checkbox es verdadero if (isSelected == true) { Aprobado = true; //Si el documento no tiene otra versión if (last_id == 0) { //Actualiza el estatus de la versión y del documento a pendiente por liberar selectedDocumento.id_estatus = 4; objVersion.id_estatus_version = 5; //Se llama al método para actualizar el estatus del documento int n = DataManagerControlDocumentos.Update_EstatusDocumento(SelectedDocumento); //si se realizo la actualizacion if (n != 0) { //update version UpdateVersion(objVersion, Confirmacion, Aprobado); //Save document in temporal path "por_aprobar" SaveFile(); //ObservableCollection<Archivo> archivosTem = DataManagerControlDocumentos.GetArchivos(selectedDocumento.version.id_version); //string[] files = new string[archivosTem.Count]; //int c = 0; //foreach (var item2 in archivosTem) //{ // string pathTemp = GetPathTempFile(item2); // File.WriteAllBytes(pathTemp, item2.archivo); // files[c] = pathTemp; // c++; //} bool confirmacionEnviarCorreo = enviarCorreoAprobarRechazar(SelectedDocumento.nombre, objVersion.no_version, objVersion.id_version, objVersion.id_usuario_autorizo, objVersion.id_usuario); } else { //Se muestra que hubo un error al actualizar el documento await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgEstatusDocumento); } } else { //si es un documento con versión anterior liberada. objVersion.id_estatus_version = 5; //Se llama a la función para actualizar el estatus de la versión UpdateVersion(objVersion, Confirmacion, Aprobado); SaveFile(); //ObservableCollection<Archivo> archivosTem = DataManagerControlDocumentos.GetArchivos(selectedDocumento.version.id_version); //string[] files = new string[archivosTem.Count]; //int c = 0; //foreach (var item2 in archivosTem) //{ // string pathTemp = GetPathTempFile(item2); // File.WriteAllBytes(pathTemp, item2.archivo); // files[c] = pathTemp; // c++; //} bool confirmacionEnviarCorreo = enviarCorreoAprobarRechazar(SelectedDocumento.nombre, objVersion.no_version, objVersion.id_version, objVersion.id_usuario_autorizo, objVersion.id_usuario); } } else // Aquí se va cuando el documento es incorrecto { // Validación para que se seleccione al menos un tipo de error o no pida tipo de error cuando es un documento PDF if (ListaNotificacionError.Where(x => x.IsSelected).ToList().Count > 0 || visible == "Hidden") { // Se copian los errores seleccionados a la lista foreach (var item in ListaNotificacionError) { if (item.IsSelected == true) { ListaErroresSeleccionados.Add(item); } } //Si el documento no tiene una versión anterior liberada if (last_id == 0) { //Actualiza el estatus de la versión y del documento a pendiente por corregir selectedDocumento.id_estatus = 3; objVersion.id_estatus_version = 4; //Se llama al método para actualizar el estatus del documento int n = DataManagerControlDocumentos.Update_EstatusDocumento(SelectedDocumento); //si se realizo la actualizacion if (n != 0) { //Se llama a la función para actualizar el estatus de la versión UpdateVersion(objVersion, Confirmacion, Aprobado); } else { //Se muestra que hubo un error al actualizar el documento await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgEstatusDocumento); } } else { //si es un documento con versión una versión anterior liberada . //Estatus pendiente por corregir. objVersion.id_estatus_version = 4; //Se llama a la función para actualizar el estatus de la versión UpdateVersion(objVersion, Confirmacion, Aprobado); } } else { //Mensaje de no selecciono ninguno. //Se muestra un mensaje de que no ha seleccionado ningun tipo de error. await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgSelecciona1error); } } }
/// <summary> /// Función que modifica la versión /// </summary> /// <param name="objVersion"></param> public async void UpdateVersion(Model.ControlDocumentos.Version objVersion, bool Confirmar, bool Aprobado) { //Se llama al método para actualizar el estatus de la version int update_version = DataManagerControlDocumentos.Update_EstatusVersion(objVersion, _usuarioLogueado, SelectedDocumento.nombre); if (update_version != 0) { string msgConfirmacion = string.Empty; if (Confirmar == true) { string confirmacion = string.Empty; if (Aprobado == true) { if (NotificarDocumentoAprobado()) { confirmacion = StringResources.msgNotificacionCorreo + "\n" + "ESTATUS DE LA VERSION ACTUALIZADA"; } else { confirmacion = StringResources.msgNotificacionCorreoFallida + "\n" + "ESTATUS DE LA VERSION ACTUALIZADA"; } } else { if (NotificarDocumentoRechazado()) { confirmacion = StringResources.msgNotificacionCorreo + "\n" + "ESTATUS DE LA VERSION ACTUALIZADA"; } else { confirmacion = StringResources.msgNotificacionCorreoFallida + "\n" + "ESTATUS DE LA VERSION ACTUALIZADA"; } } await dialog.SendMessage(StringResources.ttlAlerta, confirmacion); } else { await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgEstatusVersionActualizada); } //Obtenemos la pantalla actual, y casteamos para que se tome como tipo MetroWindow. var window = Application.Current.Windows.OfType <MetroWindow>().LastOrDefault(); if (IsSelected) { DO_Notification notificacion = new DO_Notification(); notificacion.TITLE = StringResources.ttlDocumentoAprobado; notificacion.MSG = StringResources.msgDocumento + " " + SelectedDocumento.nombre + "\n" + StringResources.lblVersion + " " + selectedDocumento.version.no_version + "\n" + StringResources.ttlEntregarDocumento; notificacion.TYPE_NOTIFICATION = 1; notificacion.ID_USUARIO_RECEIVER = Usuario.id_usuario; notificacion.ID_USUARIO_SEND = "ADMINISTRADOR"; DataManagerControlDocumentos.insertNotificacion(notificacion); } else { DO_Notification notificacion = new DO_Notification(); notificacion.TITLE = StringResources.ttlDocumentoRechazado; notificacion.MSG = StringResources.msgDocumento + " " + SelectedDocumento.nombre + "\n" + StringResources.lblVersion + " " + selectedDocumento.version.no_version + "\n" + StringResources.ttlRechazarDocumento; notificacion.TYPE_NOTIFICATION = 3; notificacion.ID_USUARIO_RECEIVER = Usuario.id_usuario; notificacion.ID_USUARIO_SEND = "ADMINISTRADOR"; DataManagerControlDocumentos.insertNotificacion(notificacion); } //Verificamos que la pantalla sea diferente de nulo. if (window != null) { //Cerramos la pantalla window.Close(); } } else { if (selectedDocumento.id_tipo_documento != 1003 || selectedDocumento.id_tipo_documento != 1005 || selectedDocumento.id_tipo_documento != 1006 || selectedDocumento.id_tipo_documento != 1011 || selectedDocumento.id_tipo_documento != 1012 || selectedDocumento.id_tipo_documento != 1013 || selectedDocumento.id_tipo_documento != 1014) { await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgEstatusVersion); } } }
private async void liberarDocumento(Documento documento) { DialogService dialog = new DialogService(); //Declaramos un objeto de tipo MetroDialogSettings al cual le asignamos las propiedades que contendra el mensaje modal. MetroDialogSettings setting = new MetroDialogSettings(); setting.AffirmativeButtonText = StringResources.lblYes; setting.NegativeButtonText = StringResources.lblNo; //Ejecutamos el método para mostrar el mensaje. El resultado lo asignamos a una variable local. MessageDialogResult result = await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgLiberarDocumento, setting, MessageDialogStyle.AffirmativeAndNegative); if (result == MessageDialogResult.Affirmative) { int numeroCopias = 0; //Ejecutamos el método para obtener el id de la versión anterior int last_version = DataManagerControlDocumentos.GetID_LastVersion(documento.id_documento, documento.version.id_version); //si el documento sólo tiene una versión, se modifica el estatus del documento y la versión, se cambia el estatus a liberado if (last_version == 0) { //Establacemos el estatus de documento el cual es LIBERADO. documento.id_estatus = 5; //Ejecutamos el método para actualizar el estatus del documento. int update_documento = DataManagerControlDocumentos.Update_EstatusDocumento(documento); //Si se actualizó correctamente. if (update_documento != 0) { documento.version.id_estatus_version = 1; documento.version.no_copias = numeroCopias; //Ejecutamos el método para guardar la versión. El resultado lo guardamos en una variable local. int update_version = DataManagerControlDocumentos.UpdateVersion(documento.version, User, documento.nombre, documento.version.ClassificationLevel.IdClassificationLevel); //Si la versión se actualizó correctamente. if (update_version != 0) { //Insertamos el sello electrónico a los archivos que apliquen. bool res = SetElectronicStamp(documento.version); string confirmacionCorreo = string.Empty; if (NotificarDocumentoDisponibleConSello(documento)) { confirmacionCorreo = StringResources.msgNotificacionCorreo; } else { confirmacionCorreo = StringResources.msgNotificacionCorreoFallida; } await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgMatrizActualizada + "\n" + confirmacionCorreo); } else { //Mensaje de no se pudo actualizar la tabla TBL_VERSION documento.id_estatus = 2; update_documento = DataManagerControlDocumentos.Update_EstatusDocumento(documento); await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgEstatusVersionDocumento); } } else { //Mensaje de no se pudo actualizar la tabla TBL_DOCUMENTO await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgEstatusDocumento); } // Actualizar lista de documentos pendientes por liberara cuando selecciona si inicampo(string.Empty); } else { //si el documento tiene más de un versión, sólo se modifica el estatus de la versión a liberado //la versión anterior se modifica el estatus a obsoleto int fecha_actualizacion = DataManagerControlDocumentos.UpdateFecha_actualizacion(documento.id_documento); documento.version.id_estatus_version = 1; documento.version.no_copias = numeroCopias; //Ejecutamos el método para modificar el estatus de la versión. El resultado lo guardamos en una variable local. int update_version = DataManagerControlDocumentos.UpdateVersion(documento.version, User, documento.nombre, documento.version.ClassificationLevel.IdClassificationLevel); if (update_version != 0) { //Insertamos el sello electrónico a los archivos que apliquen. bool rest = SetElectronicStamp(documento.version); //obetemos el id de la versión anterior int last_id = DataManagerControlDocumentos.GetID_LastVersion(documento.id_documento, documento.version.id_version); //Creamos un objeto para la versión anterior Model.ControlDocumentos.Version lastVersion = new Model.ControlDocumentos.Version(); //asigamos el id y el estatus obsoleto lastVersion.id_version = last_id; lastVersion.id_estatus_version = 2; //Se obtienen el número de versión de la version anterior lastVersion.no_version = DataManagerControlDocumentos.GetNum_Version(last_id); //Ejecutamos el método para actualizar el estatus de la versión(liberamos el documento). int update = DataManagerControlDocumentos.Update_EstatusVersion(lastVersion, User, documento.nombre); if (update != 0) { _LiberarEspacioBD(last_id); string confirmacionCorreo = string.Empty; if (NotificarDocumentoDisponibleConSello(documento)) { confirmacionCorreo = StringResources.msgNotificacionCorreo; } else { confirmacionCorreo = StringResources.msgNotificacionCorreoFallida; } await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgMatrizActualizada + "\n" + confirmacionCorreo); } } else { //Mensaje de no se pudo actualizar TBL_VERSION //Si hubo error al actualizar la última versión await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgErrorActualizarVersion); } } // Se actualiza lista de documentos a liberar cuando la version es diferente a 1 inicampo(string.Empty); } else { // Vuelve a cargar la lista cuando no se quiere liberar documento inicampo(string.Empty); } }