Пример #1
0
        public ATTIVITAANTICIPI CreaAttivitaAnticipi(decimal idPrimaSistemazione, ModelDBISE db)
        {
            try
            {
                ATTIVITAANTICIPI new_aa = new ATTIVITAANTICIPI()
                {
                    IDPRIMASISTEMAZIONE   = idPrimaSistemazione,
                    NOTIFICARICHIESTA     = false,
                    DATAATTIVARICHIESTA   = null,
                    ATTIVARICHIESTA       = false,
                    DATANOTIFICARICHIESTA = null,
                    ANNULLATO             = false,
                    DATAAGGIORNAMENTO     = DateTime.Now,
                };
                db.ATTIVITAANTICIPI.Add(new_aa);

                if (db.SaveChanges() <= 0)
                {
                    throw new Exception(string.Format("Non è stato possibile creare una nuova attivazione per gli anticipi."));
                }
                else
                {
                    Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova attivazione anticipi.", "ATTIVITAANTICIPI", db, new_aa.IDPRIMASISTEMAZIONE, new_aa.IDATTIVITAANTICIPI);

                    var ra = this.CreaRinunciaAnticipi(new_aa.IDATTIVITAANTICIPI, db);
                }

                return(new_aa);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        public void AnnullaRichiestaAnticipi(decimal idAttivitaAnticipi, string testoAnnulla)
        {
            using (ModelDBISE db = new ModelDBISE())
            {
                db.Database.BeginTransaction();

                try
                {
                    var aa_Old = db.ATTIVITAANTICIPI.Find(idAttivitaAnticipi);

                    if (aa_Old?.IDATTIVITAANTICIPI > 0)
                    {
                        if (aa_Old.NOTIFICARICHIESTA == true && aa_Old.ATTIVARICHIESTA == false && aa_Old.ANNULLATO == false)
                        {
                            aa_Old.ANNULLATO         = true;
                            aa_Old.DATAAGGIORNAMENTO = DateTime.Now;

                            int i = db.SaveChanges();

                            if (i <= 0)
                            {
                                throw new Exception("Errore - Impossibile annullare la notifica della richiesta anticipo.");
                            }
                            else
                            {
                                Utility.SetLogAttivita(EnumAttivitaCrud.Modifica,
                                                       "Annullamento della riga per il ciclo di attivazione della richiesta anticipo",
                                                       "ATTIVITAANTICIPI", db, aa_Old.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO,
                                                       aa_Old.IDATTIVITAANTICIPI);

                                ATTIVITAANTICIPI aa_New = new ATTIVITAANTICIPI()
                                {
                                    IDPRIMASISTEMAZIONE = aa_Old.IDPRIMASISTEMAZIONE,
                                    NOTIFICARICHIESTA   = false,
                                    ATTIVARICHIESTA     = false,
                                    DATAAGGIORNAMENTO   = DateTime.Now,
                                    ANNULLATO           = false
                                };

                                db.ATTIVITAANTICIPI.Add(aa_New);

                                int j = db.SaveChanges();

                                if (j <= 0)
                                {
                                    throw new Exception("Errore - Impossibile creare il nuovo ciclo di attivazione per richiesta anticipi.");
                                }
                                else
                                {
                                    Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento,
                                                           "Inserimento di una nuova riga per il ciclo di attivazione relativo alla richiesta anticipo.",
                                                           "ATTIVITAANTICIPI", db, aa_New.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO,
                                                           aa_New.IDATTIVITAANTICIPI);

                                    #region anticipo
                                    var ant_Old =
                                        aa_Old.ANTICIPI.Where(
                                            a => a.ANNULLATO == false && a.IDTIPOLOGIAANTICIPI == (decimal)EnumTipologiaAnticipi.Prima_Sistemazione).First();

                                    if (ant_Old != null && ant_Old.IDATTIVITAANTICIPI > 0)
                                    {
                                        ANTICIPI ant_New = new ANTICIPI()
                                        {
                                            IDATTIVITAANTICIPI  = aa_New.IDATTIVITAANTICIPI,
                                            IDTIPOLOGIAANTICIPI = ant_Old.IDTIPOLOGIAANTICIPI,
                                            PERCENTUALEANTICIPO = ant_Old.PERCENTUALEANTICIPO,
                                            DATAAGGIORNAMENTO   = ant_Old.DATAAGGIORNAMENTO,
                                            ANNULLATO           = ant_Old.ANNULLATO
                                        };

                                        db.ANTICIPI.Add(ant_New);

                                        int y = db.SaveChanges();

                                        if (y <= 0)
                                        {
                                            throw new Exception("Errore - Impossibile inserire il record relativo a richiesta anticipo.");
                                        }
                                        else
                                        {
                                            Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento,
                                                                   "Inserimento di una nuova riga per la richiesta anticipo.",
                                                                   "ANTICIPI", db,
                                                                   aa_New.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO,
                                                                   ant_New.IDATTIVITAANTICIPI);
                                        }
                                    }
                                    #endregion

                                    #region ricrea rinunciaAnticipi
                                    var ra_old = this.GetRinunciaAnticipi(idAttivitaAnticipi, db);
                                    RINUNCIAANTICIPI ra_new = new RINUNCIAANTICIPI()
                                    {
                                        IDATTIVITAANTICIPI = aa_New.IDATTIVITAANTICIPI,
                                        RINUNCIAANT        = ra_old.rinunciaAnticipi,
                                        DATAAGGIORNAMENTO  = DateTime.Now,
                                    };
                                    db.RINUNCIAANTICIPI.Add(ra_new);

                                    if (db.SaveChanges() <= 0)
                                    {
                                        throw new Exception(string.Format("Non è stato possibile creare una nuova rinuncia anticipi durante il ciclo di annullamento."));
                                    }
                                    else
                                    {
                                        Utility.SetLogAttivita(EnumAttivitaCrud.Inserimento, "Inserimento di una nuova rinuncia anticipi.", "RINUNCIAANTICIPI", db, ra_new.ATTIVITAANTICIPI.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, ra_new.IDATTIVITAANTICIPI);
                                    }

                                    #endregion
                                }



                                EmailTrasferimento.EmailAnnulla(aa_New.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO,
                                                                Resources.msgEmail.OggettoAnnullaRichiestaAnticipi,
                                                                testoAnnulla,
                                                                db);
                                //this.EmailAnnullaRichiestaAnticipi(aa_New.IDATTIVITAANTICIPI, db);
                                using (dtCalendarioEventi dtce = new dtCalendarioEventi())
                                {
                                    dtce.AnnullaMessaggioEvento(aa_New.PRIMASITEMAZIONE.TRASFERIMENTO.IDTRASFERIMENTO, EnumFunzioniEventi.RichiestaAnticipi, db);
                                }
                            }
                        }
                    }

                    db.Database.CurrentTransaction.Commit();
                }

                catch (Exception ex)
                {
                    db.Database.CurrentTransaction.Rollback();
                    throw ex;
                }
            }
        }