Exemple #1
0
 public RptCostiCoanModel SetCostiCoan(int matricola,
                                       string cognome,
                                       string nome,
                                       string descLivello,
                                       string ufficio,
                                       decimal idVoci,
                                       decimal importo,
                                       ModelDBISE db)
 {
     try
     {
         using (dtStatistiche dts = new dtStatistiche())
         {
             RptCostiCoanModel rptccm = new RptCostiCoanModel()
             {
                 Matricola   = matricola,
                 Nominativo  = cognome + " " + nome,
                 Livello     = descLivello,
                 Ufficio     = ufficio,
                 Descrizione = dts.GetDescrizioneVoci(idVoci, db),
                 Importo     = importo
             };
             return(rptccm);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #2
0
 public RptSpeseAvvicendamentoNewModel SetSpeseAvvicendamento(
     int matricola,
     string cognome,
     string nome,
     string descLivello,
     string ufficio,
     decimal idVoci,
     string dataPartenza,
     decimal importo,
     ModelDBISE db)
 {
     try
     {
         using (dtStatistiche dts = new dtStatistiche())
         {
             RptSpeseAvvicendamentoNewModel rptsam = new RptSpeseAvvicendamentoNewModel()
             {
                 Matricola    = matricola,
                 Nominativo   = cognome + " " + nome,
                 Livello      = descLivello,
                 Ufficio      = ufficio,
                 DataPartenza = dataPartenza,
                 Descrizione  = dts.GetDescrizioneVoci(idVoci, db),
                 Importo      = importo
             };
             return(rptsam);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public List <RptRiepilogoGeneraleModel> GetRiepilogoGenerale(decimal MeseDa, decimal AnnoDa, decimal MeseA, decimal AnnoA, ModelDBISE db)
        {
            try
            {
                List <RptRiepilogoGeneraleModel> lrptrgm = new List <RptRiepilogoGeneraleModel>();

                using (dtTrasferimento dtt = new dtTrasferimento())
                {
                    using (dtStatistiche dts = new dtStatistiche())
                    {
                        string strMeseDa = MeseDa.ToString().PadLeft(2, Convert.ToChar("0"));
                        string strMeseA  = MeseA.ToString().PadLeft(2, Convert.ToChar("0"));

                        DateTime dtIni = Convert.ToDateTime("01/" + strMeseDa + "/" + AnnoDa.ToString());
                        DateTime dtFin = Utility.GetDtFineMese(Convert.ToDateTime("01/" + strMeseA + "/" + AnnoA.ToString()));

                        var annoMeseInizio = Convert.ToDecimal(AnnoDa.ToString() + MeseDa.ToString().PadLeft(2, (char)'0'));
                        var annoMeseFine   = Convert.ToDecimal(AnnoA.ToString() + MeseA.ToString().PadLeft(2, (char)'0'));

                        var ltrasf = db.TRASFERIMENTO
                                     .Where(a => a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato &&
                                            a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare &&
                                            a.DATARIENTRO >= dtIni &&
                                            a.DATAPARTENZA <= dtFin &&
                                            a.INDENNITA.LIVELLIDIPENDENTI
                                            .Any(b =>
                                                 b.ANNULLATO == false &&
                                                 b.DATAFINEVALIDITA >= dtIni &&
                                                 b.DATAINIZIOVALIDITA <= dtFin))
                                     .ToList();

                        var ndip = ltrasf.GroupBy(a => a.IDDIPENDENTE).Count();
                        var nuff = ltrasf.GroupBy(a => a.IDUFFICIO).Count();

                        #region ALTRE SPESE

                        #endregion

                        #region INDENNITA
                        var idVoci   = (decimal)EnumVociContabili.Ind_Sede_Estera;
                        var lteorici = db.TEORICI.Where(a =>
                                                        a.ELABINDENNITA.Any(b => b.ANNULLATO == false) &&
                                                        a.ANNULLATO == false &&
                                                        a.DIRETTO == false &&
                                                        a.ELABORATO == true &&
                                                        a.INSERIMENTOMANUALE == false &&
                                                        a.IDVOCI == idVoci &&
                                                        a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità)
                                       .ToList();

                        var lteorici2 = lteorici.Where(a =>
                                                       Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                          a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                       Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                          a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine
                                                       );

                        decimal importo_indennita = lteorici2.Sum(a => a.IMPORTO);
                        #endregion

                        #region MAB
                        idVoci   = (decimal)EnumVociContabili.MAB;
                        lteorici = db.TEORICI.Where(a =>
                                                    a.ELABMAB.Any(b => b.ANNULLATO == false) &&
                                                    a.ANNULLATO == false &&
                                                    a.DIRETTO == false &&
                                                    a.ELABORATO == true &&
                                                    a.INSERIMENTOMANUALE == false &&
                                                    a.IDVOCI == idVoci &&
                                                    a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità)
                                   .ToList();

                        lteorici2 = lteorici.Where(a =>
                                                   Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                      a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                   Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                      a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine);

                        decimal importo_mab = lteorici2.Sum(a => a.IMPORTO);
                        #endregion

                        #region PRIMA SISTEMAZIONE
                        idVoci   = (decimal)EnumVociCedolino.Sistemazione_Lorda_086_380;
                        lteorici = db.TEORICI.Where(a =>
                                                    a.ELABINDSISTEMAZIONE.ANNULLATO == false &&
                                                    a.ANNULLATO == false &&
                                                    a.ELABORATO == true &&
                                                    a.INSERIMENTOMANUALE == false &&
                                                    a.IDVOCI == idVoci &&
                                                    a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe)
                                   .ToList();

                        lteorici2 = lteorici.Where(a =>
                                                   Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                      a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                   Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                      a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine);

                        decimal importo_primasistemazione = lteorici2.Sum(a => a.IMPORTO);
                        #endregion

                        #region RICHIAMO
                        idVoci   = (decimal)EnumVociContabili.Ind_Richiamo_IRI;
                        lteorici = db.TEORICI.Where(a =>
                                                    a.ELABINDRICHIAMO.ANNULLATO == false &&
                                                    a.ANNULLATO == false &&
                                                    a.DIRETTO == false &&
                                                    a.ELABORATO == true &&
                                                    a.INSERIMENTOMANUALE == false &&
                                                    a.IDVOCI == idVoci &&
                                                    a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità)
                                   .ToList();

                        lteorici2 = lteorici.Where(a =>
                                                   Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                      a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                   Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                      a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine);

                        decimal importo_richiamo = lteorici2.Sum(a => a.IMPORTO);
                        #endregion

                        #region TRASPORTO EFFETTI
                        idVoci   = (decimal)EnumVociCedolino.Trasp_Mass_Partenza_Rientro_162_131;
                        lteorici = db.TEORICI.Where(a =>
                                                    a.ELABTRASPEFFETTI.ANNULLATO == false &&
                                                    a.ANNULLATO == false &&
                                                    a.DIRETTO == false &&
                                                    a.ELABORATO == true &&
                                                    a.INSERIMENTOMANUALE == false &&
                                                    a.IDVOCI == idVoci &&
                                                    a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe)
                                   .ToList();

                        lteorici2 = lteorici.Where(a =>
                                                   Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                      a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                   Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                      a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine);

                        decimal importo_TE = lteorici2.Sum(a => a.IMPORTO);
                        #endregion

                        RptRiepilogoGeneraleModel rptrgm = new RptRiepilogoGeneraleModel()
                        {
                            numUffici     = nuff,
                            numDipendenti = ndip,
                            IndPersonale  = importo_indennita,
                            IndRichiamo   = importo_richiamo,
                            IndMAB        = importo_mab,
                            IndTE         = importo_TE,
                            IndPS         = importo_primasistemazione
                        };
                        lrptrgm.Add(rptrgm);
                    }
                }
                return(lrptrgm);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #4
0
        public List <RptCostiCoanModel> GetCostiCoan(decimal MeseDa, decimal AnnoDa, decimal MeseA, decimal AnnoA, string codiceCoan, ModelDBISE db)
        {
            try
            {
                List <RptCostiCoanModel> lrptccm = new List <RptCostiCoanModel>();

                using (dtTrasferimento dtt = new dtTrasferimento())
                {
                    using (dtStatistiche dts = new dtStatistiche())
                    {
                        List <TRASFERIMENTO> lt       = new List <TRASFERIMENTO>();
                        List <TEORICI>       lteorici = new List <TEORICI>();

                        string strMeseDa = MeseDa.ToString().PadLeft(2, Convert.ToChar("0"));
                        string strMeseA  = MeseA.ToString().PadLeft(2, Convert.ToChar("0"));

                        DateTime dtIni = Convert.ToDateTime("01/" + strMeseDa + "/" + AnnoDa.ToString());
                        DateTime dtFin = Utility.GetDtFineMese(Convert.ToDateTime("01/" + strMeseA + "/" + AnnoA.ToString()));

                        string strCoan = codiceCoan;

                        #region Elenco Trasferimenti nel range in base al coan
                        if (codiceCoan.Length < 10)
                        {
                            lt = db.TRASFERIMENTO.Where(a =>
                                                        a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato &&
                                                        a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare &&
                                                        a.DATARIENTRO >= dtIni && a.DATAPARTENZA <= dtFin &&
                                                        a.IDTIPOCOAN == (decimal)EnumTipologiaCoan.Servizi_Istituzionali)
                                 .ToList();
                        }
                        else
                        {
                            lt = db.TRASFERIMENTO.Where(a =>
                                                        a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato &&
                                                        a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare &&
                                                        a.DATARIENTRO >= dtIni && a.DATAPARTENZA <= dtFin &&
                                                        a.COAN == strCoan &&
                                                        a.IDTIPOCOAN == (decimal)EnumTipologiaCoan.Servizi_Promozionali)
                                 .ToList();
                        }
                        #endregion


                        #region ciclo trasferimenti
                        foreach (var t in lt)
                        {
                            var     d         = t.DIPENDENTI;
                            var     nome      = d.NOME;
                            var     cognome   = d.COGNOME;
                            var     matricola = d.MATRICOLA;
                            var     ufficio   = t.UFFICI.DESCRIZIONEUFFICIO;
                            decimal idVoci    = 0;
                            if (matricola == 3367)
                            {
                                var a = 0;
                            }

                            #region elenco livelli x trasferimento
                            var llivdip = t.INDENNITA.LIVELLIDIPENDENTI.Where(a => a.ANNULLATO == false &&
                                                                              a.DATAFINEVALIDITA >= dtIni &&
                                                                              a.DATAINIZIOVALIDITA <= dtFin
                                                                              )
                                          .ToList();
                            #endregion

                            #region ciclo livelli
                            foreach (var livdip in llivdip)
                            {
                                var liv = livdip.LIVELLI;

                                var annoMeseInizio = Convert.ToDecimal(AnnoDa.ToString() + MeseDa.ToString().PadLeft(2, (char)'0'));
                                var annoMeseFine   = Convert.ToDecimal(AnnoA.ToString() + MeseA.ToString().PadLeft(2, (char)'0'));

                                #region INDENNITA
                                idVoci   = (decimal)EnumVociContabili.Ind_Sede_Estera;
                                lteorici = t.TEORICI.Where(a =>
                                                           a.ELABINDENNITA.Any(b => b.IDLIVELLO == livdip.IDLIVELLO) &&
                                                           a.ANNULLATO == false &&
                                                           a.DIRETTO == false &&
                                                           a.ELABORATO == true &&
                                                           a.INSERIMENTOMANUALE == false &&
                                                           a.IDVOCI == idVoci &&
                                                           a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine)
                                           .OrderBy(a => a.ANNORIFERIMENTO)
                                           .ThenBy(a => a.MESERIFERIMENTO).ToList();

                                if (lteorici?.Any() ?? false)
                                {
                                    var importo              = lteorici.Sum(a => a.IMPORTO);
                                    var descLivello          = livdip.LIVELLI.LIVELLO;
                                    RptCostiCoanModel rptccm = SetCostiCoan(matricola, cognome, nome, descLivello, ufficio, idVoci, importo, db);
                                    lrptccm.Add(rptccm);
                                }
                                #endregion

                                #region MAB
                                idVoci   = (decimal)EnumVociContabili.MAB;
                                lteorici = t.TEORICI.Where(a =>
                                                           a.ELABMAB.Any(b => b.IDLIVELLO == livdip.IDLIVELLO) &&
                                                           a.ANNULLATO == false &&
                                                           a.DIRETTO == false &&
                                                           a.ELABORATO == true &&
                                                           a.INSERIMENTOMANUALE == false &&
                                                           a.IDVOCI == idVoci &&
                                                           a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine)
                                           .OrderBy(a => a.ANNORIFERIMENTO)
                                           .ThenBy(a => a.MESERIFERIMENTO).ToList();

                                if (lteorici?.Any() ?? false)
                                {
                                    var importo              = lteorici.Sum(a => a.IMPORTO);
                                    var descLivello          = livdip.LIVELLI.LIVELLO;
                                    RptCostiCoanModel rptccm = SetCostiCoan(matricola, cognome, nome, descLivello, ufficio, idVoci, importo, db);
                                    lrptccm.Add(rptccm);
                                }
                                #endregion


                                #region PRIMA SISTEMAZIONE
                                idVoci   = (decimal)EnumVociCedolino.Sistemazione_Lorda_086_380;
                                lteorici = t.TEORICI.Where(a =>
                                                           a.ELABINDSISTEMAZIONE?.IDLIVELLO == livdip.IDLIVELLO &&
                                                           a.ANNULLATO == false &&
                                                           //a.DIRETTO == false &&
                                                           a.ELABORATO == true &&
                                                           a.INSERIMENTOMANUALE == false &&
                                                           a.IDVOCI == idVoci &&
                                                           a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine)
                                           .OrderBy(a => a.ANNORIFERIMENTO)
                                           .ThenBy(a => a.MESERIFERIMENTO).ToList();

                                if (lteorici?.Any() ?? false)
                                {
                                    var importo     = lteorici.Sum(a => a.IMPORTO);
                                    var descLivello = livdip.LIVELLI.LIVELLO;

                                    RptCostiCoanModel rptccm = SetCostiCoan(matricola, cognome, nome, descLivello, ufficio, idVoci, importo, db);
                                    lrptccm.Add(rptccm);
                                }
                                #endregion

                                #region RICHIAMO
                                idVoci   = (decimal)EnumVociContabili.Ind_Richiamo_IRI;
                                lteorici = t.TEORICI.Where(a =>
                                                           a.ELABINDRICHIAMO?.IDLIVELLO == livdip.IDLIVELLO &&
                                                           a.ANNULLATO == false &&
                                                           a.DIRETTO == false &&
                                                           a.ELABORATO == true &&
                                                           a.INSERIMENTOMANUALE == false &&
                                                           a.IDVOCI == idVoci &&
                                                           a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine)
                                           .OrderBy(a => a.ANNORIFERIMENTO)
                                           .ThenBy(a => a.MESERIFERIMENTO).ToList();

                                if (lteorici?.Any() ?? false)
                                {
                                    var importo              = lteorici.Sum(a => a.IMPORTO);
                                    var descLivello          = livdip.LIVELLI.LIVELLO;
                                    RptCostiCoanModel rptccm = SetCostiCoan(matricola, cognome, nome, descLivello, ufficio, idVoci, importo, db);
                                    lrptccm.Add(rptccm);
                                }
                                #endregion

                                #region TRASPORTO EFFETTI
                                idVoci   = (decimal)EnumVociCedolino.Trasp_Mass_Partenza_Rientro_162_131;
                                lteorici = t.TEORICI.Where(a =>
                                                           a.ELABTRASPEFFETTI?.IDLIVELLO == livdip.IDLIVELLO &&
                                                           a.ANNULLATO == false &&
                                                           a.DIRETTO == false &&
                                                           a.ELABORATO == true &&
                                                           a.INSERIMENTOMANUALE == false &&
                                                           a.IDVOCI == idVoci &&
                                                           a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine)
                                           .OrderBy(a => a.ANNORIFERIMENTO)
                                           .ThenBy(a => a.MESERIFERIMENTO).ToList();

                                if (lteorici?.Any() ?? false)
                                {
                                    var importo              = lteorici.Sum(a => a.IMPORTO);
                                    var descLivello          = livdip.LIVELLI.LIVELLO;
                                    RptCostiCoanModel rptccm = SetCostiCoan(matricola, cognome, nome, descLivello, ufficio, idVoci, importo, db);
                                    lrptccm.Add(rptccm);
                                }
                                #endregion
                            }
                            #endregion
                        }
                        #endregion
                    }
                }
                return(lrptccm);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #5
0
        public List <RptRiepilogoLivelloModel> GetRiepilogoLivello(decimal MeseDa, decimal AnnoDa, decimal MeseA, decimal AnnoA, ModelDBISE db)
        {
            try
            {
                List <RptRiepilogoLivelloModel> lrptrlm = new List <RptRiepilogoLivelloModel>();

                using (dtTrasferimento dtt = new dtTrasferimento())
                {
                    using (dtStatistiche dts = new dtStatistiche())
                    {
                        //List<TRASFERIMENTO> lt = new List<TRASFERIMENTO>();
                        //List<TEORICI> lteorici = new List<TEORICI>();

                        string strMeseDa = MeseDa.ToString().PadLeft(2, Convert.ToChar("0"));
                        string strMeseA  = MeseA.ToString().PadLeft(2, Convert.ToChar("0"));

                        DateTime dtIni = Convert.ToDateTime("01/" + strMeseDa + "/" + AnnoDa.ToString());
                        DateTime dtFin = Utility.GetDtFineMese(Convert.ToDateTime("01/" + strMeseA + "/" + AnnoA.ToString()));

                        var annoMeseInizio = Convert.ToDecimal(AnnoDa.ToString() + MeseDa.ToString().PadLeft(2, (char)'0'));
                        var annoMeseFine   = Convert.ToDecimal(AnnoA.ToString() + MeseA.ToString().PadLeft(2, (char)'0'));


                        #region COMMENTO
                        //#region Test query
                        //var lTrasf = db.TRASFERIMENTO.Where(a => (a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato && a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare) &&
                        //                                                       a.DATARIENTRO >= dtIni &&
                        //                                                       a.DATAPARTENZA <= dtFin).ToList();

                        //foreach (var t in lTrasf)
                        //{
                        //    //var lLiv = db.LIVELLI.Where(a => a.LIVELLIDIPENDENTI.Any(b => b.IDDIPENDENTE == t.IDDIPENDENTE &&
                        //    //                                                         b.ANNULLATO == false &&
                        //    //                                                         b.DATAFINEVALIDITA >= dtIni &&
                        //    //                                                         b.DATAINIZIOVALIDITA <= dtFin)).ToList();

                        //    var livdip = t.INDENNITA.LIVELLIDIPENDENTI.Where(a => a.ANNULLATO == false &&
                        //                                                             a.DATAFINEVALIDITA >= dtIni &&
                        //                                                             a.DATAINIZIOVALIDITA <= dtFin).ToList();

                        //    foreach (var ld in livdip)
                        //    {
                        //        var livello = ld.LIVELLI;
                        //        var desc = livello.LIVELLO;

                        //    }


                        //    //var nUff = db.UFFICI.Where(a => a.TRASFERIMENTO.Any(b => (b.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato &&
                        //    //                                                    b.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare) &&
                        //    //                                                    b.INDENNITA.LIVELLIDIPENDENTI.Any(c => c.ANNULLATO == false &&
                        //    //                                                                                      c.DATAFINEVALIDITA >= dtIni &&
                        //    //                                                                                      c.DATAINIZIOVALIDITA <= dtFin))).Count();


                        //}

                        //#endregion



                        //conta uffici
                        //#region Elenco Trasferimenti nel range
                        //var ltrasf = db.TRASFERIMENTO.Where(a =>
                        //                        a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato &&
                        //                        a.DATARIENTRO >= dtIni && a.DATAPARTENZA <= dtFin)
                        //                    //.GroupBy(a=>a.IDUFFICIO)
                        //                    .ToList();
                        //#endregion
                        //var sommaUff = 0;
                        #endregion


                        //#region elenco livelli
                        ////var llivdip = db.LIVELLIDIPENDENTI.Where(a => a.ANNULLATO == false &&
                        ////                                        a.DATAFINEVALIDITA >= dtIni &&
                        ////                                        a.DATAINIZIOVALIDITA <= dtFin)
                        ////                    .ToList();
                        //#endregion
                        ////var ll = db.LIVELLI.ToList();

                        var ll = db.LIVELLI.ToList();

                        foreach (var l in ll)
                        {
                            var datilivello = l.LIVELLIDIPENDENTI.Where(a => a.ANNULLATO == false &&
                                                                        a.DATAFINEVALIDITA >= dtIni &&
                                                                        a.DATAINIZIOVALIDITA <= dtFin &&
                                                                        a.IDLIVELLO == l.IDLIVELLO &&
                                                                        a.DIPENDENTI.TRASFERIMENTO
                                                                        .Any(b =>
                                                                             b.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato &&
                                                                             b.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare &&
                                                                             b.DATARIENTRO >= dtIni &&
                                                                             b.DATAPARTENZA <= dtFin)).ToList();

                            //var lTrasf2 = db.TRASFERIMENTO.Where(a => a.INDENNITA.LIVELLIDIPENDENTI.Any(b => b.ANNULLATO == false &&
                            //                                                                            b.DATAFINEVALIDITA >= dtIni &&
                            //                                                                            b.DATAINIZIOVALIDITA <= dtFin &&
                            //                                                                            b.IDLIVELLO == l.IDLIVELLO)).ToList();
                            //int nUff = lTrasf2.Count();



                            if (datilivello?.Any() ?? false)
                            {
                                var ltrasf = db.TRASFERIMENTO
                                             .Where(a => a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato &&
                                                    a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare &&
                                                    a.DATARIENTRO >= dtIni &&
                                                    a.DATAPARTENZA <= dtFin &&
                                                    a.INDENNITA.LIVELLIDIPENDENTI
                                                    .Any(b =>
                                                         b.ANNULLATO == false &&
                                                         b.DATAFINEVALIDITA >= dtIni &&
                                                         b.DATAINIZIOVALIDITA <= dtFin &&
                                                         b.IDLIVELLO == l.IDLIVELLO)).ToList();

                                var ndip = ltrasf.GroupBy(a => a.IDDIPENDENTE).Count();
                                var nuff = ltrasf.GroupBy(a => a.IDUFFICIO).Count();

                                #region ALTRE SPESE

                                #endregion

                                #region INDENNITA
                                var idVoci   = (decimal)EnumVociContabili.Ind_Sede_Estera;
                                var lteorici = db.TEORICI.Where(a =>
                                                                a.ELABINDENNITA.Any(b => b.IDLIVELLO == l.IDLIVELLO && b.ANNULLATO == false) &&
                                                                a.ANNULLATO == false &&
                                                                a.DIRETTO == false &&
                                                                a.ELABORATO == true &&
                                                                a.INSERIMENTOMANUALE == false &&
                                                                a.IDVOCI == idVoci &&
                                                                a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità)
                                               .ToList();

                                var lteorici2 = lteorici.Where(a =>
                                                               Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                                  a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                               Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                                  a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine
                                                               );

                                decimal importo_indennita = lteorici2.Sum(a => a.IMPORTO);
                                #endregion

                                #region MAB
                                idVoci   = (decimal)EnumVociContabili.MAB;
                                lteorici = db.TEORICI.Where(a =>
                                                            a.ELABMAB.Any(b => b.IDLIVELLO == l.IDLIVELLO && b.ANNULLATO == false) &&
                                                            a.ANNULLATO == false &&
                                                            a.DIRETTO == false &&
                                                            a.ELABORATO == true &&
                                                            a.INSERIMENTOMANUALE == false &&
                                                            a.IDVOCI == idVoci &&
                                                            a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità)
                                           .ToList();

                                lteorici2 = lteorici.Where(a =>
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine);

                                decimal importo_mab = lteorici2.Sum(a => a.IMPORTO);
                                #endregion

                                #region PRIMA SISTEMAZIONE
                                idVoci   = (decimal)EnumVociCedolino.Sistemazione_Lorda_086_380;
                                lteorici = db.TEORICI.Where(a =>
                                                            a.ELABINDSISTEMAZIONE.IDLIVELLO == l.IDLIVELLO &&
                                                            a.ELABINDSISTEMAZIONE.ANNULLATO == false &&
                                                            a.ANNULLATO == false &&
                                                            a.ELABORATO == true &&
                                                            a.INSERIMENTOMANUALE == false &&
                                                            a.IDVOCI == idVoci &&
                                                            a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe)
                                           .ToList();

                                lteorici2 = lteorici.Where(a =>
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine);

                                decimal importo_primasistemazione = lteorici2.Sum(a => a.IMPORTO);
                                #endregion

                                #region RICHIAMO
                                idVoci   = (decimal)EnumVociContabili.Ind_Richiamo_IRI;
                                lteorici = db.TEORICI.Where(a =>
                                                            a.ELABINDRICHIAMO.IDLIVELLO == l.IDLIVELLO &&
                                                            a.ELABINDRICHIAMO.ANNULLATO == false &&
                                                            a.ANNULLATO == false &&
                                                            a.DIRETTO == false &&
                                                            a.ELABORATO == true &&
                                                            a.INSERIMENTOMANUALE == false &&
                                                            a.IDVOCI == idVoci &&
                                                            a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità)
                                           .ToList();

                                lteorici2 = lteorici.Where(a =>
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine);

                                decimal importo_richiamo = lteorici2.Sum(a => a.IMPORTO);
                                #endregion

                                #region TRASPORTO EFFETTI
                                idVoci   = (decimal)EnumVociCedolino.Trasp_Mass_Partenza_Rientro_162_131;
                                lteorici = db.TEORICI.Where(a =>
                                                            a.ELABTRASPEFFETTI.IDLIVELLO == l.IDLIVELLO &&
                                                            a.ELABTRASPEFFETTI.ANNULLATO == false &&
                                                            a.ANNULLATO == false &&
                                                            a.DIRETTO == false &&
                                                            a.ELABORATO == true &&
                                                            a.INSERIMENTOMANUALE == false &&
                                                            a.IDVOCI == idVoci &&
                                                            a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe)
                                           .ToList();

                                lteorici2 = lteorici.Where(a =>
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) >= annoMeseInizio &&
                                                           Convert.ToDecimal((a.ANNORIFERIMENTO.ToString() +
                                                                              a.MESERIFERIMENTO.ToString().PadLeft(2, (char)'0'))) <= annoMeseFine);

                                decimal importo_TE = lteorici2.Sum(a => a.IMPORTO);
                                #endregion

                                RptRiepilogoLivelloModel rptrlm = new RptRiepilogoLivelloModel()
                                {
                                    Livello       = l.LIVELLO,
                                    descLivello   = (l.LIVELLO == "D") ? "DIRIGENTE" : l.LIVELLO,
                                    numDipendenti = ndip,
                                    numUffici     = nuff,
                                    IndPersonale  = importo_indennita,
                                    IndRichiamo   = importo_richiamo,
                                    IndMAB        = importo_mab,
                                    IndTE         = importo_TE,
                                    IndPS         = importo_primasistemazione
                                };
                                lrptrlm.Add(rptrlm);
                            }
                        }
                    }
                }
                return(lrptrlm);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #6
0
        public List <RptSpeseAvvicendamentoNewModel> GetSpeseAvvicendamento(decimal MeseDa, decimal AnnoDa, decimal MeseA, decimal AnnoA, ModelDBISE db)
        {
            try
            {
                List <RptSpeseAvvicendamentoNewModel> lrptsam = new List <RptSpeseAvvicendamentoNewModel>();

                using (dtTrasferimento dtt = new dtTrasferimento())
                {
                    using (dtStatistiche dts = new dtStatistiche())
                    {
                        List <TRASFERIMENTO> lt       = new List <TRASFERIMENTO>();
                        List <TEORICI>       lteorici = new List <TEORICI>();

                        string strMeseDa = MeseDa.ToString().PadLeft(2, Convert.ToChar("0"));
                        string strMeseA  = MeseA.ToString().PadLeft(2, Convert.ToChar("0"));

                        DateTime dtIni = Convert.ToDateTime("01/" + strMeseDa + "/" + AnnoDa.ToString());
                        DateTime dtFin = Utility.GetDtFineMese(Convert.ToDateTime("01/" + strMeseA + "/" + AnnoA.ToString()));

                        #region Elenco Trasferimenti nel range
                        lt = db.TRASFERIMENTO.Where(a =>
                                                    a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato &&
                                                    a.DATARIENTRO >= dtIni && a.DATAPARTENZA <= dtFin)
                             .ToList();

                        #endregion

                        #region ciclo trasferimenti
                        foreach (var t in lt)
                        {
                            var     d                  = t.DIPENDENTI;
                            var     nome               = d.NOME;
                            var     cognome            = d.COGNOME;
                            var     matricola          = d.MATRICOLA;
                            var     ufficio            = t.UFFICI.CODICEUFFICIO + " " + t.UFFICI.DESCRIZIONEUFFICIO;
                            string  dataPartenza       = t.DATAPARTENZA.ToShortDateString();
                            decimal idVoci             = 0;
                            decimal idTipoLiquidazione = 0;

                            #region elenco livelli x trasferimento
                            var llivdip = t.INDENNITA.LIVELLIDIPENDENTI
                                          .Where(a =>
                                                 a.ANNULLATO == false &&
                                                 a.DATAFINEVALIDITA >= dtIni &&
                                                 a.DATAINIZIOVALIDITA <= dtFin)
                                          .ToList();
                            #endregion

                            #region ciclo livelli
                            foreach (var livdip in llivdip)
                            {
                                var liv = livdip.LIVELLI;

                                var annoMeseInizio = Convert.ToDecimal(AnnoDa.ToString() + MeseDa.ToString().PadLeft(2, (char)'0'));
                                var annoMeseFine   = Convert.ToDecimal(AnnoA.ToString() + MeseA.ToString().PadLeft(2, (char)'0'));

                                #region PRIMA SISTEMAZIONE
                                idVoci             = (decimal)EnumVociCedolino.Sistemazione_Lorda_086_380;
                                idTipoLiquidazione = (decimal)EnumTipoLiquidazione.Paghe;
                                lteorici           = dts.GetIndennitaPS(t, livdip.IDLIVELLO, idVoci, idTipoLiquidazione, annoMeseInizio, annoMeseFine, db);

                                if (lteorici?.Any() ?? false)
                                {
                                    var importo     = lteorici.Sum(a => a.IMPORTO);
                                    var descLivello = livdip.LIVELLI.LIVELLO;

                                    RptSpeseAvvicendamentoNewModel rptsam = SetSpeseAvvicendamento(matricola, cognome, nome, descLivello, ufficio, idVoci, dataPartenza, importo, db);
                                    lrptsam.Add(rptsam);
                                }
                                #endregion

                                #region TRASPORTO EFFETTI PARTENZA
                                idVoci             = (decimal)EnumVociCedolino.Trasp_Mass_Partenza_Rientro_162_131;
                                idTipoLiquidazione = (decimal)EnumTipoLiquidazione.Paghe;
                                lteorici           = dts.GetIndennitaTEP(t, livdip.IDLIVELLO, idVoci, idTipoLiquidazione, annoMeseInizio, annoMeseFine, db);

                                if (lteorici?.Any() ?? false)
                                {
                                    var importo     = lteorici.Sum(a => a.IMPORTO);
                                    var descLivello = livdip.LIVELLI.LIVELLO;

                                    RptSpeseAvvicendamentoNewModel rptsam = SetSpeseAvvicendamento(matricola, cognome, nome, descLivello, ufficio, idVoci, dataPartenza, importo, db);

                                    lrptsam.Add(rptsam);
                                }
                                #endregion
                            }
                            #endregion
                        }
                        #endregion
                    }
                }
                return(lrptsam);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ActionResult RptCostiCoan(decimal meseAnnoDa, decimal meseAnnoA, string codiceCoan)
        {
            List <RptCostiCoanModel> lrpt = new List <RptCostiCoanModel>();

            try
            {
                using (ModelDBISE db = new ModelDBISE())
                {
                    var     annoMeseElabDa = db.MESEANNOELABORAZIONE.Find(meseAnnoDa);
                    decimal annoMeseDa     = Convert.ToDecimal(annoMeseElabDa.ANNO.ToString() + annoMeseElabDa.MESE.ToString().PadLeft(2, Convert.ToChar("0")));
                    decimal annoDa         = annoMeseElabDa.ANNO;
                    decimal meseDa         = annoMeseElabDa.MESE;


                    var     annoMeseElabA = db.MESEANNOELABORAZIONE.Find(meseAnnoA);
                    decimal annoMeseA     = Convert.ToDecimal(annoMeseElabA.ANNO.ToString() + annoMeseElabA.MESE.ToString().PadLeft(2, Convert.ToChar("0")));
                    decimal annoA         = annoMeseElabA.ANNO;
                    decimal meseA         = annoMeseElabA.MESE;

                    using (dtCostiCoan dtc = new dtCostiCoan())
                    {
                        lrpt = dtc.GetCostiCoan(meseDa, annoDa, meseA, annoA, codiceCoan, db).OrderBy(a => a.Nominativo).ToList();;
                    }

                    using (dtStatistiche dts = new dtStatistiche())
                    {
                        if (codiceCoan.Length < 10)
                        {
                            codiceCoan = dts.GetDescrizioneCoan(EnumTipologiaCoan.Servizi_Istituzionali, db);
                        }
                    }

                    string strMeseAnnoDa    = "";
                    string strMeseAnnoA     = "";
                    string strTotaleImporto = lrpt.Sum(a => a.Importo).ToString("#,##0.##");
                    string strDataOdierna   = DateTime.Now.ToShortDateString();

                    using (dtElaborazioni dte = new dtElaborazioni())
                    {
                        strMeseAnnoDa = CalcoloMeseAnnoElaborazione.NomeMese((EnumDescrizioneMesi)meseDa) + " " + annoDa.ToString();
                        strMeseAnnoA  = CalcoloMeseAnnoElaborazione.NomeMese((EnumDescrizioneMesi)meseA) + " " + annoA.ToString();
                    }

                    ReportViewer reportViewer = new ReportViewer();

                    reportViewer.ProcessingMode      = ProcessingMode.Local;
                    reportViewer.SizeToReportContent = true;
                    reportViewer.Width   = Unit.Percentage(100);
                    reportViewer.Height  = Unit.Percentage(100);
                    reportViewer.Visible = true;
                    reportViewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"/Areas/Statistiche/RPT/RptCostiCoan.rdlc";
                    reportViewer.LocalReport.DataSources.Clear();
                    reportViewer.LocalReport.Refresh();

                    ReportParameter[] parameterValues = new ReportParameter[]
                    {
                        new ReportParameter("paramMeseAnnoDa", strMeseAnnoDa),
                        new ReportParameter("paramMeseAnnoA", strMeseAnnoA),
                        new ReportParameter("paramCoan", codiceCoan),
                        new ReportParameter("paramTotaleImporto", strTotaleImporto),
                        new ReportParameter("paramDataOdierna", strDataOdierna)
                    };

                    reportViewer.LocalReport.SetParameters(parameterValues);
                    ReportDataSource _rsource = new ReportDataSource("dsCostiCoan", lrpt);
                    reportViewer.LocalReport.DataSources.Add(_rsource);
                    reportViewer.LocalReport.Refresh();

                    ViewBag.ReportViewer = reportViewer;
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }

            return(PartialView());
        }