public RichiamoModel GetRichiamoByIdTrasf(decimal idTrasferimento) { RichiamoModel rm = new RichiamoModel(); using (ModelDBISE db = new ModelDBISE()) { TRASFERIMENTO t = db.TRASFERIMENTO.Find(idTrasferimento); var lr = t.RICHIAMO.Where(a => a.ANNULLATO == false).OrderByDescending(a => a.IDRICHIAMO); if (lr?.Any() ?? false) { var r = lr.First(); rm = new RichiamoModel() { IdRichiamo = r.IDRICHIAMO, idTrasferimento = r.IDTRASFERIMENTO, DataRichiamo = r.DATARICHIAMO, DataAggiornamento = r.DATAAGGIORNAMENTO, annullato = r.ANNULLATO }; } } return(rm); }
public RichiamoModel Restituisci_Ultimo_Richiamo(decimal idTrasferimento) { RichiamoModel tmp = new RichiamoModel(); using (ModelDBISE db = new ModelDBISE()) { var CIR = db.TRASFERIMENTO.Find(idTrasferimento); var rich = CIR.RICHIAMO.Where(a => a.ANNULLATO == false).OrderByDescending(x => x.IDRICHIAMO); if (rich?.Any() ?? false) { var r = rich.First(); var p = r.PERCENTUALEFKM.ToList(); if (p?.Any() ?? false) { decimal idFKM = p.First().IDFKM; decimal idRichiamo = r.IDRICHIAMO; tmp.IdRichiamo = r.IDRICHIAMO; tmp.idTrasferimento = r.IDTRASFERIMENTO; tmp.DataRientro = r.TRASFERIMENTO.DATARIENTRO; tmp.DataPartenza = r.TRASFERIMENTO.DATAPARTENZA; tmp.DataRichiamo = r.DATARICHIAMO; tmp.DataAggiornamento = r.DATAAGGIORNAMENTO; tmp.CoeffKm = idFKM; tmp.IDPFKM = p.First().IDPFKM; } } } return(tmp); }
public ActionResult Richiamo(decimal idTrasferimento, decimal idFKm, string dataRichiamo, decimal nuovo = 0) { DateTime dataPartenza = new DateTime(); bool admin = Utility.Amministratore(); bool solaLettura = false; ViewBag.Amministratore = admin; try { ViewData["idFKm"] = idFKm; ViewData["idTrasferimento"] = idTrasferimento; ViewData["dataRichiamo"] = dataRichiamo; CaricaComboFKM(idFKm, nuovo); ViewData["abilitaModifica"] = idFKm; using (ModelDBISE db = new ModelDBISE()) { using (dtRichiamo dtr = new dtRichiamo()) { dataPartenza = dtr.Restituisci_DataPartenza(idTrasferimento, db); RichiamoModel rcm = dtr.Restituisci_Ultimo_Richiamo(idTrasferimento); ViewData["idRichiamo"] = rcm.IdRichiamo; if (rcm.IdRichiamo != 0) { ViewData["dataRientro"] = rcm.DataRientro; ViewData["dataRichiamo"] = rcm.DataRichiamo; } CaricaComboFKM(rcm.CoeffKm, nuovo, rcm.IdRichiamo); } using (dtTrasferimento dtt = new dtTrasferimento()) { TrasferimentoModel trm = dtt.GetTrasferimentoById(idTrasferimento); if (trm != null) { var ultimo_trasf = dtt.GetUltimoTrasferimentoValidoByMatricola(trm.Dipendente.matricola.ToString()); if (ultimo_trasf.idTrasferimento > 0) { if (ultimo_trasf.idTrasferimento != idTrasferimento) { solaLettura = true; } } } } } ViewData["solaLettura"] = solaLettura; ViewData["dataPartenza"] = dataPartenza; } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(PartialView()); }
public decimal EditRichiamo(RichiamoModel ric, decimal idCoeffIndRichiamo, decimal idCoeffMaggRichiamo, decimal idPercentualeFKM, DateTime DataRientro, decimal idRichiamo, ModelDBISE db) { decimal tmp = 0; if (idCoeffIndRichiamo == 0 || idPercentualeFKM == 0 || idCoeffMaggRichiamo == 0) { return(0); } try { var rich = db.RICHIAMO.Find(idRichiamo); rich.ANNULLATO = true; rich.DATAAGGIORNAMENTO = DateTime.Now; db.SaveChanges(); RICHIAMO riNew = new RICHIAMO() { IDTRASFERIMENTO = ric.idTrasferimento, DATARICHIAMO = ric.DataRichiamo, DATAAGGIORNAMENTO = DateTime.Now, ANNULLATO = false }; db.RICHIAMO.Add(riNew); int i = db.SaveChanges(); tmp = riNew.IDRICHIAMO; var t = db.TRASFERIMENTO.Find(ric.idTrasferimento); t.IDSTATOTRASFERIMENTO = (decimal)EnumStatoTraferimento.Terminato; t.DATARIENTRO = DataRientro;// ric.DataRichiamo.AddDays(-1); t.DATAAGGIORNAMENTO = DateTime.Now; db.SaveChanges(); //DataRientro = ric.DataRichiamo.AddDays(-1); using (dtRichiamo dtr = new dtRichiamo()) { RimuoviAsscoiazioni_Richiamo_CoeffIndRichiamo(idRichiamo, db); RimuoviAsscoiazioni_Richiamo_PercentualeFKM(idRichiamo, db); RimuoviAssociazioni_Richiamo_CoeffMagRichiamo(idRichiamo, db); dtr.Associa_Richiamo_CoeffIndRichiamo(tmp, idCoeffIndRichiamo, db); dtr.Associa_Richiamo_CoeffIndRichiamo(tmp, idCoeffMaggRichiamo, db); dtr.Associa_Richiamo_PercentualeFKM(tmp, idPercentualeFKM, db); } if (i > 0) { Utility.SetLogAttivita(EnumAttivitaCrud.Modifica, "Modifica richiamo.", "Richiamo", db, rich.IDTRASFERIMENTO, rich.IDTRASFERIMENTO); } } catch (Exception ex) { throw ex; } return(tmp); }
public decimal Restituisci_ID_PercentualeFKM_Da_Data(RichiamoModel ri, ModelDBISE db) { decimal tmp = 0; var lCIR = db.PERCENTUALEFKM.Where(x => x.IDFKM == ri.CoeffKm && x.ANNULLATO == false).ToList().Where(a => ri.DataRichiamo >= a.DATAINIZIOVALIDITA && ri.DataRichiamo <= a.DATAFINEVALIDITA).ToList(); if (lCIR?.Any() ?? false) { tmp = lCIR.First().IDPFKM; } return(tmp); }
public decimal Restituisci_ID_CoeffMagIndRichiamo_Da_Data(RichiamoModel ri, ModelDBISE db) { decimal tmp = 0; var lCIR = db.COEFFICIENTEINDRICHIAMO.Where(a => a.ANNULLATO == false && ri.DataRichiamo >= a.DATAINIZIOVALIDITA && ri.DataRichiamo <= a.DATAFINEVALIDITA && a.IDTIPOCOEFFICIENTERICHIAMO == (decimal)EnumTipoCoefficienteRichiamo.CoefficienteMaggiorazione).ToList(); if (lCIR?.Any() ?? false) { tmp = lCIR.First().IDCOEFINDRICHIAMO; } return(tmp); }
public decimal SetRichiamo(RichiamoModel ric, decimal idCoeffIndRichiamo, decimal idPercentualeFKM, decimal idCoeffMagIndRichiamo, DateTime DataRientro, ModelDBISE db) { decimal tmp = 0; if (idCoeffIndRichiamo == 0 || idPercentualeFKM == 0 || idCoeffMagIndRichiamo == 0) { return(0); } try { RICHIAMO ri = new RICHIAMO() { IDTRASFERIMENTO = ric.idTrasferimento, DATARICHIAMO = ric.DataRichiamo, DATAAGGIORNAMENTO = DateTime.Now, ANNULLATO = ric.annullato }; db.RICHIAMO.Add(ri); int i = db.SaveChanges(); tmp = ri.IDRICHIAMO; var t = db.TRASFERIMENTO.Find(ric.idTrasferimento); t.IDSTATOTRASFERIMENTO = (decimal)EnumStatoTraferimento.Terminato; t.DATARIENTRO = DataRientro;// ric.DataRichiamo.AddDays(-1); t.DATAAGGIORNAMENTO = DateTime.Now; db.SaveChanges(); //DataRientro = ;// ric.DataRichiamo.AddDays(-1); using (dtRichiamo dtr = new dtRichiamo()) { dtr.Associa_Richiamo_CoeffIndRichiamo(ri.IDRICHIAMO, idCoeffIndRichiamo, db); dtr.Associa_Richiamo_CoeffIndRichiamo(ri.IDRICHIAMO, idCoeffMagIndRichiamo, db); dtr.Associa_Richiamo_PercentualeFKM(ri.IDRICHIAMO, idPercentualeFKM, db); } if (i > 0) { ric.idTrasferimento = ri.IDTRASFERIMENTO; Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di un nuovo richiamo.", "Richiamo", db, ric.idTrasferimento, ri.IDTRASFERIMENTO); } } catch (Exception ex) { throw ex; } return(tmp); }
public RichiamoModel getRichiamoById(decimal idRichiamo) { RichiamoModel tmp = new RichiamoModel(); using (ModelDBISE db = new ModelDBISE()) { RICHIAMO r = db.RICHIAMO.Find(idRichiamo); if (r != null) { tmp.annullato = r.ANNULLATO; tmp.IdRichiamo = r.IDRICHIAMO; tmp.idTrasferimento = r.IDTRASFERIMENTO; tmp.DataAggiornamento = r.DATAAGGIORNAMENTO; tmp.DataPartenza = r.TRASFERIMENTO.DATAPARTENZA; tmp.DataRichiamo = r.DATARICHIAMO; tmp.DataRientro = r.TRASFERIMENTO.DATARIENTRO; } } return(tmp); }
public JsonResult ConfermaModificaRichiamo(decimal idTrasferimento, decimal idFasciaFKM, string dataRichiamo, decimal idRichiamo) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); string errore = ""; var lstr = new List <SelectListItem>(); try { ViewData["idTrasferimento"] = idTrasferimento; ViewData["idFKm"] = idFasciaFKM; DateTime dataPartenza = new DateTime(); CaricaComboFKM(idFasciaFKM, idFasciaFKM); using (dtRichiamo dtric = new dtRichiamo()) { dataPartenza = dtric.Restituisci_DataPartenza(idTrasferimento, db); } ViewData["dataPartenza"] = dataPartenza; try { RichiamoModel ri = new RichiamoModel(); ri.DataRichiamo = Convert.ToDateTime(dataRichiamo); ri.DataAggiornamento = DateTime.Now; ri.CoeffKm = idFasciaFKM; ri.idTrasferimento = idTrasferimento; using (dtRichiamo dtric = new dtRichiamo()) { decimal idCoeffIndRichiamo = dtric.Restituisci_ID_CoeffIndRichiamo_Da_Data(ri, db); decimal idCoeffMaggRichiamo = dtric.Restituisci_ID_CoeffMagIndRichiamo_Da_Data(ri, db); decimal IDPFKM = dtric.Restituisci_ID_PercentualeFKM_Da_Data(ri, db); if (idCoeffIndRichiamo == 0 || IDPFKM == 0 || idCoeffMaggRichiamo == 0) { errore = "Non esistono coefficenti corrispondenti ai criteri del Richiamo"; ViewData["errore"] = errore; } ri.IDPFKM = IDPFKM; DateTime dataRientroPrecedente = dtric.Restituisci_Data_Rientro(idTrasferimento); DateTime DataRientro = Convert.ToDateTime(dataRichiamo).AddDays(-1); ri.DataRientro = DataRientro; if (idRichiamo != 0) { ViewData["dataRichiamo"] = ri.DataRichiamo.ToShortDateString(); ViewData["dataRientro"] = ri.DataRientro.ToShortDateString(); ViewData["idRichiamo"] = idRichiamo; if (DataRientro < dataPartenza) { errore = "Data Rientro (" + DataRientro.ToShortDateString() + ") non può essere inferiore alla data Partenza (" + dataPartenza.ToShortDateString() + " )"; } else { idRichiamo = dtric.EditRichiamo(ri, idCoeffIndRichiamo, idCoeffMaggRichiamo, IDPFKM, DataRientro, idRichiamo, db); errore = ""; lstr = AggiornaViewBag_Lista_Trasferimenti(idTrasferimento, db); //using (dtVariazioniMaggiorazioneFamiliare dtvmf = new dtVariazioniMaggiorazioneFamiliare()) //{ // dtvmf.TerminaMaggiorazioniFamiliariByDataFineTrasf(idTrasferimento, ri.DataRientro, db); //} //using (dtVariazioniMaggiorazioneAbitazione dtvmab = new dtVariazioniMaggiorazioneAbitazione()) //{ // dtvmab.TerminaMABbyDataFineTrasf(idTrasferimento, ri.DataRientro, db); //} using (dtDipendenti dtd = new dtDipendenti()) { dtd.DataInizioRicalcoliDipendente(idTrasferimento, ri.DataRientro, db, true); } string sede = dtric.DeterminaSede(idTrasferimento); string oggetto = Resources.msgEmail.OggettoRichiamoModifica; string corpoMessaggio = string.Format(Resources.msgEmail.MessaggioRichiamoModifica, sede, dataRientroPrecedente.ToShortDateString(), ri.DataRientro.ToShortDateString()); InviaMailRichiamo(idTrasferimento, db, corpoMessaggio, oggetto); } } else { ViewData["errore"] = "Errore riscontrato nell'inserimento del Richiamo"; errore = "Non esistono coefficenti corrispondenti ai criteri del Richiamo"; // return PartialView("Richiamo"); // return PartialView("ErrorPartial", new MsgErr() { msg = "Errore riscontrato nell'inserimento del Richiamo" }); } } } catch (Exception ex) { ViewData["errore"] = ex.Message; // return PartialView("Richiamo"); // return PartialView("ErrorPartial", new MsgErr() { msg = ex.Message }); errore = ex.Message; } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } return(Json(new { err = errore, list = lstr })); } }
public JsonResult ConfermaInserisciRichiamo(decimal idTrasferimento, decimal idFasciaFKM, string dataRichiamo) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); string errore = ""; var lstr = new List <SelectListItem>(); try { ViewData["idTrasferimento"] = idTrasferimento; ViewData["idFKm"] = idFasciaFKM; CaricaComboFKM(idFasciaFKM, idFasciaFKM); DateTime dataPartenza = new DateTime(); using (dtRichiamo dtric = new dtRichiamo()) { dataPartenza = dtric.Restituisci_DataPartenza(idTrasferimento, db); } ViewData["dataPartenza"] = dataPartenza; decimal idRichiamo = 0; try { RichiamoModel ri = new RichiamoModel(); ri.DataRichiamo = Convert.ToDateTime(dataRichiamo); ri.DataAggiornamento = DateTime.Now; ri.CoeffKm = idFasciaFKM; ri.idTrasferimento = idTrasferimento; using (dtRichiamo dtric = new dtRichiamo()) { decimal idCoeffIndRichiamo = dtric.Restituisci_ID_CoeffIndRichiamo_Da_Data(ri, db); decimal idCoeffMagIndRichiamo = dtric.Restituisci_ID_CoeffMagIndRichiamo_Da_Data(ri, db); decimal IDPFKM = dtric.Restituisci_ID_PercentualeFKM_Da_Data(ri, db); //var r = new List<SelectListItem>(); if (idCoeffIndRichiamo == 0 || IDPFKM == 0 || idCoeffMagIndRichiamo == 0) { ViewData["errore"] = "Non esistono coefficenti corrispondenti ai criteri del Richiamo"; errore = "Non esistono coefficenti corrispondenti ai criteri del Richiamo"; throw new Exception("Non esistono coefficenti corrispondenti ai criteri del Richiamo"); } ri.IDPFKM = IDPFKM; DateTime DataRientro = Convert.ToDateTime(dataRichiamo).AddDays(-1); ri.DataRientro = DataRientro; ViewData["dataRichiamo"] = ri.DataRichiamo.ToShortDateString(); ViewData["dataRientro"] = ri.DataRientro.ToShortDateString(); ViewData["idRichiamo"] = idRichiamo; if (DataRientro < dataPartenza) { errore = "Data Rientro " + DataRientro.ToShortDateString() + " non può essere inferiore alla data Partenza " + dataPartenza.ToShortDateString(); } else { idRichiamo = dtric.SetRichiamo(ri, idCoeffIndRichiamo, IDPFKM, idCoeffMagIndRichiamo, DataRientro, db); ViewData["idRichiamo"] = idRichiamo; errore = ""; } lstr = AggiornaViewBag_Lista_Trasferimenti(idTrasferimento, db); string sede = dtric.DeterminaSede(idTrasferimento); string oggetto = Resources.msgEmail.OggettoRichiamoInserisci; string corpoMessaggio = string.Format(Resources.msgEmail.MessaggioRichiamoInserisci, sede, ri.DataRientro.ToShortDateString()); using (dtDipendenti dtd = new dtDipendenti()) { dtd.DataInizioRicalcoliDipendente(idTrasferimento, ri.DataRientro, db, true); } InviaMailRichiamo(idTrasferimento, db, corpoMessaggio, oggetto); } } catch (Exception ex) { ViewData["errore"] = ex.Message; errore = ex.Message; } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } return(Json(new { err = errore, list = lstr })); } }