Exemple #1
0
        public SoggettoCondominioDTO[] GetAllByAzienda(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var lista = daoFactory.GetSoggettoCondominioDao().GetByAzienda(idAzienda);
                var soggettiCondominio = new SoggettoCondominioDTO[lista.Count];

                var index = 0;
                foreach (var soggettoCondominio in lista)
                {
                    soggettiCondominio[index] = setDto(soggettoCondominio, false);
                    index++;
                }

                return soggettiCondominio;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel caricamento dei soggetti condominio - {0} - azienda:{1}", ex, Library.Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
        public IList<SoggettoCondominioDTO> GetSoggettiByRate(IList<RataPersonaDTO> rate)
        {
            try
            {
                var soggetti = new Dictionary<int, SoggettoCondominioDTO>();
                foreach (var rata in rate)
                {
                    try
                    {
                        if (!soggetti.ContainsKey(rata.IdSoggetto))
                        {
                            var dto = new SoggettoCondominioDTO
                            {
                                ID = rata.IdSoggetto,
                                DescrizioneUnitaImmobiliare = rata.DescrizioneUnitaImmobiliare,
                                Tipo = rata.TipoSoggetto,
                                TipoUnitaImmobiliare = rata.TipoUnitaImmobiliare,
                                OrdineUnitaImmobiliare = rata.OrdineUnitaImmobiliare
                            };
                            soggetti.Add(rata.IdSoggetto, dto);
                        }
                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore nella lettura dei soggetti per rate - SINGOLA RATA - {0} - rata:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), rata.ID, Login.Instance.CurrentLogin().Azienda);
                        throw;
                    }
                }

                return soggetti.Values.ToList();
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura dei soggetti per rate - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
                throw;
            }
        }
Exemple #3
0
 private void listaMouseUp(object sender, MouseEventArgs e)
 {
     _soggettoClick = null;
     if (e.Button == MouseButtons.Right)
     {
         _soggettoClick = DataGridHelper.GetCellEvent<SoggettoCondominioDTO>(lista, e);
         if (_soggettoClick != null)
             contextMenuStrip1.Show(lista, e.X, e.Y);
     }
 }
Exemple #4
0
        private void listaBeforeRowEditTemplateDisplayed(object sender, BeforeRowEditTemplateDisplayedEventArgs e)
        {
            if (lista.DisplayLayout.Bands[0].Override.AllowUpdate == Infragistics.Win.DefaultableBoolean.False)
                e.Cancel = true;
            else
            {
                sceltaPersonaCombo1.Enabled = true;
                var row = lista.ActiveRow;
                var soggettoCondominio = row.ListObject as SoggettoCondominioDTO;
                if (soggettoCondominio != null)
                {
                    if (soggettoCondominio.ID == 0)
                    {
                        var modalitaConvocazione = getSoggettoService().GetTipoModalitaConvocazione();
                        if(modalitaConvocazione != TipoModalitaConvocazione.Undefined)
                            soggettoCondominio.ModalitaConvocazione = getSoggettoService().GetTipoModalitaConvocazione().ToString();
                    }

                    _soggettoEditTemplate = soggettoCondominio;
                    listaSoggetti.Enabled = false;
                    if (_dataSourceSoggetti != null)
                    {
                        listaSoggetti.Enabled = true;
                        soggettoCondominioDTOBindingSource1.DataSource = _dataSourceSoggetti.Where(item => item.ID != soggettoCondominio.ID).ToList();
                    }

                    listaSoggetti.Value = row.Cells["IdSoggettoPrincipale"].Value;

                    sceltaPersonaCombo1.LoadData();
                    if (soggettoCondominio.IdPersona > 0)
                        sceltaPersonaCombo1.SetPersonaInitial(soggettoCondominio.IdPersona);

                    var form = ParentForm as UpdatableStandardForm;
                    if (form != null && !form.IsEditingMode)
                    {
                        sceltaPersonaCombo1.Enabled = false;
                        listaSoggetti.Enabled = false;
                    }
                }
            }
        }
