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); }