예제 #1
0
        public DettaglioContrattoAppaltoUI(ContrattoAppaltoDTO contratto, bool disableEditing) : base(disableEditing)
        {
            InitializeComponent();
            inizializza();

            _contratto = contratto;
            IsNew = true;
        }
예제 #2
0
        public DettaglioContrattoAppaltoUI(ContrattoListaDTO contratto)
        {
            InitializeComponent();
            inizializza();

            _contratto = _contrattoService.GetById(contratto.ID.GetValueOrDefault());
            contrattoAppaltoDTOBindingSource.DataSource = _contratto;
            BusinessClass = new BaseDTOOfint[] { _contratto };
        }
예제 #3
0
        public DettaglioContrattoAppaltoUI(ContrattoAppaltoDTO contratto)
        {
            InitializeComponent();
            inizializza();

            _contratto = _contrattoService.GetSingleInstance(contratto);
            contrattoAppaltoDTOBindingSource.DataSource = _contratto;
            BusinessClass = new BaseDTOOfint[] { _contratto };
        }
예제 #4
0
        public ContrattoAppaltoDTO[] GetAll()
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var lista = daoFactory.GetContrattoAppaltoDao().GetAll();
                var contratti = new ContrattoAppaltoDTO[lista.Count];

                var index = 0;
                foreach (var contratto in lista)
                {
                    contratti[index] = setDto(contratto);
                    index++;
                }

                return contratti;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel caricamento dei Contratti - {0}", ex, Utility.GetMethodDescription());
                throw;
            }
        }
예제 #5
0
 public ContrattoAppaltoDTO GetSingleInstance(ContrattoAppaltoDTO contratto)
 {
     return GetById(contratto.ID);
 }
예제 #6
0
 public void Delete(ContrattoAppaltoDTO contratto)
 {
     GetServiceClient().DeleteContrattoAppalto(contratto.ID, GetUserInfo());
     CloseService();
 }
예제 #7
0
        public ContrattoAppaltoDTO Save(ContrattoAppaltoDTO contratto)
        {
            var contrattoSave = new ContrattoAppaltoDTO();
            var contrattoAppalto = GetServiceClient().SetContrattoAppalto(contratto, GetUserInfo());
            if (contrattoAppalto != null)
            {
                int? idContratto = contrattoAppalto.Value;
                if (idContratto == 0)
                {
                    contrattoSave = new ContrattoAppaltoDTO {ID = 0};
                }
                else
                {
                    contratto.ID = (int)idContratto;
                    contrattoSave = GetById(contratto.ID);
                }
            }

            CloseService();
            return contrattoSave;
        }
예제 #8
0
        private ContrattoAppalto manageContrattoAppalto(ContrattoAppaltoDTO contrattoAppaltoDto)
        {
            ContrattoAppalto cont = null;
            bool result;

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

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

                    if (!result)
                        throw new Exception("Impossibile scrivere sul database");
                    break;
            }
            return cont;
        }
예제 #9
0
        private bool insert(ContrattoAppaltoDTO contrattoAppaltoDto, out ContrattoAppalto cont)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                DateTime? dataInizioLavori = null;
                if (contrattoAppaltoDto.DataInizioLavori != null && Conversione.IsSqlSmallDateTime(contrattoAppaltoDto.DataInizioLavori.Value))
                    dataInizioLavori = contrattoAppaltoDto.DataInizioLavori;

                DateTime? scadenza = null;
                if (contrattoAppaltoDto.Scadenza != null && Conversione.IsSqlSmallDateTime(contrattoAppaltoDto.Scadenza.Value))
                    scadenza = contrattoAppaltoDto.Scadenza;

                cont = contrattoAppaltoDto.ContrattoPreventivo == Gipasoft.Sfera.Enums.ContrattoPreventivoEnum.Contratto ? new ContrattoAppalto(daoFactory.GetTipoContrattoDao().GetById(contrattoAppaltoDto.IdTipoContratto.GetValueOrDefault(), false), daoFactory.GetCondominioDao().GetById(contrattoAppaltoDto.IdCondominio.GetValueOrDefault(), false), daoFactory.GetFornitoreDao().GetById(contrattoAppaltoDto.IdFornitore.GetValueOrDefault(), false)) : new Preventivo(daoFactory.GetTipoContrattoDao().GetById(contrattoAppaltoDto.IdTipoContratto.GetValueOrDefault(), false), daoFactory.GetCondominioDao().GetById(contrattoAppaltoDto.IdCondominio.GetValueOrDefault(), false), daoFactory.GetFornitoreDao().GetById(contrattoAppaltoDto.IdFornitore.GetValueOrDefault(), false));
                cont.Descrizione = contrattoAppaltoDto.Descrizione;
                cont.Penale = contrattoAppaltoDto.Penale;
                cont.Importo = contrattoAppaltoDto.Importo;
                cont.DataInizioLavori = dataInizioLavori;
                cont.Scadenza = scadenza;
                cont.MesiDurata = contrattoAppaltoDto.MesiDurata;
                cont.AlertScadenzaAbilitato = contrattoAppaltoDto.AlertScadenzaAbilitato;
                cont.PresenzaAppalto = contrattoAppaltoDto.PresenzaAppalto;
                cont.Note = contrattoAppaltoDto.Note;

                // -------------------------------------
                // Alert Scadenza
                // -------------------------------------
                for (var i = 0; i < contrattoAppaltoDto.AlertScadenza.Length; i++)
                {
                    if (contrattoAppaltoDto.AlertScadenza[i] != null)
                    {
                        int? id = contrattoAppaltoDto.AlertScadenza[i].ID;
                        if (contrattoAppaltoDto.AlertScadenza[i].Stato.ToUpper() == "U" || contrattoAppaltoDto.AlertScadenza[i].Stato.ToUpper() == "I")
                            id = getAlertRepository().ManageDomainEntity(contrattoAppaltoDto.AlertScadenza[i]);


                        var alert = daoFactory.GetAlertScadenzaContrattoDao().GetById(id.GetValueOrDefault(), false);
                        cont.AlertScadenza.Add(alert);
                        alert.ContrattoRiferimento = cont;
                    }
                }

                daoFactory.GetContrattoAppaltoDao().SaveOrUpdate(cont);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'inserimento del contratto appalto - {0} - idContratto:{1}", ex, Utility.GetMethodDescription(), contrattoAppaltoDto.ID);
                throw;
            }
            return true;
        }
