public bool EsistonoMovimentiPrimaUguale(PercentualeMagFigliModel ibm) { using (ModelDBISE db = new ModelDBISE()) { return(db.PERCENTUALEMAGFIGLI.Where(a => a.DATAINIZIOVALIDITA <= ibm.dataInizioValidita && a.IDTIPOLOGIAFIGLIO == (decimal)ibm.idTipologiaFiglio).Count() > 0 ? true : false); } }
public PercentualeMagFigliModel GetPercentualeMaggiorazioneFigli(decimal idFiglio, DateTime dt, ModelDBISE db) { PercentualeMagFigliModel pmfm = new PercentualeMagFigliModel(); var lpmf = db.FIGLI.Find(idFiglio) .PERCENTUALEMAGFIGLI.Where( a => a.ANNULLATO == false && dt >= a.DATAINIZIOVALIDITA && dt <= a.DATAFINEVALIDITA) .OrderByDescending(a => a.DATAINIZIOVALIDITA) .ToList(); if (lpmf?.Any() ?? false) { var pmf = lpmf.First(); pmfm = new PercentualeMagFigliModel() { idPercMagFigli = pmf.IDPERCMAGFIGLI, idTipologiaFiglio = (EnumTipologiaFiglio)pmf.IDTIPOLOGIAFIGLIO, dataInizioValidita = pmf.DATAINIZIOVALIDITA, dataFineValidita = pmf.DATAFINEVALIDITA, percentualeFigli = pmf.PERCENTUALEFIGLI, dataAggiornamento = pmf.DATAAGGIORNAMENTO, annullato = pmf.ANNULLATO }; } return(pmfm); }
public bool EsistonoMovimentiSuccessiviUguale(PercentualeMagFigliModel ibm) { using (ModelDBISE db = new ModelDBISE()) { if (ibm.dataFineValidita.HasValue) { return(db.PERCENTUALEMAGFIGLI.Where(a => a.DATAINIZIOVALIDITA >= ibm.dataFineValidita.Value && a.IDTIPOLOGIAFIGLIO == (decimal)ibm.idTipologiaFiglio).Count() > 0 ? true : false); } else { return(false); } } }
public PercentualeMagFigliModel GetPercentualeMaggiorazioneFigli(decimal idFiglio, DateTime dt) { PercentualeMagFigliModel pmfm = new PercentualeMagFigliModel(); using (ModelDBISE db = new ModelDBISE()) { //try //{ var f = db.FIGLI.Find(idFiglio); var lpmf = f.PERCENTUALEMAGFIGLI.Where( a => a.ANNULLATO == false && a.IDTIPOLOGIAFIGLIO == f.IDTIPOLOGIAFIGLIO && dt >= a.DATAINIZIOVALIDITA && dt <= a.DATAFINEVALIDITA) .OrderByDescending(a => a.DATAINIZIOVALIDITA) .ToList(); if (lpmf?.Any() ?? false) { var pmf = lpmf.First(); pmfm = new PercentualeMagFigliModel() { idPercMagFigli = pmf.IDPERCMAGFIGLI, idTipologiaFiglio = (EnumTipologiaFiglio)pmf.IDTIPOLOGIAFIGLIO, dataInizioValidita = pmf.DATAINIZIOVALIDITA, dataFineValidita = pmf.DATAFINEVALIDITA, percentualeFigli = pmf.PERCENTUALEFIGLI, dataAggiornamento = pmf.DATAAGGIORNAMENTO, annullato = pmf.ANNULLATO }; } // else // { // throw new Exception("Errore - Percentuale maggiorazione figli non trovata."); // } //} //catch (Exception ex) //{ // throw ex; //} } return(pmfm); }
/// <summary> /// /// </summary> /// <param name="ibm"></param> public void SetMaggiorazioneFiglio(PercentualeMagFigliModel ibm) { List <PERCENTUALEMAGFIGLI> libNew = new List <PERCENTUALEMAGFIGLI>(); PERCENTUALEMAGFIGLI ibNew = new PERCENTUALEMAGFIGLI(); PERCENTUALEMAGFIGLI ibPrecedente = new PERCENTUALEMAGFIGLI(); List <PERCENTUALEMAGFIGLI> lArchivioIB = new List <PERCENTUALEMAGFIGLI>(); using (ModelDBISE db = new ModelDBISE()) { try { if (ibm.dataFineValidita.HasValue) { if (EsistonoMovimentiSuccessiviUguale(ibm)) { ibNew = new PERCENTUALEMAGFIGLI() { IDPERCMAGFIGLI = ibm.idPercMagFigli, IDTIPOLOGIAFIGLIO = (decimal)ibm.idTipologiaFiglio, DATAINIZIOVALIDITA = ibm.dataInizioValidita, DATAFINEVALIDITA = ibm.dataFineValidita.Value, PERCENTUALEFIGLI = ibm.percentualeFigli, DATAAGGIORNAMENTO = ibm.dataAggiornamento, ANNULLATO = ibm.annullato }; } else { ibNew = new PERCENTUALEMAGFIGLI() { IDPERCMAGFIGLI = ibm.idPercMagFigli, IDTIPOLOGIAFIGLIO = (decimal)ibm.idTipologiaFiglio, DATAINIZIOVALIDITA = ibm.dataInizioValidita, DATAFINEVALIDITA = Utility.DataFineStop(), PERCENTUALEFIGLI = ibm.percentualeFigli, DATAAGGIORNAMENTO = ibm.dataAggiornamento, ANNULLATO = ibm.annullato }; } } else { ibNew = new PERCENTUALEMAGFIGLI() { IDPERCMAGFIGLI = ibm.idPercMagFigli, IDTIPOLOGIAFIGLIO = (decimal)ibm.idTipologiaFiglio, DATAINIZIOVALIDITA = ibm.dataInizioValidita, DATAFINEVALIDITA = Utility.DataFineStop(), PERCENTUALEFIGLI = ibm.percentualeFigli, DATAAGGIORNAMENTO = ibm.dataAggiornamento, ANNULLATO = ibm.annullato }; } db.Database.BeginTransaction(); var recordInteressati = db.PERCENTUALEMAGFIGLI.Where(a => a.ANNULLATO == false && a.IDTIPOLOGIAFIGLIO == ibNew.IDTIPOLOGIAFIGLIO) .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 PERCENTUALEMAGFIGLI() { IDPERCMAGFIGLI = item.IDPERCMAGFIGLI, IDTIPOLOGIAFIGLIO = item.IDTIPOLOGIAFIGLIO, DATAINIZIOVALIDITA = item.DATAINIZIOVALIDITA, DATAFINEVALIDITA = (ibNew.DATAINIZIOVALIDITA).AddDays(-1), PERCENTUALEFIGLI = item.PERCENTUALEFIGLI, DATAAGGIORNAMENTO = item.DATAAGGIORNAMENTO, ANNULLATO = false }; libNew.Add(ibOld1); } else if (item.DATAFINEVALIDITA > ibNew.DATAFINEVALIDITA) { var ibOld1 = new PERCENTUALEMAGFIGLI() { IDPERCMAGFIGLI = item.IDPERCMAGFIGLI, IDTIPOLOGIAFIGLIO = item.IDTIPOLOGIAFIGLIO, DATAINIZIOVALIDITA = item.DATAINIZIOVALIDITA, DATAFINEVALIDITA = (ibNew.DATAINIZIOVALIDITA).AddDays(-1), PERCENTUALEFIGLI = item.PERCENTUALEFIGLI, DATAAGGIORNAMENTO = item.DATAAGGIORNAMENTO, ANNULLATO = false }; var ibOld2 = new PERCENTUALEMAGFIGLI() { IDPERCMAGFIGLI = item.IDPERCMAGFIGLI, IDTIPOLOGIAFIGLIO = item.IDTIPOLOGIAFIGLIO, DATAINIZIOVALIDITA = (ibNew.DATAINIZIOVALIDITA).AddDays(+1), DATAFINEVALIDITA = item.DATAFINEVALIDITA, PERCENTUALEFIGLI = item.PERCENTUALEFIGLI, DATAAGGIORNAMENTO = item.DATAAGGIORNAMENTO, 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 PERCENTUALEMAGFIGLI() { IDPERCMAGFIGLI = item.IDPERCMAGFIGLI, IDTIPOLOGIAFIGLIO = item.IDTIPOLOGIAFIGLIO, DATAINIZIOVALIDITA = (ibNew.DATAINIZIOVALIDITA).AddDays(1), DATAFINEVALIDITA = item.DATAFINEVALIDITA, PERCENTUALEFIGLI = item.PERCENTUALEFIGLI, DATAAGGIORNAMENTO = item.DATAAGGIORNAMENTO, 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 PERCENTUALEMAGFIGLI() { IDPERCMAGFIGLI = item.IDPERCMAGFIGLI, IDTIPOLOGIAFIGLIO = item.IDTIPOLOGIAFIGLIO, DATAINIZIOVALIDITA = (ibNew.DATAINIZIOVALIDITA).AddDays(1), DATAFINEVALIDITA = item.DATAFINEVALIDITA, PERCENTUALEFIGLI = item.PERCENTUALEFIGLI, DATAAGGIORNAMENTO = item.DATAAGGIORNAMENTO, ANNULLATO = false }; libNew.Add(ibOld1); } } } libNew.Add(ibNew); libNew = libNew.OrderBy(a => a.DATAINIZIOVALIDITA).ToList(); db.PERCENTUALEMAGFIGLI.AddRange(libNew); } else { db.PERCENTUALEMAGFIGLI.Add(ibNew); } db.SaveChanges(); using (objLogAttivita log = new objLogAttivita()) { log.Log(enumAttivita.Inserimento, "Inserimento parametro per la percentuale di maggiorazione figli.", "PERCENTUALEMAGFIGLI", ibNew.IDPERCMAGFIGLI); } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } }
public ActionResult AltriDatiFamiliariFiglioTitoliViaggio(decimal idFiglio) { AltriDatiFamFiglioModel adf = new AltriDatiFamFiglioModel(); MaggiorazioniFamiliariModel mcm = new MaggiorazioniFamiliariModel(); TrasferimentoModel tm = new TrasferimentoModel(); try { using (dtAltriDatiFamiliari dtadf = new dtAltriDatiFamiliari()) { //adf = dtadf.GetAlttriDatiFamiliariFiglio(idFiglio); } using (dtMaggiorazioniFamiliari dtmc = new dtMaggiorazioniFamiliari()) { mcm = dtmc.GetMaggiorazioniFamiliaribyFiglio(idFiglio); } using (dtPercentualeMagFigli dtpmf = new dtPercentualeMagFigli()) { PercentualeMagFigliModel pf = dtpmf.GetPercentualeMaggiorazioneFigli(idFiglio, DateTime.Now); if (pf != null && pf.HasValue()) { switch (pf.idTipologiaFiglio) { case EnumTipologiaFiglio.Residente: adf.residente = true; adf.studente = false; break; case EnumTipologiaFiglio.NonResidente: adf.residente = false; adf.studente = false; break; case EnumTipologiaFiglio.StudenteResidente: adf.studente = true; adf.residente = true; break; case EnumTipologiaFiglio.StudenteNonResidente: adf.studente = true; adf.residente = false; break; default: throw new ArgumentOutOfRangeException(); } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } using (dtTrasferimento dtt = new dtTrasferimento()) { tm = dtt.GetTrasferimentoByIDMagFam(mcm.idMaggiorazioniFamiliari); } ViewData.Add("idTrasferimento", tm.idTrasferimento); using (dtFigli dtf = new dtFigli()) { var fm = dtf.GetFigliobyID(adf.idFigli); adf.Figli = fm; } return(PartialView(adf)); }