Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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 }));
        }