public IList <EvoluzioneIndennitaModel> GetIndennitaBaseComune(decimal idTrasferimento) { List <EvoluzioneIndennitaModel> eim = new List <EvoluzioneIndennitaModel>(); try { using (ModelDBISE db = new ModelDBISE()) { var trasferimento = db.TRASFERIMENTO.Find(idTrasferimento); var indennita = trasferimento.INDENNITA; List <DateTime> lDateVariazioni = new List <DateTime>(); var ll = db.TRASFERIMENTO.Find(idTrasferimento).INDENNITA.INDENNITABASE .Where(a => a.ANNULLATO == false) .OrderBy(a => a.IDLIVELLO) .ThenBy(a => a.DATAINIZIOVALIDITA) .ThenBy(a => a.DATAFINEVALIDITA) .ToList(); using (dtRuoloDipendente dtrd = new dtRuoloDipendente()) { RuoloDipendenteModel rdm = dtrd.GetRuoloDipendenteByIdIndennita(idTrasferimento); using (dtTrasferimento dttrasf = new dtTrasferimento()) { dipInfoTrasferimentoModel dipInfoTrasf = dttrasf.GetInfoTrasferimento(idTrasferimento); eim = (from e in ll select new EvoluzioneIndennitaModel() { idIndennitaBase = e.IDINDENNITABASE, idLivello = e.IDLIVELLO, dataInizioValidita = e.DATAINIZIOVALIDITA, dataFineValidita = e.DATAFINEVALIDITA == Utility.DataFineStop() ? new DateTime?() : e.DATAFINEVALIDITA, valore = e.VALORE, valoreResponsabile = e.VALORERESP, dataAggiornamento = e.DATAAGGIORNAMENTO, annullato = e.ANNULLATO, Livello = new LivelloModel() { idLivello = e.LIVELLI.IDLIVELLO, DescLivello = e.LIVELLI.LIVELLO }, RuoloUfficio = new RuoloUfficioModel() { idRuoloUfficio = rdm.RuoloUfficio.idRuoloUfficio, DescrizioneRuolo = rdm.RuoloUfficio.DescrizioneRuolo }, dipInfoTrasferimento = new dipInfoTrasferimentoModel { Decorrenza = dipInfoTrasf.Decorrenza, indennitaServizio = dipInfoTrasf.indennitaServizio } }).ToList(); //foreach (var ib in ll) //{ // DateTime dtVar = new DateTime(); // if (ib.DATAINIZIOVALIDITA < trasferimento.DATAPARTENZA) // { // dtVar = trasferimento.DATAPARTENZA; // } // else // { // dtVar = ib.DATAINIZIOVALIDITA; // } // if (!lDateVariazioni.Contains(dtVar)) // { // lDateVariazioni.Add(dtVar); // } //} //if (lDateVariazioni?.Any() ?? false) //{ // lDateVariazioni = // lDateVariazioni.OrderBy(a => a.Year).ThenBy(a => a.Month).ThenBy(a => a.Day).ToList(); // for (int j = 0; j < lDateVariazioni.Count; j++) // { // DateTime dv = lDateVariazioni[j]; // //using (CalcoliIndennita ci = new CalcoliIndennita(trasferimento.IDTRASFERIMENTO, dv, db)) // //{ // // var pd = new EvoluzioneIndennitaModel // // { // // IndennitaBase = ci.IndennitaDiBase, // // percentuale = ci.PercentualeDisagio, // // //valore = ci.CoefficienteDiSede, // // Coefficiente = ci.CoefficienteDiSede, // // IndennitaServizio = ci.IndennitaDiServizio // // }; // // eim.Add(pd); // //} // } //} } } return(eim); } } catch (Exception ex) { throw ex; } }
public ActionResult InserisciRuoloDipendente(VariazioneRuoloDipendenteModel vrdm, decimal idTrasferimento) { try { using (ModelDBISE db = new ModelDBISE()) { using (dtRuoloDipendente dtrd = new dtRuoloDipendente()) { if (ModelState.IsValid) { db.Database.BeginTransaction(); try { #region verifica data inizio try { dtrd.VerificaDataInizioValiditaRuoloDipendente(idTrasferimento, vrdm, db); } catch (Exception ex) { using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtRuoloUfficio dtru = new dtRuoloUfficio()) { using (dtLivelliDipendente dtld = new dtLivelliDipendente()) { var t = dtt.GetTrasferimentoById(idTrasferimento); var livelloDipendenteValido = dtld.GetLivelloDipendente(t.idDipendente, vrdm.ut_dataInizioValidita.Value); var lru = dtru.GetListRuoloUfficioByLivello(livelloDipendenteValido.idLivello); List <SelectListItem> lRuoli = new List <SelectListItem>(); var r = new List <SelectListItem>(); if (lru != null && lru.Count > 0) { foreach (var ru in lru) { SelectListItem s2 = new SelectListItem() { Value = ru.idRuoloUfficio.ToString(), Text = ru.DescrizioneRuolo.ToString() }; r.Add(s2); } } lRuoli = r; ViewBag.lRuoli = lRuoli; ViewBag.idTrasferimento = idTrasferimento; var rd = dtrd.GetRuoloDipendenteByIdTrasferimento(idTrasferimento, DateTime.Now); ViewBag.RuoloAttuale = rd.RuoloUfficio.DescrizioneRuolo; ModelState.AddModelError("", ex.Message); return(PartialView("NuovoRuoloDipendente", vrdm)); } } } } #endregion vrdm.dataAggiornamento = DateTime.Now; #region modello ruolo dipendente RuoloDipendenteModel rdm = new RuoloDipendenteModel() { idTrasferimento = idTrasferimento, idRuolo = vrdm.idRuolo, dataInizioValidita = vrdm.ut_dataInizioValidita.Value, annullato = false, dataAggiornamento = vrdm.dataAggiornamento }; #endregion #region inserisce ruolo if (vrdm.chkAggiornaTutti == false) { dtrd.SetVariazioneRuoloDipendente(rdm, idTrasferimento, db); } else { //inserisce periodo e annulla i periodi successivi (fino al primo buco temporale o fino a dataRientro) dtrd.SetVariazioneRuoloDipendente_AggiornaTutti(rdm, idTrasferimento, db); } #endregion using (dtDipendenti dtd = new dtDipendenti()) { dtd.DataInizioRicalcoliDipendente(idTrasferimento, rdm.dataInizioValidita, db, false); } Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento nuovo ruolo dipendente (" + rdm.idRuolo + ")", "RUOLODIPENDENTE", db, idTrasferimento, rdm.idRuoloDipendente); db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } else { using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtRuoloUfficio dtru = new dtRuoloUfficio()) { using (dtLivelliDipendente dtld = new dtLivelliDipendente()) { var t = dtt.GetTrasferimentoById(idTrasferimento); var livelloDipendenteValido = dtld.GetLivelloDipendente(t.idDipendente, vrdm.ut_dataInizioValidita.Value); var lru = dtru.GetListRuoloUfficioByLivello(livelloDipendenteValido.idLivello); List <SelectListItem> lRuoli = new List <SelectListItem>(); var r = new List <SelectListItem>(); if (lru != null && lru.Count > 0) { foreach (var ru in lru) { SelectListItem s2 = new SelectListItem() { Value = ru.idRuoloUfficio.ToString(), Text = ru.DescrizioneRuolo.ToString() }; r.Add(s2); } } lRuoli = r; ViewBag.lRuoli = lRuoli; ViewBag.idTrasferimento = idTrasferimento; return(PartialView("NuovoRuoloDipendente", vrdm)); } } } } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(RedirectToAction("ElencoRuoliDipendente", new { idTrasferimento = idTrasferimento })); }