protected string EliminarDocumentos(string strIdsDocs, string sTipoHito) { string sResul = ""; #region abrir conexión y transacción try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccion(oConn); } catch (Exception ex) { if (oConn.State == ConnectionState.Open) { Conexion.Cerrar(oConn); } sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } #endregion try { #region eliminar documentos string[] aDocs = Regex.Split(strIdsDocs, "##"); foreach (string oDoc in aDocs) { if (sTipoHito != "HF") { DOCUH.Delete(tr, int.Parse(oDoc)); } else { DOCUHE.Delete(tr, int.Parse(oDoc)); } } #endregion Conexion.CommitTransaccion(tr); sResul = "OK@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al eliminar los documentos", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected string Grabar(string strDatosHito, string sDatosBorrado, string sTareas) { string sResul = "", sTipoHito, sDesHito, sDesHitoLong, sFecha, sEstado, sAlerta, sCiclico, sAccion, sTipoLinea, sCad, sCodTarea, sHitoPE; string[] aDatosHito; int iCodHito, iCodPE, iMargen, iCodHitoOriginal; short iOrden;//iCodCR bool bAlerta = false, bCiclico = false, bHitoPE; DateTime dtFecha = DateTime.Now; try { oConn = Conexion.Abrir(); tr = Conexion.AbrirTransaccionSerializable(oConn); } catch (Exception ex) { sResul = "Error@#@" + Errores.mostrarError("Error al abrir la conexión", ex); return(sResul); } try { aDatosHito = Regex.Split(strDatosHito, "##"); iCodHito = int.Parse(aDatosHito[1]); //iCodCR = short.Parse(aDatosHito[2]); iCodPE = int.Parse(aDatosHito[3]); sDesHito = Utilidades.unescape(aDatosHito[4]); sDesHitoLong = Utilidades.unescape(aDatosHito[5]); sFecha = aDatosHito[6]; if (sFecha != "") { dtFecha = DateTime.Parse(sFecha); } iOrden = short.Parse(aDatosHito[11]); //Al grabar un hito puede ocurrir que se haya cambiado el tipo de hito lo que implica que antes de grabar //hay que borrar de una tabla e insertar en otra if (sDatosBorrado != "") { #region Borrado string[] aDatosBorrado = Regex.Split(sDatosBorrado, "##"); sAccion = aDatosBorrado[0]; if (sAccion == "borrar") { sTipoHito = aDatosBorrado[1]; iCodHito = int.Parse(aDatosBorrado[2]); iCodHitoOriginal = int.Parse(aDatosBorrado[2]); //Se realiza primero la inserción del nuevo hito y por último el borrado //del viejo, para traspasar la documentación que pudiera tener. //Inserta el hito en la nueva tabla switch (sTipoHito) { case "HF": //iCodHito = EstrProy.InsertarHito(tr, sDesHito, 0, iOrden); iCodHito = EstrProy.InsertarHito(tr, sDesHito, 1, iOrden, iCodPE); break; case "HT": case "HM": //iCodHito = EstrProy.InsertarHitoPE(tr, iCodCR, iCodPE, sDesHito, sFecha, iOrden); iCodHito = EstrProy.InsertarHitoPE(tr, iCodPE, sDesHito, sFecha, iOrden, sDesHitoLong); break; } SqlDataReader dr; //Selecciono los documentos de un tipo de hito, para luego insertarlos en el otro tipo de hitos. if (sTipoHito == "HF") { dr = DOCUHE.Catalogo3(iCodHitoOriginal); } else { dr = DOCUH.Catalogo3(iCodHitoOriginal); } int nResul; while (dr.Read()) { long?idCS = null;//Id del documento en el Content-Server if (dr["t2_iddocumento"].ToString() != "") { idCS = long.Parse(dr["t2_iddocumento"].ToString()); } if (sTipoHito == "HF") { nResul = DOCUH.Insert(tr, iCodHito, dr["t367_descripcion"].ToString(), dr["t367_weblink"].ToString(), dr["t367_nombrearchivo"].ToString(), idCS, (bool)dr["t367_privado"], (bool)dr["t367_modolectura"], (bool)dr["t367_tipogestion"], int.Parse(Session["UsuarioActual"].ToString())); } else { nResul = DOCUHE.Insert(tr, iCodHito, dr["t366_descripcion"].ToString(), dr["t366_weblink"].ToString(), dr["t366_nombrearchivo"].ToString(), idCS, (bool)dr["t366_privado"], (bool)dr["t366_modolectura"], (bool)dr["t366_tipogestion"], int.Parse(Session["UsuarioActual"].ToString())); } } dr.Close(); dr.Dispose(); //Borro el hito de la tabla en la que estaba HITOPSP.Delete(tr, sTipoHito, iCodHitoOriginal); } #endregion } sTipoHito = aDatosHito[0]; sEstado = aDatosHito[7]; sHitoPE = aDatosHito[8]; if (sHitoPE == "T") { bHitoPE = true; } else { bHitoPE = false; } sAlerta = aDatosHito[9]; sCiclico = aDatosHito[10]; if ((sTipoHito == "HT") || (sTipoHito == "HM")) { iMargen = -1; } else { iMargen = 0; } if (sAlerta == "1") { bAlerta = true; } if (sCiclico == "1") { bCiclico = true; } HITOPSP.Update(tr, sTipoHito, iCodHito, sDesHito, sDesHitoLong, sEstado, iMargen, iOrden, bAlerta, bCiclico, iCodPE, dtFecha, bHitoPE); //Grabamos las tareas asociadas al hito (Si es hito de PE no porque ya lo hace el trigger) //if (sTareas != "" && !bHitoPE) if (sTareas != "") { string[] aTareas = Regex.Split(sTareas, @"##"); for (int i = 0; i < aTareas.Length - 1; i++) { sCad = aTareas[i]; sTipoLinea = sCad.Substring(0, 1); sCodTarea = quitaPuntos(sCad.Substring(1)); if (sTipoLinea == "D") {//Borrar hito-tarea HITOPSP.DeleteTarea(tr, iCodHito, int.Parse(sCodTarea)); } else { if (sTipoLinea == "I") {//Insertar hito-tarea HITOPSP.InsertTarea(tr, iCodHito, int.Parse(sCodTarea)); } } } } Conexion.CommitTransaccion(tr); //sResul = "OK@#@" + DateTime.Now.ToString() + "@#@" + Session["UsuarioActual"].ToString() + "@#@" + Session["APELLIDO1"].ToString() + " " + Session["APELLIDO2"].ToString() + ", " + Session["NOMBRE"].ToString(); sResul = "OK@#@" + iCodHito.ToString() + "@#@"; } catch (Exception ex) { Conexion.CerrarTransaccion(tr); sResul = "Error@#@" + Errores.mostrarError("Error al grabar los datos del hito", ex); } finally { Conexion.Cerrar(oConn); } return(sResul); }
protected void Page_Load(object sender, EventArgs e) { #region Control de sesión if (Session["IDRED"] == null) { try { Response.Redirect("~/SesionCaducadaModal.aspx", true); } catch (System.Threading.ThreadAbortException) { return; } } #endregion string sTipo = Request.QueryString["sTipo"].ToString(); string[] sIDDOC = null; int nIDDOC = 0; switch (sTipo) { case "TIF": case "TAD": case "TAE": sIDDOC = Regex.Split(Request.QueryString["nIDDOC"].ToString(), "datos"); break; case "CVTCUR": case "CVTCUR_IMP": case "CVTEXAMEN": case "CVTCERT": case "CVTEXAMEN2": sIDDOC = Regex.Split(Request.QueryString["nIDDOC"].ToString(), "datos"); break; default: try { nIDDOC = int.Parse(Request.QueryString["nIDDOC"].ToString()); } catch (Exception e1) { string sError = "Descargar.aspx->Page_Load. Tipo=" + sTipo + " Id documento=" + Request.QueryString["nIDDOC"].ToString(); sError += " Ficepi=" + Session["IDFICEPI_PC_ACTUAL"].ToString() + " Error=" + e1.Message; throw (new Exception(sError)); } break; } #region Pruebas //string sPath = "", sNomFich=""; ////sPath = @"../../Upload/634527150288235168.txt"; ////sPath = Server.MapPath(@"/Upload/634527150288235168.txt"); ////sPath = @"d:\inetpub\wwwroot\SUPER\Upload\634527150288235168.txt"; //if (Request.QueryString["sPath"] != null) //{ // sNomFich = Utilidades.decodpar(Request.QueryString["sPath"].ToString()); // //sNomFich = "pepe.xml"; // //sPath = Server.MapPath(@"/SUPER/Upload/") + @"\" + sNomFich; // if (System.Configuration.ConfigurationManager.ConnectionStrings["ENTORNO"].ToString() == "D") // sPath = Server.MapPath(@"/SUPER/Upload/") + sNomFich; // else // sPath = Server.MapPath(@"/Upload/") + sNomFich; // //sPath = @"d:\inetpub\wwwroot\SUPER\Upload\634527150288235168.txt"; // //sPath = Server.MapPath(@"/Upload/634527150288235168.txt"); //} ////sPath = Server.MapPath(@"/Upload/634527150288235168.xml"); ////sNomFich = "634527150288235168.txt"; #endregion string sNombreArchivo = ""; byte[] ArchivoBinario = null; long? t2_iddocumento = null; Response.ClearContent(); Response.ClearHeaders(); Response.Buffer = true; if (Request.QueryString["descargaToken"] != null) { Response.AppendCookie(new HttpCookie("fileDownloadToken", Request.QueryString["descargaToken"].ToString())); //downloadTokenValue will have been provided in the form submit via the hidden input field } Response.ContentType = "application/octet-stream"; try { #region Leer archivo en función de la tabla solicitada switch (sTipo) { case "AS_T": //Asunto de Bitácora de TAREA DOCASU_T oDocAS_T = DOCASU_T.Select(null, nIDDOC); //, true); sNombreArchivo = oDocAS_T.t602_nombrearchivo; t2_iddocumento = oDocAS_T.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocAS_T.t602_archivo; break; case "AC_T": //Acción de Bitácora de TAREA DOCACC_T oDocAC_T = DOCACC_T.Select(null, nIDDOC); //, true); sNombreArchivo = oDocAC_T.t603_nombrearchivo; t2_iddocumento = oDocAC_T.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocAC_T.t603_archivo; break; case "AS_PT": //Asunto de Bitácora de PT DOCASU_PT oDocAS_PT = DOCASU_PT.Select(null, nIDDOC); //, true); sNombreArchivo = oDocAS_PT.t411_nombrearchivo; t2_iddocumento = oDocAS_PT.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocAS_PT.t411_archivo; break; case "AC_PT": //Acción de Bitácora de PT DOCACC_PT oDocAC_PT = DOCACC_PT.Select(null, nIDDOC); //, true); sNombreArchivo = oDocAC_PT.t412_nombrearchivo; t2_iddocumento = oDocAC_PT.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocAC_PT.t412_archivo; break; case "AS": //Asunto de Bitácora case "AS_PE": //Asunto de Bitácora DOCASU oDocAS = DOCASU.Select(null, nIDDOC); //, true); sNombreArchivo = oDocAS.t386_nombrearchivo; t2_iddocumento = oDocAS.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocAS.t386_archivo; break; case "AC": //Acción de Bitácora case "AC_PE": //Acción de Bitácora DOCACC oDocAC = DOCACC.Select(null, nIDDOC); //, true); sNombreArchivo = oDocAC.t387_nombrearchivo; t2_iddocumento = oDocAC.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocAC.t387_archivo; break; case "IAP_T": case "T": DOCUT oDocT = DOCUT.Select(null, nIDDOC); //, true); sNombreArchivo = oDocT.t363_nombrearchivo; t2_iddocumento = oDocT.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocT.t363_archivo; break; case "A": //Actividad DOCUA oDocA = DOCUA.Select(null, nIDDOC); //, true); sNombreArchivo = oDocA.t365_nombrearchivo; t2_iddocumento = oDocA.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocA.t365_archivo; break; case "F": //Fase DOCUF oDocF = DOCUF.Select(null, nIDDOC); //, true); sNombreArchivo = oDocF.t364_nombrearchivo; t2_iddocumento = oDocF.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocF.t364_archivo; break; case "PT": //Proyecto Técnico DOCUPT oDocPT = DOCUPT.Select(null, nIDDOC); //, true); sNombreArchivo = oDocPT.t362_nombrearchivo; t2_iddocumento = oDocPT.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocPT.t362_archivo; break; case "PE": //Proyecto Económico case "PSN": //Proyecto Económico DOCUPE oDocPE = DOCUPE.Select(null, nIDDOC); //, true); sNombreArchivo = oDocPE.t368_nombrearchivo; t2_iddocumento = oDocPE.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocPE.t368_archivo; break; case "PEF": //Espacio de acuerdo de Proyecto Económico DOC_ACUERDO_PROY oDocPEF = DOC_ACUERDO_PROY.Select(null, nIDDOC); //, true); sNombreArchivo = oDocPEF.t640_nombrearchivo; t2_iddocumento = oDocPEF.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocPEF.t640_archivo; break; case "HT": //Hito lineal case "HM": //Hito discontinuo DOCUH oDocH = DOCUH.Select(null, nIDDOC); //, true); sNombreArchivo = oDocH.t366_nombrearchivo; t2_iddocumento = oDocH.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocH.t366_archivo; break; case "HF": //Hito de fecha DOCUHE oDocHE = DOCUHE.Select(null, nIDDOC); //, true); sNombreArchivo = oDocHE.t367_nombrearchivo; t2_iddocumento = oDocHE.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocHE.t367_archivo; break; case "OF": //ORDEN DE FACTURACIÓN DOCUOF oDocOF = DOCUOF.Select(null, nIDDOC, true); sNombreArchivo = oDocOF.t624_nombrearchivo; t2_iddocumento = oDocOF.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocOF.t624_archivo; break; case "PL_OF": //PLANTILLA ORDEN DE FACTURACIÓN PLANTILLADOCUOF oDocPOF = PLANTILLADOCUOF.Select(null, nIDDOC); //, true); sNombreArchivo = oDocPOF.t631_nombrearchivo; t2_iddocumento = oDocPOF.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocPOF.t631_archivo; break; case "EC": //ESPACIO DE COMUNICACION DOCUEC oDocEC = DOCUEC.Select(null, nIDDOC); //, true); sNombreArchivo = oDocEC.t658_nombrearchivo; t2_iddocumento = oDocEC.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocEC.t658_archivo; break; case "DI": //DIALOGO DE ALERTA SUPER.Capa_Datos.DOCDIALOGO oDocDI = SUPER.Capa_Datos.DOCDIALOGO.Select(null, nIDDOC); //, true); sNombreArchivo = oDocDI.t837_nombrearchivo; t2_iddocumento = oDocDI.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocDI.t837_archivo; break; case "SC": //SOLICITUD DE CERTIFICADO SUPER.BLL.DOCSOLICITUD oDocSC = SUPER.BLL.DOCSOLICITUD.Select(null, nIDDOC); //, true); sNombreArchivo = oDocSC.t697_nombrearchivo; t2_iddocumento = oDocSC.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocSC.t697_archivo; break; case "CVTEXAMEN": //CURVIT EXAMEN if (Utilidades.isNumeric(sIDDOC[0].ToString())) { Examen oDocCVTE = Examen.SelectDoc(null, int.Parse(sIDDOC[0].ToString()), int.Parse(sIDDOC[1].ToString())); sNombreArchivo = oDocCVTE.T591_NDOC; //ArchivoBinario = oDocCVTE.T591_DOC; t2_iddocumento = oDocCVTE.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocCVTE.T591_DOC; } else { SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sIDDOC[0].ToString()); sNombreArchivo = oDoc.t686_nombre; t2_iddocumento = oDoc.t2_iddocumento; } break; case "CVTEXAMEN2": //DESDE VARIABLE DE SESIÓN. NO ESTÁ AÚN GRABADO... sNombreArchivo = sIDDOC[1]; ArchivoBinario = (byte[])Session[Utilidades.decodpar(sIDDOC[0])]; break; case "CVTCERT": //CURVIT CERTIFICADO if (Utilidades.isNumeric(sIDDOC[0].ToString())) { Certificado oDocCVTC = Certificado.SelectDoc(null, int.Parse(sIDDOC[0].ToString()), int.Parse(sIDDOC[1].ToString())); sNombreArchivo = oDocCVTC.T593_NDOC; //ArchivoBinario = oDocCVTC.T593_DOC; t2_iddocumento = oDocCVTC.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oDocCVTC.T593_DOC; } else { SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sIDDOC[0].ToString()); sNombreArchivo = oDoc.t686_nombre; t2_iddocumento = oDoc.t2_iddocumento; } break; case "TIF": //CURVIT TITULO IDIOMA FICEPI if (Utilidades.isNumeric(sIDDOC[0].ToString())) { TituloIdiomaFic o = TituloIdiomaFic.SelectDoc(null, int.Parse(sIDDOC[0].ToString())); sNombreArchivo = o.T021_NDOC; t2_iddocumento = o.t2_iddocumento; } else { SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sIDDOC[0].ToString()); sNombreArchivo = oDoc.t686_nombre; t2_iddocumento = oDoc.t2_iddocumento; } break; case "CVTCUR": //CURVIT CURSO RECIBIDOS if (Utilidades.isNumeric(sIDDOC[0].ToString())) { Curso oCurso = Curso.SelectDoc(null, int.Parse(sIDDOC[0].ToString()), int.Parse(sIDDOC[1].ToString())); sNombreArchivo = oCurso.T575_NDOC; //ArchivoBinario = oCurso.T575_DOC; t2_iddocumento = oCurso.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oCurso.T575_DOC; } else { SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sIDDOC[0].ToString()); sNombreArchivo = oDoc.t686_nombre; t2_iddocumento = oDoc.t2_iddocumento; } break; case "CVTCUR_IMP": //CURVIT CURSO IMPARTIDOS if (Utilidades.isNumeric(sIDDOC[0].ToString())) { Curso oCursoImp = Curso.SelectDoc2(null, int.Parse(sIDDOC[0].ToString()), int.Parse(sIDDOC[1].ToString())); sNombreArchivo = oCursoImp.T580_NDOC; //ArchivoBinario = oCursoImp.T580_DOC; t2_iddocumento = oCursoImp.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oCursoImp.T580_DOC; } else { SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sIDDOC[0].ToString()); sNombreArchivo = oDoc.t686_nombre; t2_iddocumento = oDoc.t2_iddocumento; } break; case "CVTDOCTIT": //CURVIT TITULACION DOCUMENTO TITULO Titulacion oTitulo = Titulacion.SelectDoc(null, nIDDOC, "Tit"); sNombreArchivo = oTitulo.NDOC; //ArchivoBinario = oTitulo.DOC; t2_iddocumento = oTitulo.t2_iddocumento; //if (t2_iddocumento == null) ArchivoBinario = oTitulo.DOC; break; case "CVTDOCEX": //CURVIT TITULACION DOCUMENTO EXPEDIENTE Titulacion oTitulo1 = Titulacion.SelectDoc(null, nIDDOC, "Ex"); sNombreArchivo = oTitulo1.NDOC; //ArchivoBinario = oTitulo1.DOC; t2_iddocumento = oTitulo1.t2_iddocumentoExpte; //if (t2_iddocumento == null) ArchivoBinario = oTitulo1.DOC; break; case "TAD": //CURVIT TITULO FICEPI if (Utilidades.isNumeric(sIDDOC[0].ToString())) { TituloFicepi o = TituloFicepi.Select(int.Parse(sIDDOC[0].ToString())); sNombreArchivo = o.T012_NDOCTITULO; t2_iddocumento = o.t2_iddocumento; } else { SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sIDDOC[0].ToString()); sNombreArchivo = oDoc.t686_nombre; t2_iddocumento = oDoc.t2_iddocumento; } break; case "TAE": //CURVIT Expediente TITULO FICEPI if (Utilidades.isNumeric(sIDDOC[0].ToString())) { TituloFicepi o = TituloFicepi.Select(int.Parse(sIDDOC[0].ToString())); sNombreArchivo = o.T012_NDOCEXPDTE; t2_iddocumento = o.t2_iddocumentoExpte; } else { SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sIDDOC[0].ToString()); sNombreArchivo = oDoc.t686_nombre; t2_iddocumento = oDoc.t2_iddocumento; } break; } #endregion if (t2_iddocumento != null) { ArchivoBinario = IB.Conserva.ConservaHelper.ObtenerDocumento((long)t2_iddocumento).content; } Response.AddHeader("Content-Disposition", "attachment; filename=\"" + sNombreArchivo + "\""); if (HttpContext.Current.Request.Browser.Browser.ToString() == "Chrome") { Response.AddHeader("Content-Length", "999999999999"); } Response.BinaryWrite(ArchivoBinario); if (Response.IsClientConnected) { Response.Flush(); } } catch (ConservaException cex) { this.hdnError.Value = Utilidades.MsgErrorConserva("R", cex); } //catch (System.Web.HttpException hexc) //{ //} catch (Exception ex) { this.hdnError.Value = "No se ha podido obtener el archivo.<br /><br />Error: " + ex.Message; if (ex.InnerException != null) { this.hdnError.Value += "<br />Detalle error: " + ex.InnerException.Message; } } //Response.Flush(); finally { if (this.hdnError.Value == "") { Response.Close(); //Response.End(); } } }