Exemple #5
0
        private void listaDoubleClickRow(object sender, DoubleClickRowEventArgs e)
        {
            try
            {
                if (e.Row.IsDataRow && e.Row.ListObject is SoggettoCondominioDTO && ((SoggettoCondominioDTO)e.Row.ListObject).IdPersona > 0)
                {
                    _soggettoDoubleClick = (SoggettoCondominioDTO)e.Row.ListObject;
                    var form = new DettaglioSoggettoUI(_soggettoDoubleClick.IdPersona);
                    var parentForm = ParentForm;
                    if (parentForm != null) form.MdiParent = parentForm.MdiParent;
                    form.AfterUpdate += formAfterUpdate;
                    _formAfterUpdateEventHandler.Add(form);
                    form.Show();
                }
            }
            catch (Exception ex)
            {
                var id = string.Empty;
                if(e.Row.Cells.Exists("ID"))
                    id = e.Row.Cells["ID"].Value.ToString();

                _log.ErrorFormat("Errore durante l'apertura del dettaglio con doppio click sulla riga - {0} - id:{1}", ex, Utility.GetMethodDescription(), id);
            }
        }
Exemple #6
0
 private bool checkAltreModalita(SoggettoCondominioDTO soggetto)
 {
     return true;
     //var altreUnita = _dataSourceSoggetti.Where(item => item.IdPersona == soggetto.IdPersona && !string.IsNullOrEmpty(item.ModalitaConvocazione) && item.ModalitaConvocazione != soggetto.ModalitaConvocazione);
     //return !altreUnita.Any();
 }
Exemple #7
0
		public int? SetSoggetti(SoggettoCondominioDTO soggetto, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
                var repo = new SoggettoRepository(userinfo, windsorRep);
                var item = repo.ManageDomainEntity(soggetto);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{
				_log.ErrorFormat("Errore il salvataggio dei Soggetti - {0} - id:{1}", ex, Utility.GetMethodDescription(), soggetto.ID);
				windsorRep.Rollback();
				throw;
			}
		}
        private bool insert(SoggettoCondominioDTO dto, out Proprietario item)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            var soggettoService = _windsorRepository.GetContainer(_info.Azienda).Resolve<ISoggettoService>();

            item = new Proprietario(daoFactory.GetUnitaImmobiliareDao().GetById(dto.IdUnitaImmobiliare, false), daoFactory.GetPersonaDao().GetById(dto.IdPersona, false));

            try
            {
                item.Consigliere = dto.Consigliere;
                item.DataFine = dto.DataFine;
                item.DataInizio = dto.DataInizio;
                item.PercentualeRiferimento = dto.PercentualeRiferimento;
                item.Principale = dto.Principale;
                item.IsResidente = dto.IsResidente;
                item.DirittoPersonaleGodimento = dto.DirittoPersonaleGodimento;
                item.Descrizione = dto.Descrizione;
                item.DescrizioneAggiuntiva = dto.DescrizioneAggiuntiva;

                if (!string.IsNullOrEmpty(dto.ModalitaConvocazione))
                    item.ModalitaConvocazione = (TipoModalitaConvocazione)Enum.Parse(typeof(TipoModalitaConvocazione), dto.ModalitaConvocazione);
                else
                    item.ModalitaConvocazione = null;

                if (!string.IsNullOrEmpty(dto.DirittoReale))
                    item.DirittoReale = (DirittoReale)Enum.Parse(typeof(DirittoReale), dto.DirittoReale);
                else
                    item.DirittoReale = null;

                if (dto.IdSoggettoPrincipale > 0)
                    item.SoggettoPrincipale = daoFactory.GetSoggettoCondominioDao().GetById(dto.IdSoggettoPrincipale.GetValueOrDefault(), false);

                item.FrazionePossesso = null;
                if (dto.NumeratorePossesso != null && dto.DenominatorePossesso != null)
                {
                    item.FrazionePossesso = new Fraction
                    {
                        Numerator = dto.NumeratorePossesso,
                        Denominator = dto.DenominatorePossesso
                    };
                }

                item.IsResidente = soggettoService.IsResidente(item); 
                daoFactory.GetProprietarioDao().SaveOrUpdate(item);

                // Descrizione Unità Immobiliare
                item.UnitaImmobiliare.Descrizione = daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(item.UnitaImmobiliare);

            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'inserimento del proprietario - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID);
                throw;
            }

            return true;
        }
Exemple #9
0
        private bool insert(SoggettoCondominioDTO dto, out SoggettoCondominio item)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            var soggettoService = _windsorRepository.GetContainer(_info.Azienda).Resolve<ISoggettoService>();

            try
            {
                if (dto.IdPersona > 0)
                {
                    var unita = daoFactory.GetUnitaImmobiliareDao().GetById(dto.IdUnitaImmobiliare, false);

                    item = null;
                    switch (dto.Tipo)
                    {
                        case TipoSoggetto.Proprietario:
                            item = new Proprietario(unita, daoFactory.GetPersonaDao().GetById(dto.IdPersona, false));
                            break;
                        case TipoSoggetto.Conduttore:
                            item = new Conduttore(unita, daoFactory.GetPersonaDao().GetById(dto.IdPersona, false));
                            break;
                    }

                    if (item != null)
                    {
                        item.IsResidente = dto.IsResidente;
                        item.Consigliere = dto.Consigliere;
                        item.DataFine = dto.DataFine;
                        item.DataInizio = dto.DataInizio;
                        item.PercentualeRiferimento = dto.PercentualeRiferimento;
                        item.Principale = dto.Principale;
                        item.DirittoPersonaleGodimento = dto.DirittoPersonaleGodimento;
                        item.Descrizione = dto.Descrizione;
                        item.DescrizioneAggiuntiva = dto.DescrizioneAggiuntiva;

                        if (!string.IsNullOrEmpty(dto.ModalitaConvocazione))
                            item.ModalitaConvocazione = (TipoModalitaConvocazione)Enum.Parse(typeof(TipoModalitaConvocazione), dto.ModalitaConvocazione);
                        else
                            item.ModalitaConvocazione = null;

                        if (!string.IsNullOrEmpty(dto.DirittoReale))
                        {
                            DirittoReale dirittoReale;
                            if (Enum.TryParse(dto.DirittoReale, true, out dirittoReale))
                                item.DirittoReale = dirittoReale;
                            
                        }
                        else
                            item.DirittoReale = null;

                        if (dto.IdSoggettoPrincipale > 0)
                            item.SoggettoPrincipale = daoFactory.GetSoggettoCondominioDao().GetById(dto.IdSoggettoPrincipale.GetValueOrDefault(), false);

                        item.FrazionePossesso = null;
                        if (dto.NumeratorePossesso != null && dto.DenominatorePossesso != null)
                        {
                            item.FrazionePossesso = new Fraction
                            {
                                Numerator = dto.NumeratorePossesso,
                                Denominator = dto.DenominatorePossesso
                            };
                        }

                        item.IsResidente = soggettoService.IsResidente(item);
                        daoFactory.GetSoggettoCondominioDao().SaveOrUpdate(item);

                        // Descrizione Unità Immobiliare
                        if(item.UnitaImmobiliare != null)
                            item.UnitaImmobiliare.Descrizione = daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(item.UnitaImmobiliare);
                    }
                }
                else
                {
                    item = null;
                    _log.WarnFormat("Tentativo di salvare un soggetto senza aver indicato la persona - {0} - id:{1} - azienda:{2}", Library.Utility.GetMethodDescription(), dto.ID, _info.Azienda);
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio del soggetto condominio - {0} - id:{1} - azienda:{2}", ex, Library.Utility.GetMethodDescription(), dto.ID, _info.Azienda);
                throw;
            }

            return true;
        }
Exemple #10
0
        private bool update(SoggettoCondominioDTO dto, out SoggettoCondominio item)
        {
            bool result;
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            var soggettoService = _windsorRepository.GetContainer(_info.Azienda).Resolve<ISoggettoService>();

            try
            {
                item = daoFactory.GetSoggettoCondominioDao().Find(dto.ID, false);
                if (item == null)
                    return true;

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                if (dto.Version <= item.Version)
                {
                    item.Consigliere = dto.Consigliere;
                    item.PercentualeRiferimento = dto.PercentualeRiferimento;
                    item.Principale = dto.Principale;
                    item.DirittoPersonaleGodimento = dto.DirittoPersonaleGodimento;
                    item.VersamentoMav = dto.VersamentoMav;
                    item.Descrizione = dto.Descrizione;
                    item.DescrizioneAggiuntiva = dto.DescrizioneAggiuntiva;

                    item.DataFine = null;
                    if(Library.Conversione.IsSqlSmallDateTime(dto.DataFine.GetValueOrDefault()))
                        item.DataFine = dto.DataFine;
                    item.DataInizio = null;
                    if (Library.Conversione.IsSqlSmallDateTime(dto.DataInizio.GetValueOrDefault()))
                        item.DataInizio = dto.DataInizio;

                    // Se l'ho cambiato da interfaccia mantengo l'impostazione, altrimenti cerco di aggiornarla automaticamente
                    if (dto.IsResidente != item.IsResidente)
                        item.IsResidente = dto.IsResidente;
                    else
                    {
                        item.IsResidente = null;
                        item.IsResidente = soggettoService.IsResidente(item);
                    }

                    if (!string.IsNullOrEmpty(dto.ModalitaConvocazione))
                        item.ModalitaConvocazione = (TipoModalitaConvocazione)Enum.Parse(typeof(TipoModalitaConvocazione), dto.ModalitaConvocazione);
                    else
                        item.ModalitaConvocazione = null;

                    if (!string.IsNullOrEmpty(dto.DirittoReale))
                        item.DirittoReale = (DirittoReale)Enum.Parse(typeof(DirittoReale), dto.DirittoReale);
                    else
                        item.DirittoReale = null;

                    item.FrazionePossesso = null;
                    if (dto.NumeratorePossesso != null && dto.DenominatorePossesso != null)
                    {
                        item.FrazionePossesso = new Fraction
                        {
                            Numerator = dto.NumeratorePossesso,
                            Denominator = dto.DenominatorePossesso
                        };
                    }

                    item.Persona = daoFactory.GetPersonaDao().GetById(dto.IdPersona, false);
                    item.UnitaImmobiliare = daoFactory.GetUnitaImmobiliareDao().GetById(dto.IdUnitaImmobiliare, false);

                    item.SoggettoPrincipale = dto.IdSoggettoPrincipale > 0 ? daoFactory.GetSoggettoCondominioDao().GetById(dto.IdSoggettoPrincipale.GetValueOrDefault(), false) : null;

                    daoFactory.GetSoggettoCondominioDao().Update(item);

                    result = true;
                }
                else
                {
                    // Eccezione: Sul db c'è qualche cosa di più nuovo.
                    _log.ErrorFormat("Errore nel salvataggio del soggetto: id:{0}  - il dato sul db è più recente di quello che si vuole salvare - azienda:{1}", dto.ID, _info.Azienda);
                    result = false;
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio del soggetto - {0} - id:{1} - azienda:{2}", ex, Library.Utility.GetMethodDescription(), dto.ID, _info.Azienda);
                throw;
            }

            return result;
        }
Exemple #11
0
        private SoggettoCondominioDTO setDto(SoggettoCondominio item, bool fast)
        {
            try
            {
                if(item != null)
                {
                    var dto = new SoggettoCondominioDTO
                    {
                        Consigliere = item.Consigliere,
                        DataFine = item.DataFine,
                        DataInizio = item.DataInizio,
                        ID = item.ID,
                        PercentualeRiferimento = item.PercentualeRiferimento,
                        IdPersona = item.Persona.ID,
                        DisplayNominativo = item.DisplayName,
                        IdUnitaImmobiliare = item.UnitaImmobiliare.ID,
                        DescrizioneUnitaImmobiliare = item.UnitaImmobiliare.Descrizione,
                        OrdineUnitaImmobiliare = item.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                        TipoUnitaImmobiliare = item.UnitaImmobiliare.TipoUnitaImmobiliare.Descrizione,
                        InternoUnitaImmobiliare = item.UnitaImmobiliare.InternoCompleto,
                        IsResidente = item.IsResidente,
                        Principale = item.Principale,
                        Tipo = item.Tipo,
                        DirittoPersonaleGodimento = item.DirittoPersonaleGodimento,
                        VersamentoMav = item.VersamentoMav,
                        Descrizione = item.Descrizione,
                        DescrizioneAggiuntiva = item.DescrizioneAggiuntiva
                    };

                    if (item.FrazionePossesso != null)
                    {
                        dto.NumeratorePossesso = item.FrazionePossesso.Numerator;
                        dto.DenominatorePossesso = item.FrazionePossesso.Denominator;
                        dto.Possesso = item.FrazionePossesso.ToString();
                    }

                    if (item.UnitaImmobiliare.GruppoStabileRiferimento != null)
                    {
                        dto.Scala = item.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione;
                        dto.Stabile = item.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione;
                        dto.IdCondominio = item.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID;
                        dto.DescrizioneCondominio = item.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName;
                    }

                    if (item.ModalitaConvocazione != null)
                        dto.ModalitaConvocazione = item.ModalitaConvocazione.ToString();

                    if (item.DirittoReale != null)
                        dto.DirittoReale = item.DirittoReale.ToString();

                    dto.DisplayName = dto.OrdineUnitaImmobiliare + " - " + dto.DisplayNominativo + " - " + dto.Tipo;

                    // Soggetto Principale
                    if (!fast)
                    {
                        if (item.SoggettoPrincipale != null)
                        {
                            dto.IdSoggettoPrincipale = item.SoggettoPrincipale.ID;
                            dto.DescrizioneSoggettoPrincipale = item.GetDescrizioneAccorpamento();
                        }

                        if (item.SubentriEntrata.Count > 0)
                            dto.IdSubentroEntrata = Library.IesiGenericCollections<SubentroUnitaImmobiliare>.GetByIndex(item.SubentriEntrata, 0).Subentro.ID;
                    }

                    return dto;                    
                }

                return null;
            }
            catch (Exception ex)
            {
                var idStr = string.Empty;
                if (item != null)
                    idStr = item.ID.ToString(CultureInfo.InvariantCulture);
                _log.ErrorFormat("Errore nella creazione del DTO per soggetti condominio - {0} - id:{1} - azienda:{2}", ex, Library.Utility.GetMethodDescription(), idStr);
                throw;
            }
        }
Exemple #12
0
 public int? ManageDomainEntity(SoggettoCondominioDTO soggettoCondominioDto)
 {
     try
     {
         var item = manageSoggetto(soggettoCondominioDto);
         if (item != null)
             return item.ID;
         return null;
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nel caricamento dei soggetti - {0} - id:{1}", ex, Library.Utility.GetMethodDescription(), soggettoCondominioDto.ID);
         throw;
     }
 }
Exemple #13
0
 public string IsAllowDelete(SoggettoCondominioDTO soggetto)
 {
     var result = GetServiceClient().IsAllowDeleteSoggettoCondominio(soggetto.ID, GetUserInfo());
     CloseService();
     return result;
 }
Exemple #14
0
        public SoggettoCondominioDTO Save(SoggettoCondominioDTO soggetto)
        {
            int? idSoggetto = GetServiceClient().SetSoggetti(soggetto, GetUserInfo()).GetValueOrDefault();

            var soggettoSave = idSoggetto == 0 ? new SoggettoCondominioDTO {ID = 0} : GetServiceClient().GetSoggettoCondominioById(soggetto.ID, GetUserInfo());

            CloseService();
            return soggettoSave;
        }
Exemple #15
0
        private void btnUnitaImmobiliari_Click(object sender, EventArgs e)
        {
            Dictionary<string, int> personeInserite = new Dictionary<string, int>();
            Dictionary<string, int> unitaInserite = new Dictionary<string, int>();

            IList<DatiUnitaImmobiliare> unitaImmobiliari = ImportazioneCentroAbita.GetUnitaImmobiliari(openFileDialog1.FileName);
            openService();
            BindingList<ComuneDTO> comuni = _service.GetComuni(_userInfo);
            IList<StabileDTO> stabili = _service.GetStabiliByAzienda(_userInfo);
            Dictionary<string, CondominioDTO> condomini = new Dictionary<string, CondominioDTO>();
            Dictionary<string, int> ordineUnita = new Dictionary<string, int>();

            IList<IdCodiceImportazione> listaCondominiImportati = _service.GetCodiceImportazione(Gipasoft.Sfera.Enums.TipoAnagraficaEnum.Condominio, _userInfo);

            foreach (DatiUnitaImmobiliare item in unitaImmobiliari)
            {
                int idCondominio = listaCondominiImportati.Where(itemCond => itemCond.CodiceImportazione == item.CodiceCondominio).SingleOrDefault().Id;

                int ordine = 0;
                if (ordineUnita.ContainsKey(item.CodiceCondominio))
                {
                    ordine = ordineUnita[item.CodiceCondominio] + 10;
                    ordineUnita[item.CodiceCondominio] =  ordine;
                }
                else
                {
                    ordine = 10;
                    ordineUnita.Add(item.CodiceCondominio, ordine);
                }

                int? idPersona = null;
                if (personeInserite.ContainsKey(item.CodicePersona))
                    idPersona = personeInserite[item.CodicePersona];
                else
                {
                    string localita = item.Localita;
                    string codiceComune = getCodiceComuneByDescrizione(item.Localita, comuni);
                    if (!string.IsNullOrEmpty(codiceComune))
                        localita = string.Empty;

                    PersonaDTO persona = new PersonaDTO()
                    {
                        Cognome = item.NominativoPersona,
                        IndirizzoResidenza = new AddressDTO()
                        {
                            Indirizzo = item.IndirizzoPersona,
                            Cap = item.Cap,
                            CodiceComune = codiceComune,
                            Localita = localita
                        }
                    };

                    if (!string.IsNullOrEmpty(item.TelefonoPersona))
                    {
                        if (persona.Contatti == null)
                            persona.Contatti = new BindingList<ContattoDTO>();
                        persona.Contatti.Add(new ContattoDTO() { TipoContatto = "Telefono", Valore = item.TelefonoPersona.Trim() });
                    }

                    idPersona = _service.SetPersona(persona, _userInfo);
                }

                int? idUnita = null;
                if (unitaInserite.ContainsKey(item.CodiceUnita))
                    idUnita = unitaInserite[item.CodiceUnita];
                else
                {
                    UnitaImmobiliareDTO unita = new UnitaImmobiliareDTO()
                    {
                        IdCondominio = idCondominio,
                        IdAzienda = 16,
                        Ordine = ordine,
                        Descrizione = "$proprietario1",
                        GruppoStabileRiferimento = stabili.Where(itemStabile => itemStabile.IdCondominio == idCondominio).FirstOrDefault().GruppiStabile.FirstOrDefault(),
                        CodiceImportazione = item.CodiceUnita
                    };

                    idUnita = _service.SetUnitaImmobiliari(unita, _userInfo);
                    unitaInserite.Add(item.CodiceUnita, idUnita.GetValueOrDefault());
                }

                Gipasoft.Sfera.Enums.TipoSoggetto tipo = Gipasoft.Sfera.Enums.TipoSoggetto.Proprietario;
                switch(item.TipoSoggetto)
                {
                    case "P":
                        tipo = Gipasoft.Sfera.Enums.TipoSoggetto.Proprietario;
                        break;
                    case "I":
                        tipo = Gipasoft.Sfera.Enums.TipoSoggetto.Conduttore;
                        break;
                }

                SoggettoCondominioDTO soggetto = new SoggettoCondominioDTO()
                {
                    IdUnitaImmobiliare = idUnita.Value,
                    IdPersona = idPersona.Value,
                    PercentualeRiferimento = 100,
                    Principale = true,
                    Tipo = tipo
                };
                _service.SetSoggetti(soggetto, _userInfo);
            }
        }
        private SottoContoDTO convertSoggettoToSottoconto(SoggettoCondominioDTO soggetto)
        {
            var sottoConto = new SottoContoDTO
            {
                ID = soggetto.ID * -1,
                Descrizione = soggetto.DisplayName,
                Codice = string.Format("{0}.{1}", GetCodiceContoVersamentiCondomini(), soggetto.ID.ToString(CultureInfo.InvariantCulture).PadLeft(7, '0'))
            };

            return sottoConto;
        }
Exemple #17
0
        private SoggettoCondominio manageSoggetto(SoggettoCondominioDTO soggettoCondominioDto)
        {
            SoggettoCondominio sogg = null;
            bool result;

            // Controllo sullo stato U, D, I
            switch (soggettoCondominioDto.Stato.ToUpper())
            {
                case "U":
                    result = update(soggettoCondominioDto, out sogg);

                    if (!result)
                    {
                        //Il dato sul database è più recente di quello utilizzato
                        //sogg.ID = 0;
                        sogg = null;
                    }
                    break;
                case "I":
                    result = insert(soggettoCondominioDto, out sogg);

                    if (!result)
                        throw new Exception("Impossibile scrivere sul database");
                    break;
                case "D":
                    var message = delete(soggettoCondominioDto.ID);
                    if (!string.IsNullOrEmpty(message))
                        _log.WarnFormat("Non è possibile eliminare il soggetto - {0} - messaggio:{1} - id:{2}", Library.Utility.GetMethodDescription(), message, soggettoCondominioDto.ID);                        
                    break;
            }

            return sogg;
        }
        private bool update(SoggettoCondominioDTO dto, out Conduttore item)
        {
            var result = false;
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            var soggettoService = _windsorRepository.GetContainer(_info.Azienda).Resolve<ISoggettoService>();

            try
            {
                item = daoFactory.GetConduttoreDao().GetById(dto.ID, false);

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                if (dto.Version == item.Version)
                {
                    item.Consigliere = dto.Consigliere;
                    item.DataFine = dto.DataFine;
                    item.DataInizio = dto.DataInizio;
                    item.PercentualeRiferimento = dto.PercentualeRiferimento;
                    item.Principale = dto.Principale;
                    item.VersamentoMav = dto.VersamentoMav;
                    item.IsResidente = dto.IsResidente;
                    item.DirittoPersonaleGodimento = dto.DirittoPersonaleGodimento;
                    item.Descrizione = dto.Descrizione;
                    item.DescrizioneAggiuntiva = dto.DescrizioneAggiuntiva;

                    if (!string.IsNullOrEmpty(dto.ModalitaConvocazione))
                        item.ModalitaConvocazione = (TipoModalitaConvocazione)Enum.Parse(typeof(TipoModalitaConvocazione), dto.ModalitaConvocazione);
                    else
                        item.ModalitaConvocazione = null;

                    if (!string.IsNullOrEmpty(dto.DirittoReale))
                        item.DirittoReale = (DirittoReale)Enum.Parse(typeof(DirittoReale), dto.DirittoReale);
                    else
                        item.DirittoReale = null;

                    if (item.FrazionePossesso != null)
                    {
                        dto.NumeratorePossesso = item.FrazionePossesso.Numerator;
                        dto.DenominatorePossesso = item.FrazionePossesso.Denominator;
                        dto.Possesso = item.FrazionePossesso.ToString();
                    }

                    item.Persona = daoFactory.GetPersonaDao().GetById(dto.IdPersona, false);
                    item.UnitaImmobiliare = daoFactory.GetUnitaImmobiliareDao().GetById(dto.IdUnitaImmobiliare, false);

                    if (dto.IdSoggettoPrincipale > 0)
                        item.SoggettoPrincipale = daoFactory.GetSoggettoCondominioDao().GetById(dto.IdSoggettoPrincipale.GetValueOrDefault(), false);

                    soggettoService.IsResidente(item);
                    daoFactory.GetConduttoreDao().Update(item);

                    // Descrizione Unità Immobiliare
                    item.UnitaImmobiliare.Descrizione = daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(item.UnitaImmobiliare);

                    result = true;
                }
                else
                {
                    // Eccezione: Sul db c'è qualche cosa di più nuovo.
                    _log.ErrorFormat("Errore nel salvataggio del conduttore - il dato sul db è più recente di quello che si vuole salvare - {0} - id:{1}", Library.Utility.GetMethodDescription(), dto.ID);
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio del conduttore - {0} - id:{1}", ex, Library.Utility.GetMethodDescription(), dto.ID);
                throw;
            }

            return result;
        }
        public string AggiornaMovimento(MovimentiBancariDTO movimento, EsercizioDTO esercizio, CondominioDTO condominio, FornitoreDTO fornitore, SoggettoCondominioDTO soggetto)
        {
            int? idEsercizio = null;
            int? idCondominio = null;
            int? idFornitore = null;
            int? idSoggetto = null;
            if (condominio != null)
                idCondominio = condominio.ID;
            if (esercizio != null)
                idEsercizio = esercizio.ID;
            if (fornitore != null)
                idFornitore = fornitore.ID;
            if (soggetto != null)
                idSoggetto = soggetto.ID;

            var messaggio = GetServiceClient().AggiornaMovimentoBancario(movimento.ID, idEsercizio, idCondominio, idFornitore, idSoggetto, GetUserInfo());
            if (string.IsNullOrEmpty(messaggio))
            {
                if (condominio != null)
                {
                    movimento.CodiceCondominio = condominio.ID;
                    movimento.DescrizioneCondominio = condominio.DisplayName;
                }
                if (esercizio != null)
                {
                    movimento.CodiceEsercizio = esercizio.ID;
                    movimento.DescrizioneEsercizio = esercizio.DisplayName;
                }
                if (fornitore != null)
                {
                    movimento.CodiceFornitore = fornitore.ID;
                    movimento.NomeFornitore = fornitore.DisplayNominativo;
                }
                if (soggetto != null)
                {
                    movimento.CodiceSoggetto = soggetto.ID;
                    movimento.NomeOrdinante = soggetto.DisplayNominativo;
                }
            }

            CloseService();

            return messaggio;
        }