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; } }
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)); }