protected void Page_Load(object sender, EventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        Decimal REGISTRO = Convert.ToDecimal(QueryStringSeguro["registro"]);

        examenesEmpleado _examen = new examenesEmpleado(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoExamen = _examen.ObtenerConRegExamenesEmpleadoPorRegistro(Convert.ToInt32(REGISTRO));

        DataRow filaInfoExamen = tablaInfoExamen.Rows[0];

        Response.Clear();
        Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", "RESULTADOS_EXAMEN_" + filaInfoExamen["REGISTRO"].ToString() + filaInfoExamen["ARCHIVO_EXTENSION"].ToString()));

        Response.ContentType = filaInfoExamen["ARCHIVO_TYPE"].ToString().Trim();

        Response.BinaryWrite((byte[])filaInfoExamen["ARCHIVO_EXAMEN"]);

        Response.End();
    }
    private void GuardarPaso2_ResultadosExamenes()
    {
        tools _tools = new tools();

        Int32 ID_REQUERIMIENTO = Convert.ToInt32(HiddenField_ID_REQUERIMIENTO.Value);
        Int32 ID_SOLICITUD = Convert.ToInt32(HiddenField_ID_SOLICITUD.Value);
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);
        Decimal ID_OCUPACION = Convert.ToDecimal(HiddenField_ID_OCUPACION.Value);

        String FORMA_PAGO = DropDownList_forma_pago.SelectedValue;
        Decimal ID_ENTIDAD = 0;
        String TIPO_CUENTA = null;
        String NUM_CUENTA = null;
        if ((DropDownList_forma_pago.SelectedValue == "CONSIGNACIÓN BANCARIA") || (DropDownList_forma_pago.SelectedValue == "DISPERSION") || (DropDownList_forma_pago.SelectedValue == "ACH"))
        {
            ID_ENTIDAD = Convert.ToDecimal(DropDownList_entidad_bancaria.SelectedValue);
            TIPO_CUENTA = DropDownList_TIPO_CUENTAS.SelectedValue;

            if (CheckBox_TIENE_CUENTA.Checked == true)
            {
                NUM_CUENTA = TextBox_Numero_CuentaS.Text.Trim();
            }

            NUM_CUENTA = TextBox_Numero_CuentaS.Text;
        }

        ordenExamenes _ordenes = new ordenExamenes(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaOrdenes = _ordenes.ObtenerConRegOrdenExamenPorSolicitud(ID_REQUERIMIENTO, ID_SOLICITUD);
        examenesEmpleado _REGISTRO = new examenesEmpleado(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        List<examenesEmpleado> listaExamenesActualizar = new List<examenesEmpleado>();

        for (int i = 0; i < GridView_EXAMENES_REALIZADOS.Rows.Count; i++)
        {
            DataRow filaInfoOrdenExamen = tablaOrdenes.Rows[i];

            Int32 registro = Convert.ToInt32(GridView_EXAMENES_REALIZADOS.DataKeys[i].Values["REGISTRO"]);
            Int32 orden = Convert.ToInt32(GridView_EXAMENES_REALIZADOS.DataKeys[i].Values["ID_ORDEN"]);
            Int32 producto = Convert.ToInt32(GridView_EXAMENES_REALIZADOS.DataKeys[i].Values["ID_PRODUCTO"]);
            CheckBox validar = GridView_EXAMENES_REALIZADOS.Rows[i].FindControl("CheckBox_EXAMENES_ENTREGADOS") as CheckBox;

            Int32 proveedor;
            DataTable tabla = _REGISTRO.ObtenerConRegExamenesEmpleadoPorRegistro(registro);
            DataRow fila = tabla.Rows[0];
            proveedor = Convert.ToInt32(fila["REGISTRO_PRODUCTOS_PROVEEDOR"]);

            if (filaInfoOrdenExamen["VALIDADO"].ToString().Trim() == "N")
            {
                if (validar.Checked == true)
                {
                    DateTime fecha = System.DateTime.Today;

                    TextBox autos = GridView_EXAMENES_REALIZADOS.Rows[i].FindControl("TextBox_Autos_Recomendacion") as TextBox;

                    FileUpload archivoCargado = GridView_EXAMENES_REALIZADOS.Rows[i].FindControl("FileUpload_ARCHIVO") as FileUpload;

                    Byte[] ARCHIVO_EXAMEN = null;
                    Int32 ARCHIVO_TAMANO = 0;
                    String ARCHIVO_EXTENSION = null;
                    String ARCHIVO_TYPE = null;
                    if (archivoCargado.HasFile == true)
                    {
                        using (BinaryReader reader = new BinaryReader(archivoCargado.PostedFile.InputStream))
                        {
                            ARCHIVO_EXAMEN = reader.ReadBytes(archivoCargado.PostedFile.ContentLength);
                            ARCHIVO_TAMANO = archivoCargado.PostedFile.ContentLength;
                            ARCHIVO_TYPE = archivoCargado.PostedFile.ContentType;
                            ARCHIVO_EXTENSION = _tools.obtenerExtensionArchivo(archivoCargado.PostedFile.FileName);
                        }
                    }

                    examenesEmpleado _ex = new examenesEmpleado();

                    _ex.AutoRecomendacion = autos.Text.Trim();
                    _ex.registro = registro;
                    _ex.IdOrden = orden;
                    _ex.ARCHIVO_EXAMEN = ARCHIVO_EXAMEN;
                    _ex.ARCHIVO_EXTENSION = ARCHIVO_EXTENSION;
                    _ex.ARCHIVO_TAMANO = ARCHIVO_TAMANO;
                    _ex.ARCHIVO_TYPE = ARCHIVO_TYPE;
                    _ex.Fecha = fecha;
                    _ex.IdExamen = producto;
                    _ex.IdLab = proveedor;
                    _ex.IdRequerimientos = ID_REQUERIMIENTO;
                    _ex.IdSolIngreso = ID_SOLICITUD;
                    _ex.RegistroAlmacen = registro;
                    _ex.Valida = true;

                    listaExamenesActualizar.Add(_ex);
                }
            }
        }

        examenesEmpleado _examenes = new examenesEmpleado(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Boolean resultado = _examenes.actualizarExamenesYFormaPago(listaExamenesActualizar, ID_SOLICITUD, ID_ENTIDAD, NUM_CUENTA, FORMA_PAGO, TIPO_CUENTA);

        if (resultado == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _examenes.MensajeError, Proceso.Error);
        }
        else
        {
            Cargar(ID_REQUERIMIENTO, ID_SOLICITUD, ID_EMPRESA, ID_OCUPACION);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Los Resultados de los examenes y la configuración de forma de pago fue realizada correctamente.", Proceso.Correcto);
        }
    }