/// <summary> /// Retorna a lista com a estrutura necessária para salvar a TurmaDisciplina. /// </summary> /// <param name="entTurma">Entidade da turma que será salva</param> /// <returns></returns> private List <CadastroTurmaDisciplina> RetornaTurmaDisciplina(TUR_Turma entTurma) { List <CadastroTurmaDisciplina> listaTurmaDisciplina = new List <CadastroTurmaDisciplina>(); TUR_TurmaDisciplina entTurmaDisciplina = new TUR_TurmaDisciplina { tud_codigo = entTurma.tur_codigo, tud_vagas = entTurma.tur_vagas, tud_minimoMatriculados = entTurma.tur_minimoMatriculados, tud_duracao = entTurma.tur_duracao, tud_cargaHorariaSemanal = Convert.ToInt32(txtAulasSemanais.Text), tud_aulaForaPeriodoNormal = false, tud_global = false, tud_nome = RetornaNomeDisciplina(), tud_situacao = (byte)TurmaDisciplinaSituacao.Ativo, tud_tipo = (byte)TurmaDisciplinaTipo.DisciplinaEletivaAluno, tud_modo = (byte)TurmaDisciplinaModo.Normal, tud_multiseriado = false, tud_id = VS_tud_id, IsNew = entTurma.IsNew }; TUR_TurmaDisciplinaRelDisciplina entRelDis = new TUR_TurmaDisciplinaRelDisciplina { dis_id = uccDisciplina.Valor, tud_id = entTurmaDisciplina.tud_id }; List <TUR_Turma_Docentes_Disciplina> listaDocentes = UCControleVigenciaDocentes.RetornaDadosGrid(); listaDocentes.ForEach(p => p.entDocente.tdt_posicao = 1); List <TUR_TurmaDisciplinaCalendario> listaCalendario = new List <TUR_TurmaDisciplinaCalendario>(); foreach (ListItem item in chkPeriodosCalendario.Items) { if (item.Selected) { TUR_TurmaDisciplinaCalendario ent = new TUR_TurmaDisciplinaCalendario { tpc_id = Convert.ToInt32(item.Value), tud_id = entTurmaDisciplina.tud_id }; listaCalendario.Add(ent); } } CadastroTurmaDisciplina entCadTurmaDisciplina = new CadastroTurmaDisciplina { listaTurmaDocente = listaDocentes, entTurmaCalendario = listaCalendario, entTurmaDisciplina = entTurmaDisciplina, entTurmaDiscRelDisciplina = entRelDis }; listaTurmaDisciplina.Add(entCadTurmaDisciplina); return(listaTurmaDisciplina); }
/// <summary> /// Salvar avaliações não avaliadas para a disciplina. /// </summary> /// <param name="banco">Transação com banco</param> /// <param name="cad">Entidade de cadastro de turmaDisciplina</param> /// <param name="listaDisciplinaNaoAvaliado_Turma">Lista de avaliações já cadastradas para a turma</param> internal static void SalvarAvaliacoesDisciplinas(TalkDBTransaction banco, CadastroTurmaDisciplina cad, List <TUR_TurmaDisciplinaNaoAvaliado> listaDisciplinaNaoAvaliado_Turma) { foreach (TUR_TurmaDisciplinaNaoAvaliado entDisciplinaNaoAvaliado in cad.listaAvaliacoesNaoAvaliar) { entDisciplinaNaoAvaliado.tud_id = cad.entTurmaDisciplina.tud_id; if (!entDisciplinaNaoAvaliado.Validate()) { throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entDisciplinaNaoAvaliado)); } TUR_TurmaDisciplinaNaoAvaliado entAux = new TUR_TurmaDisciplinaNaoAvaliado { tud_id = entDisciplinaNaoAvaliado.tud_id , fav_id = entDisciplinaNaoAvaliado.fav_id , ava_id = entDisciplinaNaoAvaliado.ava_id }; GetEntity(entAux, banco); if (entAux.IsNew) { Save(entDisciplinaNaoAvaliado, banco); } } // Busca avaliações para a disciplina. List <TUR_TurmaDisciplinaNaoAvaliado> listaDisciplinaNaoAvaliado = (from TUR_TurmaDisciplinaNaoAvaliado item in listaDisciplinaNaoAvaliado_Turma where item.tud_id == cad.entTurmaDisciplina.tud_id select item).ToList(); // Excluir as avaliações para a disciplina que não foram inseridas e existiam antes. foreach (TUR_TurmaDisciplinaNaoAvaliado entDisciplinaNaoAvaliado in listaDisciplinaNaoAvaliado) { if (!cad.listaAvaliacoesNaoAvaliar.Exists ( p => p.tud_id == entDisciplinaNaoAvaliado.tud_id && p.fav_id == entDisciplinaNaoAvaliado.fav_id && p.ava_id == entDisciplinaNaoAvaliado.ava_id )) { Delete(entDisciplinaNaoAvaliado, banco); } } }
/// <summary> /// Retorna os lists necessários para salvar a turma. /// </summary> /// <param name="tud_codigo">código da turma disciplina</param> /// <param name="tud_vagas">quantidade de vagas turma disciplina</param> /// <param name="tud_minimoMatriculados">quantidade mínima de vagas turma disciplina</param> /// <param name="tud_duracao">Disciplina duração</param> /// <returns>As listas de entidades com as discplinas a serem salvas</returns> public List <CadastroTurmaDisciplina> RetornaDisciplinas(string tud_codigo , int tud_vagas , int tud_minimoMatriculados , byte tud_duracao) { List <CadastroTurmaDisciplina> listTurmaDisciplina = new List <CadastroTurmaDisciplina>(); // Disciplinas obrigatórias. foreach (GridViewRow row in gvDisciplina.Rows) { CadastroTurmaDisciplina ent = AdicionaDisciplina(row, tud_codigo, tud_vagas, tud_minimoMatriculados, tud_duracao); listTurmaDisciplina.Add(ent); } return(listTurmaDisciplina); }
/// <summary> /// Retorna os lists necessários para salvar a turma. /// </summary> /// <param name="tud_codigo">código da turma disciplina</param> /// <param name="tud_vagas">quantidade de vagas turma disciplina</param> /// <param name="tud_minimoMatriculados">quantidade mínima de vagas turma disciplina</param> /// <param name="tud_duracao">Disciplina duração</param> /// <returns>As listas de entidades com as discplinas a serem salvas</returns> public List <CadastroTurmaDisciplina> RetornaDisciplinas(string tud_codigo , int tud_vagas , int tud_minimoMatriculados , byte tud_duracao) { List <CadastroTurmaDisciplina> listTurmaDisciplina = new List <CadastroTurmaDisciplina>(); CadastroTurmaDisciplina entRegencia = new CadastroTurmaDisciplina(); // Disciplinas obrigatórias. foreach (GridViewRow row in gvRegencia.Rows) { CadastroTurmaDisciplina ent = AdicionaDisciplina(row, tud_codigo, tud_vagas, tud_minimoMatriculados, tud_duracao); entRegencia = ent; listTurmaDisciplina.Add(ent); } int totalCargaHorariaSemanal = 0; foreach (GridViewRow row in gvCompRegencia.Rows) { CadastroTurmaDisciplina ent = AdicionaCompRegencia(row, tud_codigo, tud_vagas, tud_minimoMatriculados, tud_duracao); ent.listaTurmaDocente = entRegencia.listaTurmaDocente; ent.entTurmaCalendario = entRegencia.entTurmaCalendario; ent.listaAvaliacoesNaoAvaliar = entRegencia.listaAvaliacoesNaoAvaliar; totalCargaHorariaSemanal += ent.entTurmaDisciplina.tud_cargaHorariaSemanal; listTurmaDisciplina.Add(ent); } if (listTurmaDisciplina.Any()) { listTurmaDisciplina[listTurmaDisciplina.IndexOf(entRegencia)].entTurmaDisciplina.tud_cargaHorariaSemanal = totalCargaHorariaSemanal; } return(listTurmaDisciplina); }
/// <summary> /// Retorna os lists necessários para salvar a turma. /// </summary> /// <param name="tud_codigo">código da turma disciplina</param> /// <param name="tud_vagas">quantidade de vagas turma disciplina</param> /// <param name="tud_minimoMatriculados">quantidade mínima de vagas turma disciplina</param> /// <param name="tud_duracao">Disciplina duração</param> /// <returns>As listas de entidades com as discplinas a serem salvas</returns> public List <CadastroTurmaDisciplina> RetornaDisciplinas ( string tud_codigo , int tud_vagas , int tud_minimoMatriculados , byte tud_duracao ) { List <CadastroTurmaDisciplina> listTurmaDisciplina = new List <CadastroTurmaDisciplina>(); // Disciplinas eletivas. foreach (RepeaterItem item in rptDisciplinasEletivas.Items) { CadastroTurmaDisciplina ent = AdicionaDisciplina(item, tud_codigo, tud_vagas, tud_minimoMatriculados, tud_duracao); listTurmaDisciplina.Add(ent); } return(listTurmaDisciplina); }
/// <summary> /// Salva as entidades dos docentes para a disciplina. /// </summary> /// <param name="tur_id">ID da turma</param> /// <param name="cad">Estrutura com dados da disciplina e lista de docentes</param> /// <param name="banco">Transação com banco</param> /// <param name="listaDocentesTodasDisciplinas">Lista de todos os docentes cadastrados para todas as disciplinas da turma - para verificar os que irá excluir</param> /// <param name="ent_id">Id da entidade do usuário logado.</param> public static void SalvarDocentesDisciplina(long tur_id , CadastroTurmaDisciplina cad , TalkDBTransaction banco , List <TUR_Turma_Docentes_Disciplina> listaDocentesTodasDisciplinas , Guid ent_id) { // Pegar os docentes que existiam antes na disciplina. List <TUR_Turma_Docentes_Disciplina> docentesCadastrados = (from TUR_Turma_Docentes_Disciplina item in listaDocentesTodasDisciplinas where item.entDocente.tud_id == cad.entTurmaDisciplina.tud_id select item ).ToList(); foreach (TUR_Turma_Docentes_Disciplina docente in cad.listaTurmaDocente) { DateTime VigenciaFinalDocente = docente.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : docente.entDocente.tdt_vigenciaFim; // Validar se existem vigências com conflito de data. var x = from TUR_Turma_Docentes_Disciplina item in cad.listaTurmaDocente where GestaoEscolarUtilBO.ExisteConflitoDatas (item.entDocente.tdt_vigenciaInicio, item.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : item.entDocente.tdt_vigenciaFim , docente.entDocente.tdt_vigenciaInicio, VigenciaFinalDocente) && item.indice != docente.indice && item.entDocente.tdt_posicao == docente.entDocente.tdt_posicao select item; if (x.Count() > 0) { throw new ValidationException( "Existe um conflito de datas da vigência do docente \"" + docente.doc_nome + "\"."); } // Verifica se o mesmo docente está vigente em mais de uma posição. var y = from TUR_Turma_Docentes_Disciplina item in cad.listaTurmaDocente where GestaoEscolarUtilBO.ExisteConflitoDatas (item.entDocente.tdt_vigenciaInicio, item.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : item.entDocente.tdt_vigenciaFim , docente.entDocente.tdt_vigenciaInicio, VigenciaFinalDocente) && item.entDocente.tdt_posicao != docente.entDocente.tdt_posicao && item.entDocente.doc_id == docente.entDocente.doc_id && item.entDocente.coc_id == docente.entDocente.coc_id && item.entDocente.col_id == docente.entDocente.col_id && item.entDocente.crg_id == docente.entDocente.crg_id select item; if (y.Count() > 0) { throw new ValidationException( "O docente \"" + docente.doc_nome + "\" não pode estar vigente em mais de uma posição."); } // Remove do cache as turmas do docente. TUR_TurmaBO.RemoveCacheDocenteControleTurma(ent_id, docente.entDocente.doc_id); TUR_TurmaBO.RemoveCacheDocente_TurmaDisciplina(tur_id, docente.entDocente.doc_id, ent_id); TUR_TurmaDocente entTurmaDocente = docente.entDocente; entTurmaDocente.tud_id = cad.entTurmaDisciplina.tud_id; LimpaCache(entTurmaDocente, ent_id); // Salvar entidade. Save(entTurmaDocente, banco); } // Se remover docente, transfere os lançamentos. if (!cad.listaTurmaDocente.Exists(p => (p.entDocente.tdt_posicao > 1 && p.entDocente.tdt_situacao == 1)) && ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ALTERAR_AULAS_PARA_TITULAR_ATRIBUICAO_DOCENTES, ent_id)) { TransferirLancamentos_Posicao(cad.entTurmaDisciplina.tud_id, banco); } foreach (TUR_Turma_Docentes_Disciplina docente in docentesCadastrados) { // Verificar se o docente existia antes e não existe mais. if (!cad.listaTurmaDocente.Exists(p => (p.entDocente.tud_id == docente.entDocente.tud_id && p.entDocente.tdt_id == docente.entDocente.tdt_id))) { // Excluir. Delete(docente.entDocente, banco); } } }
/// <summary> /// Retorna a lista com a estrutura necessária para salvar a TurmaDisciplina. /// </summary> /// <param name="entTurma">Entidade da turma que será salva</param> /// <returns></returns> private List <CadastroTurmaDisciplina> RetornaTurmaDisciplina(TUR_Turma entTurma) { List <CadastroTurmaDisciplina> listaTurmaDisciplina = new List <CadastroTurmaDisciplina>(); TUR_TurmaDisciplina entTurmaDisciplina = new TUR_TurmaDisciplina { tud_codigo = entTurma.tur_codigo, tud_vagas = entTurma.tur_vagas, tud_minimoMatriculados = entTurma.tur_minimoMatriculados, tud_duracao = entTurma.tur_duracao, tud_cargaHorariaSemanal = Convert.ToInt32(txtAulasSemanais.Text), tud_aulaForaPeriodoNormal = false, tud_global = false, tud_nome = VS_ListaCurriculoDisciplina[0].dis_nome, tud_situacao = (byte)TurmaDisciplinaSituacao.Ativo, tud_tipo = (byte)TurmaDisciplinaTipo.Multisseriada, tud_modo = (byte)TurmaDisciplinaModo.Normal, tud_multiseriado = false, tud_id = VS_tud_id, IsNew = entTurma.IsNew }; List <TUR_TurmaDisciplinaRelDisciplina> lstEntTurmaDiscRelDisciplina = new List <TUR_TurmaDisciplinaRelDisciplina>(); foreach (ACA_CurriculoDisciplina item in VS_ListaCurriculoDisciplina.Where(p => p.dis_id > 0)) { TUR_TurmaDisciplinaRelDisciplina entRelDis = new TUR_TurmaDisciplinaRelDisciplina { dis_id = item.dis_id, tud_id = entTurmaDisciplina.tud_id }; lstEntTurmaDiscRelDisciplina.Add(entRelDis); } List <TUR_Turma_Docentes_Disciplina> docentes = (from RepeaterItem item in rptDocentes.Items let UCControleVigenciaDocentes = (ControleVigenciaDocentes)item.FindControl("UCControleVigenciaDocentes") let posicao = Convert.ToByte(((Label)item.FindControl("lblposicao")).Text) from TUR_Turma_Docentes_Disciplina turmadocente in UCControleVigenciaDocentes.RetornaDadosGrid() let entityDocente = turmadocente.entDocente select new TUR_Turma_Docentes_Disciplina { doc_nome = turmadocente.doc_nome , indice = turmadocente.indice , entDocente = new TUR_TurmaDocente { doc_id = entityDocente.doc_id, col_id = entityDocente.col_id, crg_id = entityDocente.crg_id, coc_id = entityDocente.coc_id, tdt_vigenciaInicio = entityDocente.tdt_vigenciaInicio, tdt_vigenciaFim = entityDocente.tdt_vigenciaFim, tdt_id = entityDocente.tdt_id, tdt_tipo = entityDocente.tdt_tipo, tdt_posicao = posicao } }).ToList(); List <TUR_TurmaDisciplinaCalendario> listaCalendario = new List <TUR_TurmaDisciplinaCalendario>(); CadastroTurmaDisciplina entCadTurmaDisciplina = new CadastroTurmaDisciplina { listaTurmaDocente = docentes, entTurmaCalendario = listaCalendario, entTurmaDisciplina = entTurmaDisciplina, listaEntTurmaDiscRelDisciplina = lstEntTurmaDiscRelDisciplina }; listaTurmaDisciplina.Add(entCadTurmaDisciplina); return(listaTurmaDisciplina); }