Ejemplo n.º 1
0
 public bool EsistonoMovimentiPrimaUguale(CoefficientiSedeModel ibm)
 {
     using (ModelDBISE db = new ModelDBISE())
     {
         return(db.COEFFICIENTESEDE.Where(a => a.DATAINIZIOVALIDITA <= ibm.dataInizioValidita && a.IDUFFICIO == ibm.idUfficio).Count() > 0 ? true : false);
     }
 }
Ejemplo n.º 2
0
        public CoefficientiSedeModel GetCoefficenteSedeValido(decimal idUfficio, DateTime dt, ModelDBISE db)
        {
            CoefficientiSedeModel csm = new CoefficientiSedeModel();

            var lcs = db.COEFFICIENTESEDE.Where(a => a.ANNULLATO == false &&
                                                a.IDUFFICIO == idUfficio &&
                                                dt >= a.DATAINIZIOVALIDITA &&
                                                dt <= a.DATAFINEVALIDITA)
                      .OrderByDescending(a => a.DATAINIZIOVALIDITA)
                      .ToList();

            if (lcs != null && lcs.Count > 0)
            {
                COEFFICIENTESEDE cs = lcs.First();

                csm = new CoefficientiSedeModel()
                {
                    idCoefficientiSede = cs.IDCOEFFICIENTESEDE,
                    idUfficio          = cs.IDUFFICIO,
                    dataInizioValidita = cs.DATAINIZIOVALIDITA,
                    dataFineValidita   = cs.DATAFINEVALIDITA == Utility.DataFineStop() ? new DateTime?() : cs.DATAFINEVALIDITA,
                    valore             = cs.VALORECOEFFICIENTE,
                    dataAggiornamento  = cs.DATAAGGIORNAMENTO,
                    annullato          = cs.ANNULLATO
                };
            }

            return(csm);
        }
Ejemplo n.º 3
0
        public IList <CoefficientiSedeModel> GetCoefficenteSedeIndennitaByRangeDate(decimal idUfficio, DateTime dtIni, DateTime dtFin, ModelDBISE db)
        {
            List <CoefficientiSedeModel> lcsm = new List <CoefficientiSedeModel>();

            var u = db.UFFICI.Find(idUfficio);

            var lcs =
                u.COEFFICIENTESEDE.Where(
                    a => a.ANNULLATO == false && a.DATAFINEVALIDITA >= dtIni && a.DATAINIZIOVALIDITA <= dtFin)
                .OrderBy(a => a.DATAINIZIOVALIDITA);

            if (lcs?.Any() ?? false)
            {
                foreach (var cs in lcs)
                {
                    var csm = new CoefficientiSedeModel()
                    {
                        idCoefficientiSede = cs.IDCOEFFICIENTESEDE,
                        idUfficio          = cs.IDUFFICIO,
                        dataInizioValidita = cs.DATAINIZIOVALIDITA,
                        dataFineValidita   =
                            cs.DATAFINEVALIDITA == Utility.DataFineStop() ? new DateTime?() : cs.DATAFINEVALIDITA,
                        valore            = cs.VALORECOEFFICIENTE,
                        dataAggiornamento = cs.DATAAGGIORNAMENTO,
                        annullato         = cs.ANNULLATO
                    };

                    lcsm.Add(csm);
                }
            }

            return(lcsm);
        }
Ejemplo n.º 4
0
        public CoefficientiSedeModel GetCoefficenteSede(decimal idCoefficenteSede, ModelDBISE db)
        {
            CoefficientiSedeModel csm = new CoefficientiSedeModel();

            var cs = db.COEFFICIENTESEDE.Find(idCoefficenteSede);

            if (cs != null && cs.IDCOEFFICIENTESEDE > 0)
            {
                csm = new CoefficientiSedeModel()
                {
                    idCoefficientiSede = cs.IDCOEFFICIENTESEDE,
                    idUfficio          = cs.IDUFFICIO,
                    dataInizioValidita = cs.DATAINIZIOVALIDITA,
                    dataFineValidita   = cs.DATAFINEVALIDITA == Utility.DataFineStop() ? new DateTime?() : cs.DATAFINEVALIDITA,
                    valore             = cs.VALORECOEFFICIENTE,
                    dataAggiornamento  = cs.DATAAGGIORNAMENTO,
                    annullato          = cs.ANNULLATO,
                    Ufficio            = new UfficiModel()
                    {
                        idUfficio           = cs.UFFICI.IDUFFICIO,
                        codiceUfficio       = cs.UFFICI.CODICEUFFICIO,
                        descUfficio         = cs.UFFICI.DESCRIZIONEUFFICIO,
                        pagatoValutaUfficio = cs.UFFICI.PAGATOVALUTAUFFICIO
                    }
                };
            }

            return(csm);
        }
