public JsonResult ConfermaAnnullaRichiestaTEPartenza(decimal idTrasportoEffettiPartenza, string msg)
        {
            string errore = "";

            try
            {
                using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                {
                    decimal idAttivazione_notificata = dtte.GetUltimaAttivazioneTEPartenza(idTrasportoEffettiPartenza).IDATEPARTENZA;

                    dtte.AnnullaRichiestaTrasportoEffettiPartenza(idAttivazione_notificata, msg);
                }
            }
            catch (Exception ex)
            {
                errore = ex.Message;
            }

            return
                (Json(
                     new
            {
                err = errore
            }));
        }
        public JsonResult ConfermaAttivaRichiestaTERientro(decimal idTERientro)
        {
            string errore = "";

            try
            {
                using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                {
                    decimal idAttivazione = dtte.GetUltimaAttivazioneTERientro(idTERientro).IDATERIENTRO;

                    dtte.AttivaRichiestaTERientro(idAttivazione);
                }
            }
            catch (Exception ex)
            {
                errore = ex.Message;
            }

            return
                (Json(
                     new
            {
                err = errore
            }));
        }
        public ActionResult TabDocumentiTERientroInseriti(decimal idTERientro, decimal idTipoDocumento)
        {
            List <VariazioneDocumentiModel> ldm = new List <VariazioneDocumentiModel>();

            string DescrizioneTER = "";

            try
            {
                using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                {
                    ldm = dtte.GetDocumentiTERientro(idTERientro, idTipoDocumento);
                }


                using (dtDocumenti dtd = new dtDocumenti())
                {
                    DescrizioneTER = dtd.GetDescrizioneTipoDocumentoByIdTipoDocumento(idTipoDocumento);
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
            ViewData.Add("DescrizioneTER", DescrizioneTER);
            ViewData.Add("idTipoDocumento", idTipoDocumento);
            ViewData.Add("idTERientro", idTERientro);

            return(PartialView(ldm));
        }
        public ActionResult TERientro(decimal idTrasferimento)
        {
            using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
            {
                ViewData.Add("idTERientro", idTrasferimento);
                ViewData.Add("idTrasferimento", idTrasferimento);

                return(PartialView());
            }
        }
        public ActionResult GestioneRinunciaTERientro(decimal idTERientro)
        {
            RinunciaTERientroModel rterm = new RinunciaTERientroModel();
            bool soloLettura             = false;

            try
            {
                using (ModelDBISE db = new ModelDBISE())
                {
                    using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                    {
                        using (dtTrasferimento dtt = new dtTrasferimento())
                        {
                            var ater = dtte.GetUltimaAttivazioneTERientro(idTERientro);
                            if (ater.RICHIESTATRASPORTOEFFETTI == true || ater.IDANTICIPOSALDOTE == (decimal)EnumTipoAnticipoSaldoTE.Saldo)
                            {
                                soloLettura = true;
                            }

                            rterm = dtte.GetRinunciaTERientro(ater.IDATERIENTRO, db);

                            EnumStatoTraferimento statoTrasferimento = 0;
                            var t = dtt.GetTrasferimentoByIdTERientro(idTERientro);
                            statoTrasferimento = t.idStatoTrasferimento;
                            if (statoTrasferimento == EnumStatoTraferimento.Annullato || statoTrasferimento == EnumStatoTraferimento.Attivo)
                            {
                                soloLettura = true;
                            }

                            var n_att = dtte.GetNumAttivazioniTERientro(idTERientro);

                            if (n_att > 0)
                            {
                                soloLettura = true;
                            }

                            ViewData.Add("soloLettura", soloLettura);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }

            return(PartialView(rterm));
        }
 public JsonResult AggiornaRinunciaTERientro(decimal idATERientro)
 {
     try
     {
         using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
         {
             dtte.Aggiorna_RinunciaTERientro(idATERientro);
         }
     }
     catch (Exception ex)
     {
         return(Json(new { errore = ex.Message, msg = "" }));
     }
     return(Json(new { errore = "", msg = "Aggiornamento eseguito correttamente." }));
 }
        public JsonResult VerificaTERientroSaldo(decimal idTrasferimento)
        {
            ViewData["idTrasferimento"] = idTrasferimento;
            decimal tmp = 0;

            try
            {
                if (idTrasferimento <= 0)
                {
                    throw new Exception("Trasferimento non valorizzato");
                }
                using (dtTrasferimento dtt = new dtTrasferimento())
                {
                    using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                    {
                        TrasferimentoModel trm = dtt.GetTrasferimentoById(idTrasferimento);
                        if (trm != null)
                        {
                            if (trm.idStatoTrasferimento == EnumStatoTraferimento.Attivo || trm.idStatoTrasferimento == EnumStatoTraferimento.Terminato)
                            {
                                using (ModelDBISE db = new ModelDBISE())
                                {
                                    var t         = dtt.GetTrasferimento(idTrasferimento, db);
                                    var TeRientro = t.TERIENTRO;
                                    var att       = dtte.GetUltimaAttivazioneTERientro(TeRientro.IDTERIENTRO);

                                    if (att.IDATERIENTRO > 0 && att.ATTIVAZIONETRASPORTOEFFETTI && att.IDANTICIPOSALDOTE == (decimal)EnumTipoAnticipoSaldoTE.Anticipo)
                                    {
                                        tmp = 1;
                                    }
                                }
                            }
                        }
                    }
                }
                return(Json(new { VerificaTERientroSaldo = tmp }));
            }
            catch (Exception ex)
            {
                return(Json(new { err = ex.Message }));
            }
        }
        public JsonResult GestionePulsantiNotificaAttivaAnnullaTERientro(decimal idTERientro)
        {
            bool   amministratore = false;
            string errore         = "";
            bool   richiestaTER   = false;
            bool   attivazioneTER = false;
            bool   DocContributo  = false;
            bool   trasfAnnullato = false;
            bool   rinunciaTER    = false;

            try
            {
                amministratore = Utility.Amministratore();

                using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                {
                    dtte.SituazioneTERientro(idTERientro,
                                             out richiestaTER,
                                             out attivazioneTER,
                                             out DocContributo,
                                             out trasfAnnullato,
                                             out rinunciaTER);
                }
            }
            catch (Exception ex)
            {
                errore = ex.Message;
            }

            return
                (Json(
                     new
            {
                admin = amministratore,
                richiestaTER = richiestaTER,
                attivazioneTER = attivazioneTER,
                DocContributo = DocContributo,
                trasfAnnullato = trasfAnnullato,
                rinunciaTER = rinunciaTER,
                err = errore
            }));
        }
        public JsonResult EliminaDocumentoTERientro(decimal idDocumento)
        {
            using (ModelDBISE db = new ModelDBISE())
            {
                db.Database.BeginTransaction();

                try
                {
                    using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                    {
                        dtte.DeleteDocumentoTER(idDocumento);
                    }
                    db.Database.CurrentTransaction.Commit();
                    return(Json(new { msg = "Il documento relativo al trasporto effetti (rientro) è stato eliminato." }));
                }
                catch (Exception ex)
                {
                    db.Database.CurrentTransaction.Rollback();
                    return(Json(new { err = ex.Message }));
                }
            }
        }
        public JsonResult SalvaDocumentoTERientro(decimal idTipoDocumento, decimal idTERientro)
        {
            using (ModelDBISE db = new ModelDBISE())
            {
                try
                {
                    db.Database.BeginTransaction();

                    foreach (string item in Request.Files)
                    {
                        HttpPostedFileBase file = Request.Files[item] as HttpPostedFileBase;

                        using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                        {
                            using (dtDocumenti dtd = new dtDocumenti())
                            {
                                DocumentiModel dm                      = new DocumentiModel();
                                bool           esisteFile              = false;
                                bool           gestisceEstensioni      = false;
                                bool           dimensioneConsentita    = false;
                                string         dimensioneMaxConsentita = string.Empty;

                                PreSetDocumentoTERientro(file, out dm, out esisteFile, out gestisceEstensioni,
                                                         out dimensioneConsentita, out dimensioneMaxConsentita, idTipoDocumento);

                                if (esisteFile)
                                {
                                    if (gestisceEstensioni == false)
                                    {
                                        throw new Exception(
                                                  "Il documento selezionato non è nel formato consentito. Il formato supportato è: pdf.");
                                    }

                                    if (dimensioneConsentita)
                                    {
                                        dtte.SetDocumentoTERientro(ref dm, idTERientro, db, idTipoDocumento);
                                    }
                                    else
                                    {
                                        throw new Exception(
                                                  "Il documento selezionato supera la dimensione massima consentita (" +
                                                  dimensioneMaxConsentita + " Mb).");
                                    }
                                }
                                else
                                {
                                    throw new Exception("Il documento è obbligatorio.");
                                }
                            }
                        }
                    }
                    db.Database.CurrentTransaction.Commit();
                    return(Json(new { }));
                }
                catch (Exception ex)
                {
                    db.Database.CurrentTransaction.Rollback();
                    return(Json(new { error = ex.Message }));
                };
            }
        }
        public ActionResult TrasportoEffettiPartenza(decimal idTrasportoEffettiPartenza)
        {
            try
            {
                using (ModelDBISE db = new ModelDBISE())
                {
                    using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                    {
                        using (dtTrasferimento dtt = new dtTrasferimento())
                        {
                            bool richiestaTE        = false;
                            bool attivazioneTE      = false;
                            bool DocContributo      = false;
                            bool trasfAnnullato     = false;
                            bool rinunciaTEPartenza = false;

                            TrasportoEffettiPartenzaModel tepm = new TrasportoEffettiPartenzaModel();

                            var atep = dtte.GetUltimaAttivazioneTEPartenza(idTrasportoEffettiPartenza);

                            dtte.SituazioneTEPartenza(idTrasportoEffettiPartenza,
                                                      out richiestaTE, out attivazioneTE,
                                                      out DocContributo,
                                                      out trasfAnnullato, out rinunciaTEPartenza);

                            var tm = dtt.GetTrasferimentoByIdTEPartenza(idTrasportoEffettiPartenza);

                            var t = dtt.GetTrasferimento(tm.idTrasferimento, db);

                            //legge indennita PS su TEORICI
                            var lteorici = t.TEORICI.Where(x =>
                                                           x.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe &&
                                                           //x.ELABORATO &&
                                                           x.DIRETTO == false &&
                                                           x.IDVOCI == (decimal)EnumVociCedolino.Trasp_Mass_Partenza_Rientro_162_131 &&
                                                           x.INSERIMENTOMANUALE == false &&
                                                           x.ANNULLATO == false &&
                                                           x.ELABTRASPEFFETTI.CONGUAGLIO == false &&
                                                           x.ELABTRASPEFFETTI.ANTICIPO &&
                                                           x.ELABTRASPEFFETTI.IDTEPARTENZA > 0 &&
                                                           x.ANNORIFERIMENTO == t.DATAPARTENZA.Year &&
                                                           x.MESERIFERIMENTO == t.DATAPARTENZA.Month)
                                           .ToList();

                            decimal indennitaPS            = 0;
                            decimal percentualeFKMPartenza = 0;
                            decimal contributoLordo        = 0;
                            decimal percentualeAnticipoTE  = 0;
                            if (lteorici?.Any() ?? false)
                            {
                                var teorici = lteorici.First();
                                indennitaPS            = teorici.IMPORTOLORDO;
                                percentualeFKMPartenza = teorici.ELABTRASPEFFETTI.PERCENTUALEFK;
                                contributoLordo        = indennitaPS * percentualeFKMPartenza / 100;
                                percentualeAnticipoTE  = teorici.ELABTRASPEFFETTI.PERCENTUALEANTICIPOSALDO;
                            }
                            else
                            {
                                CalcoliIndennita ci = new CalcoliIndennita(tm.idTrasferimento, tm.dataPartenza);

                                indennitaPS            = ci.IndennitaSistemazioneLorda;
                                percentualeFKMPartenza = ci.PercentualeFKMPartenza;
                                //contributoLordo = ci.TotaleContributoOmnicomprensivoPartenza;
                                contributoLordo       = indennitaPS * percentualeFKMPartenza / 100;
                                percentualeAnticipoTE = dtte.GetPercentualeAnticipoTEPartenza(idTrasportoEffettiPartenza, (decimal)EnumTipoAnticipoTE.Partenza).PERCENTUALE;
                            }



                            tepm.indennitaPrimaSistemazione = Math.Round(indennitaPS, 2);
                            tepm.percKM          = percentualeFKMPartenza;
                            tepm.contributoLordo = Math.Round(contributoLordo, 2);
                            tepm.percAnticipo    = percentualeAnticipoTE;
                            tepm.anticipo        = Math.Round(tepm.percAnticipo * tepm.contributoLordo / 100, 2);

                            ViewData.Add("rinunciaTEPartenza", rinunciaTEPartenza);
                            ViewData.Add("richiestaTE", richiestaTE);
                            ViewData.Add("attivazioneTE", attivazioneTE);
                            ViewData.Add("DocContributo", DocContributo);
                            ViewData.Add("idTrasportoEffettiPartenza", idTrasportoEffettiPartenza);

                            return(PartialView(tepm));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
        }
        public ActionResult ElencoDocumentiTERientro(decimal idTipoDocumento, decimal idTERientro)
        {
            try
            {
                string  DescrizioneTER          = "";
                bool    richiestaTERientro      = false;
                bool    attivazioneTERientro    = false;
                decimal NumAttivazioniTERientro = 0;
                decimal idStatoTrasferimento    = 0;
                bool    rinunciaTERientro       = false;

                using (dtTrasferimento dtt = new dtTrasferimento())
                {
                    var t = dtt.GetTrasferimentoByIdTERientro(idTERientro);
                    idStatoTrasferimento = (decimal)t.idStatoTrasferimento;
                }

                using (dtDocumenti dtd = new dtDocumenti())
                {
                    DescrizioneTER = dtd.GetDescrizioneTipoDocumentoByIdTipoDocumento(idTipoDocumento);
                }

                using (dtTrasportoEffetti dtte = new dtTrasportoEffetti())
                {
                    var ater = dtte.GetUltimaAttivazioneTERientro(idTERientro);
                    if (ater.RICHIESTATRASPORTOEFFETTI && ater.ATTIVAZIONETRASPORTOEFFETTI == false)
                    {
                        richiestaTERientro = true;
                    }
                    if (ater.RICHIESTATRASPORTOEFFETTI && ater.ATTIVAZIONETRASPORTOEFFETTI)
                    {
                        attivazioneTERientro = true;
                        richiestaTERientro   = true;
                    }

                    using (ModelDBISE db = new ModelDBISE())
                    {
                        var rter = dtte.GetRinunciaTERientro(ater.IDATERIENTRO, db);
                        if (rter.idATERientro > 0)
                        {
                            rinunciaTERientro = rter.rinunciaTE;
                        }
                    }

                    NumAttivazioniTERientro = dtte.GetNumAttivazioniTERientro(idTERientro);
                }


                ViewData.Add("DescrizioneTER", DescrizioneTER);
                ViewData.Add("idTipoDocumento", idTipoDocumento);
                ViewData.Add("idTERientro", idTERientro);
                ViewData.Add("idStatoTrasferimento", idStatoTrasferimento);
                ViewData.Add("richiestaTERientro", richiestaTERientro);
                ViewData.Add("attivazioneTERientro", attivazioneTERientro);
                ViewData.Add("NumAttivazioniTERientro", NumAttivazioniTERientro);
                ViewData.Add("rinunciaTERientro", rinunciaTERientro);


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