예제 #10
0
        private bool update(ContrattoAppaltoDTO contrattoAppaltoDto, out ContrattoAppalto cont)
        {
            bool result;
            cont = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                cont = daoFactory.GetContrattoAppaltoDao().GetById(contrattoAppaltoDto.ID, false); 

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                if (contrattoAppaltoDto.Version == cont.Version)
                {
                    // -------------------------------------
                    // Condominio Riferimento
                    // -------------------------------------
                    if (contrattoAppaltoDto.IdCondominio != null && contrattoAppaltoDto.IdCondominio > 0)
                        cont.CondominioRiferimento = daoFactory.GetCondominioDao().GetById(contrattoAppaltoDto.IdCondominio.Value, false);

                    // -------------------------------------
                    // Fornitore
                    // -------------------------------------
                    if (contrattoAppaltoDto.IdFornitore != null && contrattoAppaltoDto.IdFornitore > 0)
                        cont.FornitoreAttuale = daoFactory.GetFornitoreDao().GetById(contrattoAppaltoDto.IdFornitore.Value, false);

                    // -------------------------------------
                    // Tipo
                    // -------------------------------------
                    if (contrattoAppaltoDto.IdTipoContratto != null && contrattoAppaltoDto.IdTipoContratto > 0)
                        cont.Tipo = daoFactory.GetTipoContrattoDao().GetById(contrattoAppaltoDto.IdTipoContratto.Value, false);

                    // -------------------------------------
                    // Alert Scadenza
                    // -------------------------------------
                    cont.AlertScadenza.Clear();
                    for (var i = 0; i < contrattoAppaltoDto.AlertScadenza.Length; i++)
                    {
                        if (contrattoAppaltoDto.AlertScadenza[i] != null)
                        {
                            int? id = contrattoAppaltoDto.AlertScadenza[i].ID;
                            if (contrattoAppaltoDto.AlertScadenza[i].Stato.ToUpper() == "U" || contrattoAppaltoDto.AlertScadenza[i].Stato.ToUpper() == "I")
                                id = getAlertRepository().ManageDomainEntity(contrattoAppaltoDto.AlertScadenza[i]);

                            var alert = daoFactory.GetAlertScadenzaContrattoDao().GetById(id.GetValueOrDefault(), false);
                            cont.AlertScadenza.Add(alert);
                            alert.ContrattoRiferimento = cont;
                        }
                    }

                    cont.PresenzaAppalto = contrattoAppaltoDto.PresenzaAppalto;
                    cont.Descrizione = contrattoAppaltoDto.Descrizione;
                    cont.Penale = contrattoAppaltoDto.Penale;
                    cont.Importo = contrattoAppaltoDto.Importo;
                    cont.DataInizioLavori = contrattoAppaltoDto.DataInizioLavori;
                    cont.Note = contrattoAppaltoDto.Note;
                    cont.Scadenza = contrattoAppaltoDto.Scadenza;
                    cont.MesiDurata = contrattoAppaltoDto.MesiDurata;
                    cont.AlertScadenzaAbilitato = contrattoAppaltoDto.AlertScadenzaAbilitato;

                    daoFactory.GetContrattoAppaltoDao().Update(cont);
                    result = true;
                }
                else
                {
                    _log.ErrorFormat("Errore nel salvataggio del contratto appalto - Il dato sul db è più recente di quello che si vuole salvare - {0} - id:{1}", Utility.GetMethodDescription(), contrattoAppaltoDto.ID);
                    result = false;
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio del contratto appalto - {0} - id:{1}", ex, Utility.GetMethodDescription(), contrattoAppaltoDto.ID);
                throw;
            }

            return result;
        }