Ejemplo n.º 5
0
 public bool EsistonoMovimentiSuccessiviUguale(CoefficientiSedeModel ibm)
 {
     using (ModelDBISE db = new ModelDBISE())
     {
         if (ibm.dataFineValidita.HasValue)
         {
             return(db.COEFFICIENTESEDE.Where(a => a.DATAINIZIOVALIDITA >= ibm.dataFineValidita.Value && a.IDUFFICIO == ibm.idUfficio).Count() > 0 ? true : false);
         }
         else
         {
             return(false);
         }
     }
 }
Ejemplo n.º 6
0
        public CoefficientiSedeModel GetCoefficenteSedeByIdTrasferimento(decimal idTrasferimento)
        {
            CoefficientiSedeModel csm = new CoefficientiSedeModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                var lrd = db.TRASFERIMENTO.Find(idTrasferimento).INDENNITA.COEFFICIENTESEDE.Where(a => a.ANNULLATO == false).OrderBy(a => a.IDCOEFFICIENTESEDE).ThenBy(a => a.DATAINIZIOVALIDITA).ThenBy(a => a.DATAFINEVALIDITA).ToList();

                var cs = lrd.First();
                if (lrd?.Any() ?? false)
                {
                    csm = new CoefficientiSedeModel()
                    {
                        idCoefficientiSede = cs.IDCOEFFICIENTESEDE,
                        idUfficio          = cs.IDUFFICIO,
                        dataInizioValidita = cs.DATAINIZIOVALIDITA,
                        dataFineValidita   = cs.DATAFINEVALIDITA,
                        dataAggiornamento  = cs.DATAAGGIORNAMENTO,
                        annullato          = cs.ANNULLATO,
                    };
                }
            }
            return(csm);
        }
