Esempio n. 1
0
        public RichiamoModel GetRichiamoByIdTrasf(decimal idTrasferimento)
        {
            RichiamoModel rm = new RichiamoModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                TRASFERIMENTO t  = db.TRASFERIMENTO.Find(idTrasferimento);
                var           lr = t.RICHIAMO.Where(a => a.ANNULLATO == false).OrderByDescending(a => a.IDRICHIAMO);

                if (lr?.Any() ?? false)
                {
                    var r = lr.First();

                    rm = new RichiamoModel()
                    {
                        IdRichiamo        = r.IDRICHIAMO,
                        idTrasferimento   = r.IDTRASFERIMENTO,
                        DataRichiamo      = r.DATARICHIAMO,
                        DataAggiornamento = r.DATAAGGIORNAMENTO,
                        annullato         = r.ANNULLATO
                    };
                }
            }

            return(rm);
        }
Esempio n. 2
0
        public RichiamoModel Restituisci_Ultimo_Richiamo(decimal idTrasferimento)
        {
            RichiamoModel tmp = new RichiamoModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                var CIR  = db.TRASFERIMENTO.Find(idTrasferimento);
                var rich = CIR.RICHIAMO.Where(a => a.ANNULLATO == false).OrderByDescending(x => x.IDRICHIAMO);
                if (rich?.Any() ?? false)
                {
                    var r = rich.First();
                    var p = r.PERCENTUALEFKM.ToList();
                    if (p?.Any() ?? false)
                    {
                        decimal idFKM      = p.First().IDFKM;
                        decimal idRichiamo = r.IDRICHIAMO;
                        tmp.IdRichiamo        = r.IDRICHIAMO;
                        tmp.idTrasferimento   = r.IDTRASFERIMENTO;
                        tmp.DataRientro       = r.TRASFERIMENTO.DATARIENTRO;
                        tmp.DataPartenza      = r.TRASFERIMENTO.DATAPARTENZA;
                        tmp.DataRichiamo      = r.DATARICHIAMO;
                        tmp.DataAggiornamento = r.DATAAGGIORNAMENTO;
                        tmp.CoeffKm           = idFKM;
                        tmp.IDPFKM            = p.First().IDPFKM;
                    }
                }
            }
            return(tmp);
        }
Esempio n. 3
0
        public ActionResult Richiamo(decimal idTrasferimento, decimal idFKm, string dataRichiamo, decimal nuovo = 0)
        {
            DateTime dataPartenza = new DateTime();
            bool     admin        = Utility.Amministratore();
            bool     solaLettura  = false;

            ViewBag.Amministratore = admin;
            try
            {
                ViewData["idFKm"]           = idFKm;
                ViewData["idTrasferimento"] = idTrasferimento;
                ViewData["dataRichiamo"]    = dataRichiamo;
                CaricaComboFKM(idFKm, nuovo);
                ViewData["abilitaModifica"] = idFKm;
                using (ModelDBISE db = new ModelDBISE())
                {
                    using (dtRichiamo dtr = new dtRichiamo())
                    {
                        dataPartenza = dtr.Restituisci_DataPartenza(idTrasferimento, db);
                        RichiamoModel rcm = dtr.Restituisci_Ultimo_Richiamo(idTrasferimento);
                        ViewData["idRichiamo"] = rcm.IdRichiamo;
                        if (rcm.IdRichiamo != 0)
                        {
                            ViewData["dataRientro"]  = rcm.DataRientro;
                            ViewData["dataRichiamo"] = rcm.DataRichiamo;
                        }
                        CaricaComboFKM(rcm.CoeffKm, nuovo, rcm.IdRichiamo);
                    }
                    using (dtTrasferimento dtt = new dtTrasferimento())
                    {
                        TrasferimentoModel trm = dtt.GetTrasferimentoById(idTrasferimento);
                        if (trm != null)
                        {
                            var ultimo_trasf = dtt.GetUltimoTrasferimentoValidoByMatricola(trm.Dipendente.matricola.ToString());
                            if (ultimo_trasf.idTrasferimento > 0)
                            {
                                if (ultimo_trasf.idTrasferimento != idTrasferimento)
                                {
                                    solaLettura = true;
                                }
                            }
                        }
                    }
                }
                ViewData["solaLettura"]  = solaLettura;
                ViewData["dataPartenza"] = dataPartenza;
            }
            catch (Exception ex)
            {
                return(PartialView("ErrorPartial", new MsgErr()
                {
                    msg = ex.Message
                }));
            }
            return(PartialView());
        }
