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 }; }
public ImportazioneDocumento(Appalto appalto, IContrattoAppaltoService contrattoService) { _appalto = appalto; _contrattoService = contrattoService; InitializeComponent(); this.Load += new EventHandler(GeneraAppalto); DialogResult = DialogResult.OK; }
public ResultDocumentoDTO Save(int? idModelloLettera, Appalto contratto) { var result = GetServiceClient().FillDocumentAppalto(idModelloLettera, contratto, GetUserInfo()); CloseService(); return result; }
private bool salvaDocumento(Appalto appalto) { // Salvataggio asincrono del documento var form = new ExecuteLoadDataObjectAsync<ResultDocumentoDTO>("Il contratto è in corso di generazione ....." + Environment.NewLine + "Si prega di attendere."); Func<ResultDocumentoDTO> loadDati = () => getContrattoAppaltoService().Save(null, appalto); form.LoadData(loadDati); form.ShowDialog(); if (form.DataSourceObject.Documento != null) { _documentoContratto = form.DataSourceObject.Documento; if (_documentoContratto.ID > 0) { if (CommonMessages.DisplayConfirm("Vuoi aprire il contratto generato?") == DialogResult.Yes) { getDocumentoService().OpenDocumento(_documentoContratto); } } form.Dispose(); return true; } CommonMessages.DisplayWarning(string.Format("Si sono verificati degli errore nella generazione del documento:{0}{1}", Environment.NewLine, form.DataSourceObject.Message)); form.Dispose(); return false; }
private void btnOkClick(object sender, EventArgs e) { appaltiValidation.Validate(); if (!appaltiValidation.IsValid) { _cancelClose = true; appaltiValidation.ShowErrorSummary(); } else { _cancelClose = false; if (inailPat.Value != null) _fornitore.InailPat = inailPat.Value as string; if (inailIdentificativo.Value != null) _fornitore.InailIdentificativoAzienda = inailIdentificativo.Value as string; if (registroImpreseFornitore.Value != null) _fornitore.NumeroRegistroImprese = registroImpreseFornitore.Value as string; if (compagniaAssicurativaFornitore.Value != null) _fornitore.CodiceCompagniaAssicurativa = (int)compagniaAssicurativaFornitore.Value; if (agenziaAssicurativaFornitore.Value != null) _fornitore.AgenziaAssicurativa = agenziaAssicurativaFornitore.Value as string; if (numeroPolizzaAssicurazioneFornitore.Value != null) _fornitore.NumeroPolizza = numeroPolizzaAssicurazioneFornitore.Value as string; _fornitore.Stato = "U"; _fornitore = getFornitoreService().Save(_fornitore); _appalto = new Appalto(); try { _appalto.TipoContratto = (int)tipoContratto.Value; _appalto.DescrizioneStabile = _condominio.Indirizzo != null ? string.Format("Condominio di {0} N. {1}", _condominio.Indirizzo.Indirizzo, _condominio.Indirizzo.Civico) : _condominio.Descrizione; _appalto.Appaltatore = _fornitore.DisplayName.Trim(); if (!String.IsNullOrEmpty(_fornitore.PersonaRiferimento.Nome)) _appalto.Appaltatore += " " + _fornitore.PersonaRiferimento.Nome; _appalto.CodiceFiscaleAppaltatore = _fornitore.PersonaRiferimento.CodiceFiscale; _appalto.ComuneAppaltatore = _condominio.Indirizzo.DescrizioneComune; _appalto.DataAppalto = dataInizioLavori.DateTime; if (_fornitore.PersonaRiferimento.IndirizzoResidenza != null) { _appalto.IndirizzoAppaltatore = _fornitore.PersonaRiferimento.IndirizzoResidenza.Indirizzo; if (_fornitore.PersonaRiferimento.IndirizzoResidenza.Civico != null) _appalto.IndirizzoAppaltatore += " " + _fornitore.PersonaRiferimento.IndirizzoResidenza.Civico; } _appalto.Intestazione = _condominio.Descrizione; _appalto.OggettoAppalto = oggettoAppalto.Text; _appalto.PartitaIvaAppaltatore = _fornitore.PersonaRiferimento.PartitaIva; _appalto.CompagniaAssicurativa = compagniaAssicurativaFornitore.Text; _appalto.AgenziaAssicurativa = agenziaAssicurativaFornitore.Text; _appalto.DataInizioLavori = dataInizioLavori.DateTime; _appalto.DescrizioneImportoAppalto = descrizioneImporto.Text; _appalto.GiorniFineLavori = (int)ggUltimazioneLavori.Value; _appalto.ImportoAppalto = importoAppalto.Value; _appalto.ImportoPenalitaAppalto = importoPenale.Value; _appalto.InailIdentificativo = inailIdentificativo.Text; _appalto.InailPat = inailPat.Text; _appalto.ModalitaPagamento = pagamento.Text; _appalto.NumeroPolizza = numeroPolizzaAssicurazioneFornitore.Text; _appalto.RegistroImprese = registroImpreseFornitore.Text; _appalto.DescrizioneLavori = descrizioneLavori.Text; _appalto.Allegati = presenzaAllegato.Checked ? new List<string> { descrizioneAllegato.Text } : null; if (_fornitore != null) _appalto.CodiceFornitore = _fornitore.ID; _appalto.CodiceStabile = _condominio.ID; } catch(Exception ex) { int? idCondominio = null; if (_condominio != null) idCondominio = _condominio.ID; _log.ErrorFormat("Errore inaspettato durante la valorizzazione dei campi del contratto di appalto - {0} - condominio:{1}", ex, Utility.GetMethodDescription(), idCondominio.GetValueOrDefault()); } // Caricamento del documento if (salvaDocumento(_appalto)) { _isDirty = false; Close(); } else { _cancelClose = true; } } }
public Documento FillDocument(int? idModello, Appalto appalto, int idAzienda) { Documento result = null; if (idModello > 0 || appalto.TipoContratto > 0) { _appalto = appalto; if (idModello == null) { var modello = _daoFactory.GetTipoContrattoDao().GetById(appalto.TipoContratto, false).ModelloLettera; if (modello != null) idModello = modello.ID; } if (idModello != null) { var rtf = Conversione.ToString(_modelloLetteraservice.GetLettera(idModello.Value).Body); var azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); var merge = new MergeDocument(rtf, false); merge.Execute("nomeStudio", azienda.Descrizione); if (azienda.Amministratore != null) merge.Execute("amministratore", string.Format("{0} {1}", azienda.Amministratore.PersonaRiferimento.Nome, azienda.Amministratore.PersonaRiferimento.Cognome)); if (azienda.IndirizzoSede != null) { merge.Execute("indirizzoStudio", azienda.IndirizzoSede.Indirizzo); if (azienda.IndirizzoSede.Comune != null) merge.Execute("comuneStudio", azienda.IndirizzoSede.Comune.Descrizione); } merge.Execute("descrizioneAllegato1", appalto.DescrizioneStabile); if (DateTimeFormatInfo.CurrentInfo != null) merge.Execute("meseAnno", DateTimeFormatInfo.CurrentInfo.GetMonthName(appalto.DataAppalto.GetValueOrDefault().Month) + " " + appalto.DataAppalto.GetValueOrDefault().Year); merge.Execute("intestazioneCondominio", appalto.Intestazione); merge.Execute("dataInizioLavori", appalto.DataInizioLavori.GetValueOrDefault().ToShortDateString()); merge.Execute("descrizioneCompletaCondominio", appalto.DescrizioneStabile); merge.Execute("descrizioneAppaltatore", appalto.Appaltatore); merge.Execute("indirizzoAppaltatore", appalto.IndirizzoAppaltatore); merge.Execute("comuneAppaltatore", appalto.ComuneAppaltatore); merge.Execute("partitaIvaAppaltatore", appalto.PartitaIvaAppaltatore); merge.Execute("codiceFiscaleAppaltatore", appalto.CodiceFiscaleAppaltatore); merge.Execute("registroImprese", appalto.RegistroImprese); merge.Execute("inailPat", appalto.InailPat); merge.Execute("inailIdentificativo", appalto.InailIdentificativo); merge.Execute("descrizionePolizza", appalto.CompagniaAssicurativa + " - " + appalto.AgenziaAssicurativa); merge.Execute("compagniaAssicurativa", appalto.CompagniaAssicurativa + " - " + appalto.AgenziaAssicurativa); merge.Execute("numeroPolizza", appalto.NumeroPolizza); merge.Execute("importoAppaltoCifre", appalto.ImportoAppalto.GetValueOrDefault().ToString("c")); merge.Execute("importoAppaltoLettere", CifreLettere.CalcolaLettere(appalto.ImportoAppalto.GetValueOrDefault())); merge.Execute("descrizioneImporto", appalto.DescrizioneImportoAppalto); merge.Execute("impPenCifre", appalto.ImportoPenalitaAppalto.GetValueOrDefault().ToString("c")); merge.Execute("impPenLettere", CifreLettere.CalcolaLettere(appalto.ImportoPenalitaAppalto.GetValueOrDefault())); merge.Execute("giorniFineLavoriCifre", appalto.GiorniFineLavori.GetValueOrDefault().ToString("#,##0")); merge.Execute("giorniFineLavoriLettere", CifreLettere.CalcolaLettere(Convert.ToDecimal(appalto.GiorniFineLavori.GetValueOrDefault()))); merge.Execute("pagamento", appalto.ModalitaPagamento); merge.Execute("descrizioneLavori", appalto.DescrizioneLavori); var descrizioneAllegato = string.Empty; if (appalto.Allegati != null && appalto.Allegati.Length > 0) descrizioneAllegato = appalto.Allegati.Aggregate(descrizioneAllegato, (current, t) => current + (t + Environment.NewLine)); merge.Execute("descrizioneAllegato", descrizioneAllegato); merge.Execute("oggettoAppalto", appalto.OggettoAppalto); try { // TODO: Da rivedere per evitare di scrivere il file temporaneo var filePath = Path.GetTempPath() + "Appalto_" + _appalto.TipoContratto + ".rtf"; try { var bytes = merge.GetRtf(); var documentoMessage = _saveAppalto.Save(appalto, bytes, "Appalto_" + appalto.TipoContratto + ".rtf"); if (documentoMessage.Documento != null) { result = documentoMessage.Documento; } } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nel metodo: {0} - filePath.{1} - modello:{2}", ex, Utility.GetMethodDescription(), filePath, idModello.GetValueOrDefault()); } } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nel metodo: {0} - modello:{1}", ex, Utility.GetMethodDescription(), idModello.GetValueOrDefault()); } } else { throw new InvalidDataException("Per il tipo di contratto selezionato non è definito nessun modello di appalto"); } } return result; }
public ResultDocumentoDTO FillDocumentAppalto(int? idModello, Appalto appalto, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<IAppaltoService>(); var doc = service.FillDocument(idModello, appalto, userinfo.Azienda); var repoDoc = new DocumentoRepository(userinfo, windsorRep); var item = repoDoc.SetDto(doc); windsorRep.Commit(); return new ResultDocumentoDTO(item, null, false, null, null, null); } catch (InvalidDataException ex) { return new ResultDocumentoDTO(null, ex.Message, false, null, null, null); } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio del contratto di appalto - {0} - modello:{1} - intestazione:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), idModello.GetValueOrDefault(), appalto.Intestazione, userinfo.Azienda); windsorRep.Rollback(); throw; } }