public ResultDocumento Save(Appalto appalto, byte[] data, string nomeFile) { // Oggetto contratto var contratto = new ContrattoAppalto(_daoFactory.GetTipoContrattoDao().GetById(appalto.TipoContratto, false), _daoFactory.GetCondominioDao().GetById(appalto.CodiceStabile.GetValueOrDefault(), false), _daoFactory.GetFornitoreDao().GetById(appalto.CodiceFornitore.GetValueOrDefault(), false)); Common.ContrattoGenericoHelper.SetDefault(contratto); contratto.Descrizione = "Appalto: " + appalto.DescrizioneStabile + " - " + appalto.Appaltatore; contratto.DataInizioLavori = appalto.DataInizioLavori; contratto.Scadenza = appalto.DataInizioLavori.GetValueOrDefault().AddDays(Convert.ToDouble(appalto.GiorniFineLavori)); contratto.Importo = appalto.ImportoAppalto; contratto.Penale = appalto.ImportoPenalitaAppalto; contratto.PresenzaAppalto = true; // Salvataggio documento var documentMessage = _documentService.SaveDocument(data, nomeFile, ".rtf", null, contratto.CondominioRiferimento.Azienda.ID); if (documentMessage.Documento != null) { var checksum = documentMessage.Documento.Checksum; var doc = new Documento(checksum, nomeFile, ".rtf", "", false, contratto.CondominioRiferimento.Azienda) { ContrattoRiferimento = contratto }; _daoFactory.GetDocumentoDao().SaveOrUpdate(doc); _daoFactory.GetContrattoAppaltoDao().SaveOrUpdate(contratto); return new ResultDocumento { Documento = doc }; } return new ResultDocumento { Message = documentMessage.Message }; }
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; }
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; }
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; }
public ContrattoAppaltoDTO GetNew(int idCondominio, int idTipoContratto, int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var tipoContratto = daoFactory.GetTipoContrattoDao().GetById(idTipoContratto, false); var stabile = daoFactory.GetCondominioDao().GetById(idCondominio, false); var contratto = new ContrattoAppalto(tipoContratto, stabile, null); Common.ContrattoGenericoHelper.SetDefault(contratto); return setDto(contratto); } catch (Exception ex) { _log.ErrorFormat("Errore nella creazione di un nuovo contratto d'appalto - {0} - condominio:{1} - tipo:{2} - idAzienda:{3}", ex, Utility.GetMethodDescription(), idCondominio, idTipoContratto, idAzienda); throw; } }