public ActionResult AttivitaRiepilogoVoci(decimal idTrasferimento) { try { using (dtTrasferimento dtt = new dtTrasferimento()) { var tr = dtt.GetTrasferimentoById(idTrasferimento); using (dtDipendenti dtd = new dtDipendenti()) { var d = dtd.GetDipendenteByIDTrasf(idTrasferimento); if (tr != null && tr.HasValue()) { ViewBag.idTrasferimento = tr.idTrasferimento; } else { throw new Exception("Nessun trasferimento per la matricola (" + d.matricola + ")"); } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(PartialView()); }
public ActionResult MessaggioAnnullaProvvidenzeScolastiche(decimal idTrasfProvScolastiche) { ModelloMsgMail msg = new ModelloMsgMail(); try { using (dtDipendenti dtd = new dtDipendenti()) { using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtUffici dtu = new dtUffici()) { var t = dtt.GetTrasferimentoByIDProvvScolastiche(idTrasfProvScolastiche); if (t?.idTrasferimento > 0) { var dip = dtd.GetDipendenteByID(t.idDipendente); var uff = dtu.GetUffici(t.idUfficio); msg.corpoMsg = string.Format(Resources.msgEmail.MessaggioAnnullaRichiestaProvvidenzeScolastiche, uff.descUfficio + " (" + uff.codiceUfficio + ")", t.dataPartenza); } } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(PartialView(msg)); }
public ActionResult MessaggioAnnullaMF(decimal idAttMagFam) { ModelloMsgMail msg = new ModelloMsgMail(); try { using (dtDipendenti dtd = new dtDipendenti()) { using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtUffici dtu = new dtUffici()) { var t = dtt.GetTrasferimentoByIdAttMagFam(idAttMagFam); if (t?.idTrasferimento > 0) { var dip = dtd.GetDipendenteByID(t.idDipendente); var uff = dtu.GetUffici(t.idUfficio); msg.corpoMsg = string.Format(Resources.msgEmail.MessaggioAnnullaRichiestaMaggiorazioniFamiliari, uff.descUfficio + " (" + uff.codiceUfficio + ")", t.dataPartenza.ToShortDateString()); ViewBag.idTrasferimento = t.idTrasferimento; } } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(PartialView(msg)); }
public ActionResult MessaggioAnnullaTV(decimal idTitoliViaggio) { ModelloMsgMail msg = new ModelloMsgMail(); try { using (ModelDBISE db = new ModelDBISE()) { using (dtTitoliViaggi dttv = new dtTitoliViaggi()) { using (dtDipendenti dtd = new dtDipendenti()) { using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtUffici dtu = new dtUffici()) { var t = dtt.GetTrasferimentoByIdTitoloViaggio(idTitoliViaggio); if (t?.idTrasferimento > 0) { var dip = dtd.GetDipendenteByID(t.idDipendente); var uff = dtu.GetUffici(t.idUfficio); var conta_attivazioni = dttv.GetNumAttivazioniTV(idTitoliViaggio, db); string messaggioAnnulla = ""; if (conta_attivazioni == 1) { messaggioAnnulla = Resources.msgEmail.MessaggioAnnullaRichiestaInizialeTitoloViaggio; } else { messaggioAnnulla = Resources.msgEmail.MessaggioAnnullaRichiestaSuccessivaTitoloViaggio; } msg.corpoMsg = string.Format(messaggioAnnulla, uff.descUfficio + " (" + uff.codiceUfficio + ")", t.dataPartenza.ToShortDateString()); ViewBag.idTrasferimento = t.idTrasferimento; ViewBag.idTitoliViaggio = idTitoliViaggio; } } } } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(PartialView(msg)); }
public JsonResult PrelevaMatricole(string search) { List <Select2Model> ls2 = new List <Select2Model>(); List <DipendentiModel> ldipm = new List <DipendentiModel>(); try { using (dtDipendenti dtd = new dtDipendenti()) { ldipm = dtd.GetDipendentiAnyTrasf().ToList(); foreach (var dipm in ldipm) { Select2Model s2 = new Select2Model() { id = dipm.idDipendente.ToString(), text = dipm.Nominativo + " (" + dipm.matricola + ")", }; ls2.Add(s2); } if (search != null && search != string.Empty) { ls2 = ls2.Where(a => a.text.ToUpper().Contains(search.ToUpper())).ToList(); } } } catch (Exception ex) { return(Json(new { results = new List <Select2Model>(), err = ex.Message })); } return(Json(new { results = ls2, err = "" })); }
public ActionResult DipendentiGepe(string matricola = "") { var rMatricola = new List <SelectListItem>(); var rNominativo = new List <SelectListItem>(); bool admin = false; List <DipendentiModel> ldm = new List <DipendentiModel>(); DipendentiModel dm = new DipendentiModel(); AccountModel ac = new AccountModel(); try { admin = Utility.Amministratore(out ac); using (dtDipendenti dtd = new dtDipendenti()) { if (!admin) { ldm.Add(dtd.GetDipendenteByMatricola(Convert.ToInt16(ac.utente))); } else if (matricola != string.Empty && admin == false) { ldm.Add(dtd.GetDipendenteByMatricola(Convert.ToInt16(matricola))); } else { ldm = dtd.GetDipendenti().ToList(); } if (ldm.Count > 0) { foreach (var item in ldm) { rMatricola.Add(new SelectListItem() { Text = item.matricola.ToString(), Value = item.matricola.ToString() }); rNominativo.Add(new SelectListItem() { Text = item.Nominativo + " (" + item.matricola.ToString() + ")", Value = item.matricola.ToString() }); } rMatricola.Insert(0, new SelectListItem() { Text = "", Value = "" }); rNominativo.Insert(0, new SelectListItem() { Text = "", Value = "" }); if (matricola == string.Empty) { rMatricola.First().Selected = true; rNominativo.First().Selected = true; } else { foreach (var item in rMatricola) { if (matricola == item.Value) { item.Selected = true; } } foreach (var item in rNominativo) { if (matricola == item.Value) { item.Selected = true; } } } } } if (matricola != string.Empty) { dm = ldm.Where(a => a.matricola == Convert.ToInt16(matricola)).First(); using (dtCDCGepe dtcdcg = new dtCDCGepe()) { dm.cdcGepe = dtcdcg.GetCDCGepe(dm.idDipendente); } using (dtLivelliDipendente dtpl = new dtLivelliDipendente()) { dm.livelloDipendenteValido = dtpl.GetLivelloDipendente(dm.idDipendente, DateTime.Now.Date); } } //ViewBag.ListDipendentiGepeMatricola = rMatricola.OrderBy(a=>a.Text); ViewBag.ListDipendentiGepeNominativo = rNominativo.OrderBy(a => a.Text); ViewBag.Amministratore = admin; ViewBag.Matricola = dm.matricola; ViewBag.Nominativo = dm.Nominativo; } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(PartialView(dm)); }
public JsonResult ConfermaModificaRichiamo(decimal idTrasferimento, decimal idFasciaFKM, string dataRichiamo, decimal idRichiamo) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); string errore = ""; var lstr = new List <SelectListItem>(); try { ViewData["idTrasferimento"] = idTrasferimento; ViewData["idFKm"] = idFasciaFKM; DateTime dataPartenza = new DateTime(); CaricaComboFKM(idFasciaFKM, idFasciaFKM); using (dtRichiamo dtric = new dtRichiamo()) { dataPartenza = dtric.Restituisci_DataPartenza(idTrasferimento, db); } ViewData["dataPartenza"] = dataPartenza; try { RichiamoModel ri = new RichiamoModel(); ri.DataRichiamo = Convert.ToDateTime(dataRichiamo); ri.DataAggiornamento = DateTime.Now; ri.CoeffKm = idFasciaFKM; ri.idTrasferimento = idTrasferimento; using (dtRichiamo dtric = new dtRichiamo()) { decimal idCoeffIndRichiamo = dtric.Restituisci_ID_CoeffIndRichiamo_Da_Data(ri, db); decimal idCoeffMaggRichiamo = dtric.Restituisci_ID_CoeffMagIndRichiamo_Da_Data(ri, db); decimal IDPFKM = dtric.Restituisci_ID_PercentualeFKM_Da_Data(ri, db); if (idCoeffIndRichiamo == 0 || IDPFKM == 0 || idCoeffMaggRichiamo == 0) { errore = "Non esistono coefficenti corrispondenti ai criteri del Richiamo"; ViewData["errore"] = errore; } ri.IDPFKM = IDPFKM; DateTime dataRientroPrecedente = dtric.Restituisci_Data_Rientro(idTrasferimento); DateTime DataRientro = Convert.ToDateTime(dataRichiamo).AddDays(-1); ri.DataRientro = DataRientro; if (idRichiamo != 0) { ViewData["dataRichiamo"] = ri.DataRichiamo.ToShortDateString(); ViewData["dataRientro"] = ri.DataRientro.ToShortDateString(); ViewData["idRichiamo"] = idRichiamo; if (DataRientro < dataPartenza) { errore = "Data Rientro (" + DataRientro.ToShortDateString() + ") non può essere inferiore alla data Partenza (" + dataPartenza.ToShortDateString() + " )"; } else { idRichiamo = dtric.EditRichiamo(ri, idCoeffIndRichiamo, idCoeffMaggRichiamo, IDPFKM, DataRientro, idRichiamo, db); errore = ""; lstr = AggiornaViewBag_Lista_Trasferimenti(idTrasferimento, db); //using (dtVariazioniMaggiorazioneFamiliare dtvmf = new dtVariazioniMaggiorazioneFamiliare()) //{ // dtvmf.TerminaMaggiorazioniFamiliariByDataFineTrasf(idTrasferimento, ri.DataRientro, db); //} //using (dtVariazioniMaggiorazioneAbitazione dtvmab = new dtVariazioniMaggiorazioneAbitazione()) //{ // dtvmab.TerminaMABbyDataFineTrasf(idTrasferimento, ri.DataRientro, db); //} using (dtDipendenti dtd = new dtDipendenti()) { dtd.DataInizioRicalcoliDipendente(idTrasferimento, ri.DataRientro, db, true); } string sede = dtric.DeterminaSede(idTrasferimento); string oggetto = Resources.msgEmail.OggettoRichiamoModifica; string corpoMessaggio = string.Format(Resources.msgEmail.MessaggioRichiamoModifica, sede, dataRientroPrecedente.ToShortDateString(), ri.DataRientro.ToShortDateString()); InviaMailRichiamo(idTrasferimento, db, corpoMessaggio, oggetto); } } else { ViewData["errore"] = "Errore riscontrato nell'inserimento del Richiamo"; errore = "Non esistono coefficenti corrispondenti ai criteri del Richiamo"; // return PartialView("Richiamo"); // return PartialView("ErrorPartial", new MsgErr() { msg = "Errore riscontrato nell'inserimento del Richiamo" }); } } } catch (Exception ex) { ViewData["errore"] = ex.Message; // return PartialView("Richiamo"); // return PartialView("ErrorPartial", new MsgErr() { msg = ex.Message }); errore = ex.Message; } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } return(Json(new { err = errore, list = lstr })); } }
public JsonResult ConfermaInserisciRichiamo(decimal idTrasferimento, decimal idFasciaFKM, string dataRichiamo) { using (ModelDBISE db = new ModelDBISE()) { db.Database.BeginTransaction(); string errore = ""; var lstr = new List <SelectListItem>(); try { ViewData["idTrasferimento"] = idTrasferimento; ViewData["idFKm"] = idFasciaFKM; CaricaComboFKM(idFasciaFKM, idFasciaFKM); DateTime dataPartenza = new DateTime(); using (dtRichiamo dtric = new dtRichiamo()) { dataPartenza = dtric.Restituisci_DataPartenza(idTrasferimento, db); } ViewData["dataPartenza"] = dataPartenza; decimal idRichiamo = 0; try { RichiamoModel ri = new RichiamoModel(); ri.DataRichiamo = Convert.ToDateTime(dataRichiamo); ri.DataAggiornamento = DateTime.Now; ri.CoeffKm = idFasciaFKM; ri.idTrasferimento = idTrasferimento; using (dtRichiamo dtric = new dtRichiamo()) { decimal idCoeffIndRichiamo = dtric.Restituisci_ID_CoeffIndRichiamo_Da_Data(ri, db); decimal idCoeffMagIndRichiamo = dtric.Restituisci_ID_CoeffMagIndRichiamo_Da_Data(ri, db); decimal IDPFKM = dtric.Restituisci_ID_PercentualeFKM_Da_Data(ri, db); //var r = new List<SelectListItem>(); if (idCoeffIndRichiamo == 0 || IDPFKM == 0 || idCoeffMagIndRichiamo == 0) { ViewData["errore"] = "Non esistono coefficenti corrispondenti ai criteri del Richiamo"; errore = "Non esistono coefficenti corrispondenti ai criteri del Richiamo"; throw new Exception("Non esistono coefficenti corrispondenti ai criteri del Richiamo"); } ri.IDPFKM = IDPFKM; DateTime DataRientro = Convert.ToDateTime(dataRichiamo).AddDays(-1); ri.DataRientro = DataRientro; ViewData["dataRichiamo"] = ri.DataRichiamo.ToShortDateString(); ViewData["dataRientro"] = ri.DataRientro.ToShortDateString(); ViewData["idRichiamo"] = idRichiamo; if (DataRientro < dataPartenza) { errore = "Data Rientro " + DataRientro.ToShortDateString() + " non può essere inferiore alla data Partenza " + dataPartenza.ToShortDateString(); } else { idRichiamo = dtric.SetRichiamo(ri, idCoeffIndRichiamo, IDPFKM, idCoeffMagIndRichiamo, DataRientro, db); ViewData["idRichiamo"] = idRichiamo; errore = ""; } lstr = AggiornaViewBag_Lista_Trasferimenti(idTrasferimento, db); string sede = dtric.DeterminaSede(idTrasferimento); string oggetto = Resources.msgEmail.OggettoRichiamoInserisci; string corpoMessaggio = string.Format(Resources.msgEmail.MessaggioRichiamoInserisci, sede, ri.DataRientro.ToShortDateString()); using (dtDipendenti dtd = new dtDipendenti()) { dtd.DataInizioRicalcoliDipendente(idTrasferimento, ri.DataRientro, db, true); } InviaMailRichiamo(idTrasferimento, db, corpoMessaggio, oggetto); } } catch (Exception ex) { ViewData["errore"] = ex.Message; errore = ex.Message; } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } return(Json(new { err = errore, list = lstr })); } }
public ActionResult InserisciRuoloDipendente(VariazioneRuoloDipendenteModel vrdm, decimal idTrasferimento) { try { using (ModelDBISE db = new ModelDBISE()) { using (dtRuoloDipendente dtrd = new dtRuoloDipendente()) { if (ModelState.IsValid) { db.Database.BeginTransaction(); try { #region verifica data inizio try { dtrd.VerificaDataInizioValiditaRuoloDipendente(idTrasferimento, vrdm, db); } catch (Exception ex) { using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtRuoloUfficio dtru = new dtRuoloUfficio()) { using (dtLivelliDipendente dtld = new dtLivelliDipendente()) { var t = dtt.GetTrasferimentoById(idTrasferimento); var livelloDipendenteValido = dtld.GetLivelloDipendente(t.idDipendente, vrdm.ut_dataInizioValidita.Value); var lru = dtru.GetListRuoloUfficioByLivello(livelloDipendenteValido.idLivello); List <SelectListItem> lRuoli = new List <SelectListItem>(); var r = new List <SelectListItem>(); if (lru != null && lru.Count > 0) { foreach (var ru in lru) { SelectListItem s2 = new SelectListItem() { Value = ru.idRuoloUfficio.ToString(), Text = ru.DescrizioneRuolo.ToString() }; r.Add(s2); } } lRuoli = r; ViewBag.lRuoli = lRuoli; ViewBag.idTrasferimento = idTrasferimento; var rd = dtrd.GetRuoloDipendenteByIdTrasferimento(idTrasferimento, DateTime.Now); ViewBag.RuoloAttuale = rd.RuoloUfficio.DescrizioneRuolo; ModelState.AddModelError("", ex.Message); return(PartialView("NuovoRuoloDipendente", vrdm)); } } } } #endregion vrdm.dataAggiornamento = DateTime.Now; #region modello ruolo dipendente RuoloDipendenteModel rdm = new RuoloDipendenteModel() { idTrasferimento = idTrasferimento, idRuolo = vrdm.idRuolo, dataInizioValidita = vrdm.ut_dataInizioValidita.Value, annullato = false, dataAggiornamento = vrdm.dataAggiornamento }; #endregion #region inserisce ruolo if (vrdm.chkAggiornaTutti == false) { dtrd.SetVariazioneRuoloDipendente(rdm, idTrasferimento, db); } else { //inserisce periodo e annulla i periodi successivi (fino al primo buco temporale o fino a dataRientro) dtrd.SetVariazioneRuoloDipendente_AggiornaTutti(rdm, idTrasferimento, db); } #endregion using (dtDipendenti dtd = new dtDipendenti()) { dtd.DataInizioRicalcoliDipendente(idTrasferimento, rdm.dataInizioValidita, db, false); } Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento nuovo ruolo dipendente (" + rdm.idRuolo + ")", "RUOLODIPENDENTE", db, idTrasferimento, rdm.idRuoloDipendente); db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } else { using (dtTrasferimento dtt = new dtTrasferimento()) { using (dtRuoloUfficio dtru = new dtRuoloUfficio()) { using (dtLivelliDipendente dtld = new dtLivelliDipendente()) { var t = dtt.GetTrasferimentoById(idTrasferimento); var livelloDipendenteValido = dtld.GetLivelloDipendente(t.idDipendente, vrdm.ut_dataInizioValidita.Value); var lru = dtru.GetListRuoloUfficioByLivello(livelloDipendenteValido.idLivello); List <SelectListItem> lRuoli = new List <SelectListItem>(); var r = new List <SelectListItem>(); if (lru != null && lru.Count > 0) { foreach (var ru in lru) { SelectListItem s2 = new SelectListItem() { Value = ru.idRuoloUfficio.ToString(), Text = ru.DescrizioneRuolo.ToString() }; r.Add(s2); } } lRuoli = r; ViewBag.lRuoli = lRuoli; ViewBag.idTrasferimento = idTrasferimento; return(PartialView("NuovoRuoloDipendente", vrdm)); } } } } } } } catch (Exception ex) { return(PartialView("ErrorPartial", new MsgErr() { msg = ex.Message })); } return(RedirectToAction("ElencoRuoliDipendente", new { idTrasferimento = idTrasferimento })); }
public JsonResult InviaFlussiMensili(decimal idAnnoMeseElaborato) { List <DIPENDENTI> lDip = new List <DIPENDENTI>(); try { using (ModelDBISE db = new ModelDBISE()) { //var te = // db.TEORICI.Where(a => a.ANNULLATO == false && a.ELABINDSISTEMAZIONE.IDLIVELLO == 1).ToList(); db.Database.BeginTransaction(); using (dtElaborazioni dte = new dtElaborazioni()) { try { List <decimal> lTeorici = new List <decimal>(); #region Lettura dati Prima sistemazione List <decimal> lt1 = (from t in db.TEORICI where t.ANNULLATO == false && t.IDMESEANNOELAB == idAnnoMeseElaborato && t.ELABINDSISTEMAZIONE.ANNULLATO == false && (t.VOCI.IDVOCI == (decimal)EnumVociCedolino.Sistemazione_Lorda_086_380 || t.VOCI.IDVOCI == (decimal)EnumVociCedolino.Sistemazione_Richiamo_Netto_086_383 || t.VOCI.IDVOCI == (decimal)EnumVociCedolino.Detrazione_086_384 || t.VOCI.IDVOCI == (decimal)EnumVociContabili.Ind_Prima_Sist_IPS) && t.DIRETTO == false && t.INSERIMENTOMANUALE == false select t.IDTEORICI).ToList(); if (lt1?.Any() ?? false) { lTeorici.AddRange(lt1); } #endregion #region Lettura dati indennità sede estera List <decimal> lt2 = (from t in db.TEORICI where t.ANNULLATO == false && t.INSERIMENTOMANUALE == false && t.IDMESEANNOELAB == idAnnoMeseElaborato && t.ELABINDENNITA.Any(b => b.ANNULLATO == false) && t.DIRETTO == false && t.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità && t.VOCI.IDVOCI == (decimal)EnumVociContabili.Ind_Sede_Estera select t.IDTEORICI).ToList(); if (lt2?.Any() ?? false) { lTeorici.AddRange(lt2); } #endregion #region Lettura dei dati trasporto effetti List <decimal> lt3 = (from t in db.TEORICI where t.ANNULLATO == false && t.INSERIMENTOMANUALE == false && t.IDMESEANNOELAB == idAnnoMeseElaborato && t.ELABTRASPEFFETTI.ANNULLATO == false && t.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe && t.VOCI.IDTIPOVOCE == (decimal)EnumTipoVoce.Software && t.VOCI.IDVOCI == (decimal)EnumVociCedolino.Trasp_Mass_Partenza_Rientro_162_131 && t.DIRETTO == false select t.IDTEORICI).ToList(); if (lt3?.Any() ?? false) { lTeorici.AddRange(lt3); } #endregion #region Lettura dei dati MAB List <decimal> lt4 = (from a in db.TEORICI where a.ANNULLATO == false && a.INSERIMENTOMANUALE == false && a.IDMESEANNOELAB == idAnnoMeseElaborato && a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità && a.VOCI.IDVOCI == (decimal)EnumVociContabili.MAB && a.DIRETTO == false && a.ELABMAB.Any(b => b.ANNULLATO == false) select a.IDTEORICI).ToList(); if (lt4?.Any() ?? false) { lTeorici.AddRange(lt4); } #endregion #region Lettura dati voci manuali List <decimal> lt5 = (from a in db.TEORICI where a.ANNULLATO == false && a.INSERIMENTOMANUALE == true && a.IDMESEANNOELAB == idAnnoMeseElaborato && (a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Paghe || a.VOCI.IDTIPOLIQUIDAZIONE == (decimal)EnumTipoLiquidazione.Contabilità) && a.DIRETTO == false && a.ELABORATO == false select a.IDTEORICI).ToList(); if (lt5?.Any() ?? false) { lTeorici.AddRange(lt5); } #endregion #region Lettura dati Richiamo List <decimal> lt6 = (from t in db.TEORICI where t.ANNULLATO == false && t.IDMESEANNOELAB == idAnnoMeseElaborato && t.ELABINDRICHIAMO.ANNULLATO == false && (t.VOCI.IDVOCI == (decimal)EnumVociCedolino.Rientro_Lordo_086_381 || t.VOCI.IDVOCI == (decimal)EnumVociCedolino.Sistemazione_Richiamo_Netto_086_383 || t.VOCI.IDVOCI == (decimal)EnumVociCedolino.Detrazione_086_384 || t.VOCI.IDVOCI == (decimal)EnumVociContabili.Ind_Richiamo_IRI) && t.DIRETTO == false && t.INSERIMENTOMANUALE == false select t.IDTEORICI).ToList(); if (lt6?.Any() ?? false) { lTeorici.AddRange(lt6); } #endregion lTeorici = lTeorici.OrderBy(a => a).ToList(); List <ElencoDipendentiDaCalcolareModel> ledcm = new List <ElencoDipendentiDaCalcolareModel>(); ledcm = dte.PrelevaDipendentiDaElaborare(idAnnoMeseElaborato).ToList(); if (ledcm?.Any() ?? false) { lDip = dte.EstrapolaDipendentiDaTeorici(lTeorici, db).ToList(); foreach (var edcm in ledcm) { if (!lDip?.Any(a => a.IDDIPENDENTE == edcm.idDipendente) ?? false) { throw new Exception("Prima di inviare i flussi è necessario effettuare l'elaborazione di tutti i dipendenti interessati al calcolo mensile."); } } foreach (decimal teorico in lTeorici) { using (ModelDBISE db2 = new ModelDBISE()) { var dip = dte.EstrapolaDipendenteDaTeorico(teorico, db2); if (!dip.ELABORAZIONI?.Any(a => a.IDMESEANNOELAB == idAnnoMeseElaborato) ?? false) { dte.InviaFlussiMensiliCedoCont(idAnnoMeseElaborato, teorico, db2); } } } using (dtInvioFileFTP dtFile = new dtInvioFileFTP()) { dtFile.FlUpload(lTeorici); } using (dtDipendenti dtd = new dtDipendenti()) { foreach (var dip in lDip) { dte.SetPeriodoElaborazioniDipendente(dip.IDDIPENDENTE, idAnnoMeseElaborato, db); dtd.SetLastMeseElabDataInizioRicalcoli(dip.IDDIPENDENTE, idAnnoMeseElaborato, db, true); } } dte.ChiudiPeridoElaborazione(idAnnoMeseElaborato, db); dte.EliminaTeoriciAnnullati(3); } db.Database.CurrentTransaction.Commit(); } catch (Exception ex) { db.Database.CurrentTransaction.Rollback(); throw ex; } } } } catch (Exception ex) { return(Json(new { msg = "", err = ex.Message })); } return(Json(new { msg = "I flussi mensili sono stati inviati.", err = "" })); }