Beispiel #1
0
        /// <summary>
        ///Asocia un examne a un profresional. Inserta un registro en T591_FICEPIEXAMEN
        ///Si hay cambio de examen
        ///      Borra el examen viejo de las vias (T585_EXAMENCERT) si es un examen no válido (t583_valido=0) o vía no válida (t001_idficepi!=null)
        ///      Borra el examen viejo de T591_FICEPIEXAMEN
        ///      Borra el examen viejo de T583_EXAMEN si es un examen no válido (t583_valido=0)
        /// </summary>
        /// <param name="tr"></param>
        /// <param name="idExamenOld"></param>
        /// <param name="idExamenNew"></param>
        /// <param name="nombre"></param>
        /// <param name="doc"></param>
        /// <param name="ndoc"></param>
        /// <param name="t001_idficepi"></param>
        /// <param name="fechaO"></param>
        /// <param name="fechaC"></param>
        /// <param name="t839_idestado"></param>
        /// <param name="t595_motivort"></param>
        /// <param name="t001_idficepiu"></param>
        /// <param name="bCambioDoc"></param>
        /// <param name="t583_valido"></param>
        /// <param name="t591_origenCVT"></param>
        /// <returns></returns>
        public static int AsignarProfesional(SqlTransaction tr, int t001_idficepi, int idExamenOld, int idExamenNew,
                                             string ndoc, string sUsuTick, Nullable <DateTime> fechaO, Nullable <DateTime> fechaC,
                                             char t839_idestado, bool t591_origenCVT, string sMotivo)
        {
            int  iRes        = idExamenNew;
            long?idDocAtenea = null;

            if (sUsuTick.Trim() != "")//Recupero el idDocumento de la tabla Temporal
            {
                SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(tr, sUsuTick);
                idDocAtenea = oDoc.t2_iddocumento;
            }

            if (idExamenOld == -1)//Inserto en FICEPIEXAMEN el nuevo examen
            {
                SUPER.DAL.Examen.InsertarProf(tr, t001_idficepi, idExamenNew, ndoc, fechaO, fechaC, t839_idestado,
                                              t591_origenCVT, idDocAtenea, sMotivo);
            }
            else
            {
                if (idExamenNew == idExamenOld)
                {   //Update FICEPIEXAMEN
                    SUPER.DAL.Examen.ModificarProf(tr, t001_idficepi, idExamenNew, fechaO, fechaC, t839_idestado);
                    if (idDocAtenea != null)
                    {//Ha habido cambio de documento
                        SUPER.DAL.Examen.PonerDocumento(tr, t001_idficepi, idExamenNew, (long)idDocAtenea, ndoc);
                    }
                }
                else
                {   //Borra el examen de las vías no validadas
                    SUPER.DAL.Examen.BorrarVia(tr, idExamenOld, t001_idficepi);
                    if (idDocAtenea == null)
                    {
                        //RECUPERO LOS DATOS DEL DOCUMENTO PARA ASIGNÁRSELOS AL NUEVO REGISTRO
                        Examen oExamOld = SelectDoc(tr, idExamenOld, t001_idficepi);
                        idDocAtenea = oExamOld.t2_iddocumento;
                    }
                    //Inserto en FICEPIEXAMEN el nuevo examen
                    SUPER.DAL.Examen.InsertarProf(tr, t001_idficepi, idExamenNew, ndoc, fechaO, fechaC, t839_idestado,
                                                  t591_origenCVT, idDocAtenea, sMotivo);
                    //Borro de FICEPIEXAMEN el examen viejo. Lo hago en este orden (PRIMERO INSERTAR Y LUEGO BORRAR)
                    //porque si primero borrara el examen viejo y el certificado sólo tuviera ese examen, por trigger sobre FICEPIEXAMEN
                    //se borraría también el registro en FICEPICERT
                    SUPER.DAL.Examen.DeleteAsistente(tr, idExamenOld, t001_idficepi);
                    //Si el examen viejo era NO VALIDO, se borra el examen
                    SUPER.DAL.Examen.DeleteNoValido(tr, idExamenOld);
                }
            }
            if (sUsuTick.Trim() != "")
            {   //Marco el documento como asignado para que el trigger no lo borre de Atenea
                if (idDocAtenea != null)
                {
                    SUPER.DAL.DocuAux.Asignar(tr, (long)idDocAtenea);
                }
                //Borro el documento de la tabla temporal
                SUPER.DAL.DocuAux.BorrarDocumento(tr, "E", sUsuTick);
            }

            return(iRes);
        }
        public static DocuAux GetDocumento(SqlTransaction tr, string t686_usuticks)
        {
            DocuAux       oDoc = new DocuAux();
            SqlDataReader dr;

            SqlParameter[] aParam = new SqlParameter[] {
                ParametroSql.add("@t686_usuticks", SqlDbType.VarChar, 50, t686_usuticks)
            };

            if (tr == null)
            {
                dr = SqlHelper.ExecuteSqlDataReader("SUP_DOCUAUX_S", aParam);
            }
            else
            {
                dr = SqlHelper.ExecuteSqlDataReaderTransaccion(tr, "SUP_DOCUAUX_S", aParam);
            }
            if (dr.Read())
            {
                oDoc.t2_iddocumento = long.Parse(dr["t2_iddocumento"].ToString());
                oDoc.t686_nombre    = dr["t686_nombre"].ToString();
            }
            dr.Close();
            dr.Dispose();

            return(oDoc);
        }
    public string Grabar(int idTituloIdioma, int idFicepi, int idIdioma, string sDenTitulo, string sFecha, string sObs, string sCentro,
                         string sDenDoc, string sCambioDoc, string sUsuTick, string sEstado, string sMotivo, string sEstadoIni,
                         string sIdContentServer, string sEsMiCV)
    {
        string sRes = "OK@#@";

        try
        {
            long?idDocAtenea = null;
            if (sUsuTick.Trim() != "")//Recupero el idDocumento de la tabla Temporal
            {
                SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sUsuTick);
                idDocAtenea = oDoc.t2_iddocumento;
            }
            else
            {
                if (sIdContentServer != "")
                {
                    idDocAtenea = long.Parse(sIdContentServer);
                }
            }
            TituloIdiomaFic.Grabar((idTituloIdioma == -1) ? null : (int?)idTituloIdioma,
                                   sDenTitulo,
                                   (sFecha == "") ? null : (DateTime?)DateTime.Parse(sFecha),  //Fecha Obtencion
                                   sObs, sCentro, idFicepi, idIdioma, sDenDoc,
                                   bool.Parse(sCambioDoc),
                                   char.Parse(sEstado), sMotivo,
                                   (int)Session["IDFICEPI_ENTRADA"], //IDFICEPIU
                                   char.Parse(sEstadoIni), idDocAtenea, sEsMiCV);
            if (sUsuTick.Trim() != "")
            {   //Marco el documento como asignado para que el trigger no lo borre de Atenea
                if (idDocAtenea != null)
                {
                    SUPER.DAL.DocuAux.Asignar(null, (long)idDocAtenea);
                }
                //Borro el documento de la tabla temporal
                SUPER.DAL.DocuAux.BorrarDocumento(null, "T", sUsuTick);
            }
        }
        catch (Exception ex)
        {
            sRes = "Error@#@" + ex.Message;
        }
        return(sRes);
    }
    public string Grabar(string t012_idtituloficepi, int idFicepi, string sIdTitulacion, string sTitulo, string sTipo, string sModalidad,
                         string sTic, string sFinalizado, string sEspecialidad, string sCentro, string sInicio, string sFin,
                         string sNombreDoc, string sNombreExp, string sObs, string sEstadoNuevo, string sMotivoR,
                         string sCambioDoc, string sCambioExpte, string sEstadoInicial, string sOperacion, short idTitulacionIni,
                         string sUsuTickTit, string sUsuTickExpte, string sIdContentServer, string sIdContentServerExpte, string sEsMiCV)
    {
        string sRes = "OK@#@";

        try
        {
            long?idContentServer      = null;
            long?idContentServerExpte = null;
            #region Atenea
            if (sUsuTickTit.Trim() != "" && sNombreDoc.Trim() != "")//Recupero el idDocumento de la tabla Temporal
            {
                SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sUsuTickTit);
                idContentServer = oDoc.t2_iddocumento;
            }
            else
            {
                if (sIdContentServer != "")
                {
                    idContentServer = long.Parse(sIdContentServer);
                }
            }
            if (sUsuTickExpte.Trim() != "" && sNombreExp.Trim() != "")//Recupero el idDocumento de la tabla Temporal
            {
                SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sUsuTickExpte);
                idContentServerExpte = oDoc.t2_iddocumento;
            }
            else
            {
                if (sIdContentServerExpte != "")
                {
                    idContentServerExpte = long.Parse(sIdContentServerExpte);
                }
            }
            #endregion

            TituloFicepi.Grabar((t012_idtituloficepi == "") ? null : (int?)int.Parse(t012_idtituloficepi),
                                sTitulo, (sIdTitulacion == "") ? (short)-1 : short.Parse(sIdTitulacion),
                                idFicepi, ((sTipo == "") ? null : (byte?)byte.Parse(sTipo)),
                                ((sModalidad == "") ? null : (byte?)byte.Parse(sModalidad)),
                                (sTic == "S") ? true : false,
                                (sFinalizado == "S") ? true : false,
                                sEspecialidad, sCentro,
                                ((sInicio == "") ? null : (short?)short.Parse(sInicio)),
                                ((sFin == "") ? null : (short?)short.Parse(sFin)),
                                sNombreDoc, sNombreExp, sObs, char.Parse(sEstadoNuevo), sMotivoR, int.Parse(Session["IDFICEPI_ENTRADA"].ToString()),
                                bool.Parse(sCambioDoc), bool.Parse(sCambioExpte), char.Parse(sEstadoInicial), sOperacion, idTitulacionIni,
                                idContentServer, idContentServerExpte, sEsMiCV);

            if (sUsuTickTit.Trim() != "")
            {   //Marco el documento como asignado para que el trigger no lo borre de Atenea
                if (idContentServer != null)
                {
                    SUPER.DAL.DocuAux.Asignar(null, (long)idContentServer);
                }
                //Borro el documento de la tabla temporal
                SUPER.DAL.DocuAux.BorrarDocumento(null, "A", sUsuTickTit);
            }
            if (sUsuTickExpte.Trim() != "")
            {   //Marco el documento como asignado para que el trigger no lo borre de Atenea
                if (idContentServerExpte != null)
                {
                    SUPER.DAL.DocuAux.Asignar(null, (long)idContentServerExpte);
                }
                //Borro el documento de la tabla temporal
                SUPER.DAL.DocuAux.BorrarDocumento(null, "A", sUsuTickExpte);
            }
        }
        catch (Exception ex)
        {
            sRes = "Error@#@" + ex.Message;
        }
        return(sRes);
    }
    public string Grabar(int idFicepi, int idCurso, string sDenCurso, string sDenDoc, string sUsuTick, string sFIni, string sFFin,
                         string sProv, string sHoras, string sProveedor, string sEntorno, string sContenido, string sObs, string sTecnico,
                         string sEstado, string sMotivo, string sOnLine, string sVisibleCV, string sEsMiCV,
                         string sCambioDoc, string sEstadoInicial, string sIdContentServer)
    {
        string sRes      = "OK@#@";
        int    idFicepiU = int.Parse(Session["IDFICEPI_ENTRADA"].ToString());

        try
        {
            int? iCursoOnline = null;
            long?idDocAtenea  = null;
            if (sUsuTick.Trim() != "" && sDenDoc.Trim() != "")//Recupero el idDocumento de la tabla Temporal
            {
                SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(null, sUsuTick);
                idDocAtenea = oDoc.t2_iddocumento;
            }
            else
            {
                if (sIdContentServer != "")
                {
                    idDocAtenea = long.Parse(sIdContentServer);
                }
            }
            if (sOnLine == "S")
            {
                iCursoOnline = 77;
            }

            if (idCurso == -1)
            {
                Curso.Grabar(sDenCurso.Trim(), 3, 1,                                  //Tipo
                             (sFIni != "") ? (DateTime?)DateTime.Parse(sFIni) : null, //Fecha Inicio
                             (sFFin != "") ? (DateTime?)DateTime.Parse(sFFin) : null, //Fecha Fin
                             (sProv == "") ? null : (int?)int.Parse(sProv),           //Provincia
                             (sHoras != "") ? float.Parse(sHoras) : (float)0,         //Horas
                             sProveedor.Trim(),                                       //Proveedor (Si hdnIdProveedor "" then T574_Direccion=Proveedor
                             (sEntorno == "") ? null : (int?)int.Parse(sEntorno),     //Entorno
                             sContenido, sObs,                                        //Observaciones asistente
                             (sTecnico == "N") ? 0 : 1,                               //Tecnico-Competencias
                             idFicepi, sDenDoc, char.Parse(sEstado), sMotivo, idFicepiU, iCursoOnline,
                             (sVisibleCV == "N") ? false : true,
                             idDocAtenea, sEsMiCV);
            }
            else
            {
                Curso.Update(idCurso, sDenCurso.Trim(), 3, 1,                         //Tipo
                             (sFIni != "") ? (DateTime?)DateTime.Parse(sFIni) : null, //Fecha Inicio
                             (sFFin != "") ? (DateTime?)DateTime.Parse(sFFin) : null, //Fecha Fin
                             (sProv == "") ? null : (int?)int.Parse(sProv),           //Provincia
                             (sHoras != "") ? float.Parse(sHoras) : (float)0,         //Horas
                             sProveedor.Trim(),                                       //Proveedor (Si hdnIdProveedor "" then T574_Direccion=Proveedor
                             (sEntorno == "") ? null : (int?)int.Parse(sEntorno),     //Entorno
                             sContenido, sObs, (sTecnico == "N") ? 0 : 1,             //Tecnico-Competencias
                             idFicepi, sDenDoc, bool.Parse(sCambioDoc), char.Parse(sEstado),
                             sMotivo, idFicepiU, char.Parse(sEstadoInicial), iCursoOnline,
                             (sVisibleCV == "N") ? false : true,
                             idDocAtenea, sEsMiCV);
            }
            if (sUsuTick.Trim() != "")
            {   //Marco el documento como asignado para que el trigger no lo borre de Atenea
                if (idDocAtenea != null)
                {
                    SUPER.DAL.DocuAux.Asignar(null, (long)idDocAtenea);
                }
                //Borro el documento de la tabla temporal
                SUPER.DAL.DocuAux.BorrarDocumento(null, "R", sUsuTick);
            }
        }
        catch (Exception ex)
        {
            sRes = "Error@#@" + ex.Message;
        }
        return(sRes);
    }
