Esempio n. 1
0
        public PROVVIDENZESCOLASTICHE CreaProvvidenzeScolastiche(decimal idTrasfProvScolastiche)
        {
            try
            {
                PROVVIDENZESCOLASTICHE ps = new PROVVIDENZESCOLASTICHE();

                using (ModelDBISE db = new ModelDBISE())
                {
                    ps = new PROVVIDENZESCOLASTICHE
                    {
                        IDTRASFPROVSCOLASTICHE = idTrasfProvScolastiche
                    };
                    db.PROVVIDENZESCOLASTICHE.Add(ps);

                    if (db.SaveChanges() <= 0)
                    {
                        throw new Exception("Errore inserimento 'PROVVIDENZESCOLASTICHE'");
                    }
                }
                return(ps);
            }


            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void DeleteDocumentoPS(decimal idDocumento)
        {
            PROVVIDENZESCOLASTICHE ps = new PROVVIDENZESCOLASTICHE();

            try
            {
                using (ModelDBISE db = new ModelDBISE())
                {
                    var d = db.DOCUMENTI.Find(idDocumento);

                    if (d != null && d.IDDOCUMENTO > 0)
                    {
                        db.DOCUMENTI.Remove(d);

                        if (db.SaveChanges() <= 0)
                        {
                            throw new Exception(string.Format("Non è stato possibile effettuare l'eliminazione del documento ({0}).", d.NOMEDOCUMENTO + d.ESTENSIONE));
                        }
                        else
                        {
                            Utility.SetLogAttivita(EnumAttivitaCrud.Eliminazione, "Eliminazione di un documento (" + ((EnumTipoDoc)d.IDTIPODOCUMENTO).ToString() + ").", "Documenti", db, ps.IDTRASFPROVSCOLASTICHE, d.IDDOCUMENTO);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void SituazionePRovvidenzeScolastiche(decimal idTrasfProvScolastiche,
                                                     out bool richiestaPS,
                                                     out bool attivazionePS,
                                                     out bool DocProvvidenzeScolastiche,
                                                     out decimal NumAttivazioni,
                                                     out bool trasfAnnullato)
        {
            try
            {
                using (ModelDBISE db = new ModelDBISE())
                {
                    richiestaPS               = false;
                    attivazionePS             = false;
                    DocProvvidenzeScolastiche = false;
                    trasfAnnullato            = false;

                    var tps = db.PROVVIDENZESCOLASTICHE.Find(idTrasfProvScolastiche);

                    var idStatoTrasferimento = tps.TRASFERIMENTO.IDSTATOTRASFERIMENTO;
                    if (idStatoTrasferimento == (decimal)EnumStatoTraferimento.Annullato)
                    {
                        trasfAnnullato = true;
                    }

                    if (tps == null)
                    {
                        // Documenti in attesa di approvazione disabilito il tasto Attiva Richiesta
                        PROVVIDENZESCOLASTICHE new_tps = new PROVVIDENZESCOLASTICHE()
                        {
                            IDTRASFPROVSCOLASTICHE = idTrasfProvScolastiche
                        };
                        db.PROVVIDENZESCOLASTICHE.Add(new_tps);

                        if (db.SaveChanges() <= 0)
                        {
                            throw new Exception("Errore - Impossibile creare i record su Provvidenze Scolastiche.");
                        }

                        tps = new_tps;
                    }

                    ATTIVAZIONIPROVSCOLASTICHE last_atps = new ATTIVAZIONIPROVSCOLASTICHE();

                    var latps = tps.ATTIVAZIONIPROVSCOLASTICHE
                                .Where(a => a.ANNULLATO == false || (a.NOTIFICARICHIESTA && a.ATTIVARICHIESTA))
                                .OrderByDescending(a => a.IDPROVSCOLASTICHE).ToList();

                    if (latps?.Any() ?? false)
                    {
                        //se esiste verifica se ci sono elementi associati

                        //imposta l'ultima valida
                        last_atps = latps.First();

                        //verifica se è stata richiesta
                        if (last_atps.NOTIFICARICHIESTA && last_atps.ATTIVARICHIESTA == false)
                        {
                            richiestaPS = true;
                        }
                        //verifica se è stata attivata
                        if (last_atps.NOTIFICARICHIESTA && last_atps.ATTIVARICHIESTA)
                        {
                            attivazionePS = true;
                        }

                        foreach (var atps in latps)
                        {
                            //documenti provvidenze scolastiche
                            var ldc = atps.DOCUMENTI.Where(a => (a.IDTIPODOCUMENTO == (decimal)EnumTipoDoc.Formulario_Provvidenze_Scolastiche && a.IDSTATORECORD == (decimal)EnumStatoRecord.In_Lavorazione)).ToList();
                            if (ldc?.Any() ?? false)
                            {
                                DocProvvidenzeScolastiche = true;
                            }
                        }
                    }
                    else
                    {
                        last_atps = this.GetUltimaAttivazioneProvvScolastiche(idTrasfProvScolastiche);
                    }


                    NumAttivazioni = GetNumAttivazioniProvvidenzeScolastiche(idTrasfProvScolastiche);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }