public bool Actualizar(Oferta oferta, string usuario)
        {
            try
            {
                if (oferta.Funciones == null) oferta.Funciones = string.Empty;
                if (oferta.Competencias == null) oferta.Competencias = string.Empty;
                if (oferta.AreaEmpresa == null) oferta.AreaEmpresa = string.Empty;
                if (oferta.TipoCargoIdListaValor == null) oferta.TipoCargoIdListaValor = string.Empty;
                if (oferta.TipoContratoIdListaValor == null) oferta.TipoContratoIdListaValor = string.Empty;
                if (oferta.Horario == null) oferta.Horario = string.Empty;
                if (oferta.CicloMinimoCarreraUTP == null) oferta.CicloMinimoCarreraUTP = 0;

                oferta.Funciones = oferta.Funciones.Replace("@", "");
                oferta.Competencias = oferta.Competencias.Replace("@", "");

                //Se actualizan las fase de la oferta:
                foreach (var item in oferta.OfertaFases)
                {
                    //Estos 3 registros siempre están activos.
                    if (item.IdListaValor == "OFFAPR" || item.IdListaValor == "OFFACV" || item.IdListaValor == "OFFAFI")
                    {
                        item.Incluir = true;
                    }

                    item.ModificadoPor = usuario;
                }

                return adOferta.Actualizar(oferta);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public int Insertar(Oferta oferta)
        {
            try
            {
                if (oferta.Funciones == null) oferta.Funciones = string.Empty;
                if (oferta.Competencias == null) oferta.Competencias = string.Empty;
                if (oferta.AreaEmpresa == null) oferta.AreaEmpresa = string.Empty;
                if (oferta.TipoCargoIdListaValor == null) oferta.TipoCargoIdListaValor = string.Empty;
                if (oferta.TipoContratoIdListaValor == null) oferta.TipoContratoIdListaValor = string.Empty;
                if (oferta.Horario == null) oferta.Horario = string.Empty;

                #region Se llena una lista con todas las fases de la oferta. Se marca las que van de manera obligatoria

                LNGeneral lnGeneral = new LNGeneral();
                var listaFasesDeLaOferta = lnGeneral.ObtenerListaValor(Constantes.IDLISTA_FASE_OFERTA).Where(m =>m.EstadoValor.Equals(Constantes.Estado_Activo_ListaValor)).OrderBy(m => m.Peso);

                List<OfertaFase> listaOfertaFase = new List<OfertaFase>();

                foreach (var item in listaFasesDeLaOferta)
                {
                    OfertaFase nuevaOfertaFase = new OfertaFase();
                    nuevaOfertaFase.IdListaValor = item.IdListaValor;
                    nuevaOfertaFase.IdOferta = 0;

                    //Al realizar las inserciones existen 4 fases que van obligatoriamente.
                    if (item.IdListaValor == "OFFAPR" || item.IdListaValor == "OFFACV" || item.IdListaValor == "OFFAFI" || item.IdListaValor == "OFFADE")
                    {
                        nuevaOfertaFase.Incluir = true;
                    }
                    else
                    {
                        nuevaOfertaFase.Incluir = false;
                    }

                    nuevaOfertaFase.CreadoPor = oferta.CreadoPor;

                    listaOfertaFase.Add(nuevaOfertaFase);
                }

                #endregion

                return adOferta.Insertar(oferta, listaOfertaFase);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List<Oferta> BuscarAvanzadoOfertasAlumno(VistaOfertaAlumno entidad)
        {
            List<Oferta> listaOferta = new List<Oferta>();

            DataTable dtResultado = adOferta.BuscarAvanzadoOfertasAlumno(entidad);

            for (int i = 0; i <= dtResultado.Rows.Count - 1; i++)
            {
                Oferta oferta = new Oferta();
                oferta.IdOferta = Funciones.ToInt(dtResultado.Rows[i]["IdOferta"]);
                oferta.Compatible = Funciones.ToDecimal(dtResultado.Rows[i]["Compatible"]);
                oferta.FechaPublicacion = Funciones.ToDateTime(dtResultado.Rows[i]["FechaPublicacion"]);
                oferta.NombreComercial = Funciones.ToString(dtResultado.Rows[i]["NombreComercial"]);
                oferta.CargoOfrecido = Funciones.ToString(dtResultado.Rows[i]["CargoOfrecido"]);
                oferta.DesTipoTrabajo = Funciones.ToString(dtResultado.Rows[i]["DesTipoTrabajo"]);
                oferta.Horario = Funciones.ToString(dtResultado.Rows[i]["Horario"]);
                oferta.RemuneracionOfrecida = Funciones.ToDecimal(dtResultado.Rows[i]["RemuneracionOfrecida"]);
                oferta.Mensaje = Funciones.ToInt(dtResultado.Rows[i]["Mensajes"]);
                oferta.IdEmpresa = Funciones.ToInt(dtResultado.Rows[i]["IdEmpresa"]);
                oferta.TotalRegistros = Funciones.ToInt(dtResultado.Rows[i]["CantidadTotal"]);
                listaOferta.Add(oferta);
            }
            return listaOferta;
        }
        public PartialViewResult _VistaOfertaAdministracion(Oferta oferta, string pantalla = "")
        {
            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

            if (pantalla == "Empresa")
            {
                //Se obtienen los usuarios de la empresa con roles Administrador, Supervisor y Usuario.
                LNEmpresaUsuario lnEmpresaUsuario = new LNEmpresaUsuario();
                List<VistaEmpresaUsuario> lista = lnEmpresaUsuario.ObtenerUsuariosActivosYPorRolesPorIdEmpresa(ticket.IdEmpresa);
                ViewBag.UsuarioPropietarioEmpresa = new SelectList(lista, "NombreUsuario", "NombreCompletoUsuario", oferta.UsuarioPropietarioEmpresa);
            }

            ViewBag.Pantalla = pantalla;

            return PartialView("_VistaOfertaAdministracion", oferta);
        }
 public ActionResult VistaOfertaRequisitos(Oferta oferta)
 {
     return PartialView("_VistaOfertaRequisitos", oferta);
 }
        /// <summary>
        /// Se actualiza la oferta, las fases de la oferta y los estudios (carreras).
        /// </summary>
        /// <param name="oferta"></param>
        /// <returns></returns>
        public bool Actualizar(Oferta oferta)
        {
            bool procesoExitoso = false;

            try
            {
                using (SqlConnection conexion = new SqlConnection(cadenaConexion))
                {
                    conexion.Open();

                    SqlCommand cmd = new SqlCommand();
                    SqlTransaction transaccion;
                    transaccion = conexion.BeginTransaction("ActualizarOferta");
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "Oferta_Actualizar";
                    cmd.Transaction = transaccion;
                    cmd.Connection = conexion;

                    try
                    {
                        //1. Se actualiza la oferta.
                        //Parámetros:
                        cmd.Parameters.Add(new SqlParameter("@IdOferta", oferta.IdOferta));
                        cmd.Parameters.Add(new SqlParameter("@IdEmpresa", oferta.IdEmpresa));
                        cmd.Parameters.Add(new SqlParameter("@Funciones", oferta.Funciones));
                        cmd.Parameters.Add(new SqlParameter("@Competencias", oferta.Competencias));
                        cmd.Parameters.Add(new SqlParameter("@UsuarioPropietarioEmpresa", oferta.UsuarioPropietarioEmpresa));
                        cmd.Parameters.Add(new SqlParameter("@FechaFinProceso", oferta.FechaFinProceso));
                        cmd.Parameters.Add(new SqlParameter("@FechaFinRecepcionCV", oferta.FechaFinRecepcionCV));
                        cmd.Parameters.Add(new SqlParameter("@IdEmpresaLocacion", oferta.IdEmpresaLocacion));
                        cmd.Parameters.Add(new SqlParameter("@TipoTrabajo", oferta.TipoTrabajoIdListaValor));
                        cmd.Parameters.Add(new SqlParameter("@TipoContrato", oferta.TipoContratoIdListaValor));
                        cmd.Parameters.Add(new SqlParameter("@DuracionContrato", oferta.DuracionContrato));
                        cmd.Parameters.Add(new SqlParameter("@TipoCargo", oferta.TipoCargoIdListaValor));
                        cmd.Parameters.Add(new SqlParameter("@CargoOfrecido", oferta.CargoOfrecido));
                        cmd.Parameters.Add(new SqlParameter("@RemuneracionOfrecida", oferta.RemuneracionOfrecida));
                        cmd.Parameters.Add(new SqlParameter("@Horario", oferta.Horario));
                        cmd.Parameters.Add(new SqlParameter("@AreaEmpresa", oferta.AreaEmpresa));
                        cmd.Parameters.Add(new SqlParameter("@NumeroVacantes", oferta.NumeroVacantes));
                        cmd.Parameters.Add(new SqlParameter("@RequiereExperienciaLaboral", oferta.RequiereExperienciaLaboral));
                        cmd.Parameters.Add(new SqlParameter("@RecibeCorreos", oferta.RecibeCorreosIdListaValor));
                        cmd.Parameters.Add(new SqlParameter("@ModificadoPor", oferta.ModificadoPor));
                        cmd.Parameters.Add(new SqlParameter("@EstadoOferta", oferta.EstadoOferta));
                        cmd.Parameters.Add(new SqlParameter("@EstadoCarreraUTP", oferta.EstadoCarreraUTP));
                        cmd.Parameters.Add(new SqlParameter("@CicloMinimoCarreraUTP", oferta.CicloMinimoCarreraUTP));
                        cmd.Parameters.Add(new SqlParameter("@MesesExperienciaTotal", oferta.ExperienciaGeneral));
                        cmd.Parameters.Add(new SqlParameter("@MesesExperienciaTipoTrabajo", oferta.ExperienciaPosicionesSimilares));

                        cmd.ExecuteNonQuery();

                        cmd.Parameters.Clear();
                        //2. Se actualizan las fases:
                        foreach (var item in oferta.OfertaFases)
                        {
                            //cmd = new SqlCommand();
                            //cmd.Transaction = transaccion;
                            cmd.Parameters.Clear();
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.CommandText = "OfertaFase_Actualizar";

                            cmd.Parameters.Add(new SqlParameter("@IdOfertaFase", item.IdOfertaFase));
                            cmd.Parameters.Add(new SqlParameter("@Incluir", item.Incluir));
                            cmd.Parameters.Add(new SqlParameter("@ModificadoPor", item.ModificadoPor));

                            //cmd.Connection = conexion;
                            cmd.ExecuteNonQuery();
                        }

                        //3. Se eliminan las carreras universitarias actuales:
                        cmd.Parameters.Clear();
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.CommandText = "OfertaEstudio_EliminarCarrerasUTP";
                        cmd.Parameters.Add(new SqlParameter("@IdOferta", oferta.IdOferta));
                        cmd.ExecuteNonQuery();

                        //4. Se agregan las nuevas carreras:
                        cmd.Parameters.Clear();
                        foreach (var item in oferta.CarrerasSeleccionadas)
                        {
                            cmd.Parameters.Clear();
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.CommandText = "OfertaEstudio_Insertar";

                            cmd.Parameters.Add(new SqlParameter("@IdOferta", oferta.IdOferta));
                            cmd.Parameters.Add(new SqlParameter("@CicloEstudio", oferta.CicloMinimoCarreraUTP));
                            cmd.Parameters.Add(new SqlParameter("@Estudio", item.Estudio));
                            cmd.Parameters.Add(new SqlParameter("@TipoDeEstudio", item.TipoDeEstudioIdListaValor));
                            cmd.Parameters.Add(new SqlParameter("@EstadoDelEstudio", oferta.EstadoCarreraUTP));
                            cmd.Parameters.Add(new SqlParameter("@EstadoOfertaEstudio", "OFESAC")); //Estado activo
                            cmd.Parameters.Add(new SqlParameter("@CreadoPor", oferta.ModificadoPor));

                            //cmd.Connection = conexion;
                            cmd.ExecuteNonQuery();
                        }

                        transaccion.Commit();

                        conexion.Close();

                        procesoExitoso = true;
                    }
                    catch (Exception exTransaccion)
                    {
                        transaccion.Rollback();
                        throw exTransaccion;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return procesoExitoso;
        }
Example #7
0
        public void UTP_ActualizaSeguimientoOferta(Oferta oferta)
        {
            using (SqlConnection conexion = new SqlConnection(cadenaConexion))
            {
                SqlCommand cmd = new SqlCommand();

                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "Oferta_ActualizaSeguimiento";

                //Parámetros:
                cmd.Parameters.Add(new SqlParameter("@IdOferta", oferta.IdOferta));
                //if (oferta.FechaSeguimiento.ToString("yyyyMMdd") != "19000101")
                //{
                //    cmd.Parameters.Add(new SqlParameter("@FechaSeguimiento", oferta.FechaSeguimiento));
                //}
                if (oferta.FechaSeguimiento != new DateTime(1, 1, 1))
                {
                    cmd.Parameters.Add(new SqlParameter("@FechaSeguimiento", oferta.FechaSeguimiento));
                }
                cmd.Parameters.Add(new SqlParameter("@NumeroInvitados", oferta.NumeroInvitados));
                cmd.Parameters.Add(new SqlParameter("@NumeroEntrevistados", oferta.NumeroEntrevistados));
                cmd.Parameters.Add(new SqlParameter("@NumeroContratados", oferta.NumeroContratados));
                cmd.Parameters.Add(new SqlParameter("@ConvenioRegistrado", oferta.ConvenioRegistrado));
                cmd.Parameters.Add(new SqlParameter("@Contacto", oferta.Contacto));
                cmd.Parameters.Add(new SqlParameter("@DatosContacto", oferta.DatosContacto));
                cmd.Parameters.Add(new SqlParameter("@MedioComunicacion", oferta.MedioComunicacion));
                //Datos de la encuesta:
                cmd.Parameters.Add(new SqlParameter("@EncuestaCalificacion", oferta.Calificacion));
                cmd.Parameters.Add(new SqlParameter("@EncuestaNroPostulantes", oferta.NroPostulantes));
                cmd.Parameters.Add(new SqlParameter("@EncuestaContratadosUTP", oferta.ContratadosUTP));
                cmd.Parameters.Add(new SqlParameter("@EncuestaContratadosOtros", oferta.ContratadosOtros));
                cmd.Parameters.Add(new SqlParameter("@TipoTrabajoUTP", oferta.TipoTrabajoUTP));

                cmd.Connection = conexion;

                conexion.Open();

                cmd.ExecuteNonQuery();

                conexion.Close();
            }
        }
 public OfertaPostulante()
 {
     Oferta = new Oferta();
     Alumno = new Alumno();
     FaseOferta = new ListaValor();
 }
        public ActionResult OfertaLaboral(Oferta oferta)
        {
            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];
            var cantidadCarreras = ((List<OfertaEstudio>)(Session["CarrerasSeleccionadas"])).Count; //Se contabilizan la cantidad de carreras seleccionadas.
            if (ModelState.IsValid && cantidadCarreras > 0)
            {
                //oferta.UsuarioPropietarioEmpresa = "";
                oferta.ModificadoPor = ticket.Usuario;

                //12FEB: Si el estado actual es BORRADOR debe cambiar a EN CONSTRUCCION:
                if (oferta.EstadoOferta == Constantes.OFERTA_ESTADO_BORRADOR) oferta.EstadoOferta = Constantes.OFERTA_ESTADO_ENCONSTRUCCION;

                //Se actualizan las fase de la oferta:
                //foreach (var item in oferta.OfertaFases)
                //{
                //    //Estos 3 registros siempre están activos.
                //    if (item.IdListaValor == "OFFAPR" || item.IdListaValor == "OFFACV" || item.IdListaValor == "OFFAFI")
                //    {
                //        item.Incluir = true;
                //    }

                //    item.ModificadoPor = ticket.Usuario;
                //}

                //Se obtiene los datos de sesión.
                oferta.CarrerasSeleccionadas = (List<OfertaEstudio>)(Session["CarrerasSeleccionadas"]);
                //Método general para actualizar la oferta.
                lnOfertaEmpresa.Actualizar(oferta, ticket.Usuario);

                //lnOferta.ActualizarOfertaFase(oferta.OfertaFases);

                //Se guardan los estudios de la oferta.
                //Primero hay que eliminar los estudios universitarios.
                //LNOfertaEstudio lnOfertaEstudio = new LNOfertaEstudio();
                //foreach (var ofertaEstudioUTP in oferta.CarrerasSeleccionadas)
                //{
                //    lnOfertaEstudio.Insertar(ofertaEstudioUTP);
                //}

                //1. Mostrar mensaje de éxito.
                TempData["MsjExitoEditarOferta"] = "La oferta '" + oferta.CargoOfrecido + "' ha sido actualizada con éxito.";

                //2. Redireccionar a la lista.
                //return RedirectToAction("Publicacion");

            }
            else
            {
                var errors = ModelState.Select(x => x.Value.Errors)
                           .Where(y => y.Count > 0)
                           .ToList();

                int a = 0;
            }

            LNGeneral lnGeneral = new LNGeneral();
            LNEmpresaLocacion lnEmpresaLocacion = new LNEmpresaLocacion();

            ViewBag.TipoCargoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_CARGO), "IdListaValor", "Valor", oferta.TipoCargoIdListaValor);
            ViewBag.TipoTrabajoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_TRABAJO), "IdListaValor", "Valor", oferta.TipoTrabajoIdListaValor);
            ViewBag.TipoContratoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_CONTRATO), "IdListaValor", "Valor", oferta.TipoContratoIdListaValor);
            ViewBag.IdEmpresaLocacion = new SelectList(lnEmpresaLocacion.ObtenerLocaciones(ticket.IdEmpresa), "IdEmpresaLocacion", "NombreLocacion", oferta.IdEmpresaLocacion);
            ViewBag.RecibeCorreosIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_OFERTA_RECIBECORREOS), "IdListaValor", "Valor", oferta.RecibeCorreosIdListaValor);

            //Se agrega el estado del estudio para las carreras:
            ViewBag.EstadoCarreraUTP = new SelectList(lnGeneral.ObtenerListaValorOfertaEstudiosUTP(Constantes.IDLISTA_ESTADO_DEL_ESTUDIO), "IdListaValor", "Valor");

            if (cantidadCarreras == 0)
            {
                ViewBag.MensajeCarrerasSeleccionadas = "Debe seleccionar al menos una carrera";
                TempData["MsjErrorNoCarreras"] = "error";
            }
            else
            {
                ViewBag.MensajeCarrerasSeleccionadas = "";
            }

            return View(oferta);
        }
        public Oferta ObtenerSeguimientoPorId(int idOferta)
        {
            Oferta oferta = null;

            DataSet dsResultado = adOferta.ObtenerSeguimientoPorId(idOferta);

            //Tabla Index 0: Datos de la oferta.
            if (dsResultado.Tables[0].Rows.Count > 0)
            {
                oferta = new Oferta();

                oferta.IdOferta = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["IdOferta"]);
                oferta.FechaSeguimiento = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaSeguimiento"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["FechaSeguimiento"]);
                oferta.NumeroInvitados = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["NumeroInvitados"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["NumeroInvitados"]);
                oferta.NumeroEntrevistados = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["NumeroEntrevistados"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["NumeroEntrevistados"]);
                oferta.NumeroContratados = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["NumeroContratados"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["NumeroContratados"]);
                oferta.ConvenioRegistrado = Convert.ToBoolean(dsResultado.Tables[0].Rows[0]["ConvenioRegistrado"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["ConvenioRegistrado"]);
                oferta.Contacto = Convert.ToString(dsResultado.Tables[0].Rows[0]["Contacto"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["Contacto"]);
                oferta.DatosContacto = Convert.ToString(dsResultado.Tables[0].Rows[0]["DatosContacto"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["DatosContacto"]);
                oferta.MedioComunicacion = Convert.ToString(dsResultado.Tables[0].Rows[0]["MedioComunicacion"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["MedioComunicacion"]);
                //Encuesta:
                oferta.Calificacion = Convert.ToString(dsResultado.Tables[0].Rows[0]["EncuestaCalificacion"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["EncuestaCalificacion"]);
                oferta.NroPostulantes = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["EncuestaNroPostulantes"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["EncuestaNroPostulantes"]);
                oferta.ContratadosUTP = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["EncuestaContratadosUTP"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["EncuestaContratadosUTP"]);
                oferta.ContratadosOtros = Convert.ToString(dsResultado.Tables[0].Rows[0]["EncuestaContratadosOtros"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["EncuestaContratadosOtros"]);
                oferta.TipoTrabajoUTP = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoTrabajoUTP"] == System.DBNull.Value ? null : dsResultado.Tables[0].Rows[0]["TipoTrabajoUTP"]);
            }
            return oferta;
        }
        public Oferta ObtenerPorId(int idOferta)
        {
            Oferta oferta = null;

            //18FEB: Se obtiene las carreras de UTP y se quitan las ya seleccionadas.
            LNGeneral lnGeneral = new LNGeneral();
            List<ListaValor> listaCarrerasUTP = lnGeneral.ObtenerListaValor(Constantes.IDLISTA_DE_CARRERA).Where(m => m.IdListaValorPadre == "TEUNIV").ToList(); //Se obtienen todas las carreras

            DataSet dsResultado = adOferta.ObtenerPorId(idOferta);

            //Tabla Index 0: Datos de la oferta.
            if (dsResultado.Tables[0].Rows.Count > 0)
            {
                oferta = new Oferta();

                oferta.IdOferta = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["IdOferta"]);
                oferta.IdEmpresa = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["IdEmpresa"]);
                oferta.CargoOfrecido = Convert.ToString(dsResultado.Tables[0].Rows[0]["CargoOfrecido"]);
                oferta.Funciones = Convert.ToString(dsResultado.Tables[0].Rows[0]["Funciones"]);
                oferta.Competencias = Convert.ToString(dsResultado.Tables[0].Rows[0]["Competencias"]);

                oferta.TipoTrabajoIdListaValor = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoTrabajo"]);
                oferta.TipoTrabajo.Valor = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoTrabajoDescripcion"]);
                oferta.TipoCargoIdListaValor = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoCargo"]);
                oferta.TipoCargo.Valor = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoCargoDescripcion"]);
                oferta.TipoContratoIdListaValor = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoContrato"]);
                oferta.TipoContrato.Valor = Convert.ToString(dsResultado.Tables[0].Rows[0]["TipoContratoDescripcion"]);

                oferta.RemuneracionOfrecida = Convert.ToDecimal(dsResultado.Tables[0].Rows[0]["RemuneracionOfrecida"]);
                oferta.Horario = Convert.ToString(dsResultado.Tables[0].Rows[0]["Horario"]);
                oferta.AreaEmpresa = Convert.ToString(dsResultado.Tables[0].Rows[0]["AreaEmpresa"]);

                if (dsResultado.Tables[0].Rows[0]["NumeroVacantes"] == System.DBNull.Value)
                {
                    oferta.NumeroVacantes = null;
                }
                else
                {
                    oferta.NumeroVacantes = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["NumeroVacantes"]);
                }

                oferta.IdEmpresaLocacion = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["IdEmpresaLocacion"]);
                oferta.RecibeCorreosIdListaValor = Convert.ToString(dsResultado.Tables[0].Rows[0]["RecibeCorreos"]);
                oferta.FechaFinRecepcionCV = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaFinRecepcionCV"]);
                oferta.AreaEmpresa = Convert.ToString(dsResultado.Tables[0].Rows[0]["AreaEmpresa"]);

                if (dsResultado.Tables[0].Rows[0]["DuracionContrato"] == System.DBNull.Value)
                {
                    oferta.DuracionContrato = null;
                }
                else
                {
                    oferta.DuracionContrato = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["DuracionContrato"]);
                }

                oferta.Empresa.NombreComercial = Convert.ToString(dsResultado.Tables[0].Rows[0]["EmpresaNombreComercial"]);
                oferta.NombreLocacion = Convert.ToString(dsResultado.Tables[0].Rows[0]["NombreLocacion"]);

                oferta.CreadoPor = Convert.ToString(dsResultado.Tables[0].Rows[0]["CreadoPor"]);
                oferta.ModificadoPor = Convert.ToString(dsResultado.Tables[0].Rows[0]["ModificadoPor"]);
                oferta.FechaCreacion = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaCreacion"]);
                oferta.FechaModificacion = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaModificacion"]);

                oferta.EstadoOferta = Convert.ToString(dsResultado.Tables[0].Rows[0]["EstadoOferta"]);
                oferta.UsuarioPropietarioEmpresa = Convert.ToString(dsResultado.Tables[0].Rows[0]["UsuarioPropietarioEmpresa"]);
                oferta.FechaPublicacion = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaPublicacion"]);

                oferta.CicloMinimoCarreraUTP = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["CicloMinimoCarreraUTP"]);
                oferta.EstadoCarreraUTP = Convert.ToString(dsResultado.Tables[0].Rows[0]["EstadoCarreraUTP"]);
                oferta.ExperienciaGeneral = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["MesesExperienciaTotal"]);
                oferta.ExperienciaPosicionesSimilares = Convert.ToInt32(dsResultado.Tables[0].Rows[0]["MesesExperienciaTipoTrabajo"]);

                //05MAR15: Para las nuevas ofertas este campo siempre está con data. Se agrega la validación para compatibilidad con ofertas anteriores.
                oferta.FechaFinProceso = Convert.ToDateTime(dsResultado.Tables[0].Rows[0]["FechaFinProceso"] == System.DBNull.Value ? new DateTime(1, 1, 1900) : dsResultado.Tables[0].Rows[0]["FechaFinProceso"]);
            }

            //Tabla Index 1: Lista de estudios.
            //Se instancia las listas:
            oferta.ListaEstudios = new List<OfertaEstudio>();
            oferta.CarrerasSeleccionadas = new List<OfertaEstudio>();
            foreach (DataRow filaEstudio in dsResultado.Tables[1].Rows)
            {

                OfertaEstudio estudio                   = new OfertaEstudio();
                estudio.IdOfertaEstudio                 = Convert.ToInt32(filaEstudio["IdOfertaEstudio"] == System.DBNull.Value ? null : filaEstudio["IdOfertaEstudio"]);
                estudio.IdOferta                        = Convert.ToInt32(filaEstudio["IdOfertaEstudio"] == System.DBNull.Value ? null : filaEstudio["IdOfertaEstudio"]);
                estudio.CicloEstudio                    = Convert.ToInt32(filaEstudio["CicloEstudio"] == System.DBNull.Value ? null : filaEstudio["CicloEstudio"]);
                estudio.Estudio                         = Convert.ToString(filaEstudio["Estudio"] == System.DBNull.Value ? null : filaEstudio["Estudio"]);
                estudio.TipoDeEstudio.IdListaValor =    Convert.ToString(filaEstudio["TipoDeEstudio"] == System.DBNull.Value ? null : filaEstudio["TipoDeEstudio"]);
                estudio.TipoDeEstudioIdListaValor =     Convert.ToString(filaEstudio["TipoDeEstudio"] == System.DBNull.Value ? null : filaEstudio["TipoDeEstudio"]);
                estudio.TipoDeEstudio.Valor             = Convert.ToString(filaEstudio["TipoDeEstudioDescripcion"]);
                estudio.EstadoDelEstudio.Valor          = Convert.ToString(filaEstudio["EstadoDelEstudioDescripcion"]);
                estudio.EstadoOfertaEstudio.Valor       = Convert.ToString(filaEstudio["EstadoOfertaEstudioDescripcion"]);
                estudio.CreadoPor                       = Convert.ToString(filaEstudio["CreadoPor"]);
                estudio.ModificadoPor                   = Convert.ToString(filaEstudio["ModificadoPor"]);
                estudio.FechaCreacion                   = Convert.ToDateTime(filaEstudio["FechaCreacion"]);
                estudio.FechaModificacion               = Convert.ToDateTime(filaEstudio["FechaModificacion"]);

                #region Se separan las carrearas universitarias UTP.
                if (estudio.TipoDeEstudio.IdListaValor == "TEUNIV") //Tipo de Estudio Universitario de UTP.
                {
                    var carreraEncontrada = listaCarrerasUTP.Where(m => m.Valor == estudio.Estudio).FirstOrDefault();

                    if (carreraEncontrada != null)
                    {
                        estudio.CodigoCarrera = carreraEncontrada.IdListaValor; //Se guarda el código de la carrera.
                        oferta.CarrerasSeleccionadas.Add(estudio);
                    }
                }
                else //Otros estudios.
                {
                    oferta.ListaEstudios.Add(estudio);
                }
                #endregion

            }

            //Tabla Index 2: Lista de experiencia por sector
            oferta.ListaSectores = new List<OfertaSectorEmpresarial>();
            foreach (DataRow filaSector in dsResultado.Tables[2].Rows)
            {
                OfertaSectorEmpresarial sector = new OfertaSectorEmpresarial();
                sector.IdOfertaSectorEmpresarial = Convert.ToInt32(filaSector["IdOfertaSectorEmpresarial"]);
                sector.IdOferta = Convert.ToInt32(filaSector["IdOferta"]);
                sector.SectorEmpresarial.Valor = Convert.ToString(filaSector["SectorEmpresarialDescripcion"]);
                sector.AniosTrabajados = Convert.ToInt32(filaSector["AniosTrabajados"] == System.DBNull.Value ? null : filaSector["AniosTrabajados"]);
                sector.ExperienciaExcluyente = Convert.ToBoolean(filaSector["ExperienciaExcluyente"]);
                sector.EstadoOfertaSectorEmpresarial.Valor = Convert.ToString(filaSector["EstadoOfertaSectorEmpresarialDescripcion"]);
                sector.CreadoPor = Convert.ToString(filaSector["CreadoPor"]);
                sector.ModificadoPor = Convert.ToString(filaSector["ModificadoPor"]);
                sector.FechaCreacion = Convert.ToDateTime(filaSector["FechaCreacion"]);
                sector.FechaModificacion = Convert.ToDateTime(filaSector["FechaModificacion"]);

                oferta.ListaSectores.Add(sector);

            }

            //Tabla Index 3: Lista de información adicional
            oferta.ListaInformacionAdicional = new List<OfertaInformacionAdicional>();
            foreach (DataRow filaInfoAdicional in dsResultado.Tables[3].Rows)
            {
                OfertaInformacionAdicional infoAdicional = new OfertaInformacionAdicional();
                infoAdicional.IdOfertaInformacionAdicional = Convert.ToInt32(filaInfoAdicional["IdOfertaInformacionAdicional"]);
                infoAdicional.IdOferta = Convert.ToInt32(filaInfoAdicional["IdOferta"]);
                infoAdicional.TipoConocimiento.Valor = Convert.ToString(filaInfoAdicional["TipoConocimientoDescripcion"]);
                infoAdicional.Conocimiento = Convert.ToString(filaInfoAdicional["Conocimiento"]);
                infoAdicional.NivelConocimiento.Valor = Convert.ToString(filaInfoAdicional["NivelConocimientoDescripcion"]);
                infoAdicional.AniosExperiencia = Convert.ToInt32(filaInfoAdicional["AniosExperiencia"] == System.DBNull.Value ? null : filaInfoAdicional["AniosExperiencia"]);
                infoAdicional.EstadoOfertaInformacionAdicional.Valor = Convert.ToString(filaInfoAdicional["EstadoOfertaInformacionAdicionalDescripcion"]);
                infoAdicional.CreadoPor = Convert.ToString(filaInfoAdicional["CreadoPor"]);
                infoAdicional.ModificadoPor = Convert.ToString(filaInfoAdicional["ModificadoPor"]);
                infoAdicional.FechaCreacion = Convert.ToDateTime(filaInfoAdicional["FechaCreacion"]);
                infoAdicional.FechaModificacion = Convert.ToDateTime(filaInfoAdicional["FechaModificacion"]);

                oferta.ListaInformacionAdicional.Add(infoAdicional);
            }

            //Tabla Index 4: Lista de Postulantes
            oferta.Postulantes = new List<OfertaPostulante>();
            foreach (DataRow filaPostulante in dsResultado.Tables[4].Rows)
            {
                OfertaPostulante postulante = new OfertaPostulante();
                postulante.Alumno.IdAlumno = Convert.ToInt32(filaPostulante["IdAlumno"]);
                postulante.Alumno.Nombres = Convert.ToString(filaPostulante["AlumnoNombres"]);
                postulante.Alumno.Apellidos = Convert.ToString(filaPostulante["AlumnoApellidos"]);
                postulante.FechaPostulacion = Convert.ToDateTime(filaPostulante["FechaPostulacion"]);
                postulante.FaseOferta.Valor = Convert.ToString(filaPostulante["FaseOferta"]);
                postulante.NombreCV = Convert.ToString(filaPostulante["NombreCV"]);
                postulante.NivelDeMatch = Convert.ToInt32(filaPostulante["NivelDeMatch"]);
                postulante.CreadoPor = Convert.ToString(filaPostulante["CreadoPor"]);
                postulante.ModificadoPor = Convert.ToString(filaPostulante["ModificadoPor"]);
                postulante.FechaCreacion = Convert.ToDateTime(filaPostulante["FechaCreacion"]);
                postulante.FechaModificacion = Convert.ToDateTime(filaPostulante["FechaModificacion"]);

                oferta.Postulantes.Add(postulante);
            }

            //Fases de la oferta
            oferta.OfertaFases = Obtener_OfertaFase(idOferta);

            //Se instancia la lista:
            oferta.CarrerasDisponibles = new List<ListaValor>(); //Esta lista va al lado izquierdo
            //Se recorren las carreras.
            foreach (var carreraUTP in listaCarrerasUTP)
            {
                //Si la carreraUTP ya está seleccionada entonces NO se agrega. Si la búsqueda es null => no está, por lo tanto, sí se agrega.
                if (oferta.CarrerasSeleccionadas.Where(m => m.Estudio == carreraUTP.Valor).FirstOrDefault() == null)
                {
                    ListaValor carreraDisponible = copiarListaValor(carreraUTP);
                    oferta.CarrerasDisponibles.Add(carreraDisponible);
                }
            }

            return oferta;
        }
        public List<Oferta> MostrarUltimasOfertas(int IdAlumno)
        {
            List<Oferta> listaOferta = new List<Oferta>();

            DataTable dtResultado = adOferta.MostrarUltimasOfertas(IdAlumno);

            for (int i = 0; i <= dtResultado.Rows.Count - 1; i++)
            {
                Oferta oferta = new Oferta();
                oferta.IdOferta = Funciones.ToInt(dtResultado.Rows[i]["IdOferta"]);
                oferta.Compatible = Funciones.ToDecimal(dtResultado.Rows[i]["Compatible"]);
                oferta.FechaPublicacion = Funciones.ToDateTime(dtResultado.Rows[i]["FechaPublicacion"]);
                oferta.NombreComercial = Funciones.ToString(dtResultado.Rows[i]["NombreComercial"]);
                oferta.CargoOfrecido = Funciones.ToString(dtResultado.Rows[i]["CargoOfrecido"]);
                oferta.IdEmpresa = Funciones.ToInt(dtResultado.Rows[i]["IdEmpresa"]);
                oferta.LogoEmpresa = Funciones.ToBytes(dtResultado.Rows[i]["LogoEmpresa"]);
                oferta.ArchivoMimeType = Funciones.ToString(dtResultado.Rows[i]["ArchivoMimeType"]);

                listaOferta.Add(oferta);
            }
            return listaOferta;
        }
        public List<Oferta> BuscarSimilaresOfertasAlumno(int IdOferta)
        {
            List<Oferta> listaOferta = new List<Oferta>();

            DataTable dtResultado = adOferta.BuscarSimilaresOfertasAlumno(IdOferta);

            for (int i = 0; i <= dtResultado.Rows.Count - 1; i++)
            {
                Oferta oferta = new Oferta();
                oferta.IdOferta = Funciones.ToInt(dtResultado.Rows[i]["IdOferta"]);
                oferta.FechaPublicacion = Funciones.ToDateTime(dtResultado.Rows[i]["FechaPublicacion"]);
                oferta.CargoOfrecido = Funciones.ToString(dtResultado.Rows[i]["CargoOfrecido"]);
                oferta.IdEmpresa = Funciones.ToInt(dtResultado.Rows[i]["IdEmpresa"]);
                oferta.LogoEmpresa = Funciones.ToBytes(dtResultado.Rows[i]["LogoEmpresa"]);
                oferta.ArchivoMimeType = Funciones.ToString(dtResultado.Rows[i]["ArchivoMimeType"]);

                listaOferta.Add(oferta);
            }
            return listaOferta;
        }
        public ActionResult NuevaOferta()
        {
            #region Validación 11FEB: Si existen ofertas en estado OFERCV mostrar un mensaje de alerta para que cierre las ofertas.

            List<VistaEmpresaOferta> lista = obtenerOfertasEnEstadoOFERCV();
            //Si se encuentran filas => se obienen los cargos y se llena una variable temporal.
            if (lista.Count() > 0)
            {
                StringBuilder msjAlUsuario = new StringBuilder();
                msjAlUsuario.Append("Antes de continuar debe cerrar las siguientes ofertas: ");
                msjAlUsuario.Append(Environment.NewLine);

                foreach (var ofertaEncontrada in lista)
                {
                    msjAlUsuario.Append(ofertaEncontrada.CargoOfrecido);
                    msjAlUsuario.Append(Environment.NewLine);
                }

                msjAlUsuario.Append("Para cerrar sus ofertas debe ingresar a la Oferta en la sección Administración de Oferta y Cerrar la Oferta. ");
                msjAlUsuario.Append("Debe repetir este proceso para cada oferta.");

                //En el vista Publicacion.html se lee este TempData y se muestra el mensaje al usuario.
                TempData["msjOfertasEnOFERCV"] = msjAlUsuario.ToString();

                //Se redirecciona a la lista de ofertas.
                return RedirectToAction("Publicacion");
            }
            #endregion

            #region Funcionalidad 16FEB: Al crear una oferta se crea internamente y se muestra la pantalla de Ofertalaboral.cshtml

            //Se obtiene el ticket de la sesión.
            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

            //Se obtiene las locaciones de la empresa y se guarda la primera encontrada:
            LNEmpresaLocacion empresaLocacion = new LNEmpresaLocacion();
            List<VistaEmpresaLocacion> locaciones = empresaLocacion.ObtenerLocacionesPorIdEmpresa(ticket.IdEmpresa);

            int idEmpresaLocacion = 0;
            if (locaciones.Count > 0)
                idEmpresaLocacion = locaciones[0].IdEmpresaLocacion;
            else
            {
                //Si no tiene locaciones entonces no se muestra un error y la oferta no se crea, por regla todas las empresas
                //tienen al menos 1 locación y no debería entrar. Se coloca la condición por si existe data migrada errónea.
                StringBuilder msjAlUsuario = new StringBuilder();
                msjAlUsuario.Append("La empresa no cuenta con locaciones disponibles, cree una e intente nuevamente.");

                //En el vista Publicacion.html se lee este TempData y se muestra el mensaje al usuario.
                TempData["msjOfertasNoLocacion"] = msjAlUsuario.ToString();

                //Se redirecciona a la lista de ofertas.
                return RedirectToAction("Publicacion");
            }

            //Se completa los datos de la oferta borrador y se inserta en la BD.
            Oferta ofertaBorrador = new Oferta();
            ofertaBorrador.IdEmpresa = ticket.IdEmpresa;
            ofertaBorrador.UsuarioPropietarioEmpresa = ticket.Usuario; //Se guarda el usuario asignado.
            ofertaBorrador.EstadoOferta = Constantes.OFERTA_ESTADO_BORRADOR; //Estado oferta en borrador
            ofertaBorrador.CreadoPor = ticket.Usuario;
            ofertaBorrador.FechaFinRecepcionCV = DateTime.Now;
            ofertaBorrador.FechaFinProceso = DateTime.Now;
            ofertaBorrador.IdEmpresaLocacion = idEmpresaLocacion;
            ofertaBorrador.TipoTrabajoIdListaValor = "";
            ofertaBorrador.CargoOfrecido = "";
            ofertaBorrador.RecibeCorreosIdListaValor = "";

            int idOfertaGenerado = lnOfertaEmpresa.Insertar(ofertaBorrador);

            if (idOfertaGenerado > 0)
            {
                //Se redirecciona a la nueva oferta creada:
                return RedirectToAction("OfertaLaboral", new { id = Utiles.Helper.Encriptar(idOfertaGenerado.ToString()) });
            }

            #endregion

            //TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

            ////Se envían datos de prueba.
            //Oferta oferta = new Oferta();
            //oferta.IdEmpresa = ticket.IdEmpresa;
            //oferta.UsuarioPropietarioEmpresa = "";
            //oferta.FechaPublicacion = DateTime.Now;
            //oferta.CreadoPor = ticket.Usuario;
            //oferta.FechaFinRecepcionCV = DateTime.Now; //Se establece la fecha actual para la nueva oferta.

            //LNGeneral lnGeneral = new LNGeneral();
            //LNEmpresaLocacion lnEmpresaLocacion = new LNEmpresaLocacion ();

            ////Se completan las listas:

            //ViewBag.TipoCargoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_CARGO), "IdListaValor", "Valor");
            //ViewBag.TipoTrabajoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_TRABAJO), "IdListaValor", "Valor");
            //ViewBag.TipoContratoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_CONTRATO), "IdListaValor", "Valor");
            //ViewBag.IdEmpresaLocacion = new SelectList(lnEmpresaLocacion.ObtenerLocaciones(ticket.IdEmpresa), "IdEmpresaLocacion", "NombreLocacion");
            //ViewBag.RecibeCorreosIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_OFERTA_RECIBECORREOS), "IdListaValor", "Valor");
            //ViewBag.FasesOferta = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_FASE_OFERTA), "IdListaValor", "Valor");

            //return View(oferta);

            return RedirectToAction("Publicacion");
        }
        private Oferta ObtenerOfertasAlumnoPorID(int idOferta, int idAlumno)
        {
            Oferta oferta = new Oferta();
            DataTable dtResultado = adOferta.ObtenerOfertasAlumnoPorID(idOferta, idAlumno);
            if (dtResultado.Rows.Count > 0)
            {
                oferta.NombreComercial = Funciones.ToString(dtResultado.Rows[0]["NombreComercial"]);
                oferta.SitioWeb = Funciones.ToString(dtResultado.Rows[0]["SitioWeb"]);
                oferta.DescripcionEmpresa = Funciones.ToString(dtResultado.Rows[0]["DescripcionEmpresa"]);
                oferta.DesNumeroEmpleados = Funciones.ToString(dtResultado.Rows[0]["DesNumeroEmpleados"]);
                oferta.CargoOfrecido = Funciones.ToString(dtResultado.Rows[0]["CargoOfrecido"]);
                oferta.Funciones = Funciones.ToString(dtResultado.Rows[0]["Funciones"]);
                oferta.Competencias = Funciones.ToString(dtResultado.Rows[0]["Competencias"]);
                oferta.FechaPublicacion = Funciones.ToDateTime(dtResultado.Rows[0]["FechaPublicacion"]);
                oferta.FechaFinRecepcionCV = Funciones.ToDateTime(dtResultado.Rows[0]["FechaFinRecepcionCV"]);
                oferta.FechaFinProceso = Funciones.ToDateTime(dtResultado.Rows[0]["FechaFinProceso"]);
                oferta.DesTipoCargo = Funciones.ToString(dtResultado.Rows[0]["DesTipoCargo"]);
                oferta.DesTipoTrabajo = Funciones.ToString(dtResultado.Rows[0]["DesTipoTrabajo"]);
                oferta.DesTipoContrato = Funciones.ToString(dtResultado.Rows[0]["DesTipoContrato"]);
                oferta.DuracionContrato = Funciones.ToInt(dtResultado.Rows[0]["DuracionContrato"] == System.DBNull.Value ? null : dtResultado.Rows[0]["DuracionContrato"]);
                oferta.Horario = Funciones.ToString(dtResultado.Rows[0]["Horario"]);
                oferta.RemuneracionOfrecida = Funciones.ToDecimal(dtResultado.Rows[0]["RemuneracionOfrecida"]);
                oferta.AreaEmpresa = Funciones.ToString(dtResultado.Rows[0]["AreaEmpresa"]);
                oferta.NumeroVacantes = Funciones.ToInt(dtResultado.Rows[0]["NumeroVacantes"]);
                oferta.NombreLocacion = Funciones.ToString(dtResultado.Rows[0]["NombreLocacion"]);
                oferta.IdEmpresa = Funciones.ToInt(dtResultado.Rows[0]["IdEmpresa"]);
                oferta.IdentificadorTributario = Funciones.ToString(dtResultado.Rows[0]["IdentificadorTributario"]);
                oferta.Compatible = Funciones.ToDecimal(dtResultado.Rows[0]["Compatible"]);
                oferta.IdOferta = idOferta;
                oferta.Postulacion = Funciones.ToInt(dtResultado.Rows[0]["Postulacion"]);
                oferta.FechaPostulacion = Funciones.ToDateTime(dtResultado.Rows[0]["FechaPostulacion"]);
                oferta.NombreCV = Funciones.ToString(dtResultado.Rows[0]["NombreCV"]);
                oferta.IdCV = Funciones.ToInt(dtResultado.Rows[0]["IdCV"]);
                oferta.IdAlumno = idAlumno;
                oferta.LogoEmpresa = Funciones.ToBytes(dtResultado.Rows[0]["LogoEmpresa"]); ;
                oferta.ArchivoMimeType = Funciones.ToString(dtResultado.Rows[0]["ArchivoMimeType"]); ;
                oferta.AnoCreacion = Funciones.ToInt(dtResultado.Rows[0]["AnoCreacion"]);
                oferta.DesSectorEmpresarial = Funciones.ToString(dtResultado.Rows[0]["DesSectorEmpresarial"]);
                oferta.IdOfertaPostulante = Funciones.ToInt(dtResultado.Rows[0]["IdOfertaPostulante"]);
                oferta.RecibeCorreosIdListaValor = Funciones.ToString(dtResultado.Rows[0]["RecibeCorreos"]);
                oferta.CorreoElectronicoUsuarioEmpresa = Funciones.ToString(dtResultado.Rows[0]["CorreoElectronicoUsuarioEmpresa"]);
                oferta.EstadoOferta = Funciones.ToString(dtResultado.Rows[0]["EstadoOferta"]);
                oferta.ExperienciaGeneral = Funciones.ToInt(dtResultado.Rows[0]["MesesExperienciaTotal"]);
                oferta.ExperienciaPosicionesSimilares = Funciones.ToInt(dtResultado.Rows[0]["MesesExperienciaTipoTrabajo"]);
                oferta.CumpleExperienciaGeneral = Funciones.ToBoolean(dtResultado.Rows[0]["CumpleMesesExperienciaTotal"]);
                oferta.CumpleExperienciaPosicionesSimilares = Funciones.ToBoolean(dtResultado.Rows[0]["CumpleMesesExperienciaTipoTrabajo"]);
                //06MAR15: Se agregan los campos EstadoCarreaUTP y CicloMinimoUTP
                oferta.EstadoCarreraUTPDescripcion = Funciones.ToString(dtResultado.Rows[0]["EstadoCarreraUTPDescripcion"]);
                oferta.CicloMinimoCarreraUTP = Funciones.ToInt(dtResultado.Rows[0]["CicloMinimoCarreraUTP"]);
            }

            return oferta;
        }
        public ActionResult NuevaOferta(Oferta oferta)
        {
            TicketEmpresa ticket = (TicketEmpresa)Session["TicketEmpresa"];

            if (ModelState.IsValid)
            {
                oferta.UsuarioPropietarioEmpresa = ticket.Usuario; //Se guarda el usuario asignado.
                oferta.EstadoOferta = "OFERCO"; //Estado oferta en construcción.
                //oferta.FechaPublicacion = DateTime.Now;
                //oferta.FechaFinProceso = DateTime.Now.AddDays(10);
                //oferta.IdEmpresaLocacion = 1; //TODO: Reemplazar por combo.
                //oferta.DescripcionOferta = "descripcion de la oferta";
                //oferta.TipoTrabajo = "OFTTTC"; //Tipo de trabajo: Tiempo completo.
                //oferta.TipoContrato = "";
                //oferta.TipoCargo = "";
                //oferta.Horario = "";
                //oferta.AreaEmpresa = "";
                oferta.CreadoPor = ticket.Usuario;

                int idOfertaGenerado = lnOfertaEmpresa.Insertar(oferta);

                if (idOfertaGenerado > 0)
                {
                    //1. Se completa el mensaje de éxito.
                    TempData["MsjExitoCrearOferta"] = "La oferta ha sido creada con éxito.";

                    //2. Se redirecciona a la nueva oferta.
                    return RedirectToAction("EditarOferta", new { id = idOfertaGenerado });
                }
                else
                {
                    //Mostrar un mensaje de error.
                }

                return RedirectToAction("Publicacion");
            }

            //Si existe error, se debe cargar nuevamente la información.
            LNGeneral lnGeneral = new LNGeneral();
            LNEmpresaLocacion lnEmpresaLocacion = new LNEmpresaLocacion();

            //ViewBag.ListaTipoCargo = lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_CARGO);
            //ViewBag.ListaTipoTrabajo = lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_TRABAJO);
            //ViewBag.ListaTipoContrato = lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_CONTRATO);
            //ViewBag.ListaLocaciones = lnEmpresaLocacion.ObtenerLocaciones(ticket.IdEmpresa);

            //Se completan las listas:

            ViewBag.TipoCargoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_CARGO), "IdListaValor", "Valor", oferta.TipoCargoIdListaValor);
            ViewBag.TipoTrabajoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_TRABAJO), "IdListaValor", "Valor", oferta.TipoTrabajoIdListaValor);
            ViewBag.TipoContratoIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_CONTRATO), "IdListaValor", "Valor", oferta.TipoContratoIdListaValor);
            ViewBag.IdEmpresaLocacion = new SelectList(lnEmpresaLocacion.ObtenerLocaciones(ticket.IdEmpresa), "IdEmpresaLocacion", "NombreLocacion", oferta.IdEmpresaLocacion);
            ViewBag.RecibeCorreosIdListaValor = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_OFERTA_RECIBECORREOS), "IdListaValor", "Valor", oferta.RecibeCorreosIdListaValor);
            ViewBag.FasesOferta = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_FASE_OFERTA), "IdListaValor", "Valor");

            return View(oferta);
        }
        public void BuscarCumplimientoOfertasAlumno(ref VistaOfertaAlumno vistaofertaalumno)
        {
            DataSet dsResultado = adOferta.BuscarCumplimientoOfertasAlumno(vistaofertaalumno.Oferta.IdAlumno, vistaofertaalumno.Oferta.IdOferta);

            //Datos generales de la empresa.
            if (dsResultado.Tables.Count > 0)
            {
                List<Oferta> ListaEstudios = new List<Oferta>();
                List<Oferta> ListaSectorEmpresarial = new List<Oferta>();
                List<Oferta> ListaInformacionAdicional = new List<Oferta>();

                if (dsResultado.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow row in dsResultado.Tables[0].Rows)
                    {
                        Oferta of = new Oferta();
                        of.Requisito = Funciones.ToString(row["Caracteristica"]);
                        of.Cumplimiento = Funciones.ToInt(row["Estado"]);
                        of.Tipo = Funciones.ToInt(row["Tipo2"]);
                        of.Line = Funciones.ToInt(row["Line"]);
                        ListaEstudios.Add(of);
                    }
                    vistaofertaalumno.ListadoEstudios = ListaEstudios;
                }
                if (dsResultado.Tables[1].Rows.Count > 0)
                {
                    foreach (DataRow row in dsResultado.Tables[1].Rows)
                    {
                        Oferta of = new Oferta();
                        of.Requisito = Funciones.ToString(row["Caracteristica"]);
                        of.Cumplimiento = Funciones.ToInt(row["Estado"]);
                        of.Tipo = Funciones.ToInt(row["Tipo2"]);
                        of.Line = Funciones.ToInt(row["Line"]);
                        ListaSectorEmpresarial.Add(of);
                    }
                    vistaofertaalumno.ListadoSectorEmpresarial = ListaSectorEmpresarial;
                }
                if (dsResultado.Tables[2].Rows.Count > 0)
                {
                    foreach (DataRow row in dsResultado.Tables[2].Rows)
                    {
                        Oferta of = new Oferta();
                        of.Requisito = Funciones.ToString(row["Caracteristica"]);
                        of.Cumplimiento = Funciones.ToInt(row["Estado"]);
                        of.Tipo = Funciones.ToInt(row["Tipo2"]);
                        of.Line = Funciones.ToInt(row["Line"]);
                        ListaInformacionAdicional.Add(of);
                    }
                    vistaofertaalumno.ListadoInformacionAdicional = ListaInformacionAdicional;
                }

            }
        }
Example #18
0
 public void UTP_ActualizaSeguimientoOferta(Oferta oferta)
 {
     adUtp.UTP_ActualizaSeguimientoOferta(oferta);
 }
Example #19
0
 public OfertaPostulante()
 {
     Oferta     = new Oferta();
     Alumno     = new Alumno();
     FaseOferta = new ListaValor();
 }
        public ActionResult _VerDetalleOfertaEditar(Oferta oferta)
        {
            lnUtp.UTP_ActualizaSeguimientoOferta(oferta);
            Oferta ofertaActualizada = lnoferta.ObtenerSeguimientoPorId(oferta.IdOferta);

            LNGeneral lnGeneral = new LNGeneral();
            //Se cargan los datos para la clasificación.
            ViewBag.Calificacion = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_OFERTA_CALIFICACION_ENCUESTA), "IdListaValor", "Valor", oferta.Calificacion);
            ViewBag.TipoTrabajoUTP = new SelectList(lnGeneral.ObtenerListaValor(Constantes.IDLISTA_TIPO_TRABAJO_UTP), "IdListaValor", "Valor", oferta.TipoTrabajoUTP);
            TicketUTP ticketUtp = (TicketUTP)Session["TicketUtp"];
            ViewBag.Rol = ticketUtp.Rol;
            return PartialView("_VerDetalleOferta", ofertaActualizada);
        }
 public ActionResult VistaOfertaAnuncio(Oferta oferta)
 {
     return PartialView("_VistaOfertaAnuncio", oferta);
 }
Example #22
0
 public Mensaje()
 {
     Oferta          = new Oferta();
     Evento          = new Evento();
     IdOfertaMensaje = 0;
 }
        public ActionResult VistaOfertaMensajes(Oferta oferta)
        {
            Ticket ticket = (Ticket)Session["Ticket"];

            LNMensaje lnMensaje = new LNMensaje();
            //Se envía 0 para que obtener los mensajes de todas las ofertas.
            List<Mensaje> mensajes = lnMensaje.ObtenerPorIdEmpresaIdOferta(ticket.IdEmpresa, oferta.IdOferta);

            return PartialView("_VistaOfertaMensajes", mensajes);
        }
        public int Insertar(Oferta oferta, List<OfertaFase> listaOfertaFase)
        {
            int idOfertaGenerado = 0;
            try
            {
                using (SqlConnection conexion = new SqlConnection(cadenaConexion))
                {
                    SqlCommand cmd = new SqlCommand();

                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = "Oferta_Insertar";

                    //Parámetros:
                    cmd.Parameters.Add(new SqlParameter("@IdEmpresa", oferta.IdEmpresa)); //
                    cmd.Parameters.Add(new SqlParameter("@Funciones", oferta.Funciones)); //
                    cmd.Parameters.Add(new SqlParameter("@Competencias", oferta.Competencias)); //
                    cmd.Parameters.Add(new SqlParameter("@UsuarioPropietarioEmpresa", oferta.UsuarioPropietarioEmpresa)); //
                    cmd.Parameters.Add(new SqlParameter("@EstadoOferta", oferta.EstadoOferta)); //
                    cmd.Parameters.Add(new SqlParameter("@FechaFinRecepcionCV", oferta.FechaFinRecepcionCV)); //
                    cmd.Parameters.Add(new SqlParameter("@FechaFinProceso", oferta.FechaFinProceso)); //
                    cmd.Parameters.Add(new SqlParameter("@IdEmpresaLocacion", oferta.IdEmpresaLocacion)); //
                    cmd.Parameters.Add(new SqlParameter("@TipoTrabajo", oferta.TipoTrabajoIdListaValor)); //
                    cmd.Parameters.Add(new SqlParameter("@TipoContrato", oferta.TipoContratoIdListaValor)); //
                    cmd.Parameters.Add(new SqlParameter("@DuracionContrato", oferta.DuracionContrato));
                    cmd.Parameters.Add(new SqlParameter("@TipoCargo", oferta.TipoCargoIdListaValor)); //
                    cmd.Parameters.Add(new SqlParameter("@CargoOfrecido", oferta.CargoOfrecido));
                    cmd.Parameters.Add(new SqlParameter("@RemuneracionOfrecida", oferta.RemuneracionOfrecida));
                    cmd.Parameters.Add(new SqlParameter("@Horario", oferta.Horario));
                    cmd.Parameters.Add(new SqlParameter("@AreaEmpresa", oferta.AreaEmpresa));
                    cmd.Parameters.Add(new SqlParameter("@NumeroVacantes", (oferta.NumeroVacantes == null ? (object)DBNull.Value : oferta.NumeroVacantes )));
                    cmd.Parameters.Add(new SqlParameter("@RequiereExperienciaLaboral", oferta.RequiereExperienciaLaboral));
                    cmd.Parameters.Add(new SqlParameter("@RecibeCorreos", oferta.RecibeCorreosIdListaValor));
                    cmd.Parameters.Add(new SqlParameter("@CreadoPor", oferta.CreadoPor));

                    cmd.Connection = conexion;
                    conexion.Open();
                    object resultado = cmd.ExecuteScalar();

                    if (resultado != null)
                    {
                        idOfertaGenerado = Convert.ToInt32(resultado);

                        //Se insertan las fases de la oferta.
                        foreach (var item in listaOfertaFase)
                        {
                            cmd = new SqlCommand();
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.CommandText = "OfertaFase_Insertar";
                            cmd.Parameters.Add(new SqlParameter("@IdOferta", idOfertaGenerado));
                            cmd.Parameters.Add(new SqlParameter("@IdListaValor", item.IdListaValor));
                            cmd.Parameters.Add(new SqlParameter("@Incluir", item.Incluir));
                            cmd.Parameters.Add(new SqlParameter("@CreadoPor", item.CreadoPor));

                            cmd.Connection = conexion;
                            cmd.ExecuteNonQuery();
                        }
                    }

                    conexion.Close();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return idOfertaGenerado;
        }
Example #25
0
 public Mensaje()
 {
     Oferta = new Oferta();
     Evento = new Evento();
     IdOfertaMensaje = 0;
 }