Example #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 };
        }
        /// <summary>
        /// Crea un dettaglio di Spedizione per Archiviazione Ottica valido
        /// </summary>
        public SpedizioneArchiviazioneOtticaDettaglio(SpedizioneArchiviazioneOttica testata, Documento documentoRiferimento)
        {
            Testata = testata;
            DocumentoRiferimento = documentoRiferimento;

            if (Testata != null)
                Testata.Dettaglio.Add(this);
        }
Example #3
0
        public string SetPdfDocumentiRicevuti(IEnumerable<DocumentoBollettaDTO> bollette, string folderPath)
        {
            try
            {
                foreach (var documentoBollettaDTO in bollette)
                {
                    try
                    {
                        var condominio = _daoFactory.GetCondominioDao().GetByCodiceFiscale(documentoBollettaDTO.CodiceFiscaleCliente);
                        if (condominio != null)
                        {
                            var bolletta = _daoFactory.GetSpesaDao().Find(documentoBollettaDTO.IdSpesa, false);
                            if (bolletta != null)
                            {
                                var documentBody = _fileSystem.ReadAllBytes($@"{folderPath}/{documentoBollettaDTO.NomeFileDocumento}");
                                var documentMessages = _documentService.SaveDocument(documentBody, string.Empty, ".pdf", null, condominio.Azienda.ID);
                                var documento = new Documento(documentMessages.Documento.Checksum, $"Bolletta n.{bolletta.NumeroDocumento} del {bolletta.DataDocumento.GetValueOrDefault():d}", documentMessages.Documento.FileExtension, "Fattura", false, condominio.Azienda)
                                {
                                    SpesaRiferimento = bolletta,
                                    CondominioRiferimento = condominio,
                                    CodiceImportazione = documentoBollettaDTO.IdDocflow
                                };
                                bolletta.Documenti.Add(documento);
                                _daoFactory.GetDocumentoDao().SaveOrUpdate(documento);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore nel caricamento dei documenti ricevuti - SINGOLA BOLLETTA - {0} - bolletta:{1} - path:{2}", ex, documentoBollettaDTO.IdSpesa, Library.Utility.GetMethodDescription(), folderPath);                
                        throw;
                    }
                }

                return string.Empty;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel caricamento dei documenti ricevuti - {0} - path:{1}", ex, Library.Utility.GetMethodDescription(), folderPath);                
                throw;
            }
        }
Example #4
0
        public byte[] CreateRitenute(int idAzienda, IList<RitenutaAccontoDTO> lista, DateTime dataPagamento, string descrizione, string descrizioneAddebitoInteressi, string descrizioneAddebitoSanzioni, bool mittenteCondominio, bool testataPerCondominio, TipoVersamentoF24Enum tipoVersamento)
        {
            var fileRitenuta = new PagamentoRitenuta(idAzienda, descrizione, dataPagamento, false, tipoVersamento);
            _daoFactory.GetPagamentoRitenutaDao().SaveOrUpdate(fileRitenuta);
            decimal importoTotaleRitenuta = 0;
            decimal importoTotaleInteressi = 0;
            decimal importoTotaleSanzione = 0;
            foreach (var ritenuta in lista)
            {
                var pagamentoRiferimento = _daoFactory.GetPagamentoDao().Find(ritenuta.IdPagamento.GetValueOrDefault(), true);
                if(pagamentoRiferimento != null)
                {
                    pagamentoRiferimento.RitenutaAcconto.TestataRiferimento = fileRitenuta;
                    fileRitenuta.Pagamenti.Add(pagamentoRiferimento);
                    pagamentoRiferimento.RitenutaAcconto.Stato = StatoRitenutaEnum.Pagata;
                    pagamentoRiferimento.RitenutaAcconto.ImportoInteressi = ritenuta.ImportoInteressi;
                    pagamentoRiferimento.RitenutaAcconto.ImportoSanzione = ritenuta.ImportoSanzione;
                    importoTotaleRitenuta += ritenuta.ImportoRitenuta.GetValueOrDefault();
                    importoTotaleInteressi += ritenuta.ImportoInteressi.GetValueOrDefault();
                    importoTotaleSanzione += ritenuta.ImportoSanzione.GetValueOrDefault();
                }
            }

            fileRitenuta.ImportoRitenuta = importoTotaleRitenuta;
            fileRitenuta.ImportoInteressi = importoTotaleInteressi;
            fileRitenuta.ImportoSanzione = importoTotaleSanzione;

            var fileBody = _esecuzioneRitenuta.EsecuzionePagamenti(fileRitenuta, testataPerCondominio, mittenteCondominio, dataPagamento);
            if (fileBody != null)
            {
                // Se richiesto il modulo PDF salvo il modulo come documento
                if(tipoVersamento == TipoVersamentoF24Enum.PDF)
                {
                    var fileName = string.Format("Modulo F24 del {0}-{1}-{2}", dataPagamento.Day, dataPagamento.Month, dataPagamento.Year);
                    var documentMessage = _documentService.SaveDocument(fileBody, fileName, ".pdf", null, idAzienda);
                    if(documentMessage.Documento != null)
                    {
                        var checksum = documentMessage.Documento.Checksum;
                        var moduloPdf = new Documento(checksum, fileName, ".pdf", "ModuloF24", false, _daoFactory.GetAziendaDao().GetById(idAzienda, false)) { PagamentoRitenuta = fileRitenuta };
                        _daoFactory.GetDocumentoDao().SaveOrUpdate(moduloPdf);
                    }
                }

                _movimentiContabilitaService.SetMovimentiRitenuta(fileRitenuta, descrizioneAddebitoInteressi, descrizioneAddebitoSanzioni);
                return fileBody;
            }
            _persistenceContext.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName);
            _persistenceContext.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted);

            return null;
        }
Example #5
0
        public bool SetConfermaRicezioneNotifica(string codiceInvio, string messageBody)
        {
            try
            {
                var result = false;
                _documentService.SetDaoFactory(_daoFactory);
                _log.DebugFormat("Richiesta conferma di invio messaggio - {0} - codiceInvio:{1}", Utility.GetMethodDescription(), codiceInvio);
                var messaggi = _daoFactory.GetStoricoMessaggioDao().GetByCodiceInvio(codiceInvio);
                if (!messaggi.Any())
                    messaggi = _daoFactory.GetStoricoMessaggioDao().GetByCodiceMessaggio(codiceInvio);
                foreach (var messaggio in messaggi)
                {
                    var azienda = _daoFactory.GetAziendaDao().Find(messaggio.Persona.AziendaID.GetValueOrDefault(), false);
                    if (azienda != null)
                    {
                        _log.DebugFormat("Salvataggio documento di conferma invio messaggio - {0} - codiceInvio:{1} - messageBody:{2}", Utility.GetMethodDescription(), codiceInvio, messageBody);

                        var documentoMessage = _documentService.SaveDocument(Conversione.ToByteArray(messageBody),
                            $"Rapportino per {codiceInvio}.eml", ".eml", null, azienda.ID);
                        if (documentoMessage.Documento != null)
                        {
                            result = true;
                            var checksum = documentoMessage.Documento.Checksum;
                            var nomeFile = $"Rapportino per {codiceInvio}.eml";
                            var doc = new Documento(checksum, nomeFile, ".eml", "RapportinoFax", false, azienda)
                            {
                                Descrizione = $"Rapportino per {codiceInvio} del: {DateTime.Today:d}"
                            };
                            _daoFactory.GetDocumentoDao().SaveOrUpdate(doc);

                            var rapportino = new StoricoMessaggioAllegato(messaggio, checksum, nomeFile, ".eml")
                            {
                                DataInserimento = DateTime.Now,
                                UtenteInserimento = "quartz"
                            };
                            _daoFactory.GetStoricoMessaggioAllegatoDao().SaveOrUpdate(rapportino);

                            messaggio.RapportinoRicevuto = true;
                            messaggio.DataRicezione = DateTime.Now;
                            _daoFactory.GetAttivitaMessaggioDao().CommitChanges();
                        }
                    }
                }

                return result;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la conferma di ricezione di un rapportino di invio messaggio - {0} - codiceInvio:{1}", ex, Utility.GetMethodDescription(), codiceInvio);
                throw;
            }
        }
        public void SetUp()
        {
            _azienda = new Azienda("PROVA", "Azienda di prova") {ID=1};
            _aziendaDestinazione = new Azienda("DEST", "Azienda di destinazione") { ID = 2 };
            _condominio = new Condominio("Condominio ABC", 31, 12, 2015, _azienda)
            {
                ID = 1,
                Codice = "COND01",
                CodiceCUC = "CUC123456",
                CodiceSIA = "SIA12",
                AnnoInizio = 2015,
                CodiceFiscale = "012365477859",
                CodiceCalcoloTariffaAcqua = "TAR01"
            };
            _condominio.Palazzine.Clear();

            _esercizio = new EsercizioDTO
            {
                Descrizione = "Primo Esercizio",
                DataApertura = new DateTime(2016, 6, 1),
                DataChiusura = new DateTime(2017, 5, 31)
            };

            _banca01 = new DatiBancariCondomini("12345", "12345", "123456789012", "A", _condominio) {Iban = "IT02L1234512345123456789012" };
            _banca02 = new DatiBancariCondomini("03268", "10001", "100000000000", "A", _condominio) { Iban = "IT11X03268100001100000000000" };

            _stabile01 = new Palazzina(_condominio, "Stabile 01") {ID=1};
            _stabile01.GruppiStabile.Clear();
            _condominio.Palazzine.Add(_stabile01);

            var comune = new Comune("A944", "Bologna", new Provincia("BO", new Regione("Emilia Romagna")));

            _gruppoStabile01 = new GruppoStabile(_stabile01, "Scala 01") { ID = 1, Ordine = 1, Note = "Note per Scala01", Indirizzo = new Address { Cap = "40131", Civico = "SCA/1", Indirizzo = "Via Scala01", Localita = "Scaletta01", Comune = comune } };
            _gruppoStabile02 = new GruppoStabile(_stabile01, "Scala 02") { ID = 2, Ordine = 2, Note = "Note per Scala02", Indirizzo = new Address { Cap = "40132", Civico = "SCA/2", Indirizzo = "Via Scala02", Localita = "Scaletta02", Comune = comune } };

            _condominio.Indirizzo = new Address
            {
                Indirizzo = "via dei Fiori",
                Cap = "40100",
                Civico = "23",
                Localita = "Pioppa",
                Comune = comune
            };

            var listaTipoUnitaImmobiliare = new List<TipoUnitaImmobiliare>
            {
                new TipoUnitaImmobiliare("Tipo01") {ID = 1},
                new TipoUnitaImmobiliare("Tipo02") {ID = 2}
            };

            var fornitore = new Fornitore(new Persona(TipoPersonaEnum.Giuridica, "Franco", "Livoresi", _azienda.ID, true) {PartitaIva = "01867511204"}, _azienda.ID) {ID =1};
            var fornitore01 = new Fornitore(new Persona(TipoPersonaEnum.Giuridica, "Luigi", "Majorana", _azienda.ID, true) { PartitaIva = "01230460394" }, _azienda.ID) {ID = 2};
            var agenziaAssicurativa = new AgenziaAssicurativa(new Persona(TipoPersonaEnum.Giuridica, "", "Agenzia Bologna", _azienda.ID, true) { PartitaIva = "03211600402" }, fornitore01, "Agenzia BO", _azienda.ID) {ID = 3};
            var tipoContratto = new TipoContratto("Pulizia Scale") {ID=1};
            var tipoContrattoAssicurativo = new TipoContratto("Assicurazione") {ID=2};

            _unitaImmobiliare01 = new UnitaImmobiliare(_gruppoStabile01, listaTipoUnitaImmobiliare[0]) { ID = 1, Descrizione = "Unità 01", Ordine = 1};
            _unitaImmobiliare02 = new UnitaImmobiliare(_gruppoStabile01, new TipoUnitaImmobiliare("Tipo02")) { ID = 2, Descrizione = "Unità 02", Ordine = 2 }; 
            _unitaImmobiliare03 = new UnitaImmobiliare(_gruppoStabile02, listaTipoUnitaImmobiliare[1]) { ID = 3, Descrizione = "Unità 03", Ordine = null }; 
            _unitaImmobiliare04 = new UnitaImmobiliare(_gruppoStabile02, new TipoUnitaImmobiliare("Tipo NEW")) { ID = 4, Descrizione = "Unità 04", Ordine = 4 };

            _unitaImmobiliare01.CondizioniSicurezzaImpianto = new SicurezzaImpianto
            {
                Norma = true,
                Note = "Note01"
            };

            _unitaImmobiliareImpiantistica01 = new UnitaImmobiliareImpiantistica(_unitaImmobiliare01, "TipoImpianto01", true) { ID = 1, Descrizione = "Impianto 01"};
            _unitaImmobiliareImpiantistica02 = new UnitaImmobiliareImpiantistica(_unitaImmobiliare01, "TipoImpianto02", false) {ID = 2, Descrizione = "Impianto 02"};

            _persona01 = new Persona(TipoPersonaEnum.Fisica, "Mario", "Rossi", _azienda.ID, false)
            {
                ID = 1,
                ComuneNascita = comune,
                IndirizzoResidenza =
                    new Address
                    {
                        Indirizzo = "via residenza01",
                        Cap = "40101",
                        Civico = "1",
                        Comune = comune,
                        Localita = "Pioppa 01"
                    },
                Domicilio =
                    new Address
                    {
                        Indirizzo = "via domicilio01",
                        Cap = "40101",
                        Civico = "1",
                        Comune = comune,
                        Localita = "Pioppa 01"
                    },
                Recapito =
                    new Address
                    {
                        Indirizzo = "via recapito01",
                        Cap = "40101",
                        Civico = "1",
                        Comune = comune,
                        Localita = "Pioppa 01"
                    }
            };

            _proprietario01 = new Proprietario(_unitaImmobiliare01, _persona01) {ID = 1, Descrizione = "Mario Rossi", VersamentoMav = true, Consigliere = true, Principale = true};

            _persona02 = new Persona(TipoPersonaEnum.Giuridica, "Giulio", "Verdi", _azienda.ID, false)
            {
                ID = 2,
                ComuneNascita = comune,
                IndirizzoResidenza =
                    new Address
                    {
                        Indirizzo = "via residenza02",
                        Cap = "40102",
                        Civico = "2",
                        Comune = comune,
                        Localita = "Pioppa 02"
                    },
                Domicilio =
                    new Address
                    {
                        Indirizzo = "via domicilio02",
                        Cap = "40102",
                        Civico = "2",
                        Comune = comune,
                        Localita = "Pioppa 02"
                    },
                Recapito =
                    new Address
                    {
                        Indirizzo = "via recapito02",
                        Cap = "40102",
                        Civico = "2",
                        Comune = comune,
                        Localita = "Pioppa 02"
                    }
            };
            _proprietario02 = new Proprietario(_unitaImmobiliare02, _persona02) {ID = 2, Descrizione = "Giulio Verdi", DataInizio = new DateTime(2015, 1, 1)};

            _persona03 = new Persona(TipoPersonaEnum.Fisica, "Franco", "Bianchi", _azienda.ID, false)
            {
                ID = 3,
                IndirizzoResidenza =
                    new Address
                    {
                        Indirizzo = "via residenza03",
                        Cap = "40103",
                        Civico = "3",
                        Comune = comune,
                        Localita = "Pioppa 03"
                    },
                Domicilio =
                    new Address
                    {
                        Indirizzo = "via domicilio03",
                        Cap = "40103",
                        Civico = "3",
                        Comune = comune,
                        Localita = "Pioppa 03"
                    }
            };
            _persona01.Recapito = new Address { Indirizzo = "via recapito03", Cap = "40103", Civico = "3", Comune = comune, Localita = "Pioppa 03" };
            _proprietario03 = new Proprietario(_unitaImmobiliare03, _persona03) {ID = 3, Descrizione = "Franco Bianchi"};

            _proprietario04 = new Proprietario(_unitaImmobiliare04, _persona01)
            {
                ID = 4,
                SoggettoPrincipale = _proprietario01
            };

            _persona04 = new Persona(TipoPersonaEnum.Fisica, "Primo", "Conduttore", _azienda.ID, false)
            {
                ID = 4,
                IndirizzoResidenza =
                    new Address
                    {
                        Indirizzo = "via residenza04",
                        Cap = "40104",
                        Civico = "4",
                        Comune = comune,
                        Localita = "Pioppa 04"
                    },
                Domicilio =
                    new Address
                    {
                        Indirizzo = "via domicilio04",
                        Cap = "40104",
                        Civico = "4",
                        Comune = comune,
                        Localita = "Pioppa 04"
                    },
                Recapito =
                    new Address
                    {
                        Indirizzo = "via recapito04",
                        Cap = "40104",
                        Civico = "4",
                        Comune = comune,
                        Localita = "Pioppa 04"
                    }
            };
            _conduttore01 = new Conduttore(_unitaImmobiliare01, _persona04) {ID = 5, Descrizione = "Primo Conduttore"};

            _persona05 = new Persona(TipoPersonaEnum.Fisica, "Secondo", "Conduttore", _azienda.ID, false)
            {
                ID = 5,
                IndirizzoResidenza =
                    new Address
                    {
                        Indirizzo = "via residenza05",
                        Cap = "40105",
                        Civico = "5",
                        Comune = comune,
                        Localita = "Pioppa 05"
                    },
                Domicilio =
                    new Address
                    {
                        Indirizzo = "via domicilio05",
                        Cap = "40105",
                        Civico = "5",
                        Comune = comune,
                        Localita = "Pioppa 05"
                    },
                Recapito =
                    new Address
                    {
                        Indirizzo = "via recapito05",
                        Cap = "40105",
                        Civico = "5",
                        Comune = comune,
                        Localita = "Pioppa 05"
                    }
            };
            _conduttore02 = new Conduttore(_unitaImmobiliare02, _persona05) {ID = 6, Descrizione = "Secondo Conduttore"};

            _contatto01 = new Email("*****@*****.**", true, _persona01) { ID = 1, Descrizione = "mail principale persona 01"};
            _contatto02 = new Email("*****@*****.**", false, _persona01) { ID = 2, Descrizione = "mail secondaria persona 01" };
            _contatto03 = new Cellulare("1234567890", true, _persona01) { ID = 3, Descrizione = "cellulare principale persona 01" };
            _contatto04 = new Fax("9876543210", false, _persona02) { ID = 4, Descrizione = "fax persona 02" };
            _contatto05 = new Telefono("1357924680", true, _persona03) { ID = 5, Descrizione = "telefono persona 03" }; 
            _contatto06 = new EmailCertificata("*****@*****.**", true, _persona01) { ID = 6, Descrizione = "mail certificata persona 01" };
            _contatto07 = new SitoInternet("www.bianchi.it", false, _persona03) { ID = 7, Descrizione = "sito internet persona03" };
            _contatto08 = new Telefono("3333333333", false, _persona04) { ID = 8, Descrizione = "telefono persona 04" };
            _contatto09 = new Cellulare("9999999999", true, _persona05) { ID = 9, Descrizione = "cellulare persona 05" };
            _contatto10 = new Email("*****@*****.**", false, _persona05) { ID=10 };

            _condominio.PersoneDaNonSollecitare.Add(new PersonaDaNonSollecitare(_persona01, _condominio) { Motivo = "persona01 non paga" });
            _condominio.PersoneDaNonSollecitare.Add(new PersonaDaNonSollecitare(_persona03, _condominio) { Motivo = "persona02 è simpatica" });

            // Contratto Appalto
            _documentocontrattoAppalto01 = new Documento(201, "Appalto", true, _azienda) { ID = 1, CondominioRiferimento = _condominio, Checksum = "CHK001", FileName = "appalto01", FileExtension = "pdf", Descrizione = "Appalto001" };
            _documentocontrattoAppalto02 = new Documento(202, "Appalto", true, _azienda) { ID = 2, CondominioRiferimento = _condominio, Checksum = "CHK002", FileName = "appalto02", FileExtension = "pdf", Descrizione = "Appalto002" };

            _contrattoAppalto = new ContrattoAppalto(tipoContratto, _condominio, fornitore)
            {
                ID = 1,
                NumeroContratto = "CONTRA001",
                Scadenza = new DateTime(2016, 12, 31),
                Descrizione = "Contratto di Appalto di prova",
                Note = "Nota per contratto appalto",
                Documenti = { _documentocontrattoAppalto01, _documentocontrattoAppalto02 }
            };

            _documentocontrattoAppalto01.ContrattoRiferimento = _contrattoAppalto;
            _documentocontrattoAppalto02.ContrattoRiferimento = _contrattoAppalto;

            // Contratto Assicurativo
            _documentocontrattoAssicurativo01 = new Documento(203, "Assicurativo01", true, _azienda) { ID = 3, CondominioRiferimento = _condominio, Checksum = "CHK003", FileName = "assicurazione01", FileExtension = "pdf", Descrizione = "Assicurazione001" };
            _documentocontrattoAssicurativo02 = new Documento(204, "Assicurativo02", true, _azienda) { ID = 4, CondominioRiferimento = _condominio, Checksum = "CHK004", FileName = "assicurazione02", FileExtension = "pdf", Descrizione = "Assicurazione002" };

            _contrattoAssicurativo = new AssicurazioneContratto(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo)
            {
                ID = 2,
                FornitoreAttuale = agenziaAssicurativa,
                NumeroContratto = "CONTR_ASS_001",
                Scadenza = new DateTime(2016, 12, 31),
                Descrizione = "Contratto Assicurativo di prova",
                Note = "Nota per contratto assicurativo",
                Documenti = { _documentocontrattoAssicurativo01, _documentocontrattoAssicurativo02 }
            };

            _contrattoAssicurativoGlobale = new GlobaleAssicurazione(new DateTime(2016, 11, 30),
                new DateTime(2016, 07, 15), tipoContrattoAssicurativo)
            {
                ID = 3,
                FornitoreAttuale = agenziaAssicurativa,
                NumeroContratto = "CONTR_GLOB_001",
                Scadenza = new DateTime(2016, 12, 31),
                ImportoLimiteCoseRCT = 50000,
                ImportoMassimaleSinistroRCT = 60000,
                ImportoUnicoRCT = 70000,
                ImportoPremio = 80000,
                Descrizione = "Contratto Globale di prova",
                Note = "Nota per contratto globale",
                FranchigiaDanniAcqua = 90000,
                FranchigiaRicercaGuasto = 100000,
                ValoreRicostruzioneNuovo = 110000,
                DanniAcqua = true,
                RicercaGuasto = true
            };

            _contrattoAssicurativoIncendio = new IncendioAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo)
            {
                ID = 4,
                FornitoreAttuale = agenziaAssicurativa,
                NumeroContratto = "CONTR_INC_001",
                ImportoLimiteCoseRCT = 150000,
                ImportoMassimaleSinistroRCT = 160000,
                ImportoUnicoRCT = 170000,
                ImportoPremio = 180000,
                FranchigiaDanniAcqua = 120000,
                FranchigiaRicercaGuasto = 130000,
                ValoreRicostruzioneNuovo = 140000,
                DanniAcqua = true,
                RicercaGuasto = false,
                Scadenza = new DateTime(2016, 12, 31),
                Descrizione = "Contratto Incendio di prova",
                Note = "Nota per contratto incendio"
            };

            _contrattoAssicurativoFurto = new FurtoAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo)
            {
                ID = 5,
                FornitoreAttuale = agenziaAssicurativa,
                NumeroContratto = "CONTR_FURTO_001",
                Scadenza = new DateTime(2016, 12, 31),
                Descrizione = "Contratto Furto di prova",
                Note = "Nota per contratto furto"
            };

            _contrattoAssicurativoInfortuni = new InfortuniAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo)
            {
                ID = 6,
                FornitoreAttuale = agenziaAssicurativa,
                NumeroContratto = "CONTR_INFORTUNI_001",
                Scadenza = new DateTime(2016, 12, 31),
                Descrizione = "Contratto Infortuni di prova",
                Note = "Nota per contratto infortuni"
            };

            _contrattoAssicurativoResponsabilitaCivile = new ResponsabilitaCivileAssicurazione(new DateTime(2016, 11, 30), new DateTime(2016, 07, 15), tipoContrattoAssicurativo)
            {
                ID = 7,
                FornitoreAttuale = agenziaAssicurativa,
                NumeroContratto = "CONTR_RESPCIV_001",
                Scadenza = new DateTime(2016, 12, 31),
                Descrizione = "Contratto Responsabilità civile di prova",
                Note = "Nota per contratto responsabilità civile"
            };

            _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativo);
            _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoGlobale);
            _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoIncendio);
            _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoFurto);
            _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoInfortuni);
            _condominio.ContrattiAssicurativi.Add(_contrattoAssicurativoResponsabilitaCivile);

            _contrattoAssicurativo.CondominioRiferimento = _condominio;
            _contrattoAssicurativoGlobale.CondominioRiferimento = _condominio;
            _contrattoAssicurativoIncendio.CondominioRiferimento = _condominio;
            _contrattoAssicurativoFurto.CondominioRiferimento = _condominio;
            _contrattoAssicurativoInfortuni.CondominioRiferimento = _condominio;
            _contrattoAssicurativoResponsabilitaCivile.CondominioRiferimento = _condominio;

            _documentocontrattoAssicurativo01.ContrattoRiferimento = _contrattoAssicurativo;
            _documentocontrattoAssicurativo02.ContrattoRiferimento = _contrattoAssicurativo;
            
            // Conti / Millesimi
            _conto01 = new Conto(_condominio, TipoContoEconomicoEnum.Economico, TipoPeriodoCompetenzaContabile.Esercizio, "SPESE GENERALI PROPRIETA'", true, true, false) {DescrizioneBilancio = "SPE GEN", Codice = "001", ID = 1};
            _conto02 = new Conto(_condominio, TipoContoEconomicoEnum.Economico, TipoPeriodoCompetenzaContabile.Riscaldamento, "SPESE RISCALDAMENTO", true, true, false) { DescrizioneBilancio = "SPE RIS", Codice = "002",  ID = 2 };

            _sottoconto01 = new SottoConto(_conto01, "SPESE SCALA 01") { Codice = "001.001", ID = 1 };
            _sottoconto02 = new SottoConto(_conto01, "SPESE SCALA 02") { Codice = "001.002", ID = 2 };
            _sottoconto03 = new SottoConto(_conto02, "SPESE ABITAZIONI") { Codice = "002.001", ID = 3 };
            _sottoconto04 = new SottoConto(_conto02, "SPESE GARAGE") { Codice = "002.002", ID = 4 };

            _millesimo01 = new Millesimo(_conto01, _unitaImmobiliare01) { ID = 1, Valore = 100 };
            _millesimo02 = new Millesimo(_conto01, _unitaImmobiliare02) { ID = 2, Valore = 200 };
            _millesimo03 = new Millesimo(_conto02, _unitaImmobiliare01) { ID = 3, Valore = 300 };
            _millesimo04 = new Millesimo(_conto02, _unitaImmobiliare02) { ID = 4, Valore = 400 };

            _fascicoloImmobiliare = new FascicoloImmobiliare("Prova Fascicolo", "PRO", "01") {ID=1};
            _fascicoloCondominio = new FascicoloCondominio(_fascicoloImmobiliare, _condominio) { ID =1, Necessario = true, Presente = false };
            _fascicoloCondominio.Documenti.Add(_documentocontrattoAppalto01);
            _fascicoloCondominio.Documenti.Add(_documentocontrattoAssicurativo02);
            _documentocontrattoAppalto01.Fascicoli.Add(_fascicoloCondominio);
            _documentocontrattoAssicurativo02.Fascicoli.Add(_fascicoloCondominio);

            // Stub per IDaoFactory
            _daoFactory = MockRepository.GenerateStub<IDaoFactory>();

            // Stub per azienda
            var aziendaDao = MockRepository.GenerateStub<IAziendaDao>();
            aziendaDao.Stub(x => x.Find(2, false)).Return(_aziendaDestinazione);
            _daoFactory.Stub(x => x.GetAziendaDao()).Return(aziendaDao);

            // Stub per tipo unità immobiliare
            var tipoUnitaImmobiliareDao = MockRepository.GenerateStub<ITipoUnitaImmobiliareDao>();
            tipoUnitaImmobiliareDao.Stub(x => x.GetByAzienda(Arg<int>.Is.Anything)).Return(listaTipoUnitaImmobiliare);
            _daoFactory.Stub(x => x.GetTipoUnitaImmobiliareDao()).Return(tipoUnitaImmobiliareDao);

            // Stub per fornitore
            var fornitoreDao = MockRepository.GenerateStub<IFornitoreDao>();
            fornitoreDao.Stub(x => x.Find(1, false)).Return(fornitore);
            fornitoreDao.Stub(x => x.Find(2, false)).Return(fornitore01);
            fornitoreDao.Stub(x => x.GetByPartitaIva("01867511204", _aziendaDestinazione.ID)).Return(fornitore);
            fornitoreDao.Stub(x => x.GetByPartitaIva("01230460394", _aziendaDestinazione.ID)).Return(fornitore01);
            fornitoreDao.Stub(x => x.GetByPartitaIva("03211600402", _aziendaDestinazione.ID)).Return(agenziaAssicurativa);
            _daoFactory.Stub(x => x.GetFornitoreDao()).Return(fornitoreDao);

            // Stub per tipo contratto
            var tipoContrattoDao = MockRepository.GenerateStub<ITipoContrattoDao>();
            tipoContrattoDao.Stub(x => x.GetByDescrizione("Pulizia Scale", _aziendaDestinazione.ID)).Return(tipoContratto);
            tipoContrattoDao.Stub(x => x.GetByDescrizione("Assicurazione", _aziendaDestinazione.ID)).Return(tipoContrattoAssicurativo);
            _daoFactory.Stub(x => x.GetTipoContrattoDao()).Return(tipoContrattoDao);

            // Stub per Comune
            var comuneDao = MockRepository.GenerateStub<IComuneDao>();
            comuneDao.Stub(x => x.Find(comune.Codice, false)).Return(comune);
            comuneDao.Stub(x => x.Find(null, false)).Throw(new NullReferenceException("Id non può essere null"));
            _daoFactory.Stub(x => x.GetComuneDao()).Return(comuneDao);
            
            // Stub per fascicolo immobiliare
            _fascicoloImmobiliareDao = MockRepository.GenerateStub<IFascicoloImmobiliareDao>();
            _fascicoloImmobiliareDao.Stub(x => x.GetByAzienda(_aziendaDestinazione.ID)).Return(new List<FascicoloImmobiliare> { _fascicoloImmobiliare });
            _daoFactory.Stub(x => x.GetFascicoloImmobiliareDao()).Return(_fascicoloImmobiliareDao);

            _documentService = MockRepository.GenerateStub<IDocumentService>();
            _exportCsvCondominiService = new ExportCsvCondominiService();
            _importCsvCondominiService = new ImportCsvCondominiService(_daoFactory, _documentService);
        }
Example #7
0
        private bool insert(DocumentoDTO dto, out Documento item, int idAzienda)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            bool result;

            try
            {
                var fileName = dto.FileName;
                if (!string.IsNullOrEmpty(fileName) && fileName.Length > 256)
                    fileName = fileName.Substring(0, 256);

                var descrizione = dto.Descrizione;
                if (!string.IsNullOrEmpty(descrizione) && descrizione.Length > 500)
                    descrizione = fileName.Substring(0, 500);

                if (string.IsNullOrEmpty(dto.Tipo))
                    dto.Tipo = "Altro";
                item = new Documento(dto.Checksum, fileName, dto.FileExtension, dto.Tipo, false, daoFactory.GetAziendaDao().GetById(idAzienda, false)) { Descrizione = descrizione, DirectoryName = dto.DirectoryName, VisibileCondomino = dto.VisibileCondomino };

                // -------------------------------------
                // Fascicoli
                // -------------------------------------
                item.Fascicoli.Clear();
                if (dto.IdFascicoli != null)
                {
                    foreach (var t in dto.IdFascicoli.Where(t => t > 0))
                        item.Fascicoli.Add(daoFactory.GetFascicoloCondominioDao().GetById(t, false));
                }

                // -------------------------------------
                // Condominio Riferimento
                // ------------------------------------
                if (dto.IdCondominio != null && dto.IdCondominio > 0)
                    item.CondominioRiferimento = daoFactory.GetCondominioDao().GetById(dto.IdCondominio.Value, false);

                // -------------------------------------
                // Fornitore Riferimento
                // ------------------------------------
                if (dto.IdFornitore != null && dto.IdFornitore > 0)
                    item.FornitoreRiferimento = daoFactory.GetFornitoreDao().GetById(dto.IdFornitore.Value, false);

                // -------------------------------------
                // Unità Immobiliare Riferimento
                // ------------------------------------
                if (dto.IdUnitaImmobiliare != null && dto.IdUnitaImmobiliare > 0)
                    item.UnitaImmobiliareRiferimento = daoFactory.GetUnitaImmobiliareDao().GetById(dto.IdUnitaImmobiliare.Value, false);

                // -------------------------------------
                // Attivita Riferimento
                // ------------------------------------
                if (dto.IdAttivita != null && dto.IdAttivita > 0)
                    item.AttivitaRiferimento = daoFactory.GetAttivitaDao().GetById(dto.IdAttivita.Value, false);

                // -------------------------------------
                // Pratica Riferimento
                // ------------------------------------
                if (dto.IdPratica != null && dto.IdPratica > 0)
                    item.PraticaRiferimento = daoFactory.GetPraticaDao().GetById(dto.IdPratica.Value, false);
                
                // -------------------------------------
                // Spesa Riferimento
                // ------------------------------------
                if (dto.IdSpesa != null && dto.IdSpesa > 0)
                {
                    var spesa = daoFactory.GetSpesaDao().Find(dto.IdSpesa.Value, false);
                    if(spesa != null)
                        item.SpesaRiferimento = spesa;
                    else
                        _log.WarnFormat("Spesa non trovata - {0} - spesa:{1} - azienda:{2}", Library.Utility.GetMethodDescription(), dto.IdSpesa, _info.Azienda);
                }

                // -------------------------------------
                // Versamento Riferimento
                // ------------------------------------
                if (dto.IdVersamento != null && dto.IdVersamento > 0)
                    item.VersamentoRiferimento = daoFactory.GetVersamentoSoggettoDao().GetById(dto.IdVersamento.Value, false);

                // -------------------------------------
                // Sollecito Riferimento
                // ------------------------------------
                if (dto.IdSollecito != null && dto.IdSollecito > 0)
                    item.SollecitoRiferimento = daoFactory.GetSollecitoDao().GetById(dto.IdSollecito.Value, false);

                // -------------------------------------
                // Contratto
                // ------------------------------------
                if (dto.IdContratto != null && dto.IdContratto > 0)
                {
                    if(dto.TipoContratto == TipoContrattoEnum.ContrattoAppalto)
                        item.ContrattoRiferimento = daoFactory.GetContrattoAppaltoDao().GetById(dto.IdContratto.Value, false);
                    else if(dto.TipoContratto == TipoContrattoEnum.ContrattoAssicurativo)
                        item.ContrattoRiferimento = daoFactory.GetAssicurazioneContrattoDao().GetById(dto.IdContratto.Value, false);
                }

                daoFactory.GetDocumentoDao().SaveOrUpdate(item);

                result = true;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'inserimento del documento - {0} - id:{1} - fileName:{2} - fileExtension:{3} - descrizione:{4} - directory:{5}", ex, Library.Utility.GetMethodDescription(), dto.ID, dto.FileName, dto.FileExtension, dto.Descrizione, dto.DirectoryName);
                throw;
            }
            return result;
        }
Example #8
0
        private bool update(DocumentoDTO dto, out Documento item)
        {
            bool result = false;
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                item = daoFactory.GetDocumentoDao().Find(dto.ID, false);

                if (item != null)
                {
                    //// Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                    //if (dto.Version == item.Version)
                    //{
                    item.Checksum = dto.Checksum;
                    item.Descrizione = dto.Descrizione;
                    item.DirectoryName = dto.DirectoryName;
                    item.FileExtension = dto.FileExtension;
                    item.FileName = dto.FileName;
                    item.VisibileCondomino = dto.VisibileCondomino;

                    if (!string.IsNullOrEmpty(dto.Tipo))
                        item.Tipo = dto.Tipo;

                    // -------------------------------------
                    // Fascicoli
                    // -------------------------------------
                    item.Fascicoli.Clear();
                    if (dto.IdFascicoli != null)
                    {
                        foreach (var t in dto.IdFascicoli)
                        {
                            if (t > 0)
                                item.Fascicoli.Add(daoFactory.GetFascicoloCondominioDao().GetById(t, false));
                        }
                    }

                    // -------------------------------------
                    // Condominio Riferimento
                    // ------------------------------------
                    if (dto.IdCondominio != null && dto.IdCondominio > 0)
                        item.CondominioRiferimento = daoFactory.GetCondominioDao().GetById(dto.IdCondominio.Value, false);

                    // -------------------------------------
                    // Fornitore Riferimento
                    // ------------------------------------
                    if (dto.IdFornitore != null && dto.IdFornitore > 0)
                        item.FornitoreRiferimento = daoFactory.GetFornitoreDao().GetById(dto.IdFornitore.Value, false);

                    // -------------------------------------
                    // Unità Immobiliare Riferimento
                    // ------------------------------------
                    if (dto.IdUnitaImmobiliare != null && dto.IdUnitaImmobiliare > 0)
                        item.UnitaImmobiliareRiferimento = daoFactory.GetUnitaImmobiliareDao().GetById(dto.IdUnitaImmobiliare.Value, false);

                    // -------------------------------------
                    // Attivita Riferimento
                    // ------------------------------------
                    if (dto.IdAttivita != null && dto.IdAttivita > 0)
                        item.AttivitaRiferimento = daoFactory.GetAttivitaDao().GetById(dto.IdAttivita.Value, false);

                    // -------------------------------------
                    // Pratica Riferimento
                    // ------------------------------------
                    if (dto.IdPratica != null && dto.IdPratica > 0)
                        item.PraticaRiferimento = daoFactory.GetPraticaDao().GetById(dto.IdPratica.Value, false);

                    // -------------------------------------
                    // Contratto
                    // ------------------------------------

                    if (dto.IdContratto != null && dto.IdContratto > 0)
                    {
                        switch (dto.TipoContratto)
                        {
                            case TipoContrattoEnum.ContrattoAppalto:
                                item.ContrattoRiferimento = daoFactory.GetContrattoAppaltoDao().GetById(dto.IdContratto.Value, false);
                                break;
                            case TipoContrattoEnum.ContrattoAssicurativo:
                                item.ContrattoRiferimento = daoFactory.GetAssicurazioneContrattoDao().GetById(dto.IdContratto.Value, false);
                                break;
                        }
                    }

                    // -------------------------------------
                    // Versamento Riferimento
                    // ------------------------------------
                    if (dto.IdVersamento != null && dto.IdVersamento > 0)
                        item.VersamentoRiferimento =
                            daoFactory.GetVersamentoSoggettoDao().GetById(dto.IdVersamento.Value, false);

                    // -------------------------------------
                    // Sollecito Riferimento
                    // ------------------------------------
                    if (dto.IdSollecito != null && dto.IdSollecito > 0)
                        item.SollecitoRiferimento = daoFactory.GetSollecitoDao().GetById(dto.IdSollecito.Value, false);

                    daoFactory.GetDocumentoDao().Update(item);

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

            return result;
        }
        public ResultDocumento SaveDocument(int idFascicoloImmobiliare, int idCondominio, string descrizione, DateTime? data, int? idFornitore, bool visibileCondomino)
        {
            var message = string.Empty;

            var condominio = _daoFactory.GetCondominioDao().GetById(idCondominio, false);
            var fascicoloImmobiliare = _daoFactory.GetFascicoloImmobiliareDao().GetById(idFascicoloImmobiliare, false);
            var fascicolo = _daoFactory.GetFascicoloCondominioDao().GetByFascicoloImmobiliareCondominio(fascicoloImmobiliare, condominio);
            if (fascicolo == null)
            {
                fascicolo = new FascicoloCondominio(fascicoloImmobiliare, condominio) {Necessario = false, Presente = true};
                _daoFactory.GetFascicoloCondominioDao().SaveOrUpdate(fascicolo);
            }

            Documento documento = null;
            var protocollo = _protocolloService.GetProgressivo(TipoProtocollo.Documento, fascicolo.CondominioRiferimento);
            if (protocollo.Progressivo != null)
            {
                documento = new Documento(protocollo.Progressivo.Value, fascicoloImmobiliare.GetDescrizioneCompleta(false, null), false, condominio.Azienda) {Descrizione = descrizione};
                if (idFornitore != null)
                    documento.FornitoreRiferimento = _daoFactory.GetFornitoreDao().GetById(idFornitore.Value, false);
                documento.Data = data;
                documento.FileName = _archiviazioneOtticaService.GetIdentificativoArchiviazione(documento, condominio, true);
                documento.IdentificativoArchiviazioneOttica = _archiviazioneOtticaService.GetIdentificativoArchiviazione(documento, condominio, false);
                documento.CondominioRiferimento = condominio;
                documento.VisibileCondomino = visibileCondomino;
                documento.FileExtension = "Archiva";
                documento.IsAbilitataArchiviazioneOttica = true;

                fascicolo.Documenti.Add(documento);
                _daoFactory.GetDocumentoDao().SaveOrUpdate(documento);
            }
            else
                message = protocollo.Message + Environment.NewLine;

            if (!string.IsNullOrEmpty(message))
                documento = null;

            return new ResultDocumento(documento, message);
        }
Example #10
0
        public DocumentInfo GetDocumentInfo(Documento doc, TipoDocumentoArchiviazione tipo)
        {
            var docInfo = new DocumentInfo();
            if (doc != null)
            {
                var docService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IDocumentService>("savedocument.FileSystem");
                docInfo = docService.GetDocument(doc.Checksum, _info.Azienda, tipo);
                docInfo.FileName = doc.FileName;
            }

            return docInfo;
        }
Example #11
0
        /// <summary>
        /// Crea il file per la disposizione dei bonifici in formato SEPA SCT
        /// Nel caso in cui siano presenti più debitori (Condomini) viene creato un file zip contenente tutte le disposizioni di bonifico
        /// </summary>
        /// <param name="disposizione">Oggetto contenente tutti i metadati dei bonifici</param>
        /// <param name="accorpate">Usato solo per i bonifici CBI</param>
        /// <param name="idModello">Usato solo per i pagamenti manuali</param>
        /// <param name="testataPerCondominio">Usato solo per i bonifici CBI</param>
        /// <param name="mittenteCondominio">Usato solo per i bonifici CBI</param>
        /// <returns></returns>
        public ResultPagamento EsecuzionePagamenti(Disposizione disposizione, bool accorpate, int? idModello, bool testataPerCondominio, bool mittenteCondominio)
        {
            string message;

            try
            {
                var documentInfo = new DocumentInfo();
                message = IsAllowPagamento(disposizione.Pagamenti.Select(item => item.ScadenzaRiferimento.ID).ToList(), true);
                if (string.IsNullOrEmpty(message))
                {
                    var pagamenti = disposizione.Pagamenti.GroupBy(item => item.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento).ToList();

                    var stream = new MemoryStream();
                    ZipFile zipFile = null;
                    var singleFileName = string.Empty;
                    if (pagamenti.Count > 1)
                        zipFile = new ZipFile();

                    foreach (var pagamentiGroupByCondominio in pagamenti)
                    {
                        try
                        {
                            var sepa = new CBIPaymentRequest000400
                            {
                                PaymentInfo = getPaymentInfo(pagamentiGroupByCondominio.Key, pagamentiGroupByCondominio.ToList()),
                                GroupHeader = getGroupHeader(pagamentiGroupByCondominio.ToList(), pagamentiGroupByCondominio.Key)
                            };

                            var envelop = new CBIBdyPaymentRequest000400 { CBIEnvelPaymentRequest = { CBIPaymentRequest = sepa } };

                            var streamContent = Library.XML.SerializerHelper<CBIBdyPaymentRequest000400>.Serialize(envelop, new List<string> { "urn:CBI:xsd:CBIBdyPaymentRequest.00.04.00", "urn:CBI:xsd:CBIPaymentRequest.00.04.00" });
                            var fileName = ContabilitaHelper.GetFileName("Pagamenti", pagamentiGroupByCondominio.Key);

                            if (zipFile != null)
                            {
                                streamContent.Seek(0, SeekOrigin.Begin);
                                zipFile.AddEntry($"{fileName}.xml", streamContent);
                            }
                            else
                            {
                                stream = (MemoryStream)streamContent;
                                singleFileName = fileName;
                            }
                        }
                        catch (Exception ex)
                        {
                            _log.ErrorFormat("Errore inaspettato durante la creazione del file CBI dei bonifici - SINGOLO CONDOMINIO - {0} - condominio:{1} - modello:{2} - disposizione:{3} - azienda:{4}", ex, Library.Utility.GetMethodDescription(), pagamentiGroupByCondominio.Key.ID, idModello, disposizione.ID, disposizione.Azienda.ID);
                            throw;
                        }
                    }

                    if (zipFile != null)
                    {
                        documentInfo.FileName = ContabilitaHelper.GetFileName("Pagamenti", null);
                        documentInfo.FileExtension = ".zip";

                        zipFile.Save(stream);
                        var documentMessages = _documentService.SaveDocument(stream.ToArray(), documentInfo.FileName, documentInfo.FileExtension, null, disposizione.Azienda.ID);
                        var documento = new Documento(documentMessages.Documento.Checksum, documentInfo.FileName, documentInfo.FileExtension, "DisposizioneBonifico", false, disposizione.Azienda);
                        _daoFactory.GetDocumentoDao().Save(documento);
                        disposizione.Documento = documento;
                        documentInfo.Body = stream.ToArray();
                        zipFile.Dispose();
                    }
                    else
                    {
                        documentInfo.Body = stream.ToArray();
                        documentInfo.FileName = singleFileName;
                        documentInfo.FileExtension = ".xml";
                        disposizione.ContenutoFile = Library.Conversione.ToString(documentInfo.Body);
                    }

                    stream.Close();
                    stream.Dispose();
                }
                
                return new ResultPagamento(message, documentInfo, null);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la creazione del file CBI dei bonifici - {0} - modello:{1} - disposizione:{2} - azienda:{3}", ex, Library.Utility.GetMethodDescription(), idModello, disposizione.ID, disposizione.Azienda.ID);
                message = "Si sono verificati problemi inaspettati durante la creazione del file CBI dei bonifici." + Environment.NewLine + "Controllare il log per ulteriori dettagli.";
                return new ResultPagamento(message, new DocumentInfo(), null);
            }
        }
Example #12
0
        public string SetFirmaAmministratore(int idAzienda, DocumentInfo firma)
        {
            try
            {
                var message = string.Empty;

                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var azienda = daoFactory.GetAziendaDao().GetById(idAzienda, false);

                // Salvo il documento fisico
                var docService = _windsorRepository.GetContainer(idAzienda).Resolve<IDocumentService>("savedocument.FileSystem");
                var documentMessage = docService.SaveDocument(firma.Body, firma.FileName, null, null, idAzienda);
                if (documentMessage.Documento != null)
                {
                    var checksum = documentMessage.Documento.Checksum;

                    // Salvo la firma
                    var documentoFirma = new Documento(checksum, firma.FileName, getEstensioneFromBytes(firma.Body, ".png"), "Firma", false, azienda);
                    daoFactory.GetDocumentoDao().SaveOrUpdate(documentoFirma);
                    azienda.FirmaAmministratore = documentoFirma;
                }
                else
                    message = documentMessage.Message;

                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio della firma dell'Amministratore - {0} - azienda: {1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #13
0
        public string SetLogoRtfDate(int idAzienda, DocumentInfo logo)
        {
            try
            {
                var message = string.Empty;

                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var azienda = daoFactory.GetAziendaDao().GetById(idAzienda, false);

                // Salvo il documento fisico
                var docService = _windsorRepository.GetContainer(idAzienda).Resolve<IDocumentService>("savedocument.FileSystem");

                if ((logo.Body == null || logo.Body.Length == 0) && !string.IsNullOrEmpty(logo.BodyText))
                    logo.Body = Conversione.ToByteArray(logo.BodyText);

                var documentMessage = docService.SaveDocument(logo.Body, logo.FileName, null, null, idAzienda);
                if (documentMessage.Documento != null)
                {
                    var checksum = documentMessage.Documento.Checksum;

                    // Salvo il documento
                    var documentoLogo = new Documento(checksum, logo.FileName, getEstensioneFromBytes(logo.Body, ".rtf"), "Logo", false, azienda);
                    daoFactory.GetDocumentoDao().SaveOrUpdate(documentoLogo);
                    azienda.LogoRtfReportDate = documentoLogo;
                }
                else
                    message = documentMessage.Message;

                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio del logo DATE della Azienda - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #14
0
        private static DocumentoDTO setDocumentoDto(Documento item)
        {
            var dto = new DocumentoDTO
            {
                Checksum = item.Checksum,
                Descrizione = item.Descrizione,
                DirectoryName = item.DirectoryName,
                Version = item.Version,
                FileExtension = item.FileExtension,
                FileName = item.FileName,
                ID = item.ID,
                VisibileCondomino = item.VisibileCondomino,
                Tipo = item.Tipo,
                NoCache = item.NoCache,
                DataCreazione = item.DataInserimento.GetValueOrDefault()
            };

            if (item.CondominioRiferimento != null)
                dto.IdCondominio = item.CondominioRiferimento.ID;
            if (item.ContrattoRiferimento!= null)
                dto.IdContratto = item.ContrattoRiferimento.ID;  

            return dto;
        }
 public string GetIdentificativoArchiviazione(Documento documento, Condominio condominio, bool separatore)
 {
     return getIdentificativoArchiviazione(documento, condominio, separatore);
 }
        private string getIdentificativoArchiviazione(Documento documento, Condominio condominioRiferimento, bool separatore)
        {
            var identificativo = new StringBuilder();

            try
            {
                if (documento.NumeroProtocollo != null)
                {
                    // Azienda
                    identificativo.Append(condominioRiferimento.Azienda.Codice);

                    // Condominio
                    if (separatore)
                        identificativo.Append(SEPARATORE);
                    identificativo.Append(condominioRiferimento.Codice.PadLeft(5, '0'));

                    // Protocollo
                    if (separatore)
                        identificativo.Append(SEPARATORE);
                    identificativo.Append(documento.NumeroProtocollo.Value.ToString().PadLeft(5, '0'));
                }
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore inaspettato nella richiesta dell'identificativo per l'archiviazione ottica sostitutiva - " + Utility.GetMethodDescription() + " (Documento) - id:" + documento.ID, ex);
                throw;
            }

            return identificativo.ToString();

        }
Example #17
0
 public DocumentoDTO GetByDomainEntity(Documento item)
 {
     try
     {
         return SetDto(item);
     }
     catch (Exception ex)
     {
         
         _log.Error("Errore nel caricamento dei condomini: " + Library.Utility.GetMethodDescription() + " - id:" + item.ID, ex);
         throw;
     }
 }
Example #18
0
        public DocumentoDTO SetDto(Documento item)
        {
            if(item != null)
            {
                var dto = new DocumentoDTO
                {
                    Checksum = item.Checksum,
                    Descrizione = item.Descrizione,
                    DirectoryName = item.DirectoryName,
                    FileExtension = item.FileExtension,
                    FileName = item.FileName,
                    ID = item.ID,
                    VisibileCondomino = item.VisibileCondomino,
                    IdentificativoArchiviazioneOttica = item.IdentificativoArchiviazioneOttica,
                    NoCache = item.NoCache,
                    DataCreazione = item.DataInserimento.GetValueOrDefault()
                };

                if (string.IsNullOrEmpty(dto.Descrizione))
                    dto.Descrizione = dto.FileName;

                if (item.CondominioRiferimento != null)
                {
                    dto.IdCondominio = item.CondominioRiferimento.ID;
                    dto.DescrizioneCondominio = item.CondominioRiferimento.DisplayName;
                }
                else if (item.Fascicoli.Count > 0)
                {
                    var fascicolo = Library.IesiGenericCollections<FascicoloCondominio>.GetByIndex(item.Fascicoli, 0);
                    dto.IdCondominio = fascicolo.CondominioRiferimento.ID;
                    dto.DescrizioneCondominio = fascicolo.CondominioRiferimento.DisplayName;
                }
                if (item.FornitoreRiferimento != null)
                {
                    dto.IdFornitore = item.FornitoreRiferimento.ID;
                    dto.DescrizioneFornitore = item.FornitoreRiferimento.DisplayName;
                }
                if (item.UnitaImmobiliareRiferimento != null)
                {
                    dto.IdUnitaImmobiliare = item.UnitaImmobiliareRiferimento.ID;
                    dto.DescrizioneUnitaImmobiliare = item.UnitaImmobiliareRiferimento.Descrizione;
                }
                if (item.SpesaRiferimento != null)
                {
                    dto.IdSpesa = item.SpesaRiferimento.ID;
                    dto.DescrizioneSpesa = item.IdentificativoArchiviazioneOttica;
                }
                if (item.AttivitaRiferimento != null)
                    dto.IdAttivita = item.AttivitaRiferimento.ID;
                if (item.PraticaRiferimento != null)
                    dto.IdPratica = item.PraticaRiferimento.ID;
                if (item.VersamentoRiferimento != null)
                    dto.IdVersamento = item.VersamentoRiferimento.ID;
                if (item.SollecitoRiferimento != null)
                    dto.IdSollecito = item.SollecitoRiferimento.ID;

                if (item.ContrattoRiferimento != null)
                {
                    dto.IdContratto = item.ContrattoRiferimento.ID;
                    if (item.ContrattoRiferimento is ContrattoAppalto)
                        dto.TipoContratto = TipoContrattoEnum.ContrattoAppalto;
                    else if (item.ContrattoRiferimento is AssicurazioneContratto)
                        dto.TipoContratto = TipoContrattoEnum.ContrattoAssicurativo;
                    dto.DescrizioneContratto = item.ContrattoRiferimento.DisplayName;
                }

                dto.Tipo = item.Tipo;

                if (string.IsNullOrEmpty(dto.Tipo) && dto.TipoContratto != TipoContrattoEnum.Undefined)
                    dto.Tipo = dto.TipoContratto.Description();

                dto.Version = item.Version;

                //Fascicoli
                var indexFascicoli = 0;
                foreach (var fascicoloCondominio in item.Fascicoli)
                {
                    if (dto.IdFascicoli == null)
                        dto.IdFascicoli = new int[item.Fascicoli.Count];
                    dto.IdFascicoli[indexFascicoli] = fascicoloCondominio.ID;
                    indexFascicoli++;
                }

                return dto;
            }

            return new DocumentoDTO();
        }
Example #19
0
 public ResultDocumento(Documento documento, string message)
 {
     Documento = documento;
     Message = message;
 }
Example #20
0
        public RisultatoInvioMessaggioAllegati NotificaAIncaricato(int idAttivita, MotivoMessaggio motivoMessaggio, IList<PersonaMessaggioDTO> persone, string oggettoMessaggio, string testoMessaggio, string mittente, string emailRapportino, IList<DocumentoMessaggioDTO> allegati, IList<DocumentInfo> allegatiNuovi, TipoMessaggio tipo, int? idModello, ParametriStampaUnione parametri, ParametriInvioLettera parametriInvioLettera, bool aggiornaContatti, int? idCondominio)
        {
            try
            {
                // Invio i messaggi
                var messaggioRepository = new MessaggioRepository(_info, _windsorRepository);
                var contatti = persone.ToDictionary(personaMessaggioDTO => personaMessaggioDTO.ID, personaMessaggioDTO => new BindingList<ContattoDTO>(personaMessaggioDTO.Contatti));
                var risultatoInvio = messaggioRepository.InvioMessaggioPersone(motivoMessaggio, oggettoMessaggio, testoMessaggio, persone, contatti, mittente, emailRapportino, allegati, allegatiNuovi, tipo, idModello, parametri, parametriInvioLettera, aggiornaContatti, idCondominio, _info.Azienda);

                // Associo i messaggi avviati con l'attività
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var attivita = daoFactory.GetAttivitaDao().Find(idAttivita, false);
                if (attivita != null)
                {
                    foreach (var risultatoInvioMessaggio in risultatoInvio.RisultatoInvio)
                    {
                        if (risultatoInvioMessaggio.InvioRiuscito && risultatoInvioMessaggio.IdMessaggio > 0)
                        {
                            var attivitaMessaggio = new AttivitaMessaggio(attivita, daoFactory.GetStoricoMessaggioDao().GetById(risultatoInvioMessaggio.IdMessaggio, false));
                            daoFactory.GetAttivitaMessaggioDao().SaveOrUpdate(attivitaMessaggio);
                        }
                    }

                    // Salvo tutti i documenti legandoli alla attività
                    foreach (var documentInfo in risultatoInvio.Allegati)
                    {
                        var documento = new Documento(documentInfo.FileId, documentInfo.FileName, documentInfo.FileExtension, "Attivita", false, daoFactory.GetAziendaDao().GetById(attivita.PraticaRiferimento.AziendaID.GetValueOrDefault(), false))
                        {
                            Descrizione = documentInfo.BodyText,
                            AttivitaRiferimento = attivita
                        };
                        daoFactory.GetDocumentoDao().SaveOrUpdate(documento);
                    }

                    // Documenti generati dall'invio manuale del messaggio
                    foreach (var itemResult in risultatoInvio.RisultatoInvio)
                    {
                        if (itemResult.Messaggio.Body != null)
                        {
                            var documentoLettera = new Documento(itemResult.Messaggio.FileId, itemResult.Messaggio.FileName, itemResult.Messaggio.FileExtension, "Attivita", false, daoFactory.GetAziendaDao().GetById(attivita.PraticaRiferimento.AziendaID.GetValueOrDefault(), false))
                            {
                                Descrizione = itemResult.Messaggio.BodyText,
                                AttivitaRiferimento = attivita
                            };
                            daoFactory.GetDocumentoDao().SaveOrUpdate(documentoLettera);
                        }
                    }
                }

                return risultatoInvio;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore durante l'invio del messaggio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), _info.Azienda);
                throw;
            }
        }