예제 #11
0
        private ContrattoAppaltoDTO setDto(ContrattoAppalto item)
        {
            var dto = new ContrattoAppaltoDTO
            {
                Descrizione = item.Descrizione ?? "",
                AlertScadenzaAbilitato = item.AlertScadenzaAbilitato,
                ID = item.ID,
                Note = item.Note,
                PresenzaAppalto = item.PresenzaAppalto,
                Version = item.Version
            };


            // -----------------------------------
            // Documenti
            // -----------------------------------
            int indexDocumenti = 0;
            foreach (Documento documento in item.Documenti)
            {
                var docDto = getDocumentoRepository().GetByDomainEntity(documento);
                if (dto.Documenti.Length == 0)
                    dto.Documenti = new DocumentoDTO[item.Documenti.Count];
                dto.Documenti[indexDocumenti] = docDto;
                indexDocumenti++;
            }

            // --------------------------------------------------------
            // Alert scadenza contratto
            // --------------------------------------------------------
            var indexAlertScadenza = 0;
            var repAlert = new AlertContrattoRepository(_info, _windsorRepository);
            foreach (var alertScadenza in item.AlertScadenza)
            {
                if (dto.AlertScadenza.Length == 0)
                    dto.AlertScadenza = new AlertContrattoDTO[item.AlertScadenza.Count];
                dto.AlertScadenza[indexAlertScadenza] = repAlert.GetByDomainEntity(alertScadenza);
                indexAlertScadenza++;
            }

            if (item.MesiDurata != null)
            dto.MesiDurata = item.MesiDurata.Value;

            if (item.AnniDurata != null)
                dto.AnniDurata = item.MesiDurata / 12;
            
            if (item.DataInizioLavori != null)
                dto.DataInizioLavori = item.DataInizioLavori.Value;

            if (item.Importo != null)
                dto.Importo = item.Importo.Value;

            if (item.Penale != null)
                dto.Penale = item.Penale.Value;

            if (item.Scadenza != null)
                dto.Scadenza = item.Scadenza.Value;

            dto.TipologiaContratto = Gipasoft.Sfera.Enums.TipoContrattoEnum.ContrattoAppalto;

            if(item.Tipo != null)
            {
                dto.IdTipoContratto = item.Tipo.ID;
                dto.DisplayTipoContratto = item.Tipo.Descrizione;
            }
            
            // -------------------------------------------
            // Condominio Riferimento
            // -------------------------------------------
            if (item.CondominioRiferimento != null)
            {
                dto.IdCondominio = item.CondominioRiferimento.ID;
                dto.DisplayCondominio = item.CondominioRiferimento.DisplayName;
            }

            // -------------------------------------------
            // Fornitore
            // -------------------------------------------
            if (item.FornitoreAttuale != null)
            {
                dto.IdFornitore = item.FornitoreAttuale.ID;
                dto.DisplayFornitore = item.FornitoreAttuale.DisplayName;
            }

            //Contratto o Preventivo
            dto.ContrattoPreventivo = Conversione.IsTypeOf(item, typeof(Preventivo)) ? Gipasoft.Sfera.Enums.ContrattoPreventivoEnum.Preventivo : Gipasoft.Sfera.Enums.ContrattoPreventivoEnum.Contratto;            
            
            return dto;
        }
예제 #12
0
 public int? ManageDomainEntity(ContrattoAppaltoDTO contrattoAppaltoDto)
 {
     try
     {
         if(contrattoAppaltoDto != null)
             return manageContrattoAppalto(contrattoAppaltoDto).ID;
         return null;
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nell'aggiornamento dei contratti - {0} - id:{1}", ex, Utility.GetMethodDescription(), contrattoAppaltoDto?.ID.ToString() ?? "<NULL>");
         throw;
     }
 }
예제 #13
0
		public int? SetContrattoAppalto(ContrattoAppaltoDTO contratto, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var repo = new ContrattoAppaltoRepository(userinfo, windsorRep);
				int? item = repo.ManageDomainEntity(contratto);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{

				_log.Error("Errore il salvataggio del contratto appalto - " + Utility.GetMethodDescription() + " - id:" + contratto, ex);
				windsorRep.Rollback();
				throw;
			}
		}
예제 #14
0
        protected override bool Save()
        {
            base.Save();
            if (_contratto.Stato != "")
            {
                _contratto.AlertScadenzaAbilitato = alertsScadenza.Enabled;
                var contrattoSave = _contrattoService.Save(_contratto);
                _contratto = contrattoSave;
                contrattoAppaltoDTOBindingSource.DataSource = _contratto;
                BusinessClass = new BaseDTOOfint[] { _contratto };

                if (contrattoSave.ID == 0)
                {
                    CommonMessages.DisplayWarning("Si è verificato un errore: un altro utente ha effettuato un aggiornamento. Uscire e riprovare ");
                    Dispose();
                }
            }
            if ((_listPlugin == null) && (_contratto.ID != 0) && SaveBehavoir != SaveBehavoir.Exit && !Modal)
                loadPlugins();

            return true;
        }