public void AttivaRichiestaAnticipi(decimal idAttivitaAnticipi) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); try { var aa = db.ATTIVITAANTICIPI.Find(idAttivitaAnticipi); if (aa?.IDATTIVITAANTICIPI > 0) { if (aa.NOTIFICARICHIESTA == true) { aa.ATTIVARICHIESTA = true; aa.DATAATTIVARICHIESTA = DateTime.Now; aa.DATAAGGIORNAMENTO = DateTime.Now; int i = db.SaveChanges(); if (i <= 0) { throw new Exception("Errore: Impossibile completare l'attivazione anticipo."); } else { using (dtElaborazioni dte = new dtElaborazioni()) { dte.InviaAnticipoPrimaSistemazione(idAttivitaAnticipi, db); } Utility.SetLogAttivita(EnumAttivitaCrud.Modifica, "Attivazione anticipi.", "ATTIVITAANTICIPI", db, aa.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, aa.IDATTIVITAANTICIPI); using (dtCalendarioEventi dtce = new dtCalendarioEventi()) { dtce.ModificaInCompletatoCalendarioEvento(aa.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, EnumFunzioniEventi.RichiestaAnticipi, db); } //using (dtDipendenti dtd = new dtDipendenti()) //{ using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtUffici dtu = new dtUffici()) { var t = dtt.GetTrasferimentoByIdPrimaSistemazione(aa.IDPRIMASISTEMAZIONE); if (t?.idTrasferimento > 0) { //var dip = dtd.GetDipendenteByID(t.idDipendente); var uff = dtu.GetUffici(t.idUfficio); EmailTrasferimento.EmailAttiva(aa.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, Resources.msgEmail.OggettoAttivaRichiestaAnticipi, string.Format(Resources.msgEmail.MessaggioAttivaRichiestaAnticipi, uff.descUfficio + " (" + uff.codiceUfficio + ")", t.dataPartenza.ToShortDateString()), db); } } } //} //this.EmailAttivaRichiestaAnticipi(aa.IDATTIVITAANTICIPI, db); } } } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } }
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 NotificaRichiestaAnticipi(decimal idAttivitaAnticipi, decimal percentualeRichiesta) { try { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); try { var aa = db.ATTIVITAANTICIPI.Find(idAttivitaAnticipi); var ra = aa.RINUNCIAANTICIPI; var rinunciaAnticipi = ra.RINUNCIAANT; var a = aa.ANTICIPI.Where(x => x.IDTIPOLOGIAANTICIPI == (decimal)EnumTipologiaAnticipi.Prima_Sistemazione).First(); if (a.PERCENTUALEANTICIPO != percentualeRichiesta) { a.PERCENTUALEANTICIPO = percentualeRichiesta; a.DATAAGGIORNAMENTO = DateTime.Now; if (db.SaveChanges() <= 0) { throw new Exception("Errore nella fase di aggiornamento della percentuale di anticipo richiesta."); } } aa.NOTIFICARICHIESTA = true; aa.DATANOTIFICARICHIESTA = DateTime.Now; aa.DATAAGGIORNAMENTO = DateTime.Now; if (db.SaveChanges() <= 0) { throw new Exception("Errore nella fase d'inserimento per la richiesta attivazione anticipi."); } else { using (dtDipendenti dtd = new dtDipendenti()) { var dip = dtd.GetDipendenteByID(aa.PRIMASITEMAZIONE.TRASFERIMENTO.DIPENDENTI.IDDIPENDENTE); EmailTrasferimento.EmailNotifica(EnumChiamante.Anticipi, aa.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, Resources.msgEmail.OggettoNotificaRichiestaAnticipi, string.Format(Resources.msgEmail.MessaggioNotificaRichiestaAnticipi, dip.cognome + " " + dip.nome + " (" + dip.matricola + ")"), db); } //this.EmailNotificaRichiestaAnticipi(idAttivitaAnticipi, db); using (dtCalendarioEventi dtce = new dtCalendarioEventi()) { CalendarioEventiModel cem = new CalendarioEventiModel() { idFunzioneEventi = EnumFunzioniEventi.RichiestaAnticipi, idTrasferimento = aa.PRIMASITEMAZIONE.IDPRIMASISTEMAZIONE, DataInizioEvento = DateTime.Now.Date, DataScadenza = DateTime.Now.AddDays(Convert.ToInt16(Resources.ScadenzaFunzioniEventi.RichiestaAnticipi)).Date, }; dtce.InsertCalendarioEvento(ref cem, db); } } //} db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } } catch (Exception ex) { 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; } } }
public void NotificaRichiestaPS(decimal idProvScolastiche) { try { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); try { using (dtDipendenti dtd = new dtDipendenti()) { var atps = db.ATTIVAZIONIPROVSCOLASTICHE.Find(idProvScolastiche); atps.NOTIFICARICHIESTA = true; atps.DATAATTIVAZIONE = DateTime.Now; atps.DATAAGGIORNAMENTO = DateTime.Now; var t = atps.PROVVIDENZESCOLASTICHE.TRASFERIMENTO; var dip = dtd.GetDipendenteByID(t.IDDIPENDENTE); var i = db.SaveChanges(); if (i <= 0) { throw new Exception("Errore nella fase d'inserimento per la richiesta provvidenze scolastiche."); } #region ciclo attivazione documenti PS var ldps = atps.DOCUMENTI.Where(a => a.MODIFICATO == false && a.IDSTATORECORD == (decimal)EnumStatoRecord.In_Lavorazione).ToList(); foreach (var dps in ldps) { dps.IDSTATORECORD = (decimal)EnumStatoRecord.Da_Attivare; if (db.SaveChanges() <= 0) { throw new Exception("Errore durante il ciclo di attivazione provvidenze scolastiche"); } } #endregion EmailTrasferimento.EmailNotifica(EnumChiamante.ProvvidenzeScolastiche, atps.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, Resources.msgEmail.OggettoNotificaProvvidenzeScolastiche, string.Format(Resources.msgEmail.MessaggioNotificaProvvidenzeScolastiche, dip.cognome + " " + dip.nome + " (" + dip.matricola + ")"), db); using (dtCalendarioEventi dtce = new dtCalendarioEventi()) { CalendarioEventiModel cem = new CalendarioEventiModel() { idFunzioneEventi = EnumFunzioniEventi.RichiestaProvvidenzeScolastiche, idTrasferimento = atps.PROVVIDENZESCOLASTICHE.IDTRASFPROVSCOLASTICHE, DataInizioEvento = DateTime.Now.Date, DataScadenza = DateTime.Now.AddDays(Convert.ToInt16(Resources.ScadenzaFunzioniEventi.RichiestaProvvidenzeScolastiche)).Date, }; dtce.InsertCalendarioEvento(ref cem, db); } db.Database.CurrentTransaction.Commit(); } } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } } catch (Exception ex) { throw ex; } }
public void AttivaRichiestaProvvidenzeScolastiche(decimal idAttivitaProvvidenzeScolastiche) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); try { var atps = db.ATTIVAZIONIPROVSCOLASTICHE.Find(idAttivitaProvvidenzeScolastiche); if (atps?.IDPROVSCOLASTICHE > 0) { if (atps.NOTIFICARICHIESTA == true) { atps.ATTIVARICHIESTA = true; atps.DATAATTIVAZIONE = DateTime.Now; atps.DATAAGGIORNAMENTO = DateTime.Now; int i = db.SaveChanges(); if (i <= 0) { throw new Exception("Errore: Impossibile completare l'attivazione delle provvidenze scolastiche."); } else { #region ciclo attivazione documenti PS var ldte = atps.DOCUMENTI.Where(a => a.MODIFICATO == false && a.IDSTATORECORD == (decimal)EnumStatoRecord.Da_Attivare).ToList(); foreach (var dte in ldte) { dte.IDSTATORECORD = (decimal)EnumStatoRecord.Attivato; if (db.SaveChanges() <= 0) { throw new Exception("Errore durante il ciclo di attivazione provvidenze scolastiche (attiva documenti)"); } } #endregion Utility.SetLogAttivita(EnumAttivitaCrud.Modifica, "Attivazione provvidenze scolastiche.", "ATTIVAZIONIPROVSCOLASTICHE", db, atps.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, atps.IDPROVSCOLASTICHE); using (dtCalendarioEventi dtce = new dtCalendarioEventi()) { dtce.ModificaInCompletatoCalendarioEvento(atps.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, EnumFunzioniEventi.RichiestaProvvidenzeScolastiche, db); } var messaggioAttiva = Resources.msgEmail.MessaggioAttivazioneProvvidenzeScolastiche; var oggettoAttiva = Resources.msgEmail.OggettoAttivazioneProvvidenzeScolastiche; EmailTrasferimento.EmailAttiva(atps.PROVVIDENZESCOLASTICHE.TRASFERIMENTO.IDTRASFERIMENTO, oggettoAttiva, messaggioAttiva, db); } } } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } }