public IList <VariazioneConiugeModel> GetListaAttivazioniConiugeByIdMagFam(decimal idMaggiorazioniFamiliari) { List <VariazioneConiugeModel> lcm = new List <VariazioneConiugeModel>(); List <CONIUGE> lc = new List <CONIUGE>(); //CONIUGE c = new CONIUGE(); using (ModelDBISE db = new ModelDBISE()) { using (dtVariazioniMaggiorazioneFamiliare dtvmf = new dtVariazioniMaggiorazioneFamiliare()) { var mf = db.MAGGIORAZIONIFAMILIARI.Find(idMaggiorazioniFamiliari); var t = mf.TRASFERIMENTO; lc = mf.CONIUGE.Where(y => y.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato ).ToList(); if (lc?.Any() ?? false) { foreach (var c in lc) { if (db.CONIUGE.Where(a => a.FK_IDCONIUGE == c.IDCONIUGE && a.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && ((a.DATAINIZIOVALIDITA <= t.DATARIENTRO && a.DATAFINEVALIDITA >= t.DATARIENTRO) || a.DATAFINEVALIDITA < t.DATARIENTRO)) .Count() == 0) { VariazioneConiugeModel cm = new VariazioneConiugeModel() { eliminabile = (c.IDSTATORECORD == (decimal)EnumStatoRecord.In_Lavorazione && c.FK_IDCONIUGE == null) ? true : false, modificabile = (c.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && c.IDSTATORECORD != (decimal)EnumStatoRecord.Da_Attivare) ? true : false, idConiuge = c.IDCONIUGE, idMaggiorazioniFamiliari = c.IDMAGGIORAZIONIFAMILIARI, idTipologiaConiuge = (EnumTipologiaConiuge)c.IDTIPOLOGIACONIUGE, nome = c.NOME, cognome = c.COGNOME, codiceFiscale = c.CODICEFISCALE, dataInizio = c.DATAINIZIOVALIDITA, dataFine = c.DATAFINEVALIDITA > t.DATARIENTRO ? t.DATARIENTRO : c.DATAFINEVALIDITA, dataAggiornamento = c.DATAAGGIORNAMENTO, idStatoRecord = c.IDSTATORECORD, FK_idConiuge = c.FK_IDCONIUGE, //visualizzabile = (db.CONIUGE.Where(a => a.FK_IDCONIUGE == c.IDCONIUGE).Count() > 0) ? false : true, visualizzabile = true, modificato = (c.FK_IDCONIUGE > 0 && c.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && c.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato) ? true : false, nuovo = (c.FK_IDCONIUGE == null && c.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && c.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato) ? true : false }; //VERIFICA SE CI SONO VARIAZIONI SUGLI ALTRI DATI var adf = dtvmf.GetAltriDatiFamiliariConiuge(c.IDCONIUGE); if (adf.FK_idAltriDatiFam > 0 && adf.idStatoRecord != (decimal)EnumStatoRecord.Annullato && adf.idStatoRecord != (decimal)EnumStatoRecord.Attivato && cm.nuovo == false) { cm.modificato = true; } //elenca eventuali documenti inseriti var ldc = db.CONIUGE.Find(cm.idConiuge).DOCUMENTI.Where(a => a.IDTIPODOCUMENTO == (decimal)EnumTipoDoc.Documento_Identita && a.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && a.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato) .OrderByDescending(a => a.IDDOCUMENTO).ToList(); //var ldc = c.DOCUMENTI.Where(a => // a.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && // a.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato).ToList(); if (ldc.Count() > 0 && cm.nuovo == false) { cm.modificato = true; } var lpc = c.PENSIONE.Where(a => a.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && a.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato && a.NASCONDI == false).ToList(); if (lpc.Count() > 0 && cm.nuovo == false) { cm.modificato = true; } //se è nuovo non è modificato if (cm.nuovo) { cm.modificato = false; } //nel caso che sia stata inserita la datafine ed esiste un coniuge successivo //non è modificabile if (dtvmf.ConiugeModificabile(c.IDCONIUGE, idMaggiorazioniFamiliari) == false) //var last_coniuge = lc.First(); //if(c.DATAFINEVALIDITA!=null && c.DATAFINEVALIDITA!=Utility.DataFineStop() && c.IDCONIUGE!=last_coniuge.IDCONIUGE) { cm.modificabile = false; } lcm.Add(cm); } } } } } return(lcm); }
public IList <VariazioneFigliModel> GetListaAttivazioniFigliByIdMagFam(decimal idMaggiorazioniFamiliari) { List <VariazioneFigliModel> lfm = new List <VariazioneFigliModel>(); List <FIGLI> lf = new List <FIGLI>(); using (ModelDBISE db = new ModelDBISE()) { using (dtVariazioniMaggiorazioneFamiliare dtvmf = new dtVariazioniMaggiorazioneFamiliare()) { var mf = db.MAGGIORAZIONIFAMILIARI.Find(idMaggiorazioniFamiliari); var t = mf.TRASFERIMENTO; lf = mf.FIGLI.Where(y => y.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && ((y.DATAINIZIOVALIDITA <= t.DATARIENTRO && y.DATAFINEVALIDITA >= t.DATARIENTRO) || y.DATAFINEVALIDITA < t.DATARIENTRO) ).ToList(); if (lf?.Any() ?? false) { foreach (var f in lf) { VariazioneFigliModel fm = new VariazioneFigliModel() { eliminabile = (f.IDSTATORECORD == (decimal)EnumStatoRecord.In_Lavorazione && f.FK_IDFIGLI == null) ? true : false, modificabile = (f.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato) ? true : false, idFigli = f.IDFIGLI, idMaggiorazioniFamiliari = f.IDMAGGIORAZIONIFAMILIARI, idTipologiaFiglio = (EnumTipologiaFiglio)f.IDTIPOLOGIAFIGLIO, nome = f.NOME, cognome = f.COGNOME, codiceFiscale = f.CODICEFISCALE, dataInizio = f.DATAINIZIOVALIDITA, dataFine = f.DATAFINEVALIDITA > t.DATARIENTRO?t.DATARIENTRO:f.DATAFINEVALIDITA, dataAggiornamento = f.DATAAGGIORNAMENTO, idStatoRecord = f.IDSTATORECORD, FK_IdFigli = f.FK_IDFIGLI, visualizzabile = (db.FIGLI.Where(a => a.FK_IDFIGLI == f.IDFIGLI && a.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato).Count() > 0) ? false : true, //visualizzabile = (db.FIGLI.Where(a => a.IDFIGLI == f.FK_IDFIGLI).Count() > 0) ? false : true, modificato = (f.FK_IDFIGLI > 0 && f.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && f.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato) ? true : false, nuovo = (f.FK_IDFIGLI == null && f.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && f.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato) ? true : false }; //VERIFICA SE CI SONO VARIAZIONI SUGLI ALTRI DATI var adf = dtvmf.GetAltriDatiFamiliariFiglio(f.IDFIGLI, mf.IDMAGGIORAZIONIFAMILIARI); if (adf.FK_idAltriDatiFam > 0 && adf.idStatoRecord != (decimal)EnumStatoRecord.Annullato && adf.idStatoRecord != (decimal)EnumStatoRecord.Attivato) { fm.modificato = true; } //elenca eventuali documenti inseriti var ldf = db.FIGLI.Find(fm.idFigli).DOCUMENTI.Where(a => a.IDTIPODOCUMENTO == (decimal)EnumTipoDoc.Documento_Identita && a.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && a.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato) .OrderByDescending(a => a.IDDOCUMENTO).ToList(); //var ldf = f.DOCUMENTI.Where(a => a.IDSTATORECORD != (decimal)EnumStatoRecord.Annullato && a.IDSTATORECORD != (decimal)EnumStatoRecord.Attivato).ToList(); if (ldf.Count() > 0 && fm.nuovo == false) { fm.modificato = true; } //se è nuovo non è modificato if (fm.nuovo) { fm.modificato = false; } lfm.Add(fm); } } } } return(lfm); }