public bool InsertarFicha(Semestre sem, Grupo grupo, Proyecto p, Alumno Aldba, Alumno AlPro, Alumno alJefe, DescrpProyecto des, TipoInnovacion ti, Docente docPEP, Docente docGPI, TipoInnovacionNegocio tin)
        {
            bool estado = false;

            if (p.Nombre.Length > 0)
            {
                //ingreso a tabla semestre

                string insert1 = "insert into Semestre(numero,año,fk_idTSem) values(" + sem.Numero + "," + sem.Año + "," + sem.Fk_idTsem + ");";
                ejecutar(insert1);
                //ingreso a tabla grupo
                string insert2 = "insert into grupo(nombre,estado) values('" + grupo.Nombre + "'," + 1 + ");";
                ejecutar(insert2);
                //ingreso a tabla proyecto
                string insert3 = "insert into Proyecto(nombre,fk_idDe,fk_idTneg,fk_idSuc,fk_idSem,fk_idGru,fk_idTin)" +
                                 " values('" + p.Nombre + "'," + p.Fk_idDe + "," + p.Fk_idTneg + "," + p.Fk_idSuc + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),(select idGru from grupo where nombre='" + grupo.Nombre + "')," + tin.IdTin + ");";
                ejecutar(insert3);

                //ingresu a alumnos
                //INGRESO DBA
                string insertDBA = "insert into alumno values('" + Aldba.RutAlumn + "','" + Aldba.Nombre + "'," + Aldba.DueñoIdea + ",'" + Aldba.Correo + "'," + Aldba.Estado + "," + Aldba.Fk_idCar + "," + Aldba.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + Aldba.RutAlumn + "');";
                ejecutar(insertDBA);
                //INGRESO PROGRAMADOR
                string insertpro = "insert into alumno values('" + AlPro.RutAlumn + "','" + AlPro.Nombre + "'," + AlPro.DueñoIdea + ",'" + AlPro.Correo + "'," + AlPro.Estado + "," + AlPro.Fk_idCar + "," + AlPro.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + AlPro.RutAlumn + "');";
                ejecutar(insertpro);
                //INGRESO JEFE
                string insertJefe = "insert into alumno values('" + alJefe.RutAlumn + "','" + alJefe.Nombre + "'," + alJefe.DueñoIdea + ",'" + alJefe.Correo + "'," + alJefe.Estado + "," + alJefe.Fk_idCar + "," + alJefe.Fk_idRol + ",(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + "),'" + alJefe.RutAlumn + "');";
                ejecutar(insertJefe);

                //INGRESO TABLA ALUMNO-GRUPO
                string insertAlumnoGrupoDBA = "insert into alumno_grupo values('" + Aldba.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                ejecutar(insertAlumnoGrupoDBA);
                string insertAlumnoGrupoPROGRA = "insert into alumno_grupo values('" + AlPro.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                ejecutar(insertAlumnoGrupoPROGRA);
                string insertAlumnoGrupoJEFE = "insert into alumno_grupo values('" + alJefe.RutAlumn + "',(select idGru from grupo where nombre='" + grupo.Nombre + "'));";
                ejecutar(insertAlumnoGrupoJEFE);

                //INGRESO DESCRIPCION PROYECTO
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "insert into descrpProyecto(link,identificacion,origen,afectados,justificacion,propuesta_solucion,diagrama_func_,estado,fk_folio) values('" + des.Link + "','" + des.Identificacion + "','" + des.Origen + "','" + des.Afectados + "','" + des.Justificacion + "','" + des.Propuesta_solucion + "',@diagrama,1,(select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')));";
                cmd.Parameters.Add("@diagrama", SqlDbType.Image).Value = des.Diagrama_func;
                cmd.CommandType = CommandType.Text;
                cmd.Connection  = c.con;
                c.con.Open();
                cmd.ExecuteNonQuery();
                c.con.Close();

                //INGRESO TIPO INNOVACION
                if (ti.IdTinno >= 1 && ti.IdTinno <= 7)
                {
                    if (ti.IdTinno == 6)
                    {
                        string inserNuevoTipoInnovacion = "insert into Tecnologias (nombre_tecnologia,fk_idTinno) values('" + ti.Tipo + "'," + ti.IdTinno + ");";
                        ejecutar(inserNuevoTipoInnovacion);

                        string insertTp = "insert into detInnovacion (fk_folio,fk_idTinno) values((select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')),(SELECT TipoInnovacion.idTInno FROM Tecnologias INNER JOIN TipoInnovacion ON Tecnologias.fk_idTInno = TipoInnovacion.idTInno where Tecnologias.nombre_tecnologia='" + ti.Tipo + "'));";
                        ejecutar(insertTp);
                    }
                    else
                    {
                        string insertTp = "insert into detInnovacion (fk_folio,fk_idTinno) values((select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "'))," + ti.IdTinno + ");";
                        ejecutar(insertTp);
                    }
                }



                //ingreso Definiciones
                string insertdefproc = "insert into Definiciones(definicion) values('" + des.Definiciones + "')";
                ejecutar(insertdefproc);

                //ingreso a DefProyecto
                string insertDefProyecto = "insert into defproyecto(fk_folio,fk_idDef) values((select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')),(select idDef from definiciones where definicion='" + des.Definiciones + "'));";
                ejecutar(insertDefProyecto);
                //INGRESO DOCENTES
                //INGRESO PEP
                string insertPEP = "insert into DocentesPro(Docente_rutDoc,Proyecto_folio) values('" + docPEP.RutDoc + "',(select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')))";
                ejecutar(insertPEP);
                //INGRESO GPI
                string insertGPI = "insert into DocentesPro(Docente_rutDoc,Proyecto_folio) values('" + docGPI.RutDoc + "',(select folio from proyecto where nombre='" + p.Nombre + "' and fk_idDe=" + p.Fk_idDe + " and fk_idTNeg=" + p.Fk_idTneg + " and fk_idSuc=" + p.Fk_idSuc + " and fk_idSem=(select idSem from semestre where numero=" + sem.Numero + " and año=" + sem.Año + ") and fk_idGru=(select idGru from grupo where nombre='" + grupo.Nombre + "')))";
                ejecutar(insertGPI);
                estado = true;
            }
            return(estado);
        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                Datos datos = new Datos();
                //toma de datos de semestre
                Semestre s = new Semestre();
                s.Numero    = int.Parse(txtNroSemestre.Text);
                s.Año       = int.Parse(txtAñoSemestre.Text);
                s.Fk_idTsem = int.Parse(ddlTipoSemestre.SelectedValue);
                //Toma de datos docentes
                Docente docPEP = new Docente();
                docPEP.RutDoc = ddlDocentePEP.SelectedValue;
                Docente docGPI = new Docente();
                docGPI.RutDoc = ddlDocenteGPI.SelectedValue;



                //toma de datos de grupo
                Grupo gp = new Grupo();
                gp.Nombre = txtNombreGrupo.Text;
                gp.Estado = 1;
                //toma de datos alumnoDBA
                Alumno aldba    = new Alumno();
                Alumno alprogra = new Alumno();
                Alumno aljefe   = new Alumno();

                aldba.RutAlumn = txtRutDBA.Text;
                aldba.Nombre   = txtNombreDBA.Text;

                aldba.Correo   = "AA";
                aldba.Estado   = 1;
                aldba.Fk_idCar = int.Parse(ddlCarrera.SelectedValue);
                aldba.Fk_idRol = 1;
                //para el valor fk_idsem se agrega desde la query
                //para el campof fk_idUs se agrega desde la query

                //INGRESO ALUMNO PROGRA

                alprogra.RutAlumn = txtRutProgra.Text;
                alprogra.Nombre   = txtNomProgra.Text;

                alprogra.Correo   = "AA";
                alprogra.Estado   = 1;
                alprogra.Fk_idCar = int.Parse(ddlCarrera.SelectedValue);
                alprogra.Fk_idRol = 3;
                //para el valor fk_idsem se agrega desde la query
                //para el campof fk_idUs se agrega desde la query

                //INGRESO ALUMNO JEFE

                aljefe.RutAlumn = txtRutJefe.Text;
                aljefe.Nombre   = txtNombreJEfe.Text;

                aljefe.Correo   = "AA";
                aljefe.Estado   = 1;
                aljefe.Fk_idCar = int.Parse(ddlCarrera.SelectedValue);
                aljefe.Fk_idRol = 2;
                //para el valor fk_idsem se agrega desde la query
                //para el campof fk_idUs se agrega desde la query

                //definir dueño de la idea
                if (dueñoDba.Checked)
                {
                    aldba.DueñoIdea = 1;
                }
                else if (dueñoProgra.Checked)
                {
                    alprogra.DueñoIdea = 1;
                }
                else if (dueñoJefe.Checked)
                {
                    aljefe.DueñoIdea = 1;
                }
                else
                {
                    throw new Exception("Debe seleccionar algun dueño de la idea");
                }

                //DEFINICION JEFE DE PROYECTO


                //toma de datos tabla proyecto

                Proyecto p = new Proyecto();
                p.Nombre = txtNombre_Proyecto.Text;
                //Toma de tipo de desarrollo

                if (rdMovil.Checked)
                {
                    p.Fk_idDe = 1;
                }
                else if (rdWeb.Checked)
                {
                    p.Fk_idDe = 2;
                }
                else if (rdArduino.Checked)
                {
                    p.Fk_idDe = 3;
                }
                else if (rdclienteServidor.Checked)
                {
                    p.Fk_idDe = 4;
                }
                //Toma de tipo de negocio

                if (rdEmpren.Checked)
                {
                    p.Fk_idTneg = 1;
                }
                else if (rdVincula.Checked)
                {
                    p.Fk_idTneg = 2;
                }

                //toma de sucursal
                p.Fk_idSuc = int.Parse(ddlsucursal.SelectedValue);
                //toma de datos Descrpproyecto
                DescrpProyecto des = new DescrpProyecto();
                des.Link               = txtLinkPitch.Text;
                des.Identificacion     = txtIdentificacion.Text;
                des.Origen             = txtOrigen.Text;
                des.Afectados          = txtAfectados.Text;
                des.Justificacion      = txtJustificacion.Text;
                des.Propuesta_solucion = txtPropuesta.Text;
                des.Definiciones       = txtDefiniciones.Text;

                if (fuDiagrama.HasFile)
                {
                    //guardado de imagen
                    int    tamanio        = fuDiagrama.PostedFile.ContentLength;
                    byte[] ImagenOriginal = new byte[tamanio];
                    fuDiagrama.PostedFile.InputStream.Read(ImagenOriginal, 0, tamanio);
                    Bitmap ImagenOriginalBinaria = new Bitmap(fuDiagrama.PostedFile.InputStream);
                    string ImagenDataURL64       = "data:image/jpg;base64," + Convert.ToBase64String(ImagenOriginal);
                    imgDiagrama.ImageUrl = ImagenDataURL64;
                    des.Diagrama_func    = ImagenOriginal;
                }
                else
                {
                    throw new Exception("Debe ingresar alguna imagen");
                }

                des.Estado = 0;
                //toma de descripcion proyecto



                //toma de innovacion
                TipoInnovacion tp = new TipoInnovacion();


                if (rdBeacon.Checked)
                {
                    tp.IdTinno = 1;
                }
                else if (rdDron.Checked)
                {
                    tp.IdTinno = 2;
                }
                else if (rdRobotica.Checked)
                {
                    tp.IdTinno = 3;
                }
                else if (rdInternetDeLasCosas.Checked)
                {
                    tp.IdTinno = 4;
                }
                else if (rdLentesVr.Checked)
                {
                    tp.IdTinno = 5;
                }
                else if (rdOtro.Checked)
                {
                    tp.IdTinno = 6;
                    tp.Tipo    = txtOtro.Text;
                }
                else if (rdDomotica.Checked)
                {
                    tp.IdTinno = 7;
                }
                //TOMA TIPO DE INOVACION NEGOCIO
                TipoInnovacionNegocio tin = new TipoInnovacionNegocio();
                if (cbWebPay.Checked)
                {
                    tin.IdTin = 1;
                }
                else if (cbMigracion.Checked)
                {
                    tin.IdTin = 2;
                }
                else if (cbIntegraOtroSis.Checked)
                {
                    tin.IdTin = 3;
                }



                //inserto de datos

                if (datos.InsertarFicha(s, gp, p, aldba, alprogra, aljefe, des, tp, docPEP, docGPI, tin))
                {
                    Response.Write("<script language=javascript>alert('Dato Ingresado');</script>");
                }
                else
                {
                    Response.Write("<script language=javascript>alert('Dato NO Ingresado');</script>");
                }
            }
            catch (Exception ex)
            {
                Response.Write("<script language=javascript>alert('Error: " + ex.Message + "');</script>");
            }
        }