public ActionResult MaggiorazioniFamiliari(decimal idTrasferimento, EnumCallElenco callElenco = EnumCallElenco.Coniuge)
        {
            MaggiorazioniFamiliariModel mfm = new MaggiorazioniFamiliariModel();

            try
            {
                using (dtMaggiorazioniFamiliari dtmf = new dtMaggiorazioniFamiliari())
                {
                    mfm = dtmf.GetMaggiorazioniFamiliariByID(idTrasferimento);
                    if (mfm?.idMaggiorazioniFamiliari > 0)
                    {
                        using (dtAttivazioniMagFam dtamf = new dtAttivazioniMagFam())
                        {
                            var amf = dtamf.GetAttivazioneMagFamIniziale(mfm.idMaggiorazioniFamiliari);

                            ViewData.Add("idAttivazioneMagFam", amf.idAttivazioneMagFam);
                        }
                    }
                    else
                    {
                        throw new Exception("Maggiorazione familiare non trovata. IDTrasferimento: " + idTrasferimento);
                    }
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }


            ViewData.Add("callElenco", callElenco);

            return(PartialView());
        }
        public ActionResult ElencoDocumenti(decimal id, EnumTipoDoc tipoDoc, EnumParentela parentela, EnumChiamante chiamante, decimal idAttivazioneMagFam = 0)
        {
            List <DocumentiModel> ldm        = new List <DocumentiModel>();
            ConiugeModel          cm         = new ConiugeModel();
            bool    solaLettura              = false;
            decimal idTrasferimento          = 0;
            decimal idMaggiorazioniFamiliari = 0;


            try
            {
                using (dtDocumenti dtd = new dtDocumenti())
                {
                    ldm =
                        dtd.GetDocumentiByIdTable(id, tipoDoc, parentela, idAttivazioneMagFam)
                        .OrderByDescending(a => a.dataInserimento)
                        .ToList();
                }

                switch (chiamante)
                {
                case EnumChiamante.Maggiorazioni_Familiari:
                case EnumChiamante.Variazione_Maggiorazioni_Familiari:

                    switch (parentela)
                    {
                    case EnumParentela.Coniuge:
                        using (dtMaggiorazioniFamiliari dtmf = new dtMaggiorazioniFamiliari())
                        {
                            var mfm = dtmf.GetMaggiorazioniFamiliaribyConiuge(id);
                            idMaggiorazioniFamiliari = mfm.idMaggiorazioniFamiliari;
                            using (dtTrasferimento dtt = new dtTrasferimento())
                            {
                                idTrasferimento = dtt.GetTrasferimentoByIDMagFam(idMaggiorazioniFamiliari).idTrasferimento;
                            }
                        }
                        break;

                    case EnumParentela.Figlio:
                        using (dtMaggiorazioniFamiliari dtmf = new dtMaggiorazioniFamiliari())
                        {
                            var mfm = dtmf.GetMaggiorazioniFamiliaribyFiglio(id);
                            idMaggiorazioniFamiliari = mfm.idMaggiorazioniFamiliari;
                            using (dtTrasferimento dtt = new dtTrasferimento())
                            {
                                idTrasferimento = dtt.GetTrasferimentoByIDMagFam(idMaggiorazioniFamiliari).idTrasferimento;
                            }
                        }
                        break;

                    case EnumParentela.Richiedente:
                        using (dtMaggiorazioniFamiliari dtmf = new dtMaggiorazioniFamiliari())
                        {
                            var mfm = dtmf.GetMaggiorazioniFamiliariByID(id);
                            idMaggiorazioniFamiliari = mfm.idMaggiorazioniFamiliari;
                            using (dtTrasferimento dtt = new dtTrasferimento())
                            {
                                idTrasferimento = dtt.GetTrasferimentoByIDMagFam(idMaggiorazioniFamiliari).idTrasferimento;
                            }
                        }
                        break;

                    default:
                        throw new ArgumentOutOfRangeException("parentela");
                    }


                    using (dtMaggiorazioniFamiliari dtmf = new dtMaggiorazioniFamiliari())
                    {
                        bool rinunciaMagFam       = false;
                        bool richiestaAttivazione = false;
                        bool attivazione          = false;
                        bool datiConiuge          = false;
                        bool datiParzialiConiuge  = false;
                        bool datiFigli            = false;
                        bool datiParzialiFigli    = false;
                        bool siDocConiuge         = false;
                        bool siDocFigli           = false;
                        bool docFormulario        = false;
                        bool trasfSolaLettura     = false;


                        if ((parentela == EnumParentela.Coniuge || parentela == EnumParentela.Figlio) && idMaggiorazioniFamiliari > 0)
                        {
                            dtmf.SituazioneMagFamPartenza(idAttivazioneMagFam, out rinunciaMagFam,
                                                          out richiestaAttivazione, out attivazione, out datiConiuge, out datiParzialiConiuge,
                                                          out datiFigli, out datiParzialiFigli, out siDocConiuge, out siDocFigli,
                                                          out docFormulario, out trasfSolaLettura);

                            if (richiestaAttivazione == true || trasfSolaLettura == true)
                            {
                                solaLettura = true;
                            }
                            else
                            {
                                solaLettura = false;
                            }
                        }
                        else
                        {
                            solaLettura = false;
                        }
                    }
                    break;
                //case EnumChiamante.Titoli_Viaggio:
                //    using (dtTitoliViaggi dttv = new dtTitoliViaggi())
                //    {
                //        TitoloViaggioModel tvm = new TitoloViaggioModel();

                //        switch (parentela)
                //        {
                //            case EnumParentela.Coniuge:
                //                //tvm = dttv.GetTitoloViaggioByIdConiuge(id);
                //                idTrasferimento = tvm.idTrasferimento;
                //                if (tvm != null && tvm.HasValue())
                //                {
                //                    bool notificaRichiesta = tvm.notificaRichiesta;
                //                    bool praticaConclusa = tvm.praticaConclusa;

                //                    if (notificaRichiesta == true && praticaConclusa == true)
                //                    {
                //                        solaLettura = true;
                //                    }
                //                    else
                //                    {
                //                        solaLettura = false;
                //                    }

                //                }
                //                break;
                //            case EnumParentela.Figlio:
                //                //tvm = dttv.GetTitoloViaggioByIdFiglio(id);
                //                idTrasferimento = tvm.idTrasferimento;
                //                if (tvm != null && tvm.HasValue())
                //                {
                //                    bool notificaRichiesta = tvm.notificaRichiesta;
                //                    bool praticaConclusa = tvm.praticaConclusa;

                //                    if (notificaRichiesta == true && praticaConclusa == true)
                //                    {
                //                        solaLettura = true;
                //                    }
                //                    else
                //                    {
                //                        solaLettura = false;
                //                    }

                //                }
                //                break;
                //            case EnumParentela.Richiedente:
                //                //tvm = dttv.GetTitoloViaggioByID(id);
                //                idTrasferimento = tvm.idTrasferimento;
                //                if (tvm != null && tvm.HasValue())
                //                {
                //                    bool notificaRichiesta = tvm.notificaRichiesta;
                //                    bool praticaConclusa = tvm.praticaConclusa;

                //                    if (notificaRichiesta == true && praticaConclusa == true)
                //                    {
                //                        solaLettura = true;
                //                    }
                //                    else
                //                    {
                //                        solaLettura = false;
                //                    }

                //                }
                //                break;
                //            default:
                //                throw new ArgumentOutOfRangeException("parentela");
                //        }
                //    }
                //    break;
                //case EnumChiamante.Trasporto_Effetti:
                //    using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                //    {
                //        var tem = dtte.GetTrasportoEffettiByID(id);
                //        idTrasferimento = tem.idTrasferimento;
                //    }
                //    break;
                case EnumChiamante.Trasferimento:
                    idTrasferimento = id;
                    break;
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
            ViewData.Add("id", id);
            ViewData.Add("chiamante", chiamante);
            ViewData.Add("tipoDoc", tipoDoc);
            ViewData.Add("parentela", parentela);
            ViewData.Add("idMaggiorazioniFamiliari", idMaggiorazioniFamiliari);
            ViewData.Add("solaLettura", solaLettura);
            ViewData.Add("idTrasferimento", idTrasferimento);
            ViewData.Add("idAttivazioneMagFam", idAttivazioneMagFam);

            return(PartialView(ldm));
        }