public void InsertOrUpdate(ApoliceIsento apolice) { if (apolice.apoliceIsentoId == default(int)) { context.ApolicesIsentos.Add(apolice); } else { context.Entry(apolice).State = EntityState.Modified; } }
public static void processaFicheiroIsentos(FicheiroIsentos ficheiro) { //FicheiroIsentosRepository ficheirosIsentosRepository = new FicheiroIsentosRepository(); ValorSistemaRepository valoresSistemaRepository = new ValorSistemaRepository(); ApoliceIsentoRepository apolicesIsentoRepository = new ApoliceIsentoRepository(); NotificacaoRepository notificacoesRepository = new NotificacaoRepository(); //List<ValorSistema> valoresSistema = valoresSistemaRepository.All.Where(v => v.tipologia == "TIPO_AVISO" || v.tipologia == "ESTADO_FICHEIRO").ToList(); //ValorSistema tipoNotificacao = valoresSistema.Where(v => v.tipologia == "TIPO_AVISO" && v.valor == "GENERICO").Single(); //ValorSistema valErroFicheiro = valoresSistema.Where(v => v.tipologia == "ESTADO_FICHEIRO" && v.valor == "ERRO").Single(); //ValorSistema valProcessadoFicheiro = valoresSistema.Where(v => v.tipologia == "ESTADO_FICHEIRO" && v.valor == "PROCESSADO").Single(); ValorSistema tipoNotificacao = valoresSistemaRepository.GetPorTipologia("TIPO_AVISO").Where(v => v.valor == "GENERICO").Single(); ValorSistema valErroFicheiro = valoresSistemaRepository.GetPorTipologia("ESTADO_FICHEIRO").Where(v => v.valor == "ERRO").Single(); ValorSistema valProcessadoFicheiro = valoresSistemaRepository.GetPorTipologia("ESTADO_FICHEIRO").Where(v => v.valor == "PROCESSADO").Single(); //Insere os novos registos de períodos isentos que são reportados no ficheiro bool erroFicheiro = false; DateTime dataRegisto = DateTime.Now; DateTime dataInicioTemp; DateTime? dataFimTemp; DateTime dataAux; var excel = new ExcelQueryFactory(ficheiro.localizacao); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.matricula, "MATRICULA"); // ou excel.AddMapping("matricula", "MATRICULA"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.mensagem, "MENSAGEM"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.entidadeResponsavel, "ENTIDADE"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.dataInicio, "DATA_INICIO"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.dataFim, "DATA_FIM"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.confidencial, "CONFIDENCIAL"); var matriculasIsentas = from m in excel.Worksheet<RegistoExcelMatriculaIsenta>("Resultados") select m; foreach (RegistoExcelMatriculaIsenta mat in matriculasIsentas) { if (mat.matricula == null || mat.matricula == string.Empty || ! DateTime.TryParseExact(mat.dataInicio, "yyyyMMdd", new CultureInfo("pt-PT"), DateTimeStyles.None, out dataInicioTemp)) { erroFicheiro = true; break; } if (DateTime.TryParseExact(mat.dataFim, "yyyyMMdd", new CultureInfo("pt-PT"), DateTimeStyles.None, out dataAux)) dataFimTemp = dataAux; else dataFimTemp = null; ApoliceIsento isento = new ApoliceIsento() { entidadeId = ficheiro.entidadeId.Value, matricula = mat.matricula, matriculaCorrigida = mat.matricula.Replace("-",""), entidadeResponsavel = mat.entidadeResponsavel, mensagem = mat.mensagem, dataInicio = dataInicioTemp, dataFim = dataFimTemp, confidencial = mat.confidencial, origemFicheiro = true, arquivo = false, dataReporte = ficheiro.dataUpload, dataCriacao = dataRegisto, dataModificacao = dataRegisto, }; ficheiro.apolicesIsentos.Add(isento); } Notificacao notif = new Notificacao(); if (!erroFicheiro) { //Coloca para arquivo todos os registos de períodos isentos que foram inseridos via ficheiro. List<ApoliceIsento> periodosAtivos = apolicesIsentoRepository.All.Where(m => m.arquivo == false && m.origemFicheiro == true && m.dataCriacao < dataRegisto).ToList(); if (periodosAtivos != null && periodosAtivos.Count > 0) { foreach(ApoliceIsento isento in periodosAtivos) { isento.arquivo = true; apolicesIsentoRepository.InsertOrUpdate(isento); } } apolicesIsentoRepository.Save(); string mensagemNotificacao = string.Format("O ficheiro de reporte e matriculas isentas de seguro com o nome {0} e submetido na data {1}, " + "foi processado com sucesso sendo registados {2} matriculas.", ficheiro.nomeFicheiro, ficheiro.dataUpload.ToString(), ficheiro.apolicesIsentos.Count); notif.dataCriacao = DateTime.Now; notif.email = false; notif.entidadeId = ficheiro.entidadeId; notif.mensagem = mensagemNotificacao; notif.tipologiaId = tipoNotificacao.valorSistemaId; ficheiro.estadoId = valProcessadoFicheiro.valorSistemaId; } else { string mensagemNotificacao = string.Format("O ficheiro de reporte e matriculas isentas de seguro com o nome {0} e submetido na data {1}, " + "não foi processado devido a um erro da informação relativa ao número de matrícula ou à data de início do período.", ficheiro.nomeFicheiro, ficheiro.dataUpload.ToString()); notif.dataCriacao = DateTime.Now; notif.email = false; notif.entidadeId = ficheiro.entidadeId; notif.mensagem = mensagemNotificacao; notif.tipologiaId = tipoNotificacao.valorSistemaId; ficheiro.estadoId = valErroFicheiro.valorSistemaId; } notificacoesRepository.InsertOrUpdate(notif); notificacoesRepository.Save(); //ficheirosIsentosRepository.InsertOrUpdate(ficheiro); //ficheirosIsentosRepository.Save(); }
public ActionResult Create(ApoliceIsento apolice) { UserProfile user = usersRepository.Find(WebSecurity.CurrentUserId); if (ModelState.IsValid) { apolice.dataReporte = DateTime.Now; apolice.dataCriacao = DateTime.Now; apolice.dataModificacao = DateTime.Now; apolice.entidadeId = user.entidadeId; if (apolice.matricula != null) { apolice.matriculaCorrigida = apolice.matricula.Replace("-", ""); } apoliceIsentosRepository.InsertOrUpdate(apolice); apoliceIsentosRepository.Save(); this.Alerts.Success("Período Isento criado com sucesso."); return RedirectToAction("Index"); } this.Alerts.Danger("Erro na criação de Período Isento."); return this.View(apolice); }
public ActionResult Edit(ApoliceIsento editedApolice) { UserProfile user = usersRepository.Find(WebSecurity.CurrentUserId); //TODO: Verificar acesso ao recurso. ApoliceIsento apolice = apoliceIsentosRepository.Find(editedApolice.apoliceIsentoId); if (apolice == null) { return this.HttpNotFound(); } if (ModelState.IsValid) { editedApolice.apoliceIsentoId = default(int); editedApolice.entidadeId = apolice.entidadeId; editedApolice.dataCriacao = apolice.dataCriacao; editedApolice.dataReporte = apolice.dataReporte; editedApolice.dataModificacao = DateTime.Now; editedApolice.arquivo = false; if (editedApolice.matricula != null) { editedApolice.matriculaCorrigida = editedApolice.matricula.Replace("-", ""); } apolice.arquivo = true; apoliceIsentosRepository.InsertOrUpdate(editedApolice); apoliceIsentosRepository.InsertOrUpdate(apolice); apoliceIsentosRepository.Save(); this.Alerts.Success("Período Isento editado com sucesso."); return RedirectToAction("Index"); } this.Alerts.Danger("Erro na edição de Período Isento."); return this.View(editedApolice); }
public ActionResult Create() { ApoliceIsento view = new ApoliceIsento(); view.dataInicio = DateTime.Now; return View(view); }