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); } }
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); }
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); }
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); }
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); } } }
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); }
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; } }
/// <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 })); } }