public void AnnullaRichiestaAnticipi(decimal idAttivitaAnticipi, string testoAnnulla) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); try { var aa_Old = db.ATTIVITAANTICIPI.Find(idAttivitaAnticipi); if (aa_Old?.IDATTIVITAANTICIPI > 0) { if (aa_Old.NOTIFICARICHIESTA == true && aa_Old.ATTIVARICHIESTA == false && aa_Old.ANNULLATO == false) { aa_Old.ANNULLATO = true; aa_Old.DATAAGGIORNAMENTO = DateTime.Now; int i = db.SaveChanges(); if (i <= 0) { throw new Exception("Errore - Impossibile annullare la notifica della richiesta anticipo."); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Modifica, "Annullamento della riga per il ciclo di attivazione della richiesta anticipo", "ATTIVITAANTICIPI", db, aa_Old.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, aa_Old.IDATTIVITAANTICIPI); ATTIVITAANTICIPI aa_New = new ATTIVITAANTICIPI() { IDPRIMASISTEMAZIONE = aa_Old.IDPRIMASISTEMAZIONE, NOTIFICARICHIESTA = false, ATTIVARICHIESTA = false, DATAAGGIORNAMENTO = DateTime.Now, ANNULLATO = false }; db.ATTIVITAANTICIPI.Add(aa_New); int j = db.SaveChanges(); if (j <= 0) { throw new Exception("Errore - Impossibile creare il nuovo ciclo di attivazione per richiesta anticipi."); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova riga per il ciclo di attivazione relativo alla richiesta anticipo.", "ATTIVITAANTICIPI", db, aa_New.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, aa_New.IDATTIVITAANTICIPI); #region anticipo var ant_Old = aa_Old.ANTICIPI.Where( a => a.ANNULLATO == false && a.IDTIPOLOGIAANTICIPI == (decimal)EnumTipologiaAnticipi.Prima_Sistemazione).First(); if (ant_Old != null && ant_Old.IDATTIVITAANTICIPI > 0) { ANTICIPI ant_New = new ANTICIPI() { IDATTIVITAANTICIPI = aa_New.IDATTIVITAANTICIPI, IDTIPOLOGIAANTICIPI = ant_Old.IDTIPOLOGIAANTICIPI, PERCENTUALEANTICIPO = ant_Old.PERCENTUALEANTICIPO, DATAAGGIORNAMENTO = ant_Old.DATAAGGIORNAMENTO, ANNULLATO = ant_Old.ANNULLATO }; db.ANTICIPI.Add(ant_New); int y = db.SaveChanges(); if (y <= 0) { throw new Exception("Errore - Impossibile inserire il record relativo a richiesta anticipo."); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova riga per la richiesta anticipo.", "ANTICIPI", db, aa_New.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, ant_New.IDATTIVITAANTICIPI); } } #endregion #region ricrea rinunciaAnticipi var ra_old = this.GetRinunciaAnticipi(idAttivitaAnticipi, db); RINUNCIAANTICIPI ra_new = new RINUNCIAANTICIPI() { IDATTIVITAANTICIPI = aa_New.IDATTIVITAANTICIPI, RINUNCIAANT = ra_old.rinunciaAnticipi, DATAAGGIORNAMENTO = DateTime.Now, }; db.RINUNCIAANTICIPI.Add(ra_new); if (db.SaveChanges() <= 0) { throw new Exception(string.Format("Non è stato possibile creare una nuova rinuncia anticipi durante il ciclo di annullamento.")); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova rinuncia anticipi.", "RINUNCIAANTICIPI", db, ra_new.ATTIVITAANTICIPI.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, ra_new.IDATTIVITAANTICIPI); } #endregion } EmailTrasferimento.EmailAnnulla(aa_New.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, Resources.msgEmail.OggettoAnnullaRichiestaAnticipi, testoAnnulla, db); //this.EmailAnnullaRichiestaAnticipi(aa_New.IDATTIVITAANTICIPI, db); using (dtCalendarioEventi dtce = new dtCalendarioEventi()) { dtce.AnnullaMessaggioEvento(aa_New.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, EnumFunzioniEventi.RichiestaAnticipi, db); } } } } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } }
public void AnnullaRichiestaProvvidenzeScolastiche(decimal idAttivitaProvvidenzeScolastiche, string msg) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); try { var atep_Old = db.ATTIVAZIONIPROVSCOLASTICHE.Find(idAttivitaProvvidenzeScolastiche); if (atep_Old?.IDPROVSCOLASTICHE > 0) { if (atep_Old.NOTIFICARICHIESTA == true && atep_Old.ATTIVARICHIESTA == false && atep_Old.ANNULLATO == false) { atep_Old.ANNULLATO = true; atep_Old.DATAAGGIORNAMENTO = DateTime.Now; int i = db.SaveChanges(); if (i <= 0) { throw new Exception("Errore - Impossibile annullare la notifica della richiesta provvidenze scolastiche."); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Modifica, "Annullamento della riga per il ciclo di attivazione delle provvidenze scolastiche", "PROVVIDENZESCOLASTICHE", db, atep_Old.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, atep_Old.IDPROVSCOLASTICHE); var idTrasferimento = atep_Old.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO; ATTIVAZIONIPROVSCOLASTICHE atep_New = new ATTIVAZIONIPROVSCOLASTICHE() { IDTRASFPROVSCOLASTICHE = atep_Old.IDTRASFPROVSCOLASTICHE, NOTIFICARICHIESTA = false, ATTIVARICHIESTA = false, DATAAGGIORNAMENTO = DateTime.Now, ANNULLATO = false }; db.ATTIVAZIONIPROVSCOLASTICHE.Add(atep_New); int j = db.SaveChanges(); if (j <= 0) { throw new Exception("Errore - Impossibile creare il nuovo ciclo di attivazione per le provvidenze scolastiche."); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova riga per il ciclo di attivazione relativo alle provvidenze scolastiche.", "PROVVIDENZESCOLASTICHE", db, atep_New.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, atep_New.IDTRASFPROVSCOLASTICHE); #region ricrea rinunciaTE //var rtep_old = this.GetRinunciaTEPartenza(atep_Old.IDATEPARTENZA, db); //RINUNCIA_TE_P rtep_new = new RINUNCIA_TE_P() //{ // IDATEPARTENZA = atep_New.IDATEPARTENZA, // RINUNCIATE = rtep_old.rinunciaTE, // DATAAGGIORNAMENTO = DateTime.Now, //}; //db.RINUNCIA_TE_P.Add(rtep_new); //if (db.SaveChanges() <= 0) //{ // throw new Exception(string.Format("Non è stato possibile creare una nuova rinuncia trasporto effetti partenza durante il ciclo di annullamento.")); //} //else //{ // Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova rinuncia trasporto effetti partenza.", "RINUNCIA_TE_P", db, rtep_new.ATTIVITATEPARTENZA.TEPARTENZA.TRASFERIMENTO.IDTRASFERIMENTO, rtep_new.IDATEPARTENZA); //} #endregion #region documenti var ldoc_Old = atep_Old.DOCUMENTI.Where( a => a.MODIFICATO == false) .OrderBy(a => a.DATAINSERIMENTO); if (ldoc_Old?.Any() ?? false) { foreach (var doc_Old in ldoc_Old) { DOCUMENTI doc_New = new DOCUMENTI() { IDTIPODOCUMENTO = doc_Old.IDTIPODOCUMENTO, NOMEDOCUMENTO = doc_Old.NOMEDOCUMENTO, ESTENSIONE = doc_Old.ESTENSIONE, FILEDOCUMENTO = doc_Old.FILEDOCUMENTO, DATAINSERIMENTO = doc_Old.DATAINSERIMENTO, MODIFICATO = doc_Old.MODIFICATO, FK_IDDOCUMENTO = doc_Old.FK_IDDOCUMENTO, IDSTATORECORD = (decimal)EnumStatoRecord.In_Lavorazione }; atep_New.DOCUMENTI.Add(doc_New); doc_Old.IDSTATORECORD = (decimal)EnumStatoRecord.Annullato; int y = db.SaveChanges(); if (y <= 0) { throw new Exception("Errore - Impossibile associare il documento per le provvidenze scolastiche. (" + doc_New.NOMEDOCUMENTO + ")"); } else { Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova riga per il documento relativo alle provvidenze scolastiche.", "DOCUMENTI", db, atep_New.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, doc_New.IDDOCUMENTO); } } } #endregion EmailTrasferimento.EmailAnnulla(idTrasferimento, Resources.msgEmail.OggettoAnnullaRichiestaProvvidenzeScolastiche, msg, db); using (dtCalendarioEventi dtce = new dtCalendarioEventi()) { dtce.AnnullaMessaggioEvento(idTrasferimento, EnumFunzioniEventi.RichiestaProvvidenzeScolastiche, db); } } } } } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } }