Пример #1
0
        public AnticipiViewModel GetAnticipi(decimal idAttivitaAnticipi, ModelDBISE db)
        {
            try
            {
                AnticipiViewModel avm = new AnticipiViewModel();
                ANTICIPI          a   = new ANTICIPI();

                var t = db.ATTIVITAANTICIPI.Find(idAttivitaAnticipi).PRIMASITEMAZIONE.TRASFERIMENTO;
                var idTrasferimento = t.IDTRASFERIMENTO;

                using (CalcoliIndennita ci = new CalcoliIndennita(idTrasferimento, t.DATAPARTENZA))
                {
                    //verifica se è l'importo è stato gia pagato

                    var lteorici = t.TEORICI.Where(x =>
                                                   x.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità &&
                                                   //x.ELABORATO &&
                                                   x.DIRETTO &&
                                                   x.IDVOCI == (decimal)EnumVociContabili.Ind_Prima_Sist_IPS &&
                                                   x.INSERIMENTOMANUALE == false &&
                                                   x.ANNULLATO == false &&
                                                   x.ELABINDSISTEMAZIONE.CONGUAGLIO == false &&
                                                   x.ELABINDSISTEMAZIONE.ANTICIPO &&
                                                   x.ANNORIFERIMENTO == t.DATAPARTENZA.Year &&
                                                   x.MESERIFERIMENTO == t.DATAPARTENZA.Month)
                                   .ToList();

                    decimal importoPrevisto = 0;
                    if (lteorici?.Any() ?? false)
                    {
                        var teorici = lteorici.First();
                        importoPrevisto = teorici.IMPORTOLORDO;
                    }
                    else
                    {
                        importoPrevisto = Math.Round(ci.IndennitaSistemazioneAnticipabileLorda, 2);
                    }

                    var al = db.ANTICIPI.Where(x => x.IDATTIVITAANTICIPI == idAttivitaAnticipi).ToList();

                    if (al?.Any() ?? false)
                    {
                        a = al.First();

                        avm = new AnticipiViewModel()
                        {
                            idAttivitaAnticipi           = a.IDATTIVITAANTICIPI,
                            idTipologiaAnticipi          = a.IDTIPOLOGIAANTICIPI,
                            dataAggiornamento            = a.DATAAGGIORNAMENTO,
                            annullato                    = a.ANNULLATO,
                            ImportoPrevisto              = importoPrevisto,
                            PercentualeAnticipoRichiesto = a.PERCENTUALEANTICIPO
                        };
                    }
                    else
                    {
                        a = this.CreaAnticipi(idAttivitaAnticipi, db);

                        var new_avm = new AnticipiViewModel()
                        {
                            idAttivitaAnticipi           = a.IDATTIVITAANTICIPI,
                            idTipologiaAnticipi          = a.IDTIPOLOGIAANTICIPI,
                            dataAggiornamento            = a.DATAAGGIORNAMENTO,
                            annullato                    = a.ANNULLATO,
                            ImportoPrevisto              = importoPrevisto,
                            PercentualeAnticipoRichiesto = a.PERCENTUALEANTICIPO
                        };

                        avm = new_avm;
                    }
                }

                return(avm);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        public ActionResult AttivitaAnticipi(decimal idPrimaSistemazione)
        {
            AnticipiViewModel avm = new AnticipiViewModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                db.Database.BeginTransaction();

                try
                {
                    using (dtAnticipi dta = new dtAnticipi())
                    {
                        using (dtTrasferimento dtt = new dtTrasferimento())
                        {
                            bool soloLettura = false;

                            AttivitaAnticipiModel aam = dta.GetUltimaAttivitaAnticipi(idPrimaSistemazione, db);

                            var idAttivitaAnticipi = aam.idAttivitaAnticipi;

                            if (aam.notificaRichiestaAnticipi)
                            {
                                soloLettura = true;
                            }

                            avm = dta.GetAnticipi(idAttivitaAnticipi, db);

                            RinunciaAnticipiModel ram = dta.GetRinunciaAnticipi(idAttivitaAnticipi, db);
                            aam.RinunciaAnticipi = ram;

                            if (ram.rinunciaAnticipi)
                            {
                                soloLettura                      = true;
                                avm.percentualeAnticipo          = 0;
                                avm.PercentualeAnticipoRichiesto = 0;
                            }

                            var t = dtt.GetTrasferimentoByIdPrimaSistemazione(idPrimaSistemazione);
                            if (t.idStatoTrasferimento == EnumStatoTraferimento.Annullato || t.idStatoTrasferimento == EnumStatoTraferimento.Attivo)
                            {
                                soloLettura = true;
                            }


                            decimal NumAttivazioni = dta.GetNumAttivazioniAnticipi(idPrimaSistemazione);

                            ViewData.Add("NumAttivazioni", NumAttivazioni);
                            ViewData.Add("rinunciaAnticipi", ram.rinunciaAnticipi);
                            ViewData.Add("soloLettura", soloLettura);
                            ViewData.Add("idAttivitaAnticipi", idAttivitaAnticipi);
                        }
                    }

                    db.Database.CurrentTransaction.Commit();
                }
                catch (Exception ex)
                {
                    db.Database.CurrentTransaction.Rollback();
                    return(PartialView("ErrorPartial", new MsgErr()
                    {
                        msg = ex.Message
                    }));
                }
            }

            return(PartialView(avm));
        }