Ejemplo n.º 7
0
        public IList <IndennitaBaseModel> GetIndennitaServizio(decimal idTrasferimento)
        {
            List <IndennitaBaseModel> libm = new List <IndennitaBaseModel>();

            try
            {
                using (ModelDBISE db = new ModelDBISE())
                {
                    using (dtCoefficenteSede dtcs = new dtCoefficenteSede())
                    {
                        CoefficientiSedeModel csm = dtcs.GetCoefficenteSedeByIdTrasferimento(idTrasferimento);

                        using (dtPercentualeDisagio dtpd = new dtPercentualeDisagio())
                        {
                            PercentualeDisagioModel pdm = dtpd.GetPercentualeDisagioByIdTrasferimento(idTrasferimento);

                            using (dtTrasferimento dttrasf = new dtTrasferimento())
                            {
                                dipInfoTrasferimentoModel dipInfoTrasf = dttrasf.GetInfoTrasferimento(idTrasferimento);

                                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();

                                libm = (from e in ll
                                        select new IndennitaBaseModel()
                                {
                                    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,
                                    CoefficenteSede = new CoefficientiSedeModel
                                    {
                                        idCoefficientiSede = csm.idCoefficientiSede,
                                        idUfficio = csm.idUfficio
                                    },
                                    PercentualeDisagio = new PercentualeDisagioModel
                                    {
                                        idPercentualeDisagio = pdm.idPercentualeDisagio,
                                        idUfficio = pdm.idUfficio,
                                        dataInizioValidita = pdm.dataInizioValidita,
                                        dataFineValidita = pdm.dataFineValidita,
                                        dataAggiornamento = pdm.dataAggiornamento,
                                        annullato = pdm.annullato
                                    },
                                    dipInfoTrasferimento = new dipInfoTrasferimentoModel
                                    {
                                        Decorrenza = dipInfoTrasf.Decorrenza,
                                        indennitaServizio = dipInfoTrasf.indennitaServizio
                                    }
                                }).ToList();
                            }
                        }
                    }

                    return(libm);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ibm"></param>
        public void SetCoefficientiSede(CoefficientiSedeModel ibm)
        {
            List <COEFFICIENTESEDE> libNew = new List <COEFFICIENTESEDE>();

            COEFFICIENTESEDE ibNew = new COEFFICIENTESEDE();

            COEFFICIENTESEDE ibPrecedente = new COEFFICIENTESEDE();

            List <COEFFICIENTESEDE> lArchivioIB = new List <COEFFICIENTESEDE>();

            using (ModelDBISE db = new ModelDBISE())
            {
                try
                {
                    if (ibm.dataFineValidita.HasValue)
                    {
                        if (EsistonoMovimentiSuccessiviUguale(ibm))
                        {
                            ibNew = new COEFFICIENTESEDE()
                            {
                                IDUFFICIO          = ibm.idUfficio,
                                DATAINIZIOVALIDITA = ibm.dataInizioValidita,
                                DATAFINEVALIDITA   = ibm.dataFineValidita.Value,
                                VALORECOEFFICIENTE = ibm.valore,
                                DATAAGGIORNAMENTO  = DateTime.Now,
                                ANNULLATO          = ibm.annullato
                            };
                        }
                        else
                        {
                            ibNew = new COEFFICIENTESEDE()
                            {
                                IDUFFICIO          = ibm.idUfficio,
                                DATAINIZIOVALIDITA = ibm.dataInizioValidita,
                                DATAFINEVALIDITA   = Utility.DataFineStop(),
                                VALORECOEFFICIENTE = ibm.valore,
                                DATAAGGIORNAMENTO  = DateTime.Now,
                                ANNULLATO          = ibm.annullato
                            };
                        }
                    }
                    else
                    {
                        ibNew = new COEFFICIENTESEDE()
                        {
                            IDUFFICIO          = ibm.idUfficio,
                            DATAINIZIOVALIDITA = ibm.dataInizioValidita,
                            DATAFINEVALIDITA   = Utility.DataFineStop(),// Convert.ToDateTime("31/12/9999"),
                            VALORECOEFFICIENTE = ibm.valore,
                            DATAAGGIORNAMENTO  = System.DateTime.Now,
                            ANNULLATO          = ibm.annullato
                        };
                    }

                    db.Database.BeginTransaction();

                    var recordInteressati = db.COEFFICIENTESEDE.Where(a => a.ANNULLATO == false && a.IDUFFICIO == ibNew.IDUFFICIO)
                                            .Where(a => a.DATAINIZIOVALIDITA >= ibNew.DATAINIZIOVALIDITA || a.DATAFINEVALIDITA >= ibNew.DATAINIZIOVALIDITA)
                                            .Where(a => a.DATAINIZIOVALIDITA <= ibNew.DATAFINEVALIDITA || a.DATAFINEVALIDITA <= ibNew.DATAFINEVALIDITA)
                                            .ToList();

                    recordInteressati.ForEach(a => a.ANNULLATO = true);
                    //db.SaveChanges();

                    if (recordInteressati.Count > 0)
                    {
                        foreach (var item in recordInteressati)
                        {
                            if (item.DATAINIZIOVALIDITA < ibNew.DATAINIZIOVALIDITA)
                            {
                                if (item.DATAFINEVALIDITA <= ibNew.DATAFINEVALIDITA)
                                {
                                    var ibOld1 = new COEFFICIENTESEDE()
                                    {
                                        IDUFFICIO          = item.IDUFFICIO,
                                        DATAINIZIOVALIDITA = item.DATAINIZIOVALIDITA,
                                        DATAFINEVALIDITA   = (ibNew.DATAFINEVALIDITA).AddDays(-1),
                                        VALORECOEFFICIENTE = item.VALORECOEFFICIENTE,
                                        DATAAGGIORNAMENTO  = DateTime.Now,
                                        ANNULLATO          = false
                                    };

                                    libNew.Add(ibOld1);
                                }
                                else if (item.DATAFINEVALIDITA > ibNew.DATAFINEVALIDITA)
                                {
                                    var ibOld1 = new COEFFICIENTESEDE()
                                    {
                                        IDUFFICIO          = item.IDUFFICIO,
                                        DATAINIZIOVALIDITA = item.DATAINIZIOVALIDITA,
                                        DATAFINEVALIDITA   = (ibNew.DATAINIZIOVALIDITA).AddDays(-1),
                                        VALORECOEFFICIENTE = item.VALORECOEFFICIENTE,
                                        DATAAGGIORNAMENTO  = DateTime.Now,
                                        ANNULLATO          = false
                                    };

                                    var ibOld2 = new COEFFICIENTESEDE()
                                    {
                                        IDUFFICIO          = item.IDUFFICIO,
                                        DATAINIZIOVALIDITA = (ibNew.DATAINIZIOVALIDITA).AddDays(+1),
                                        DATAFINEVALIDITA   = item.DATAFINEVALIDITA,
                                        VALORECOEFFICIENTE = item.VALORECOEFFICIENTE,
                                        DATAAGGIORNAMENTO  = DateTime.Now,
                                        ANNULLATO          = false
                                    };

                                    libNew.Add(ibOld1);
                                    libNew.Add(ibOld2);
                                }
                            }
                            else if (item.DATAINIZIOVALIDITA == ibNew.DATAINIZIOVALIDITA)
                            {
                                if (item.DATAFINEVALIDITA <= ibNew.DATAFINEVALIDITA)
                                {
                                    //Non preleva il record old
                                }
                                else if (item.DATAFINEVALIDITA > ibNew.DATAFINEVALIDITA)
                                {
                                    var ibOld1 = new COEFFICIENTESEDE()
                                    {
                                        IDUFFICIO          = item.IDUFFICIO,
                                        DATAINIZIOVALIDITA = (ibNew.DATAINIZIOVALIDITA).AddDays(1),
                                        DATAFINEVALIDITA   = item.DATAFINEVALIDITA,
                                        VALORECOEFFICIENTE = item.VALORECOEFFICIENTE,
                                        DATAAGGIORNAMENTO  = DateTime.Now,
                                        ANNULLATO          = false
                                    };

                                    libNew.Add(ibOld1);
                                }
                            }
                            else if (item.DATAINIZIOVALIDITA > ibNew.DATAINIZIOVALIDITA)
                            {
                                if (item.DATAFINEVALIDITA <= ibNew.DATAFINEVALIDITA)
                                {
                                    //Non preleva il record old
                                }
                                else if (item.DATAFINEVALIDITA > ibNew.DATAFINEVALIDITA)
                                {
                                    var ibOld1 = new COEFFICIENTESEDE()
                                    {
                                        IDUFFICIO          = item.IDUFFICIO,
                                        DATAINIZIOVALIDITA = (ibNew.DATAINIZIOVALIDITA).AddDays(1),
                                        DATAFINEVALIDITA   = item.DATAFINEVALIDITA,
                                        VALORECOEFFICIENTE = item.VALORECOEFFICIENTE,
                                        DATAAGGIORNAMENTO  = DateTime.Now,
                                        ANNULLATO          = false
                                    };

                                    libNew.Add(ibOld1);
                                }
                            }
                        }
                        libNew.Add(ibNew);
                        libNew = libNew.OrderBy(a => a.DATAINIZIOVALIDITA).ToList();

                        db.COEFFICIENTESEDE.AddRange(libNew);
                    }
                    else
                    {
                        db.COEFFICIENTESEDE.Add(ibNew);
                    }
                    db.SaveChanges();

                    using (objLogAttivita log = new objLogAttivita())
                    {
                        log.Log(enumAttivita.Inserimento, "Inserimento parametro coefficiente di sede.", "COEFFICENTISEDE", ibNew.IDCOEFFICIENTESEDE);
                    }

                    db.Database.CurrentTransaction.Commit();
                }
                catch (Exception ex)
                {
                    db.Database.CurrentTransaction.Rollback();
                    throw ex;
                }
            }
        }
        public ActionResult InserisciCoefficientiSede(CoefficientiSedeModel ibm, bool escludiAnnullati = true, bool aggiornaTutto = false)
        {
            var r = new List <SelectListItem>();

            ViewBag.escludiAnnullati = escludiAnnullati;
            List <CoefficientiSedeModel> libm = new List <CoefficientiSedeModel>();

            try
            {
                if (ModelState.IsValid)
                {
                    using (dtParCoefficientiSede dtib = new dtParCoefficientiSede())
                    {
                        dtib.SetCoefficientiSede(ibm, aggiornaTutto);
                    }

                    using (dtUffici dtl = new dtUffici())
                    {
                        var llm = dtl.GetUffici().OrderBy(a => a.descUfficio).ToList();
                        if (llm != null && llm.Count > 0)
                        {
                            r = (from t in llm
                                 select new SelectListItem()
                            {
                                Text = t.descUfficio,
                                Value = t.idUfficio.ToString()
                            }).ToList();

                            if (ibm.idUfficio == 0)
                            {
                                r.First().Selected = true;
                                ibm.idUfficio = Convert.ToDecimal(r.First().Value);
                            }
                            else
                            {
                                var temp = r.Where(a => a.Value == ibm.idUfficio.ToString()).ToList();
                                if (temp.Count == 0)
                                {
                                    r.First().Selected = true;
                                    ibm.idUfficio = Convert.ToDecimal(r.First().Value);
                                }
                                else
                                {
                                    r.Where(a => a.Value == ibm.idUfficio.ToString()).First().Selected = true;
                                }
                            }
                        }
                        ViewBag.LivelliList = r;
                    }
                    using (dtParCoefficientiSede dtib = new dtParCoefficientiSede())
                    {
                        ViewBag.idMinimoNonAnnullato = dtib.Get_Id_CoefficientiSedeNonAnnullato(ibm.idUfficio);
                        libm = dtib.getListCoefficientiSede(ibm.idUfficio, escludiAnnullati).OrderBy(a => a.idUfficio).ThenBy(a => a.dataInizioValidita).ThenBy(a => a.dataFineValidita).ToList();
                    }
                    return(PartialView("CoefficientiSede", libm));
                }
                else
                {
                    using (dtUffici dtl = new dtUffici())
                    {
                        var lm = dtl.GetUffici(ibm.idUfficio);
                        ViewBag.Descrizione = lm;
                    }
                    ViewBag.escludiAnnullati = escludiAnnullati;
                    return(PartialView("NuovoCoefficienteSede", ibm));
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
        }