예제 #1
0
        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);
        }
예제 #2
0
        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);
        }