public decimal CalcolaImportoPercepito(decimal idAttivitaAnticipi, decimal percRichiesta) { try { decimal importoPercepito; using (ModelDBISE db = new ModelDBISE()) { var t = db.ATTIVITAANTICIPI.Find(idAttivitaAnticipi).PRIMASITEMAZIONE.TRASFERIMENTO; var idTrasferimento = t.IDTRASFERIMENTO; using (CalcoliIndennita ci = new CalcoliIndennita(idTrasferimento, t.DATAPARTENZA)) { 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) { importoPrevisto = lteorici.First().IMPORTOLORDO; } else { importoPrevisto = ci.IndennitaSistemazioneAnticipabileLorda; } importoPercepito = Math.Round((importoPrevisto * (percRichiesta / 100)), 2); } } return(importoPercepito); } catch (Exception ex) { throw ex; } }
public ActionResult DatiTrasferimentoDipendente(decimal idTeorico) { TrasferimentoModel tm = new TrasferimentoModel(); DatiTrasferimentoDipendenteModel dtdm = new DatiTrasferimentoDipendenteModel(); try { using (dtTrasferimento dtt = new dtTrasferimento()) { tm = dtt.GetTrasferimentoByIdTeorico(idTeorico); using (CalcoliIndennita ci = new CalcoliIndennita(tm.idTrasferimento)) { dtdm = new DatiTrasferimentoDipendenteModel() { Dipendente = tm.Dipendente.Nominativo, TipoTrasferimento = tm.TipoTrasferimento.descTipoTrasf, Ufficio = tm.Ufficio.descUfficio + " (" + tm.Ufficio.codiceUfficio + ")", DataPartenza = tm.dataPartenza.ToShortDateString(), DataRientro = tm.dataRientro.HasValue ? tm.dataRientro.Value == Convert.ToDateTime("31/12/9999") ? "In corso..." : tm.dataRientro.Value.ToShortDateString() : "In corso...", Livello = ci.Livello.LIVELLO, Ruolo = ci.RuoloUfficio.DESCRUOLO, Coan = string.IsNullOrEmpty(tm.coan) ? tm.TipoCoan.idTipoCoan == 1 ? "S.I." : "S.P." : tm.TipoCoan.descrizione + " (" + tm.coan + ")", FasciaKM_P = string.IsNullOrEmpty(ci.FasciaKM_P.KM) ? "-" : ci.FasciaKM_P.KM + " (" + ci.PercentualeFKMPartenza.ToString() + "%)", FasciaKM_R = string.IsNullOrEmpty(ci.FasciaKM_R.KM) ? "-" : ci.FasciaKM_R.KM + " (" + ci.PercentualeFKMRientro.ToString() + "%)", }; } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(PartialView(dtdm)); }
public IList <StoriaDipendenteNewModel> GetStoriaDipendenteNew(decimal Nominativo, ModelDBISE db) { List <StoriaDipendenteNewModel> rim = new List <StoriaDipendenteNewModel>(); var lDipendenti = db.DIPENDENTI.Where( a => a.MATRICOLA == Nominativo).ToList(); if (lDipendenti?.Any() ?? false) { var d = lDipendenti.First(); var ltr = d.TRASFERIMENTO.Where(a => a.IDSTATOTRASFERIMENTO == (decimal)EnumStatoTraferimento.Attivo || a.IDSTATOTRASFERIMENTO == (decimal)EnumStatoTraferimento.Terminato).OrderByDescending(a => a.IDTRASFERIMENTO).ToList(); foreach (var tr in ltr) { var dataPartenza = tr.DATAPARTENZA; var dataRientro = tr.DATARIENTRO; var lliv = d.LIVELLIDIPENDENTI.Where(a => a.ANNULLATO == false && a.DATAFINEVALIDITA >= dataPartenza && a.DATAINIZIOVALIDITA <= dataRientro) .OrderByDescending(a => a.IDLIVDIPENDENTE) .ToList(); List <DateTime> lDateVariazioni = new List <DateTime>(); if (lliv?.Any() ?? false) { foreach (var liv in lliv) { DateTime dtVar = new DateTime(); #region data variazione livello if (liv.DATAINIZIOVALIDITA < tr.DATAPARTENZA) { dtVar = tr.DATAPARTENZA; } else { dtVar = liv.DATAINIZIOVALIDITA; } #endregion var uf = tr.UFFICI; #region indennita prima sistemazione var Primaindennita = tr.PRIMASITEMAZIONE.INDENNITASISTEMAZIONE .Where(a => a.ANNULLATO == false && a.IDTIPOTRASFERIMENTO == tr.IDTIPOTRASFERIMENTO && a.DATAINIZIOVALIDITA <= tr.DATARIENTRO && a.DATAFINEVALIDITA >= tr.DATAPARTENZA) .OrderByDescending(a => a.IDINDSIST) .ToList(); if (!Primaindennita?.Any() ?? false) { throw new Exception("Errore: Indennita Base non trovata"); } //var rPrimaindennita = Primaindennita.First(); #endregion #region valuta ufficio var lvalutaufficio = uf.VALUTAUFFICIO .Where(a => a.ANNULLATO == false && a.DATAINIZIOVALIDITA <= tr.DATARIENTRO && a.DATAFINEVALIDITA >= tr.DATAPARTENZA) .OrderByDescending(a => a.DATAINIZIOVALIDITA) .ToList(); if (!lvalutaufficio?.Any() ?? false) { throw new Exception("Errore: Valuta Ufficio non trovata"); } var valutaufficio = lvalutaufficio.First(); #endregion #region Variazioni di indennità di base var ind = tr.INDENNITA; var lindennita = ind.INDENNITABASE .Where(a => a.ANNULLATO == false && a.IDLIVELLO == liv.IDLIVELLO && a.DATAINIZIOVALIDITA <= tr.DATARIENTRO && a.DATAFINEVALIDITA >= tr.DATAPARTENZA) .OrderByDescending(a => a.IDINDENNITABASE) .ToList(); if (!lindennita?.Any() ?? false) { throw new Exception("Errore: Indennita Base non trovata"); } //var indennita = lindennita.First(); foreach (var ib in lindennita) { if (ib.DATAINIZIOVALIDITA < tr.DATAPARTENZA) { dtVar = tr.DATAPARTENZA; } else { dtVar = ib.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); lDateVariazioni.Sort(); } } #endregion #region Variazioni del coefficiente di sede var lcs = uf.COEFFICIENTESEDE .Where(a => a.ANNULLATO == false && a.DATAINIZIOVALIDITA <= tr.DATARIENTRO && a.DATAFINEVALIDITA >= tr.DATAPARTENZA) .OrderBy(a => a.DATAINIZIOVALIDITA) .ToList(); if (!lcs?.Any() ?? false) { throw new Exception("Errore: Coefficente di Sede non trovata"); } //var coeff = lcoeff.First(); //var lrd = ind.COEFFICIENTESEDE // .Where(a => a.ANNULLATO == false && // a.DATAINIZIOVALIDITA <= tr.DATARIENTRO && // a.DATAFINEVALIDITA >= tr.DATAPARTENZA) // .OrderBy(a => a.DATAINIZIOVALIDITA) // .ToList(); foreach (var cs in lcs) { if (cs.DATAINIZIOVALIDITA < tr.DATAPARTENZA) { dtVar = tr.DATAPARTENZA; } else { dtVar = cs.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); lDateVariazioni.Sort(); } } #endregion #region Variazioni percentuale di disagio var lperc = uf.PERCENTUALEDISAGIO .Where(a => a.ANNULLATO == false && a.DATAINIZIOVALIDITA <= tr.DATARIENTRO && a.DATAFINEVALIDITA >= tr.DATAPARTENZA) .OrderByDescending(a => a.DATAINIZIOVALIDITA) .ToList(); if (!lperc?.Any() ?? false) { throw new Exception("Errore: Percentuale di Disagio non trovata"); } //var perc = lperc.First(); foreach (var pd in lperc) { if (pd.DATAINIZIOVALIDITA < tr.DATAPARTENZA) { dtVar = tr.DATAPARTENZA; } else { dtVar = pd.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); lDateVariazioni.Sort(); } } #endregion #region Variazioni percentuale maggiorazione familiari var mf = tr.MAGGIORAZIONIFAMILIARI; var lattivazioneMF = mf.ATTIVAZIONIMAGFAM.Where( a => a.ANNULLATO == false && a.RICHIESTAATTIVAZIONE == true && a.ATTIVAZIONEMAGFAM == true) .OrderByDescending(a => a.IDATTIVAZIONEMAGFAM).ToList(); if (lattivazioneMF?.Any() ?? false) { #region Coniuge e Pensioni var lc = mf.CONIUGE.Where(a => a.IDSTATORECORD == (decimal)EnumStatoRecord.Attivato && a.DATAINIZIOVALIDITA <= tr.DATARIENTRO && a.DATAFINEVALIDITA >= tr.DATAPARTENZA) .OrderBy(a => a.DATAINIZIOVALIDITA) .ToList(); if (lc?.Any() ?? false) { foreach (var c in lc) { if (c.DATAINIZIOVALIDITA < tr.DATAPARTENZA) { dtVar = tr.DATAPARTENZA; } else { dtVar = c.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); } var dtIni = (c.DATAINIZIOVALIDITA < tr.DATAPARTENZA) ? tr.DATAPARTENZA : c.DATAINIZIOVALIDITA; var dtFin = (c.DATAFINEVALIDITA > tr.DATARIENTRO) ? tr.DATARIENTRO : c.DATAFINEVALIDITA; var lpmc = c.PERCENTUALEMAGCONIUGE .Where(a => a.ANNULLATO == false && a.IDTIPOLOGIACONIUGE == c.IDTIPOLOGIACONIUGE && a.DATAINIZIOVALIDITA <= dtFin && a.DATAFINEVALIDITA >= dtIni) .OrderBy(a => a.DATAINIZIOVALIDITA) .ToList(); //.OrderByDescending(a => a.DATAINIZIOVALIDITA).ToList(); if (lpmc?.Any() ?? false) { foreach (var pmc in lpmc) { if (pmc.DATAINIZIOVALIDITA < dtIni) { dtVar = dtIni; } else { dtVar = pmc.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); } } } var lpensioni = c.PENSIONE .Where(a => a.IDSTATORECORD == (decimal)EnumStatoRecord.Attivato && a.NASCONDI == false && a.DATAINIZIO <= tr.DATARIENTRO && a.DATAFINE >= tr.DATAPARTENZA) .OrderBy(a => a.DATAINIZIO) .ToList(); if (lpensioni?.Any() ?? false) { foreach (var pensioni in lpensioni) { if (pensioni.DATAINIZIO < tr.DATAPARTENZA) { dtVar = tr.DATAPARTENZA; } else { dtVar = pensioni.DATAINIZIO; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); } } } } } #endregion #region Figli var lf = mf.FIGLI .Where(a => a.IDSTATORECORD == (decimal)EnumStatoRecord.Attivato && a.DATAINIZIOVALIDITA <= tr.DATARIENTRO && a.DATAFINEVALIDITA >= tr.DATAPARTENZA) .OrderBy(a => a.DATAINIZIOVALIDITA) .ToList(); if (lf?.Any() ?? false) { foreach (var f in lf) { if (f.DATAINIZIOVALIDITA < tr.DATAPARTENZA) { dtVar = tr.DATAPARTENZA; } else { dtVar = f.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); } var dtIni = (f.DATAINIZIOVALIDITA < tr.DATAPARTENZA) ? tr.DATAPARTENZA : f.DATAINIZIOVALIDITA; var dtFin = (f.DATAFINEVALIDITA > tr.DATARIENTRO) ? tr.DATARIENTRO : f.DATAFINEVALIDITA; var lpmf = f.PERCENTUALEMAGFIGLI .Where(a => a.ANNULLATO == false && a.DATAINIZIOVALIDITA <= dtFin && a.DATAFINEVALIDITA >= dtIni) .OrderBy(a => a.DATAINIZIOVALIDITA) .ToList(); if (lpmf?.Any() ?? false) { foreach (var pmf in lpmf) { if (pmf.DATAINIZIOVALIDITA < dtIni) { dtVar = dtIni; } else { dtVar = pmf.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); } } } } } #endregion } #endregion lDateVariazioni.Add(new DateTime(9999, 12, 31)); if (lDateVariazioni?.Any() ?? false) { #region cicla date variazione for (int j = 0; j < lDateVariazioni.Count; j++) { DateTime dv = lDateVariazioni[j]; if (dv < Utility.DataFineStop()) { DateTime dvSucc = lDateVariazioni[(j + 1)].AddDays(-1); using (CalcoliIndennita ci = new CalcoliIndennita(tr.IDTRASFERIMENTO, dv, db)) { #region modello StoriaDipendenteNewModel ldvm = new StoriaDipendenteNewModel() { nome = d.COGNOME + " " + d.NOME + " (" + d.MATRICOLA + ")", dataAssunzione = d.DATAASSUNZIONE, dataLettera = tr.DATALETTERA, Ufficio = uf.DESCRIZIONEUFFICIO, dataVariazione = dv, valore = ci.CoefficienteDiSede, percentuale = ci.PercentualeDisagio, IdLivello = liv.IDLIVELLO, DescLivello = liv.LIVELLI.LIVELLO, dataPartenza = tr.DATAPARTENZA, dataRientro = tr.DATARIENTRO, indennita = ci.IndennitaDiBase, ValutaUfficio = valutaufficio.VALUTE.DESCRIZIONEVALUTA, IndennitaBase = ci.IndennitaDiBase, IndennitaPersonale = ci.IndennitaPersonale, IndennitaServizio = ci.IndennitaDiServizio, PensioneConiuge = ci.PensioneConiuge, MaggiorazioniFamiliari = ci.MaggiorazioniFamiliari, PrimaSistemazione = ci.IndennitaSistemazioneLorda }; rim.Add(ldvm); #endregion } } } #endregion } } } } } return(rim); }
public IList <IndennitaServizioModel> GetIndennitaServizio2(decimal idTrasferimento) { List <IndennitaServizioModel> lism = new List <IndennitaServizioModel>(); try { using (ModelDBISE db = new ModelDBISE()) { var trasferimento = db.TRASFERIMENTO.Find(idTrasferimento); var indennita = trasferimento.INDENNITA; List <DateTime> lDateVariazioni = new List <DateTime>(); #region Lettura Variazioni di indennità di base var ll = db.TRASFERIMENTO.Find(idTrasferimento).INDENNITA.INDENNITABASE.Where( a => a.ANNULLATO == false).OrderBy(a => a.IDLIVELLO) .ThenBy(a => a.DATAINIZIOVALIDITA) .ThenBy(a => a.DATAFINEVALIDITA).ToList(); foreach (var ib in ll) { DateTime dtVar = new DateTime(); if (ib.DATAINIZIOVALIDITA < trasferimento.DATAPARTENZA) { dtVar = trasferimento.DATAPARTENZA; } else { dtVar = ib.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); } } #endregion #region Lettura Variazioni del coefficiente di sede var lrd = db.TRASFERIMENTO.Find(idTrasferimento).INDENNITA.COEFFICIENTESEDE.Where(a => a.ANNULLATO == false).OrderBy(a => a.IDCOEFFICIENTESEDE).ThenBy(a => a.DATAINIZIOVALIDITA).ThenBy(a => a.DATAFINEVALIDITA).ToList(); foreach (var cs in lrd) { DateTime dtVar = new DateTime(); if (cs.DATAINIZIOVALIDITA < trasferimento.DATAPARTENZA) { dtVar = trasferimento.DATAPARTENZA; } else { dtVar = cs.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); } } #endregion #region Lettura Variazioni percentuale di disagio var perc = db.TRASFERIMENTO.Find(idTrasferimento).INDENNITA.PERCENTUALEDISAGIO.Where(a => a.ANNULLATO == false).ToList(); foreach (var pd in perc) { DateTime dtVar = new DateTime(); if (pd.DATAINIZIOVALIDITA < trasferimento.DATAPARTENZA) { dtVar = trasferimento.DATAPARTENZA; } else { dtVar = pd.DATAINIZIOVALIDITA; } if (!lDateVariazioni.Contains(dtVar)) { lDateVariazioni.Add(dtVar); } } #endregion if (lDateVariazioni?.Any() ?? false) { lDateVariazioni = lDateVariazioni.OrderBy(a => a.Year).ThenBy(a => a.Month).ThenBy(a => a.Day).ToList(); for (int j = 0; j < lDateVariazioni.Count; j++) { DateTime dv = lDateVariazioni[j]; using (CalcoliIndennita ci = new CalcoliIndennita(trasferimento.IDTRASFERIMENTO, dv, db)) { //ELABINDENNITA ei = new ELABINDENNITA() //{ // IDTRASFINDENNITA = trasferimento.IDTRASFERIMENTO, // INDENNITABASE = ci.IndennitaDiBase, // COEFFICENTESEDE = ci.CoefficienteDiSede, // PERCENTUALEDISAGIO = ci.PercentualeDisagio, // PERCENTUALEMAGCONIUGE = ci.PercentualeMaggiorazioneConiuge, // PENSIONECONIUGE = ci.PensioneConiuge, // DATAOPERAZIONE = DateTime.Now, // ANNULLATO = false //}; // indennita.ELABINDENNITA.Add(ei); var pd = new IndennitaServizioModel { IndennitaBase = ci.IndennitaDiBase, percentuale = ci.PercentualeDisagio, valore = ci.CoefficienteDiSede, IndennitaServizio = ci.IndennitaDiServizio }; lism.Add(pd); } } } } return(lism); } catch (Exception) { throw; } }
public IList <IndennitaBaseModel> GetIndennitaPersonale(decimal idTrasferimento) { List <IndennitaBaseModel> libm = new List <IndennitaBaseModel>(); try { using (ModelDBISE db = new ModelDBISE()) { var trasferimento = db.TRASFERIMENTO.Find(idTrasferimento); var indennita = trasferimento.INDENNITA; //var ll = db.TRASFERIMENTO.Find(idTrasferimento).INDENNITA.INDENNITABASE // .Where(a => a.ANNULLATO == false) // .OrderBy(a => a.IDLIVELLO) // .ThenBy(a => a.DATAINIZIOVALIDITA) // .ThenBy(a => a.DATAFINEVALIDITA).ToList(); var ll = db.TRASFERIMENTO.Find(idTrasferimento).INDENNITA.INDENNITABASE .Where(a => a.ANNULLATO == false).ToList(); using (dtTrasferimento dttrasf = new dtTrasferimento()) { using (CalcoliIndennita ci = new CalcoliIndennita(trasferimento.IDTRASFERIMENTO)) { dipInfoTrasferimentoModel dipInfoTrasf = dttrasf.GetInfoTrasferimento(idTrasferimento); libm = (from e in ll select new IndennitaBaseModel() { idIndennitaBase = e.IDINDENNITABASE, idLivello = e.IDLIVELLO, dataInizioValidita = e.DATAINIZIOVALIDITA, dataFineValidita = e.DATAFINEVALIDITA == Utility.DataFineStop() ? new DateTime?() : e.DATAFINEVALIDITA, valore = e.VALORE, valoreResponsabile = e.VALORERESP, dataAggiornamento = e.DATAAGGIORNAMENTO, annullato = e.ANNULLATO, dipInfoTrasferimento = new dipInfoTrasferimentoModel { Decorrenza = dipInfoTrasf.Decorrenza, indennitaPersonale = dipInfoTrasf.indennitaPersonale, indennitaServizio = dipInfoTrasf.indennitaServizio, maggiorazioniFamiliari = dipInfoTrasf.maggiorazioniFamiliari }, EvoluzioneIndennita = new EvoluzioneIndennitaModel { IndennitaServizio = ci.IndennitaDiServizio, //MaggiorazioniFamiliari = ci.MaggiorazioniFamiliari, IndennitaPersonale = ci.IndennitaPersonale } }).ToList(); } } return(libm); } } catch (Exception ex) { throw ex; } }
public IList <OpDipEsteroModel> GetOpDipEsteroNew(DateTime dtRif, decimal idUfficio, ModelDBISE db) { List <OpDipEsteroModel> rim = new List <OpDipEsteroModel>(); List <TRASFERIMENTO> ltrasf = new List <TRASFERIMENTO>(); if (idUfficio > 0) { ltrasf = db.TRASFERIMENTO.Where(a => a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato && a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare && a.DATAPARTENZA <= dtRif && a.DATARIENTRO >= dtRif && a.IDUFFICIO == idUfficio).ToList(); } else { ltrasf = db.TRASFERIMENTO.Where(a => a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Annullato && a.IDSTATOTRASFERIMENTO != (decimal)EnumStatoTraferimento.Da_Attivare && a.DATAPARTENZA <= dtRif && a.DATARIENTRO >= dtRif) .ToList(); } if (ltrasf?.Any() ?? false) { foreach (var t in ltrasf) { #region Valuta Ufficio alla dataRif var lv = t.UFFICI.VALUTAUFFICIO .Where(a => a.ANNULLATO == false && a.DATAINIZIOVALIDITA <= dtRif && a.DATAFINEVALIDITA >= dtRif) .OrderBy(a => a.DATAINIZIOVALIDITA) .ToList(); if (!lv?.Any() ?? false) { throw new Exception("Errore: Valuta Ufficio non trovata"); } var rv = lv.First(); var descValuta = rv.VALUTE.DESCRIZIONEVALUTA; //var rufficio = ufficio.First(); #endregion #region livello alla dataRif var dip = t.DIPENDENTI; var llivdip = t.DIPENDENTI.LIVELLIDIPENDENTI .Where(a => a.ANNULLATO == false && a.DATAINIZIOVALIDITA <= dtRif && a.DATAFINEVALIDITA >= dtRif) .OrderByDescending(a => a.DATAINIZIOVALIDITA) .ToList(); var livdip = llivdip.First(); var descLivello = livdip.LIVELLI.LIVELLO; #endregion using (CalcoliIndennita ci = new CalcoliIndennita(t.IDTRASFERIMENTO, dtRif, db)) { OpDipEsteroModel ldvm = new OpDipEsteroModel() { sede = t.UFFICI.DESCRIZIONEUFFICIO, valuta = descValuta, matricola = t.DIPENDENTI.MATRICOLA, nominativo = t.DIPENDENTI.COGNOME + " " + t.DIPENDENTI.NOME + " (" + t.DIPENDENTI.MATRICOLA + ")", data_trasferimento = Convert.ToDateTime(t.DATAPARTENZA).ToShortDateString(), //qualifica = qualif.LIVELLI.LIVELLO, qualifica = descLivello, IndennitaPersonale = ci.IndennitaPersonale, PercMaggConiuge = ci.PercentualeMaggiorazioneConiuge, PercNumFigli = ci.PercentualeMaggiorazioneFigli, MaggConiuge = ci.MaggiorazioneConiuge, MaggFigli = ci.MaggiorazioneFigli }; rim.Add(ldvm); } } } return(rim); }
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 VariazioneTEP(decimal idTEPartenza) { try { using (ModelDBISE db = new ModelDBISE()) { using (dtVariazioneTrasportoEffetti dtvte = new dtVariazioneTrasportoEffetti()) { using (dtTrasferimento dtt = new dtTrasferimento()) { bool richiestaTE = false; bool attivazioneTE = false; bool DocAttestazione = false; bool trasfAnnullato = false; bool siAnticipo = false; bool rinunciaTE = false; decimal anticipoPercepito = 0; VariazioneTEPartenzaModel vtepm = new VariazioneTEPartenzaModel(); var atep = dtvte.GetUltimaAttivazioneTEPartenza(idTEPartenza, db); dtvte.SituazioneTEPartenza(idTEPartenza, out richiestaTE, out attivazioneTE, out DocAttestazione, out siAnticipo, out anticipoPercepito, out rinunciaTE, out trasfAnnullato); var tm = dtt.GetTrasferimentoByIdTEPartenza(idTEPartenza); 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.SALDO && x.ELABTRASPEFFETTI.IDTEPARTENZA > 0 && x.ANNORIFERIMENTO == t.DATAPARTENZA.Year && x.MESERIFERIMENTO == t.DATAPARTENZA.Month) .ToList(); decimal indennitaPS = 0; decimal percentualeFKMPartenza = 0; decimal contributoLordo = 0; if (lteorici?.Any() ?? false) { var teorici = lteorici.First(); indennitaPS = teorici.IMPORTOLORDO; percentualeFKMPartenza = teorici.ELABTRASPEFFETTI.PERCENTUALEFK; contributoLordo = indennitaPS * percentualeFKMPartenza / 100; } else { CalcoliIndennita ci = new CalcoliIndennita(tm.idTrasferimento, tm.dataPartenza); indennitaPS = ci.IndennitaSistemazioneLorda; percentualeFKMPartenza = ci.PercentualeFKMPartenza; //contributoLordo = ci.TotaleContributoOmnicomprensivoPartenza; contributoLordo = indennitaPS * percentualeFKMPartenza / 100; } vtepm.indennitaPrimaSistemazione = Math.Round(indennitaPS, 2); vtepm.percKM = percentualeFKMPartenza; vtepm.contributoLordo = Math.Round(contributoLordo, 2); vtepm.anticipoPercepito = anticipoPercepito; vtepm.saldo = Math.Round(vtepm.contributoLordo - vtepm.anticipoPercepito, 2); //se ho rinunciato imposto la form con dati a zero e blocco l'inserimento di documenti if (rinunciaTE) { siAnticipo = false; vtepm.anticipoPercepito = 0; vtepm.saldo = 0; } vtepm.siAnticipo = siAnticipo; ViewData.Add("richiestaTE", richiestaTE); ViewData.Add("rinunciaTE", rinunciaTE); ViewData.Add("attivazioneTE", attivazioneTE); ViewData.Add("DocAttestazione", DocAttestazione); ViewData.Add("idTEPartenza", idTEPartenza); return(PartialView(vtepm)); } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } }
public ActionResult TrasportoEffettiRientro(decimal idTERientro) { try { using (ModelDBISE db = new ModelDBISE()) { using (dtTrasportoEffetti dtte = new dtTrasportoEffetti()) { using (dtTrasferimento dtt = new dtTrasferimento()) { bool richiestaTER = false; bool attivazioneTER = false; bool DocContributo = false; bool trasfAnnullato = false; bool rinunciaTERientro = false; TrasportoEffettiRientroModel term = new TrasportoEffettiRientroModel(); var atep = dtte.GetUltimaAttivazioneTERientro(idTERientro); dtte.SituazioneTERientro(idTERientro, out richiestaTER, out attivazioneTER, out DocContributo, out trasfAnnullato, out rinunciaTERientro); var tm = dtt.GetTrasferimentoByIdTERientro(idTERientro); 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.IDTERIENTRO > 0 && x.ANNORIFERIMENTO == t.DATARIENTRO.Year && x.MESERIFERIMENTO == t.DATARIENTRO.Month) .ToList(); decimal indennitaRichiamo = 0; decimal percentualeFKMRientro = 0; decimal percentualeAnticipoTE = 0; decimal contributoLordo = 0; if (lteorici?.Any() ?? false) { var teorici = lteorici.First(); indennitaRichiamo = teorici.IMPORTOLORDO; percentualeFKMRientro = teorici.ELABTRASPEFFETTI.PERCENTUALEFK; contributoLordo = indennitaRichiamo * percentualeFKMRientro / 100; percentualeAnticipoTE = teorici.ELABTRASPEFFETTI.PERCENTUALEANTICIPOSALDO; } else { CalcoliIndennita ci = new CalcoliIndennita(tm.idTrasferimento, tm.dataRientro); indennitaRichiamo = ci.IndennitaRichiamoLordo; percentualeFKMRientro = ci.PercentualeFKMRientro; contributoLordo = indennitaRichiamo * percentualeFKMRientro / 100; percentualeAnticipoTE = dtte.GetPercentualeAnticipoTERientro(idTERientro, (decimal)EnumTipoAnticipoTE.Rientro).PERCENTUALE; } term.indennitaRichiamo = Math.Round(indennitaRichiamo, 2); term.percKM = percentualeFKMRientro; term.contributoLordo = Math.Round(contributoLordo, 2); term.percAnticipo = percentualeAnticipoTE; term.anticipo = Math.Round(term.percAnticipo * term.contributoLordo / 100, 2); ViewData.Add("rinunciaTERientro", rinunciaTERientro); ViewData.Add("richiestaTER", richiestaTER); ViewData.Add("attivazioneTER", attivazioneTER); ViewData.Add("DocContributo", DocContributo); ViewData.Add("idTERientro", idTERientro); return(PartialView(term)); } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } }