예제 #1
0
        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 };
        }
예제 #2
0
 public ImportazioneDocumento(Appalto appalto, IContrattoAppaltoService contrattoService)
 {
     _appalto = appalto;
     _contrattoService = contrattoService;
     InitializeComponent();
     this.Load += new EventHandler(GeneraAppalto);
     DialogResult = DialogResult.OK;
 }
예제 #3
0
 public ResultDocumentoDTO Save(int? idModelloLettera, Appalto contratto)
 {
     var result = GetServiceClient().FillDocumentAppalto(idModelloLettera, contratto, GetUserInfo());
     CloseService();
     return result;
 }
예제 #4
0
        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;
        }
예제 #5
0
        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;
                }
            }
        }
예제 #6
0
        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;
        }
예제 #7
0
        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;
			}
		}