public ActionResult AttivitaMAB(decimal idTrasferimento) { List <MABViewModel> mavml = new List <MABViewModel>(); MABViewModel mavm = new MABViewModel(); //MaggiorazioneAbitazioneModel mam = new MaggiorazioneAbitazioneModel(); MAB mab = new MAB(); PERIODOMAB pmab = new PERIODOMAB(); ATTIVAZIONEMAB am = new ATTIVAZIONEMAB(); AttivazioneMABModel amm = new AttivazioneMABModel(); ANTICIPOANNUALEMAB aa = new ANTICIPOANNUALEMAB(); CANONEMAB cm = new CANONEMAB(); using (ModelDBISE db = new ModelDBISE()) { try { db.Database.BeginTransaction(); bool soloLettura = false; bool siDati = false; EnumStatoTraferimento statoTrasferimento = 0; using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtMaggiorazioneAbitazione dtma = new dtMaggiorazioneAbitazione()) { var t = dtt.GetTrasferimentoById(idTrasferimento); amm = dtma.GetAttivazionePartenzaMAB(idTrasferimento); if (amm != null && amm.idAttivazioneMAB > 0) { if (amm.notificaRichiesta) { soloLettura = true; } } mavm.idAttivazioneMAB = amm.idAttivazioneMAB; mab = dtma.GetMABPartenza(idTrasferimento, db); pmab = dtma.GetPeriodoMABPartenza(mab.IDMAB, db); mavm.idMAB = mab.IDMAB; mavm.idPeriodoMAB = pmab.IDPERIODOMAB; mavm.rinunciaMAB = mab.RINUNCIAMAB; cm = dtma.GetCanoneMABPartenza(mab, db); aa = dtma.GetAnticipoAnnualeMABPartenza(mab, db); mavm.importo_canone = cm.IMPORTOCANONE; mavm.dataInizioMAB = pmab.DATAINIZIOMAB; mavm.dataFineMAB = pmab.DATAFINEMAB > t.dataRientro ? t.dataRientro.Value : pmab.DATAFINEMAB; if (aa.IDANTICIPOANNUALEMAB > 0) { mavm.anticipoAnnuale = aa.ANTICIPOANNUALE; } else { mavm.anticipoAnnuale = false; aa = dtma.CreaAnticipoAnnualePartenza(mavm, db); } mavm.id_Valuta = cm.IDVALUTA; using (dtValute dtv = new dtValute()) { var v = dtv.GetValutaModel(mavm.id_Valuta, db); mavm.descrizioneValuta = v.descrizioneValuta; } var lpc = dtma.GetListPagatoCondivisoMABPartenza(mavm); if (lpc.Count() > 0) { var pc = lpc.First(); mavm.canone_pagato = pc.PAGATO; mavm.canone_condiviso = pc.CONDIVISO; } mavml.Add(mavm); siDati = true; statoTrasferimento = t.idStatoTrasferimento; if (statoTrasferimento == EnumStatoTraferimento.Annullato) { soloLettura = true; } if (mab.RINUNCIAMAB) { soloLettura = true; } ViewData.Add("soloLettura", soloLettura); ViewData.Add("siDati", siDati); ViewData.Add("idAttivazioneMAB", amm.idAttivazioneMAB); ViewData.Add("idMAB", mab.IDMAB); ViewData.Add("idTrasferimento", idTrasferimento); } } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } } return(PartialView(mavml)); }