Esempio n. 1
0
        /// <summary>
        /// Crea uno Esercizio Ordinario valido
        /// </summary>
        public Esercizio(Condominio condominio, DateTime? dataApertura, DateTime? dataChiusura, AnnoGestionale annoGestionale, GestioneEsercizioEnum gestione)
        {
            ProgressivoRegistrazioneContabile = 1;
            CondominioRiferimento = condominio;
            DataApertura = dataApertura;
            DataChiusura = dataChiusura;
            AnnoGestionale = annoGestionale;
            Gestione = gestione;
            Stato = StatoEsercizioEnum.Aperto;
            BloccoSaldi = false;

            if(CondominioRiferimento != null)
                CondominioRiferimento.Esercizi.Add(this);
            if (AnnoGestionale != null)
                AnnoGestionale.Esercizi.Add(this);
        }
Esempio n. 2
0
        public EsercizioDTO Nuovo(CondominioDTO condominio, AnnoGestionaleDTO annoGestionale, GestioneEsercizioEnum gestione, DateTime apertura, DateTime chiusura, string descrizione, string note)
        {
            int? idAnnoGestionale = null;
            if (annoGestionale != null)
                idAnnoGestionale = annoGestionale.ID;

            var result = GetServiceClient().NewEsercizio(condominio.ID, idAnnoGestionale, gestione, apertura, chiusura, descrizione, note, GetUserInfo());
            CloseService();
            return result;
        }
Esempio n. 3
0
        public EsercizioDTO Nuovo(CondominioDTO condominio, AnnoGestionaleDTO annoGestionale, GestioneEsercizioEnum gestione, DateTime apertura, DateTime chiusura, string descrizione, string note)
        {
            var wcfService = new EsercizioWCFService();
            var esercizio = wcfService.Nuovo(condominio, annoGestionale, gestione, apertura, chiusura, descrizione, note);
            updateCache(esercizio);

            return esercizio;
        }
Esempio n. 4
0
        private AperturaEsercizio aperturaEsercizio(int idEsercizioAttuale, DateTime dataApertura, DateTime dataChiusura, string descrizione, string note, GestioneEsercizioEnum gestione, TipoEsercizioStraordinarioEnum? tipoEsercizioStraordinario)
        {
            AnnoGestionale annoGestionale = null;
            Esercizio esercizioNuovo = null;
            Conto contoVersamentiCondomini = null;
            if (gestione == GestioneEsercizioEnum.Straordinario || string.IsNullOrEmpty(IsAllowAperturaEsercizioOrdinario(idEsercizioAttuale, dataApertura, dataChiusura).FatalMessage))
            {
                var message = string.Empty;
                var esercizioAttuale = _daoFactory.GetEsercizioDao().Find(idEsercizioAttuale, false);
                if (esercizioAttuale != null)
                {
                    //if (gestione == GestioneEsercizioEnum.Ordinario)
                    //    message = checkDataApertura(dataApertura, esercizioAttuale);

                    if (message == string.Empty)
                    {
                        // -------------------------------------------------------
                        // Apertura Anno Gestionale - SOLO ESERCIZIO ORDINARIO
                        // -------------------------------------------------------
                        annoGestionale = gestione == GestioneEsercizioEnum.Ordinario ? new AnnoGestionale(esercizioAttuale.CondominioRiferimento, esercizioAttuale.AnnoGestionale.AnnoFinale.GetValueOrDefault(), esercizioAttuale.AnnoGestionale.AnnoFinale.GetValueOrDefault() + 1) { AnnoGestionalePrecedente = esercizioAttuale.AnnoGestionale } : esercizioAttuale.AnnoGestionale;

                        // Apertura Esercizio
                        esercizioNuovo = new Esercizio(annoGestionale.CondominioRiferimento, dataApertura, dataChiusura, annoGestionale, gestione)
                        {
                            NoteApertura = note,
                            Descrizione = descrizione,
                            TipoStraordinario = tipoEsercizioStraordinario
                        };

                        // -------------------------------------------------------
                        // Nuovo conto versamenti - SOLO ESERCIZIO STRAORDINARIO
                        // -------------------------------------------------------
                        if (gestione == GestioneEsercizioEnum.Straordinario)
                        {
                            contoVersamentiCondomini = new Conto(esercizioAttuale.CondominioRiferimento, TipoContoEconomicoEnum.Patrimoniale, TipoPeriodoCompetenzaContabile.Esercizio, $"Crediti v/condomini - {descrizione}", false, false, false)
                            {
                                Codice = "906",
                                EsercizioRiferimento = esercizioNuovo,
                                CustomField = false
                            };
                        }

                        message = $"L'apertura dell'esercizio: {esercizioNuovo.DisplayName} è terminata correttamente";
                    }
                }
                else
                {
                    message = "Errore imprevisto nell'apertura dell'esercizio";
                }

                _notifier.Notify(message);
            }

            return new AperturaEsercizio(annoGestionale, esercizioNuovo, contoVersamentiCondomini);        
        }
Esempio n. 5
0
        public Esercizio NuovoEsercizio(int idCondominio, int? annoGestionale, GestioneEsercizioEnum gestione, DateTime dataApertura, DateTime dataChiusura, string descrizione, string note)
        {
            AnnoGestionale anno;
            if (annoGestionale != null)
                anno = _daoFactory.GetAnnoGestionaleDao().GetById(annoGestionale.Value, false);
            else
            {
                anno = new AnnoGestionale(_daoFactory.GetCondominioDao().GetById(idCondominio, false), dataApertura.Year, dataChiusura.Year);
                _daoFactory.GetAnnoGestionaleDao().SaveOrUpdate(anno);
            }
            var esercizio = new Esercizio(anno.CondominioRiferimento, dataApertura, dataChiusura, anno, gestione) {NoteApertura = note};
            _daoFactory.GetEsercizioDao().SaveOrUpdate(esercizio);

            return esercizio;
        }
Esempio n. 6
0
		public EsercizioDTO NewEsercizio(int idCondominio, int? annoGestionale, GestioneEsercizioEnum gestione, DateTime dataApertura, DateTime dataChiusura, string descrizione, string note, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var repo = new EsercizioRepository(userinfo, windsorRep);
				var esercizi = windsorRep.GetContainer(userinfo.Azienda).Resolve<IEsercizioService>();
                var esercizio = esercizi.NuovoEsercizio(idCondominio, annoGestionale, gestione, dataApertura, dataChiusura, descrizione, note);

                var item = esercizio != null ? repo.GetByDomainEntity(esercizio) : null;
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{
				_log.ErrorFormat("Errore nella creazione di un nuovo esercizio - {0} - idCondominio:{1} - annoGestionale:{2} - dataApertura:{3} - dataChiusura:{4} - descrizione:{5} - note:{6} - azienda:{7}", ex, Utility.GetMethodDescription(), idCondominio, annoGestionale.GetValueOrDefault(), dataApertura, dataChiusura, descrizione, note, userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}