Example #1
0
        // Dislocazione dei Dipendenti all'Estero
        public ActionResult Dislocazione(string codicesede = "", string V_UTENTE = "", string V_DATA = "", string V_UFFICIO = "")
        {
            ViewBag.ListaDislocazioneDipEstero = new List <SelectListItem>();
            List <DipEsteroModel> lcm = new List <DipEsteroModel>();
            List <SelectListItem> lr  = new List <SelectListItem>();
            List <Stp_Dislocazione_dipendenti> lsd   = new List <Stp_Dislocazione_dipendenti>();
            List <Stp_Dislocazione_dipendenti> model = new List <Stp_Dislocazione_dipendenti>();

            lcm = Dipendenti.GetAllSedi().ToList();

            if (lcm != null && lcm.Any())
            {
                foreach (var item in lcm)
                {
                    SelectListItem r = new SelectListItem()
                    {
                        Text  = item.descrizione,
                        Value = item.codicesede
                    };

                    lr.Add(r);
                }
                if (codicesede == string.Empty)
                {
                    //lr.First().Selected = true;
                    lr.First().Value = "";
                    codicesede = lr.First().Value;
                }
                else
                {
                    var lvr = lr.Where(a => a.Value == codicesede);
                    if (lvr != null && lvr.Count() > 0)
                    {
                        var r = lvr.First();
                        r.Selected = true;
                    }
                }


                ViewBag.ListaDislocazioneDipEstero = lr;
            }

            // Chiamata alla pagina Visual Basic -- Stampa_Elenco_Trasferimenti()
            //StampeISE.frmStampe xx = new frmStampe();
            //xx.Stampa_Consuntivo_Costi_x_Coan("E135A054B1", "01/03/2017", "01/03/2018", "fantomas");


            //StampeISE.Class1 xx = new Class1();
            //xx.Stampa_Elenco_Trasferimenti();


            using (var cn = new OracleConnection(ConfigurationManager.ConnectionStrings["DBISESTOR"].ConnectionString))
            {
                OracleCommand cmd1 = new OracleCommand();
                cmd1.Connection  = cn;
                cmd1.CommandText = "ISE_STAMPA_ELENCO_TRASF";
                cmd1.CommandType = System.Data.CommandType.StoredProcedure;

                cmd1.Parameters.Add("@V_UTENTE", OracleDbType.Varchar2, 50).Value  = V_UTENTE;
                cmd1.Parameters.Add("@V_DATA", OracleDbType.Varchar2, 50).Value    = V_DATA;
                cmd1.Parameters.Add("@V_UFFICIO", OracleDbType.Varchar2, 50).Value = codicesede;

                cn.Open();
                cmd1.ExecuteNonQuery();

                //String Sql = "Select distinct SEDE, VALUTA, MATRICOLA, NOMINATIVO, DT_TRASFERIMENTO, QUALIFICA, CONIUGE, FIGLI, ISEP, CONTRIBUTO, USO, ISEP + CONTRIBUTO + USO TOTALE From ISE_STP_ELENCOTRASFERIMENTI, SEDIESTERE WHERE SEDIESTERE.SED_COD_SEDE = '" + codicesede + "' AND ISE_STP_ELENCOTRASFERIMENTI.SEDE = SEDIESTERE.SED_DESCRIZIONE Order By SEDE, NOMINATIVO";

                String Sql = "Select SEDE,VALUTA, ";
                Sql += "MATRICOLA, ";
                Sql += "NOMINATIVO, ";
                Sql += "DT_TRASFERIMENTO, ";
                Sql += "QUALIFICA, ";
                Sql += "CONIUGE, ";
                Sql += "FIGLI, ";
                Sql += "ISEP, ";
                Sql += "CONTRIBUTO, ";
                Sql += "USO, ";
                Sql += "ISEP +CONTRIBUTO + USO TOTALE ";
                Sql += "From ISE_STP_ELENCOTRASFERIMENTI ";
                Sql += "Where UTENTE = '" + V_UTENTE + "' ";
                Sql += "Order By SEDE, NOMINATIVO";



                using (OracleCommand cmd = new OracleCommand())
                {
                    cmd.Connection  = cn;
                    cmd.CommandText = Sql;
                    //cmd.Parameters.Add("codsede", codicesede);
                    //cmd.Connection.Open();

                    using (OracleDataReader rdr = cmd.ExecuteReader())
                    {
                        if (rdr.HasRows)
                        {
                            while (rdr.Read())
                            {
                                var details = new Stp_Dislocazione_dipendenti();
                                details.sede              = rdr["SEDE"].ToString();
                                details.valuta            = rdr["VALUTA"].ToString();
                                details.matricola         = rdr["MATRICOLA"].ToString();
                                details.nominativo        = rdr["NOMINATIVO"].ToString();
                                details.dataTrasferimento = Convert.ToDateTime(rdr["DT_TRASFERIMENTO"]).ToString("dd/MM/yyyy");
                                details.qualifica         = rdr["QUALIFICA"].ToString();
                                details.coniuge           = rdr["CONIUGE"].ToString();
                                details.figli             = rdr["FIGLI"].ToString();
                                details.isep              = rdr["ISEP"].ToString();
                                details.contributo        = rdr["CONTRIBUTO"].ToString();
                                details.uso    = rdr["USO"].ToString();
                                details.totale = rdr["TOTALE"].ToString();
                                model.Add(details);
                            }
                        }
                    }
                }

                return(PartialView("DislocazioneDipEstero", model));
            }
        }
        public ActionResult StoriaDipendente(string matricola = "")
        {
            ViewBag.ListaCategorie = new List <SelectListItem>();
            List <CategoryModel>         lcm   = new List <CategoryModel>();
            List <SelectListItem>        lr    = new List <SelectListItem>();
            List <Stp_Storia_Dipendente> lsd   = new List <Stp_Storia_Dipendente>();
            List <Stp_Storia_Dipendente> model = new List <Stp_Storia_Dipendente>();

            lcm = Dipendenti.GetAllDipendenti().ToList();

            if (lcm != null && lcm.Any())
            {
                foreach (var item in lcm)
                {
                    SelectListItem r = new SelectListItem()
                    {
                        Text  = item.nominativo,
                        Value = item.matricola
                    };

                    lr.Add(r);
                }
                if (matricola == string.Empty)
                {
                    lr.First().Selected = true;
                    matricola = lr.First().Value;
                }
                else
                {
                    var lvr = lr.Where(a => a.Value == matricola);
                    if (lvr != null && lvr.Count() > 0)
                    {
                        var r = lvr.First();
                        r.Selected = true;
                    }
                }


                ViewBag.ListaCategorie = lr;
            }


            //return PartialView("StoriaDipendente", lsd);



            using (var cn = new OracleConnection(ConfigurationManager.ConnectionStrings["DBISESTOR"].ConnectionString))
            {
                //String Sql = "SELECT DECODE (rec,1, z.livello, '') livello, DECODE(rec, 1, z.TIPO_MOVIMENTO, '') tipo_movimento, DECODE(rec, 1, z.IES_DT_DECORRENZA, '') data_decorrenza, DECODE(rec, 1, z.IES_DT_LETTERA, '') data_lettera, DECODE(rec, 1, z.COEFFICIENTE_DI_SEDE, '') coef_sede, DECODE(rec, 1, z.IES_PERC_DISAGIO, '') perc_disagio, DECODE(rec, 1, z.IES_PERC_ABBATTIMENTO, '') perc_spettante, DECODE(rec, 1, z.IES_PERC_CONIUGE, '') perc_Coniuge, DECODE(rec, 1, z.IES_PENSIONE, '') pensione, DECODE(rec, 1, z.IES_FIGLI, '') n_figli, DECODE(rec, 1, z.CAMBIO, '') TFR, z.descr, z.indennita, z.IES_COD_TIPO_MOVIMENTO ord2, z.IES_PROG_MOVIMENTO ord3, z.IES_DT_DECORRENZA ord1 FROM (SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, SED_DESCRIZIONE                       AS SEDE, VAL_DESCRIZIONE                       AS VALUTA,IBS_DESCRIZIONE                       AS LIVELLO, TMO_DESCRIZIONE_MOVIMENTO             AS TIPO_MOVIMENTO, IES_DT_DECORRENZA, IES_DT_LETTERA, ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, IES_PERC_DISAGIO, IES_PERC_ABBATTIMENTO, IES_PERC_CONIUGE, IES_PENSIONE, IES_FIGLI, ABS(IES_CAMBIO) AS CAMBIO, '1-Base  ' descr, IES_INDEN_BASE AS Indennita, IES_COD_TIPO_MOVIMENTO, IES_PROG_MOVIMENTO, AND_COGNOME || ' '|| AND_NOME NOMINATIVO, 1 rec FROM INDESTERA, TIPOMOVIMENTO, SEDIESTERE, VALUTE, INDENNITABASE, ANADIPE WHERE IES_COD_SEDE = SED_COD_SEDE AND IES_COD_VALUTA = VAL_COD_VALUTA AND IES_COD_QUALIFICA = IBS_COD_QUALIFICA AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO AND IES_MATRICOLA = AND_MATRICOLA AND IES_MATRICOLA = 3192 AND IES_FLAG_RICALCOLATO IS NULL UNION SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, SED_DESCRIZIONE                      AS SEDE, VAL_DESCRIZIONE                      AS VALUTA, IBS_DESCRIZIONE                      AS LIVELLO, TMO_DESCRIZIONE_MOVIMENTO            AS TIPO_MOVIMENTO, IES_DT_DECORRENZA, IES_DT_LETTERA, ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, IES_PERC_DISAGIO, IES_PERC_ABBATTIMENTO, IES_PERC_CONIUGE, IES_PENSIONE, IES_FIGLI, ABS(IES_CAMBIO) AS CAMBIO, '2-Pers.  ' descr, DECODE(IES_FLAG_VALUTA, 'E', IES_INDEN_PERS * IES_CAMBIO, IES_INDEN_PERS / IES_CAMBIO) AS Indennita, IES_COD_TIPO_MOVIMENTO, IES_PROG_MOVIMENTO, AND_COGNOME || ' ' || AND_NOME NOMINATIVO, 2 rec FROM INDESTERA, TIPOMOVIMENTO, SEDIESTERE, VALUTE, INDENNITABASE, ANADIPE WHERE IES_COD_SEDE = SED_COD_SEDE AND IES_COD_VALUTA = VAL_COD_VALUTA AND IES_COD_QUALIFICA = IBS_COD_QUALIFICA AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO AND IES_MATRICOLA = AND_MATRICOLA AND IES_MATRICOLA = 3192 AND IES_FLAG_RICALCOLATO  IS NULL UNION SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, SED_DESCRIZIONE                      AS SEDE, VAL_DESCRIZIONE                      AS VALUTA, IBS_DESCRIZIONE                      AS LIVELLO, TMO_DESCRIZIONE_MOVIMENTO            AS TIPO_MOVIMENTO, IES_DT_DECORRENZA, IES_DT_LETTERA, ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, IES_PERC_DISAGIO, IES_PERC_ABBATTIMENTO, IES_PERC_CONIUGE, IES_PENSIONE, IES_FIGLI, ABS(IES_CAMBIO) AS CAMBIO, '4-Sist/Rien.  ' descr, IES_INDEN_SIS_RIE AS Indennita, IES_COD_TIPO_MOVIMENTO, IES_PROG_MOVIMENTO, AND_COGNOME || ' ' || AND_NOME NOMINATIVO, 4 rec FROM INDESTERA, TIPOMOVIMENTO, SEDIESTERE, VALUTE, INDENNITABASE, ANADIPE WHERE IES_COD_SEDE = SED_COD_SEDE AND IES_COD_VALUTA = VAL_COD_VALUTA AND IES_COD_QUALIFICA = IBS_COD_QUALIFICA AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO AND IES_MATRICOLA = AND_MATRICOLA AND IES_MATRICOLA = 3192 AND IES_FLAG_RICALCOLATO  IS NULL UNION SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, SED_DESCRIZIONE                      AS SEDE, VAL_DESCRIZIONE                      AS VALUTA, IBS_DESCRIZIONE                      AS LIVELLO, TMO_DESCRIZIONE_MOVIMENTO            AS TIPO_MOVIMENTO, IES_DT_DECORRENZA, IES_DT_LETTERA, ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, IES_PERC_DISAGIO, IES_PERC_ABBATTIMENTO, IES_PERC_CONIUGE,IES_PENSIONE, IES_FIGLI, ABS(IES_CAMBIO) AS CAMBIO, '3-Anticipo  ' descr, IES_ANTICIPO AS Indennita, IES_COD_TIPO_MOVIMENTO, IES_PROG_MOVIMENTO, AND_COGNOME || ' ' || AND_NOME NOMINATIVO, 3 rec FROM INDESTERA, TIPOMOVIMENTO, SEDIESTERE, VALUTE, INDENNITABASE, ANADIPE WHERE IES_COD_SEDE = SED_COD_SEDE AND IES_COD_VALUTA = VAL_COD_VALUTA AND IES_COD_QUALIFICA = IBS_COD_QUALIFICA AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO AND IES_MATRICOLA = AND_MATRICOLA AND IES_MATRICOLA = 3192 AND IES_FLAG_RICALCOLATO  IS NULL UNION SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, SED_DESCRIZIONE                      AS SEDE, VAL_DESCRIZIONE                      AS VALUTA, IBS_DESCRIZIONE                      AS LIVELLO, TMO_DESCRIZIONE_MOVIMENTO            AS TIPO_MOVIMENTO, IES_DT_DECORRENZA, IES_DT_LETTERA, ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, IES_PERC_DISAGIO, IES_PERC_ABBATTIMENTO, IES_PERC_CONIUGE, IES_PENSIONE, IES_FIGLI, ABS(IES_CAMBIO) AS CAMBIO, '5-Sist.Netta  ' descr, DECODE(IES_FLAG_VALUTA, 'E', IES_INDEN_SIS_RIE_NETTA * IES_CAMBIO, IES_INDEN_SIS_RIE_NETTA / IES_CAMBIO) AS Indennita, IES_COD_TIPO_MOVIMENTO, IES_PROG_MOVIMENTO, AND_COGNOME || ' ' || AND_NOME NOMINATIVO, 5 rec FROM INDESTERA, TIPOMOVIMENTO, SEDIESTERE, VALUTE, INDENNITABASE, ANADIPE WHERE IES_COD_SEDE = SED_COD_SEDE AND IES_COD_VALUTA = VAL_COD_VALUTA AND IES_COD_QUALIFICA = IBS_COD_QUALIFICA AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO AND IES_MATRICOLA = AND_MATRICOLA AND IES_MATRICOLA = 3192 AND IES_FLAG_RICALCOLATO  IS NULL ) z ORDER BY z.IES_DT_DECORRENZA, z.IES_COD_TIPO_MOVIMENTO, z.IES_PROG_MOVIMENTO, z.descr";
                #region Query gigius

                String Sql = "SELECT DECODE (rec,1, z.nominativo, '') nominativo, ";
                Sql += "DECODE (rec,1, z.ies_matricola, '') matricola, ";
                Sql += "DECODE (rec,1, z.livello, '') livello, ";
                Sql += "DECODE(rec, 1, z.TIPO_MOVIMENTO, '') tipo_movimento, ";
                Sql += "DECODE(rec, 1, z.IES_DT_DECORRENZA, '') data_decorrenza, ";
                Sql += "DECODE(rec, 1, z.IES_DT_LETTERA, '') data_lettera, ";
                Sql += "DECODE(rec, 1, z.COEFFICIENTE_DI_SEDE, '') coef_sede, ";
                Sql += "DECODE(rec, 1, z.IES_PERC_DISAGIO, '') perc_disagio, ";
                Sql += "DECODE(rec, 1, z.IES_PERC_ABBATTIMENTO, '') perc_spettante, ";
                Sql += "DECODE(rec, 1, z.IES_PERC_CONIUGE, '') perc_Coniuge, ";
                Sql += "DECODE(rec, 1, z.IES_PENSIONE, '') pensione, ";
                Sql += "DECODE(rec, 1, z.IES_FIGLI, '') n_figli, ";
                Sql += "DECODE(rec, 1, z.CAMBIO, '') TFR, ";
                Sql += "z.descr, ";
                Sql += "ROUND(z.indennita,2) indennita, ";
                Sql += "z.IES_COD_TIPO_MOVIMENTO ord2, ";
                Sql += "z.IES_PROG_MOVIMENTO ord3, ";
                Sql += "z.IES_DT_DECORRENZA ord1 ";
                Sql += "FROM ";
                Sql += "(SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, ";
                Sql += "SED_DESCRIZIONE                       AS SEDE, ";
                Sql += "VAL_DESCRIZIONE                       AS VALUTA, ";
                Sql += "IBS_DESCRIZIONE                       AS LIVELLO, ";
                Sql += "TMO_DESCRIZIONE_MOVIMENTO             AS TIPO_MOVIMENTO, ";
                Sql += "IES_DT_DECORRENZA, ";
                Sql += "IES_DT_LETTERA, ";
                Sql += "ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, ";
                Sql += "IES_PERC_DISAGIO, ";
                Sql += "IES_PERC_ABBATTIMENTO, ";
                Sql += "IES_PERC_CONIUGE, ";
                Sql += "IES_PENSIONE, ";
                Sql += "IES_FIGLI, ";
                Sql += "ABS(IES_CAMBIO) AS CAMBIO, ";
                Sql += "'1-Base  ' descr, ";
                Sql += "IES_INDEN_BASE AS Indennita, ";
                Sql += "IES_COD_TIPO_MOVIMENTO, ";
                Sql += "IES_PROG_MOVIMENTO, ";
                Sql += "IES_MATRICOLA, ";
                Sql += "AND_COGNOME ";
                Sql += "|| ' ' ";
                Sql += "|| AND_NOME NOMINATIVO, ";
                Sql += "1 rec ";
                Sql += "FROM INDESTERA, ";
                Sql += "TIPOMOVIMENTO, ";
                Sql += "SEDIESTERE, ";
                Sql += "VALUTE, ";
                Sql += "INDENNITABASE, ";
                Sql += "ANADIPE ";
                Sql += "WHERE IES_COD_SEDE         = SED_COD_SEDE ";
                Sql += "AND IES_COD_VALUTA         = VAL_COD_VALUTA ";
                Sql += "AND IES_COD_QUALIFICA      = IBS_COD_QUALIFICA ";
                Sql += "AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO ";
                Sql += "AND IES_MATRICOLA          = AND_MATRICOLA ";
                //Sql += "AND IES_MATRICOLA = " + matricola + " ";
                Sql += "AND IES_MATRICOLA = :matr ";
                Sql += "AND IES_FLAG_RICALCOLATO IS NULL ";
                Sql += "UNION ";
                Sql += "SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, ";
                Sql += "SED_DESCRIZIONE                      AS SEDE, ";
                Sql += "VAL_DESCRIZIONE                      AS VALUTA, ";
                Sql += "IBS_DESCRIZIONE                      AS LIVELLO, ";
                Sql += "TMO_DESCRIZIONE_MOVIMENTO            AS TIPO_MOVIMENTO, ";
                Sql += "IES_DT_DECORRENZA, ";
                Sql += "IES_DT_LETTERA, ";
                Sql += "ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, ";
                Sql += "IES_PERC_DISAGIO, ";
                Sql += "IES_PERC_ABBATTIMENTO, ";
                Sql += "IES_PERC_CONIUGE, ";
                Sql += "IES_PENSIONE, ";
                Sql += "IES_FIGLI, ";
                Sql += "ABS(IES_CAMBIO) AS CAMBIO, ";
                Sql += "'2-Pers.  ' descr, ";
                Sql += "DECODE(IES_FLAG_VALUTA, 'E', IES_INDEN_PERS * IES_CAMBIO, IES_INDEN_PERS / IES_CAMBIO) AS Indennita, ";
                Sql += "IES_COD_TIPO_MOVIMENTO, ";
                Sql += "IES_PROG_MOVIMENTO, ";
                Sql += "IES_MATRICOLA, ";
                Sql += "AND_COGNOME ";
                Sql += "|| ' ' ";
                Sql += "|| AND_NOME NOMINATIVO, ";
                Sql += "2 rec ";
                Sql += "FROM INDESTERA, ";
                Sql += "TIPOMOVIMENTO, ";
                Sql += "SEDIESTERE, ";
                Sql += "VALUTE, ";
                Sql += "INDENNITABASE, ";
                Sql += "ANADIPE ";
                Sql += "WHERE IES_COD_SEDE         = SED_COD_SEDE ";
                Sql += "AND IES_COD_VALUTA         = VAL_COD_VALUTA ";
                Sql += "AND IES_COD_QUALIFICA      = IBS_COD_QUALIFICA ";
                Sql += "AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO ";
                Sql += "AND IES_MATRICOLA          = AND_MATRICOLA ";
                //Sql += "AND IES_MATRICOLA = " + matricola + " ";
                Sql += "AND IES_MATRICOLA = :matr ";
                Sql += "AND IES_FLAG_RICALCOLATO IS NULL ";
                Sql += "UNION ";
                Sql += "SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, ";
                Sql += "SED_DESCRIZIONE                      AS SEDE, ";
                Sql += "VAL_DESCRIZIONE                      AS VALUTA, ";
                Sql += "IBS_DESCRIZIONE                      AS LIVELLO, ";
                Sql += "TMO_DESCRIZIONE_MOVIMENTO            AS TIPO_MOVIMENTO, ";
                Sql += "IES_DT_DECORRENZA, ";
                Sql += "IES_DT_LETTERA, ";
                Sql += "ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, ";
                Sql += "IES_PERC_DISAGIO, ";
                Sql += "IES_PERC_ABBATTIMENTO, ";
                Sql += "IES_PERC_CONIUGE, ";
                Sql += "IES_PENSIONE, ";
                Sql += "IES_FIGLI, ";
                Sql += "ABS(IES_CAMBIO) AS CAMBIO, ";
                Sql += "'4-Sist/Rien.  ' descr, ";
                Sql += "IES_INDEN_SIS_RIE AS Indennita, ";
                Sql += "IES_COD_TIPO_MOVIMENTO, ";
                Sql += "IES_PROG_MOVIMENTO, ";
                Sql += "IES_MATRICOLA, ";
                Sql += "AND_COGNOME ";
                Sql += "|| ' ' ";
                Sql += "|| AND_NOME NOMINATIVO, ";
                Sql += "4 rec ";
                Sql += "FROM INDESTERA, ";
                Sql += "TIPOMOVIMENTO, ";
                Sql += "SEDIESTERE, ";
                Sql += "VALUTE, ";
                Sql += "INDENNITABASE, ";
                Sql += "ANADIPE ";
                Sql += "WHERE IES_COD_SEDE         = SED_COD_SEDE ";
                Sql += "AND IES_COD_VALUTA         = VAL_COD_VALUTA ";
                Sql += "AND IES_COD_QUALIFICA      = IBS_COD_QUALIFICA ";
                Sql += "AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO ";
                Sql += "AND IES_MATRICOLA          = AND_MATRICOLA ";
                //Sql += "AND IES_MATRICOLA = " + matricola + " ";
                Sql += "AND IES_MATRICOLA = :matr ";
                Sql += "AND IES_FLAG_RICALCOLATO IS NULL ";
                Sql += "UNION ";
                Sql += "SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, ";
                Sql += "SED_DESCRIZIONE                      AS SEDE, ";
                Sql += "VAL_DESCRIZIONE                      AS VALUTA, ";
                Sql += "IBS_DESCRIZIONE                      AS LIVELLO, ";
                Sql += "TMO_DESCRIZIONE_MOVIMENTO            AS TIPO_MOVIMENTO, ";
                Sql += "IES_DT_DECORRENZA, ";
                Sql += "IES_DT_LETTERA, ";
                Sql += "ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, ";
                Sql += "IES_PERC_DISAGIO, ";
                Sql += "IES_PERC_ABBATTIMENTO, ";
                Sql += "IES_PERC_CONIUGE, ";
                Sql += "IES_PENSIONE, ";
                Sql += "IES_FIGLI, ";
                Sql += "ABS(IES_CAMBIO) AS CAMBIO, ";
                Sql += "'3-Anticipo  ' descr, ";
                Sql += "IES_ANTICIPO AS Indennita, ";
                Sql += "IES_COD_TIPO_MOVIMENTO, ";
                Sql += "IES_PROG_MOVIMENTO, ";
                Sql += "IES_MATRICOLA, ";
                Sql += "AND_COGNOME ";
                Sql += "|| ' ' ";
                Sql += "|| AND_NOME NOMINATIVO, ";
                Sql += "3 rec ";
                Sql += "FROM INDESTERA, ";
                Sql += "TIPOMOVIMENTO, ";
                Sql += "SEDIESTERE, ";
                Sql += "VALUTE, ";
                Sql += "INDENNITABASE, ";
                Sql += "ANADIPE ";
                Sql += "WHERE IES_COD_SEDE         = SED_COD_SEDE ";
                Sql += "AND IES_COD_VALUTA         = VAL_COD_VALUTA ";
                Sql += "AND IES_COD_QUALIFICA      = IBS_COD_QUALIFICA ";
                Sql += "AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO ";
                Sql += "AND IES_MATRICOLA          = AND_MATRICOLA ";
                //Sql += "AND IES_MATRICOLA = " + matricola + " ";
                Sql += "AND IES_MATRICOLA = :matr ";
                Sql += "AND IES_FLAG_RICALCOLATO IS NULL ";
                Sql += "UNION ";
                Sql += "SELECT DISTINCT IES_PROG_TRASFERIMENTO AS TIPOLOGIA_TRASFERIMENTO, ";
                Sql += "SED_DESCRIZIONE                      AS SEDE, ";
                Sql += "VAL_DESCRIZIONE                      AS VALUTA, ";
                Sql += "IBS_DESCRIZIONE                      AS LIVELLO, ";
                Sql += "TMO_DESCRIZIONE_MOVIMENTO            AS TIPO_MOVIMENTO, ";
                Sql += "IES_DT_DECORRENZA, ";
                Sql += "IES_DT_LETTERA, ";
                Sql += "ABS(IES_COEFFICIENTE_SEDE) AS COEFFICIENTE_DI_SEDE, ";
                Sql += "IES_PERC_DISAGIO, ";
                Sql += "IES_PERC_ABBATTIMENTO, ";
                Sql += "IES_PERC_CONIUGE, ";
                Sql += "IES_PENSIONE, ";
                Sql += "IES_FIGLI, ";
                Sql += "ABS(IES_CAMBIO) AS CAMBIO, ";
                Sql += "'5-Sist.Netta  ' descr, ";
                Sql += "DECODE(IES_FLAG_VALUTA, 'E', IES_INDEN_SIS_RIE_NETTA * IES_CAMBIO, IES_INDEN_SIS_RIE_NETTA / IES_CAMBIO) AS Indennita, ";
                Sql += "IES_COD_TIPO_MOVIMENTO, ";
                Sql += "IES_PROG_MOVIMENTO, ";
                Sql += "IES_MATRICOLA, ";
                Sql += "AND_COGNOME ";
                Sql += "|| ' ' ";
                Sql += "|| AND_NOME NOMINATIVO, ";
                Sql += "5 rec ";
                Sql += "FROM INDESTERA, ";
                Sql += "TIPOMOVIMENTO, ";
                Sql += "SEDIESTERE, ";
                Sql += "VALUTE, ";
                Sql += "INDENNITABASE, ";
                Sql += "ANADIPE ";
                Sql += "WHERE IES_COD_SEDE         = SED_COD_SEDE ";
                Sql += "AND IES_COD_VALUTA         = VAL_COD_VALUTA ";
                Sql += "AND IES_COD_QUALIFICA      = IBS_COD_QUALIFICA ";
                Sql += "AND IES_COD_TIPO_MOVIMENTO = TMO_COD_TIPO_MOVIMENTO ";
                Sql += "AND IES_MATRICOLA          = AND_MATRICOLA ";
                //Sql += "AND IES_MATRICOLA = " + matricola + " ";
                Sql += "AND IES_MATRICOLA = :matr ";
                Sql += "AND IES_FLAG_RICALCOLATO IS NULL ";
                Sql += ") z ";
                Sql += "ORDER BY z.nominativo, ";
                Sql += "z.ies_matricola, ";
                Sql += "z.IES_DT_DECORRENZA, ";
                Sql += "z.IES_COD_TIPO_MOVIMENTO, ";
                Sql += "z.IES_PROG_MOVIMENTO, ";
                Sql += "z.descr ";
                #endregion

                using (OracleCommand cmd = new OracleCommand())
                {
                    cmd.Connection  = cn;
                    cmd.CommandText = Sql;
                    cmd.Parameters.Add("matr", matricola);
                    cmd.Connection.Open();

                    using (OracleDataReader rdr = cmd.ExecuteReader())
                    {
                        if (rdr.HasRows)
                        {
                            while (rdr.Read())
                            {
                                var details = new Stp_Storia_Dipendente();
                                details.NOMINATIVO      = rdr["NOMINATIVO"].ToString();
                                details.MATRICOLA       = rdr["MATRICOLA"].ToString();
                                details.LIVELLO         = rdr["LIVELLO"].ToString();
                                details.TIPO_MOVIMENTO  = rdr["TIPO_MOVIMENTO"].ToString();
                                details.DATA_DECORRENZA = rdr["DATA_DECORRENZA"] == DBNull.Value ? null : Convert.ToDateTime(rdr["DATA_DECORRENZA"]).ToString("dd/MM/yyyy");
                                //details.DATA_DECORRENZA = Convert.ToDateTime(rdr["DATA_DECORRENZA"]).ToString("dd/MM/yyyy");
                                //details.DATA_DECORRENZA = rdr["DATA_DECORRENZA"].ToString();
                                //details.DATA_LETTERA = rdr["DATA_LETTERA"].ToString();
                                details.DATA_LETTERA = rdr["DATA_LETTERA"] == DBNull.Value ? null : Convert.ToDateTime(rdr["DATA_LETTERA"]).ToString("dd/MM/yyyy");
                                //details.DATA_LETTERA = Convert.ToDateTime(rdr["DATA_LETTERA"]).ToString("dd/MM/yyyy");

                                details.COEF_SEDE      = rdr["COEF_SEDE"].ToString();
                                details.PERC_DISAGIO   = rdr["PERC_DISAGIO"].ToString();
                                details.PERC_SPETTANTE = rdr["PERC_SPETTANTE"].ToString();
                                details.PERC_CONIUGE   = rdr["PERC_CONIUGE"].ToString();
                                details.PENSIONE       = rdr["PENSIONE"].ToString();
                                details.N_FIGLI        = rdr["N_FIGLI"].ToString();
                                details.TFR            = rdr["TFR"].ToString();
                                details.DESCR          = rdr["DESCR"].ToString();
                                details.INDENNITA      = rdr["INDENNITA"].ToString();
                                details.ORD1           = rdr["ord1"].ToString();
                                details.ORD2           = rdr["ord2"].ToString();
                                details.ORD3           = rdr["ord3"].ToString();
                                model.Add(details);
                            }
                        }
                    }
                }

                return(PartialView("StoriaDipendente", model));
            }
        }
        // Presenze Livelli in servizio all' Estero
        public ActionResult PresenzeLivelli(string codicequalifica = "", string V_DATA = "", string V_DATA1 = "")
        {
            // Combo Qualifiche
            //Select Distinct IBS_DESCRIZIONE From INDENNITABASE Order By IBS_DESCRIZIONE

            ViewBag.ListaDipendentiEsteroLivello = new List <SelectListItem>();
            List <DipEsteroLivelloModel> lcm   = new List <DipEsteroLivelloModel>();
            List <SelectListItem>        lr    = new List <SelectListItem>();
            List <Stp_Presenze_Livelli>  lsd   = new List <Stp_Presenze_Livelli>();
            List <Stp_Presenze_Livelli>  model = new List <Stp_Presenze_Livelli>();

            lcm = Dipendenti.GetAllQualifiche().ToList();

            if (lcm != null && lcm.Any())
            {
                foreach (var item in lcm)
                {
                    SelectListItem r = new SelectListItem()
                    {
                        Text  = item.qualifica,
                        Value = item.codicequalifica
                    };

                    lr.Add(r);
                }
                if (codicequalifica == string.Empty)
                {
                    //lr.First().Selected = true;
                    lr.First().Value = "";
                    codicequalifica = lr.First().Value;
                }
                else
                {
                    var lvr = lr.Where(a => a.Value == codicequalifica);
                    if (lvr != null && lvr.Count() > 0)
                    {
                        var r = lvr.First();
                        r.Selected = true;
                    }
                }


                ViewBag.ListaDipendentiEsteroLivello = lr;
            }

            using (var cn = new OracleConnection(ConfigurationManager.ConnectionStrings["DBISESTOR"].ConnectionString))
            {
                // Insert into ISE_STP_LIVELLIESTERI
                //String Sql = "Select distinct CODQUALIFICA, QUALIFICA, NOMINATIVO, MATRICOLA, SEDE, DT_TRASFERIMENTO, DT_RIENTRO, DT_DECORRENZA From ISE_STP_LIVELLIESTERI Order By QUALIFICA, NOMINATIVO";
                //string Data_Oracle = VDATA;

                if (V_DATA == "")
                {
                    V_DATA = "01/01/" + DateTime.Now.Year;
                }


                String Sql = "Select Distinct IES_COD_QUALIFICA, ";
                Sql += "IBS_DESCRIZIONE, ";
                Sql += "IES_MATRICOLA, ";
                Sql += "IES_DT_DECORRENZA, ";
                Sql += "AND_COGNOME || ' ' || AND_NOME NOMINATIVO, ";
                Sql += "SED_DESCRIZIONE, ";
                Sql += "IES_DT_TRASFERIMENTO, ";
                Sql += "TRA_DT_FIN_TRASFERIMENTO, ";
                Sql += "IES_PROG_TRASFERIMENTO, ";
                Sql += "IES_PROG_MOVIMENTO ";
                Sql += "From INDESTERA T1, ";
                Sql += "SEDIESTERE, ";
                Sql += "INDENNITABASE, ";
                Sql += "ANADIPE, ";
                Sql += "TRASFERIMENTO, ";
                Sql += "(Select A.IES_MATRICOLA MATR, Max(A.IES_DT_DECORRENZA) DATAM ";
                Sql += "From INDESTERA A, INDESTERA B ";
                Sql += "Where A.IES_MATRICOLA = B.IES_MATRICOLA ";
                Sql += "And A.IES_PROG_TRASFERIMENTO = B.IES_PROG_TRASFERIMENTO ";
                Sql += "And A.IES_DT_DECORRENZA <= To_Date ('" + V_DATA + "', 'DD-MM-YYYY')  ";
                Sql += "GROUP BY A.IES_MATRICOLA) MAXDATA ";
                Sql += "Where(IES_DT_TRASFERIMENTO <= To_Date ('" + V_DATA1 + "','DD-MM-YYYY')) ";
                Sql += "And (TRA_DT_FIN_TRASFERIMENTO Is Null Or ";
                Sql += "To_Date (TRA_DT_FIN_TRASFERIMENTO) > ";
                Sql += "To_Date( '" + V_DATA + "', 'DD-MM-YYYY')) ";
                Sql += "And MAXDATA.MATR(+) = IES_MATRICOLA ";
                Sql += "And (IES_DT_DECORRENZA > To_Date('" + V_DATA + "', 'DD-MM-YYYY') Or ";
                Sql += "IES_DT_DECORRENZA = MAXDATA.DATAM) ";
                Sql += "And IES_FLAG_RICALCOLATO Is Null ";
                Sql += "And IES_COD_QUALIFICA = IBS_COD_QUALIFICA ";
                Sql += "And IES_MATRICOLA = AND_MATRICOLA ";
                Sql += "And IES_COD_SEDE = SED_COD_SEDE ";
                Sql += "And IES_MATRICOLA = TRA_MATRICOLA ";
                Sql += "And IES_PROG_TRASFERIMENTO = TRA_PROG_TRASFERIMENTO ";
                if (codicequalifica != "")
                {
                    Sql += "And IES_COD_QUALIFICA = :codqualifica ";
                }
                //Sql += "And IBS_DESCRIZIONE = 'DIRIGENTE' ";
                Sql += "Order By IES_MATRICOLA, ";
                Sql += "IES_PROG_TRASFERIMENTO Desc, ";
                Sql += "IES_DT_DECORRENZA Desc, ";
                Sql += "IES_PROG_MOVIMENTO Desc ";

                using (OracleCommand cmd = new OracleCommand())
                {
                    cmd.Connection  = cn;
                    cmd.CommandText = Sql;
                    cmd.Parameters.Add("codqualifica", codicequalifica);
                    cmd.Connection.Open();

                    using (OracleDataReader rdr = cmd.ExecuteReader())
                    {
                        if (rdr.HasRows)
                        {
                            while (rdr.Read())
                            {
                                var details = new Stp_Presenze_Livelli();
                                details.codQualifica = rdr["IES_COD_QUALIFICA"].ToString();
                                details.qualifica    = rdr["IBS_DESCRIZIONE"].ToString();
                                details.nominativo   = rdr["NOMINATIVO"].ToString();
                                details.matricola    = rdr["IES_MATRICOLA"].ToString();
                                details.sede         = rdr["SED_DESCRIZIONE"].ToString();
                                //details.dt_Trasferimento = Convert.ToDateTime(rdr["IES_DT_TRASFERIMENTO"]).ToString("dd/MM/yyyy");
                                details.dt_Trasferimento = rdr["IES_DT_TRASFERIMENTO"] == DBNull.Value ? null : Convert.ToDateTime(rdr["IES_DT_TRASFERIMENTO"]).ToString("dd/MM/yyyy");
                                //details.dt_Rientro = Convert.ToDateTime(rdr["TRA_DT_FIN_TRASFERIMENTO"]).ToString("dd/MM/yyyy");
                                details.dt_Rientro = rdr["TRA_DT_FIN_TRASFERIMENTO"] == DBNull.Value ? null : Convert.ToDateTime(rdr["TRA_DT_FIN_TRASFERIMENTO"]).ToString("dd/MM/yyyy");
                                //details.dt_Decorrenza = Convert.ToDateTime(rdr["IES_DT_DECORRENZA"]).ToString("dd/MM/yyyy");
                                details.dt_Decorrenza       = rdr["IES_DT_DECORRENZA"] == DBNull.Value ? null : Convert.ToDateTime(rdr["IES_DT_DECORRENZA"]).ToString("dd/MM/yyyy");
                                details.progr_trasferimento = rdr["IES_PROG_TRASFERIMENTO"].ToString();
                                details.progr_movimento     = rdr["IES_PROG_MOVIMENTO"].ToString();
                                model.Add(details);
                            }
                        }
                    }
                }

                return(PartialView("PresenzeLivelli", model));
            }
        }