Beispiel #6
0
    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();
            }
        }
    }
Beispiel #7
0
    public int Grabar(int t001_idficepi, int idCertOld, int idCertNew, int idFicepiCert, string sDenDoc, string sUsuTick, string sEstado,
                      string sMotivo, string sCertValido, string slExamenes, string sIdContentServer)
    {
        bool bTodosBorrados = true, bCertValido = false;

        /* En certificados un Encargado no puede validar pues se hará desde RRHH
         * Por tanto para un encargado, las opciones serán o enviar a validar o enviar a cumplimentar
         */
        #region Inicio Transacción

        SqlConnection  oConn;
        SqlTransaction tr;
        try
        {
            oConn = Conexion.Abrir();
            tr    = Conexion.AbrirTransaccion(oConn);
        }
        catch (Exception ex)
        {
            throw (new Exception("Error al abrir la conexion", ex));
        }

        #endregion

        try
        {
            if (sCertValido == "S")
            {
                bCertValido = true;
            }
            if (sEstado != "")
            {
                if (idCertOld != -1 && idFicepiCert == -1) //Quiere ir a por un certificado sugerido
                {
                    sEstado = "P";
                    //idCertNew = idCertOld;
                }
            }
            #region Tramitar certificado
            long?idDocAtenea = null;
            if (sUsuTick.Trim() != "")//Recupero el idDocumento de la tabla Temporal
            {
                SUPER.DAL.DocuAux oDoc = SUPER.DAL.DocuAux.GetDocumento(tr, sUsuTick);
                idDocAtenea = oDoc.t2_iddocumento;
            }
            if (idFicepiCert == -1 || idCertOld != idCertNew)
            {
                if (sEstado == "X" || sEstado == "Y")
                {//Si estaba pdte de anexar y lo vuelvo a enviar a validar, borro el motivo por el que el documento no era válido
                    sMotivo = "";
                }
                if (sUsuTick.Trim() == "")
                {
                    if (sIdContentServer != "")
                    {
                        idDocAtenea = long.Parse(sIdContentServer);
                    }
                }
                SUPER.BLL.Certificado.InsertarProfesional(tr, idCertNew, t001_idficepi, sDenDoc, idDocAtenea);
                //Si ha habido cambio de certificado comprobamos lo siguiente
                //1.- Que en FicepiCert no quede registro para ese certificado y ese profesional
                //2.- Que si el certificado es no válido (y por tanto provenía de propuesta del profesional) y no tiene ningún
                //      FicepiCert colgando, hay que borrarlo de la tabla maestra de certificados
                if (idCertOld != idCertNew)
                {
                    if (idCertOld != -1)
                    {
                        SUPER.BLL.Certificado.BorrarProfesional(tr, idCertOld, t001_idficepi);
                        if (!bCertValido)
                        {
                            if (!SUPER.BLL.Certificado.TieneProfesionales(tr, idCertOld))
                            {
                                SUPER.BLL.Certificado.DeleteNoValido(tr, idCertOld);
                            }
                        }
                    }
                }
            }
            else
            {//Si solo ha cambiado el documento
                if (idDocAtenea != null)
                {
                    SUPER.BLL.Certificado.PonerDocumento(tr, t001_idficepi, idCertNew, (long)idDocAtenea, sDenDoc);
                }
            }
            SUPER.BLL.Certificado.PonerMotivo(tr, t001_idficepi, idCertNew, sMotivo);
            if (sUsuTick.Trim() != "")
            {   //Marco el documento como asignado para que el trigger no lo borre de Atenea
                if (idDocAtenea != null)
                {
                    SUPER.DAL.DocuAux.Asignar(tr, (long)idDocAtenea);
                }
                //Borro el documento de la tabla temporal
                SUPER.DAL.DocuAux.BorrarDocumento(tr, "C", sUsuTick);
            }
            #endregion
            #region Borro examenes marcados para borrado y creo array con los restantes
            string[] aFilas = Regex.Split(slExamenes, "@exa@");
            for (int i = 0; i < aFilas.Length; i++)
            {
                string[] aColumnas = Regex.Split(aFilas[i], "@col@");
                if (aColumnas[1] == "D")
                {//Borrado de un examen
                    SUPER.BLL.Examen.BorrarAsistente("B", t001_idficepi, int.Parse(aColumnas[0]));
                }
                else
                {
                    bTodosBorrados = false;
                }
            }
            //Si el certificado se ha quedado sin exámenes, lo borramos
            if (bTodosBorrados)
            {
                SUPER.BLL.Certificado.DeleteNoValido(tr, idCertNew);
            }
            #endregion

            Conexion.CommitTransaccion(tr);
            return(idCertNew);
        }

        catch (Exception ex)
        {
            Conexion.CerrarTransaccion(tr);
            throw ex;
        }
        finally
        {
            Conexion.Cerrar(oConn);
        }
    }