Esempio n. 4
0
        public decimal EditRichiamo(RichiamoModel ric, decimal idCoeffIndRichiamo, decimal idCoeffMaggRichiamo, decimal idPercentualeFKM, DateTime DataRientro, decimal idRichiamo, ModelDBISE db)
        {
            decimal tmp = 0;

            if (idCoeffIndRichiamo == 0 || idPercentualeFKM == 0 || idCoeffMaggRichiamo == 0)
            {
                return(0);
            }

            try
            {
                var rich = db.RICHIAMO.Find(idRichiamo);
                rich.ANNULLATO         = true;
                rich.DATAAGGIORNAMENTO = DateTime.Now;
                db.SaveChanges();

                RICHIAMO riNew = new RICHIAMO()
                {
                    IDTRASFERIMENTO   = ric.idTrasferimento,
                    DATARICHIAMO      = ric.DataRichiamo,
                    DATAAGGIORNAMENTO = DateTime.Now,
                    ANNULLATO         = false
                };
                db.RICHIAMO.Add(riNew);

                int i = db.SaveChanges();
                tmp = riNew.IDRICHIAMO;

                var t = db.TRASFERIMENTO.Find(ric.idTrasferimento);
                t.IDSTATOTRASFERIMENTO = (decimal)EnumStatoTraferimento.Terminato;
                t.DATARIENTRO          = DataRientro;// ric.DataRichiamo.AddDays(-1);
                t.DATAAGGIORNAMENTO    = DateTime.Now;
                db.SaveChanges();
                //DataRientro = ric.DataRichiamo.AddDays(-1);
                using (dtRichiamo dtr = new dtRichiamo())
                {
                    RimuoviAsscoiazioni_Richiamo_CoeffIndRichiamo(idRichiamo, db);
                    RimuoviAsscoiazioni_Richiamo_PercentualeFKM(idRichiamo, db);
                    RimuoviAssociazioni_Richiamo_CoeffMagRichiamo(idRichiamo, db);

                    dtr.Associa_Richiamo_CoeffIndRichiamo(tmp, idCoeffIndRichiamo, db);
                    dtr.Associa_Richiamo_CoeffIndRichiamo(tmp, idCoeffMaggRichiamo, db);
                    dtr.Associa_Richiamo_PercentualeFKM(tmp, idPercentualeFKM, db);
                }
                if (i > 0)
                {
                    Utility.SetLogAttivita(EnumAttivitaCrud.Modifica, "Modifica richiamo.", "Richiamo", db, rich.IDTRASFERIMENTO, rich.IDTRASFERIMENTO);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(tmp);
        }
Esempio n. 5
0
        public decimal Restituisci_ID_PercentualeFKM_Da_Data(RichiamoModel ri, ModelDBISE db)
        {
            decimal tmp  = 0;
            var     lCIR = db.PERCENTUALEFKM.Where(x => x.IDFKM == ri.CoeffKm && x.ANNULLATO == false).ToList().Where(a => ri.DataRichiamo >= a.DATAINIZIOVALIDITA &&
                                                                                                                      ri.DataRichiamo <= a.DATAFINEVALIDITA).ToList();

            if (lCIR?.Any() ?? false)
            {
                tmp = lCIR.First().IDPFKM;
            }
            return(tmp);
        }
Esempio n. 6
0
        public decimal Restituisci_ID_CoeffMagIndRichiamo_Da_Data(RichiamoModel ri, ModelDBISE db)
        {
            decimal tmp  = 0;
            var     lCIR = db.COEFFICIENTEINDRICHIAMO.Where(a =>
                                                            a.ANNULLATO == false && ri.DataRichiamo >= a.DATAINIZIOVALIDITA &&
                                                            ri.DataRichiamo <= a.DATAFINEVALIDITA && a.IDTIPOCOEFFICIENTERICHIAMO ==
                                                            (decimal)EnumTipoCoefficienteRichiamo.CoefficienteMaggiorazione).ToList();

            if (lCIR?.Any() ?? false)
            {
                tmp = lCIR.First().IDCOEFINDRICHIAMO;
            }
            return(tmp);
        }
Esempio n. 7
0
        public decimal SetRichiamo(RichiamoModel ric, decimal idCoeffIndRichiamo, decimal idPercentualeFKM, decimal idCoeffMagIndRichiamo, DateTime DataRientro, ModelDBISE db)
        {
            decimal tmp = 0;

            if (idCoeffIndRichiamo == 0 || idPercentualeFKM == 0 || idCoeffMagIndRichiamo == 0)
            {
                return(0);
            }

            try
            {
                RICHIAMO ri = new RICHIAMO()
                {
                    IDTRASFERIMENTO   = ric.idTrasferimento,
                    DATARICHIAMO      = ric.DataRichiamo,
                    DATAAGGIORNAMENTO = DateTime.Now,
                    ANNULLATO         = ric.annullato
                };
                db.RICHIAMO.Add(ri);
                int i = db.SaveChanges();
                tmp = ri.IDRICHIAMO;
                var t = db.TRASFERIMENTO.Find(ric.idTrasferimento);
                t.IDSTATOTRASFERIMENTO = (decimal)EnumStatoTraferimento.Terminato;
                t.DATARIENTRO          = DataRientro;// ric.DataRichiamo.AddDays(-1);
                t.DATAAGGIORNAMENTO    = DateTime.Now;
                db.SaveChanges();
                //DataRientro = ;// ric.DataRichiamo.AddDays(-1);
                using (dtRichiamo dtr = new dtRichiamo())
                {
                    dtr.Associa_Richiamo_CoeffIndRichiamo(ri.IDRICHIAMO, idCoeffIndRichiamo, db);
                    dtr.Associa_Richiamo_CoeffIndRichiamo(ri.IDRICHIAMO, idCoeffMagIndRichiamo, db);
                    dtr.Associa_Richiamo_PercentualeFKM(ri.IDRICHIAMO, idPercentualeFKM, db);
                }
                if (i > 0)
                {
                    ric.idTrasferimento = ri.IDTRASFERIMENTO;
                    Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di un nuovo richiamo.", "Richiamo", db, ric.idTrasferimento, ri.IDTRASFERIMENTO);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(tmp);
        }
Esempio n. 8
0
        public RichiamoModel getRichiamoById(decimal idRichiamo)
        {
            RichiamoModel tmp = new RichiamoModel();

            using (ModelDBISE db = new ModelDBISE())
            {
                RICHIAMO r = db.RICHIAMO.Find(idRichiamo);
                if (r != null)
                {
                    tmp.annullato         = r.ANNULLATO;
                    tmp.IdRichiamo        = r.IDRICHIAMO;
                    tmp.idTrasferimento   = r.IDTRASFERIMENTO;
                    tmp.DataAggiornamento = r.DATAAGGIORNAMENTO;
                    tmp.DataPartenza      = r.TRASFERIMENTO.DATAPARTENZA;
                    tmp.DataRichiamo      = r.DATARICHIAMO;
                    tmp.DataRientro       = r.TRASFERIMENTO.DATARIENTRO;
                }
            }
            return(tmp);
        }
Esempio n. 9
0
        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 }));
            }
        }
Esempio n. 10
0
        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 }));
            }
        }