public string AcquistoCredito(int idAzienda, decimal importo, string descrizione) { var service = _windsorRepository.GetContainer(idAzienda).Resolve<IConfigurationMessageService>(); var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return service.AcquistaCredito(impostazioni.UtenteServiziMessaggistica, impostazioni.PasswordServiziMessaggistica, importo, descrizione); }
private ModuloDTO setDto(Modulo item, ImpostazioniAzienda impostazioni) { var dto = new ModuloDTO { Version = item.Version, Descrizione = item.Descrizione, ID = item.ID, Ordine = item.Ordine, IsEnableSceltaEsercizio = item.IsEnableSceltaEsercizio, Gruppi = new List<GruppiMenuDTO>(item.Gruppi.Count) }; if (impostazioni != null && !impostazioni.SceltaCondominioEsercizio) dto.IsEnableSceltaEsercizio = false; // Gruppi voci menu foreach (var gruppo in item.Gruppi.OrderBy(grp => grp.Ordine)) { var gruppoDTO = new GruppiMenuDTO { Descrizione = gruppo.GruppoMenu.Descrizione, NomeAssembly = gruppo.GruppoMenu.NomeAssembly, Ordine = gruppo.Ordine, Version = gruppo.Version, ID = gruppo.ID, CodiceModulo = item.ID, VociMenu = new List<GruppiMenuVoceDTO>(gruppo.VociMenu.Count) }; foreach (ModuloGruppoMenuVoce voce in gruppo.VociMenu) { var voceDTO = new GruppiMenuVoceDTO { ID = voce.ID, NomeGruppoPopup = voce.NomeGruppoPopup, VoceKey = voce.VoceKey, CodiceGruppoMenu = gruppo.ID }; gruppoDTO.VociMenu.Add(voceDTO); } dto.Gruppi.Add(gruppoDTO); } return dto; }
public string CreateUtente(int idAzienda, string email, string password) { var service = _windsorRepository.GetContainer(idAzienda).Resolve<IConfigurationMessageService>(); var result = service.CreateUtente(idAzienda, email, password); if (string.IsNullOrEmpty(result.Message)) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } impostazioni.CodiceUtenteMessaggistica = result.Codice; impostazioni.UtenteServiziMessaggistica = email; impostazioni.PasswordServiziMessaggistica = password; } return result.Message; }
public SpesaInfoDTO SalvaMovimento(RipartizioneSpeseDTO ripartizione, MovimentoContabileDTO movimentoAvere, List<MovimentoContabileDTO> movimentiDare, int? idMovimentoBancario) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var movimentoContabileService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMovimentiContabiliService>(); var ripartizioneSpeseService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IRipartizioneSpeseService>(); var protocolloService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IProtocolloService>(); var archiviazioneService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IArchiviazioneOtticaService>(); var persistenceContextService = _windsorRepository.GetContainer(_info.Azienda).Resolve<Data.IPersistenceContext>(); var index = 0; movimentoAvere.NumeroRiga = index+1; movimentoAvere.Descrizione = ripartizione.Descrizione; if (movimentoAvere.Importo > 0) movimentoAvere.Segno = "A"; else { movimentoAvere.Segno = "D"; movimentoAvere.Importo = movimentoAvere.Importo * -1; } int? idEsercizio = null; try { var esercizio = daoFactory.GetEsercizioDao().GetById(ripartizione.Testata.IdEsercizio.GetValueOrDefault(), true); if (esercizio.Stato == StatoEsercizioEnum.Aperto) { idEsercizio = esercizio.ID; var numeroRegistrazione = esercizio.ProgressivoRegistrazioneContabile; ripartizione.Testata.Movimenti = new MovimentoContabileDTO[movimentiDare.Count + 1]; ripartizione.Testata.Movimenti[0] = movimentoAvere; numeroRegistrazione++; movimentoAvere.NumeroRegistrazione = numeroRegistrazione; // Salvo eventuali valori del movimento patrimoniale originale if(movimentoAvere.ID > 0) { var movimento = daoFactory.GetMovimentoContabileDao().Find(movimentoAvere.ID, false); if (movimento?.EvasioneBancaria != null) movimentoAvere.IdEvasione = movimento.EvasioneBancaria.ID; } if (!(ripartizione.Testata.IdModelloRipartizione > 0)) { foreach (var movimentoEconomico in movimentiDare) { index++; numeroRegistrazione++; if (movimentoEconomico.Importo < 0) { movimentoEconomico.Importo = movimentoEconomico.Importo*-1; movimentoEconomico.Segno = "A"; } else movimentoEconomico.Segno = "D"; movimentoEconomico.IsMovimentoEconomico = true; movimentoEconomico.NumeroRegistrazione = numeroRegistrazione; movimentoEconomico.Causale = movimentoAvere.Causale; movimentoEconomico.IdFornitore = movimentoAvere.IdFornitore; if (string.IsNullOrEmpty(movimentoEconomico.Descrizione) && !esercizio.CondominioRiferimento.DescrizioneSpeseAutomatica) movimentoEconomico.Descrizione = ripartizione.Descrizione; movimentoEconomico.IdTestata = ripartizione.Testata.ID; ripartizione.Testata.Movimenti[index] = movimentoEconomico; // --------------------------------------------------------------------- // Aggiorno addebiti per lotto, stabile o scala // --------------------------------------------------------------------- var spesePersonali = false; if (movimentoEconomico.ID > 0) { var movimento = daoFactory.GetMovimentoContabileDao().Find(movimentoEconomico.ID, false); if (movimento != null) { movimentoEconomico.LottiAddebito = movimento.LottiAddebito; movimentoEconomico.StabiliAddebito = movimento.StabiliAddebito; movimentoEconomico.GruppiAddebito = movimento.GruppiAddebito; spesePersonali = movimento.ContoRiferimento.IsSpesePersonali; } } // --------------------------------------------------------------------- // Verifico se è stata eseguita una ripartizione personalizzata // --------------------------------------------------------------------- var key = ripartizioneSpeseService.GetKey(movimentoEconomico); movimentoEconomico.IsRipartoPersonalizzato = false; // Lasciare la valorizzazione di NumeroRiga DOPO il GetKey altrimenti la chiave NON viene trovata per i movimenti con più di 1 conto economico movimentoEconomico.NumeroRiga = index + 1; if (ripartizione.UnitaImmobiliari != null && ripartizione.UnitaImmobiliari.ContainsKey(key)) { movimentoEconomico.LottiAddebito = getLottiAddebito(ripartizione, key); movimentoEconomico.StabiliAddebito = getStabiliAddebito(ripartizione, key); movimentoEconomico.GruppiAddebito = getGruppiAddebito(ripartizione, key); var unita = ripartizione.UnitaImmobiliari[key]; var isPersonalizzato = unita.Count(item => item.Selezionato) < unita.Length; // Considero il movimento come ripartito personalmente se non sono presenti specifici riparti per lotto, stabile o scala e non si tratta di un conto di spese personali if (isPersonalizzato && !spesePersonali && string.IsNullOrEmpty(movimentoEconomico.LottiAddebito) && string.IsNullOrEmpty(movimentoEconomico.StabiliAddebito) && string.IsNullOrEmpty(movimentoEconomico.GruppiAddebito)) movimentoEconomico.IsRipartoPersonalizzato = true; var conto = daoFactory.GetContoDao().GetById(movimentoEconomico.IdConto.Value, false); if (conto.IsSpesePersonali || movimentoEconomico.IsRipartoPersonalizzato) { movimentoEconomico.DettaglioRipartizione = new SpeseUnitaDTO[unita.Length]; // ----------------------------------------------------------- // Per le unità ricalcolo gli importi // ----------------------------------------------------------- var instanceModificata = getInstanceModificata(ripartizione, key); if (!string.IsNullOrEmpty(instanceModificata) && instanceModificata != "U") GetRipartizioneByMovimento(movimentoEconomico, esercizio.ID, ripartizione); else { movimentoEconomico.DettaglioRipartizione = new SpeseUnitaDTO[movimentoEconomico.DettaglioRipartizione.Length]; var unitaSelected = ripartizione.UnitaImmobiliari[key]; for (var i = 0; i < unitaSelected.Length; i++) { if (unitaSelected[i].Selezionato) { var spesaUnitaDto = new SpeseUnitaDTO { ID = 0, IdMovimentoRiferimento = movimentoEconomico.ID, Importo = unitaSelected[i].Importo }; if (unitaSelected[i].IdSoggettoCondominio > 0) spesaUnitaDto.IdSoggetto = unitaSelected[i].IdSoggettoCondominio; else spesaUnitaDto.IdUnitaRiferimento = unitaSelected[i].ID; movimentoEconomico.DettaglioRipartizione[i] = spesaUnitaDto; } } } } } } } // ------------------------------------------- // Elimino vecchia testata // ------------------------------------------- int? oldProtocollo = null; int? oldAnnoArchiviazione = null; var oldTipoTestata = TipoTestataMovimentoContabileEnum.Undefined; AddebitoCompetenza addebito = null; var testataOld = daoFactory.GetTestataMovimentoContabileDao().Find(ripartizione.Testata.ID, false); if (testataOld != null) { if (testataOld.AddebitoCompetenze.Count > 0) addebito = Library.IesiGenericCollections<AddebitoCompetenza>.GetByIndex(testataOld.AddebitoCompetenze, 0); oldProtocollo = testataOld.NumeroProtocollo; oldAnnoArchiviazione = testataOld.AnnoArchiviazioneOttica; testataOld.EsercizioRiferimento = null; // ------------------------------------------------------------------------ // Nel caso si tratti di un movimento generato automaticamente dalla procedura solleciti // elimino la relazione tra sollecito e movimento contabile. // Solo per le vecchie versioni di addebito competenze solleciti // ------------------------------------------------------------------------ if (testataOld.Tipo == TipoTestataMovimentoContabileEnum.Automatica) { oldTipoTestata = testataOld.Tipo; // per impostare correttamente la descrizione della testata movimentoAvere.Descrizione = testataOld.Descrizione; var solleciti = daoFactory.GetSollecitoDao().GetByTestataMovimentoContabile(testataOld.ID); foreach (var sollecito in solleciti) sollecito.MovimentoEconomico = null; ripartizione.Testata.Tipo = testataOld.Tipo; } daoFactory.GetTestataMovimentoContabileDao().Delete(testataOld); ripartizione.Testata.ID = 0; foreach (var movDto in ripartizione.Testata.Movimenti) { if (movDto != null) movDto.ID = 0; } } // ------------------------------------------- // Creo nuova testata // ------------------------------------------- var rep = new TestataMovimentoContabileRepository(_info, _windsorRepository, null); var testata = rep.ManageDomainEntity(ripartizione.Testata); if (testata == null || movimentoAvere == null) { if (testata == null) { _log.ErrorFormat("Errore inaspettato nel salvataggio (UPDATE) del movimento - TESTATA NULL - {0} - esercizio:{1} - azienda:{2}", Library.Utility.GetMethodDescription(), idEsercizio.GetValueOrDefault(), _info.Azienda); persistenceContextService.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName); persistenceContextService.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted); return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, Message = "Errore inaspettato nel salvataggio del movimento, si prega di riprovare." }; } if (movimentoAvere == null) { _log.ErrorFormat("Errore inaspettato nel salvataggio (UPDATE) del movimento - MOVIMENTO AVERE NULL - {0} - esercizio:{1} - azienda:{2}", Library.Utility.GetMethodDescription(), idEsercizio.GetValueOrDefault(), _info.Azienda); persistenceContextService.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName); persistenceContextService.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted); return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, Message = "Errore inaspettato nel salvataggio del movimento, si prega di riprovare." }; } } testata.Descrizione = movimentoAvere.Descrizione; if (oldProtocollo != null) testata.NumeroProtocollo = oldProtocollo; if (oldAnnoArchiviazione != null) testata.AnnoArchiviazioneOttica = oldAnnoArchiviazione; if (oldTipoTestata != TipoTestataMovimentoContabileEnum.Undefined) testata.Tipo = oldTipoTestata; // Aggiorno eventuali addebiti di competenze esistenti if (addebito != null) { addebito.TestataMovimento = testata; IList<MovimentoContabile> movimentiEconomici = testata.Movimenti.Where(item => item.IsEconomico()).ToList(); IList<DettaglioAddebitoCompetenza> dettagliAddebito = addebito.Dettaglio.ToList(); if (movimentiEconomici.Count == dettagliAddebito.Count) { for (var i = 0; i < dettagliAddebito.Count; i++) dettagliAddebito[i].MovimentoContabile = movimentiEconomici[i]; } else { throw new InvalidDataException("Non è possibile aggiornare direttamente un movimento contabile generato da un addebito di competenze"); //foreach (var dettaglioAddebito in addebito.Dettaglio) // dettaglioAddebito.MovimentoContabile = null; } } // ====================================================================================== // Evasione Movimenti // ====================================================================================== if (idMovimentoBancario != null) { IList<MovimentoContabile> movimentiContabili = (from movimento in testata.Movimenti where !movimento.IsEconomico() select movimento).ToList(); IList<int> idMovimentiBancari = new List<int> {idMovimentoBancario.GetValueOrDefault()}; movimentoContabileService.EvadiMovimento($"Evasione automatica registrazione movimento contabile del {ripartizione.Testata.DataRegistrazione.GetValueOrDefault():d}", movimentiContabili, idMovimentiBancari, null, null); } // ===================================================================================================== // Se presente applico il modello di ripartizione, altrimenti ricalcolo valori o l'intera ripartizione // ===================================================================================================== if (ripartizione.Testata.IdModelloRipartizione > 0) { var tipo = TipoMovimentoEnum.Spesa; if (movimentoAvere.Segno == "D") tipo = TipoMovimentoEnum.Accredito; // NON VIENE PIù RICALCOLATA LE RIPARTIZIONE, SARA' CALCOLATA IN FASE DI BILANCIO ripartizioneSpeseService.ApplyModello(testata, ripartizione.Testata.IdModelloRipartizione.Value, movimentoAvere.Importo.Value, tipo, false); // Ripristino le descrizioni precedenti se presenti foreach (var dto in movimentiDare) { if (!string.IsNullOrEmpty(dto.Descrizione)) { var movimento = (from item in testata.Movimenti where item.NumeroRiga == dto.NumeroRiga select item).SingleOrDefault(); if (movimento != null) movimento.Descrizione = dto.Descrizione; } } } else { // Salvataggio modello testata.ModelloRipartizione = SalvaModelloRipartizioneContabile(ripartizione, testata, movimentiDare, movimentoAvere.Importo.Value); } // ===================================================================================================== // Salvataggio progressivo registrazione // ===================================================================================================== esercizio.ProgressivoRegistrazioneContabile = numeroRegistrazione; // ===================================================================================================== // Registrazione dell'eventuale arrotondamento // ===================================================================================================== if (testata.Movimenti.FirstOrDefault() != null) movimentoContabileService.SetMovimentoArrotondamento(null, testata, testata.Movimenti.FirstOrDefault().Causale, null); // ====================================================================================== // Recupero il numero di protocollo e l'identificativo di archiviazione // ====================================================================================== int protocollo; if (testata.NumeroProtocollo.GetValueOrDefault() == 0) { { var progressivo = protocolloService.GetProgressivo(TipoProtocollo.Fattura, esercizio.DataApertura.GetValueOrDefault().Year, testata.EsercizioRiferimento.CondominioRiferimento); if (progressivo.Progressivo != null) { protocollo = progressivo.Progressivo.Value; testata.NumeroProtocollo = protocollo; testata.AnnoArchiviazioneOttica = esercizio.DataApertura.GetValueOrDefault().Year; } else return new SpesaInfoDTO { Id = 0, IdentificativoArchiviazione = null, NumeroProtocollo = 0, StampaEtichettaArchiviazione = false, Message = progressivo.Message }; } } else { protocollo = testata.NumeroProtocollo.Value; } var identificativoArchiviazione = archiviazioneService.GetIdentificativoArchiviazione(testata); var movimentoPatrimoniale = (from item in testata.Movimenti where item.NumeroRiga == movimentoAvere.NumeroRiga select item).FirstOrDefault(); var idMovimentoPatrimoniale = 0; if (movimentoPatrimoniale != null) idMovimentoPatrimoniale = movimentoPatrimoniale.ID; var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(esercizio.CondominioRiferimento.Azienda.ID); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(esercizio.CondominioRiferimento.Azienda.ID, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } var stampaEtichetta = false; var etichettatrice = string.Empty; var tipoEichetta = "Testo"; int? trayEtichettatriceAttivazioneOttica = null; if (impostazioni != null) { stampaEtichetta = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti && testata.IsAbilitataArchiviazioneOttica; etichettatrice = impostazioni.EtichettatriceArchiviazioneOttica; tipoEichetta = impostazioni.TipoEtichettaArchiviazioneOttica; trayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica; } return new SpesaInfoDTO { Id = idMovimentoPatrimoniale, NumeroProtocollo = testata.NumeroProtocollo.Value, IdentificativoArchiviazione = identificativoArchiviazione, StampaEtichettaArchiviazione = stampaEtichetta, EtichettatriceArchiviazione = etichettatrice, TipoEtichettaArchiviazione = tipoEichetta, TrayEtichettatriceAttivazioneOttica = trayEtichettatriceAttivazioneOttica }; } return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, Message = "La registrazione non è possibile perchè relativo ad un esercizio chiuso." }; } catch (Exception ex) { var message = ex.ToString().StartsWith("NHibernate.StaleObjectStateException") ? "Un altro utente ha confermato un movimento." : "Errore inaspettato nell'attribuzione del numero di registrazione, probabilmente determinato da un conflitto di aggiornamento"; _log.ErrorFormat("Errore inaspettato nel salvataggio (UPDATE) del movimento - {0} - idMovimentoAvere:{1} - esercizio:{2} - azienda:{3}", ex, Library.Utility.GetMethodDescription(), movimentoAvere.ID, idEsercizio.GetValueOrDefault(), _info.Azienda); persistenceContextService.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName); persistenceContextService.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted); return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, Message = message }; } }
private void setIndirizzo(PersonaContattoDTO dto, Persona persona, TipoIndirizzo? tipoIndirizzo, ImpostazioniAzienda impostazioni) { try { // ================================================================== // Indirizzo // ================================================================== if (tipoIndirizzo == null) tipoIndirizzo = impostazioni.TipoIndirizzoComunicazioni; dto.Indirizzo = new AddressComunicazioneDTO { RecapitoResidenza = tipoIndirizzo.GetValueOrDefault() }; if (persona.IndirizzoResidenza != null) { dto.Indirizzo.CapResidenza = persona.IndirizzoResidenza.Cap; dto.Indirizzo.LocalitaResidenza = persona.IndirizzoResidenza.Localita; dto.Indirizzo.PressoResidenza = persona.IndirizzoResidenza.Presso; // Località per ora viene stampata com campo singolo // personaDto.Indirizzo.ComuneResidenza = soggetto.Persona.IndirizzoResidenza.Localita; if (persona.IndirizzoResidenza.Comune != null) { if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneResidenza)) dto.Indirizzo.ComuneResidenza += " - "; dto.Indirizzo.ComuneResidenza += persona.IndirizzoResidenza.Comune.Descrizione + " " + persona.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice; } dto.Indirizzo.ViaCivicoResidenza = persona.IndirizzoResidenza.Indirizzo + " " + persona.IndirizzoResidenza.Civico; //if (!string.IsNullOrEmpty(persona.IndirizzoResidenza.Presso)) // dto.Indirizzo.ViaCivicoResidenza += " - c/o:" + persona.IndirizzoResidenza.Presso; } if (persona.Recapito != null) { dto.Indirizzo.CapRecapito = persona.Recapito.Cap; dto.Indirizzo.LocalitaRecapito = persona.Recapito.Localita; dto.Indirizzo.PressoRecapito = persona.Recapito.Presso; // Località per ora viene stampata com campo singolo // personaDto.Indirizzo.ComuneRecapito = soggetto.Persona.Recapito.Localita; if (persona.Recapito.Comune != null) { if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneRecapito)) dto.Indirizzo.ComuneRecapito += " - "; dto.Indirizzo.ComuneRecapito += persona.Recapito.Comune.Descrizione + " " + persona.Recapito.Comune.ProvinciaAppartenenza.Codice; } dto.Indirizzo.ViaCivicoRecapito = persona.Recapito.Indirizzo + " " + persona.Recapito.Civico; //if (!string.IsNullOrEmpty(persona.Recapito.Presso)) // dto.Indirizzo.ViaCivicoRecapito += " - c/o:" + persona.Recapito.Presso; } else { dto.Indirizzo.ViaCivicoRecapito = dto.Indirizzo.ViaCivicoResidenza; dto.Indirizzo.CapRecapito = dto.Indirizzo.CapResidenza; dto.Indirizzo.ComuneRecapito = dto.Indirizzo.ComuneResidenza; dto.Indirizzo.PressoRecapito = dto.Indirizzo.PressoResidenza; dto.Indirizzo.LocalitaRecapito = dto.Indirizzo.LocalitaResidenza; } dto.ViaCivico = dto.Indirizzo.ViaCivicoRecapito; dto.Cap = dto.Indirizzo.CapRecapito; dto.Comune = dto.Indirizzo.ComuneRecapito; dto.Localita = dto.Indirizzo.LocalitaRecapito; dto.Presso = dto.Indirizzo.PressoRecapito; // ================================================================== } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura dell'indirizzo - {0} - id:{1}", ex, Utility.GetMethodDescription(), persona.ID); throw; } }
public string IsAllowEmissioneRate(int idEsercizio, List<int> lista) { var result = string.Empty; // Controllo condominio var esercizio =_daoFactory.GetEsercizioDao().GetById(idEsercizio, false); _impostazioniAzienda = _daoFactory.GetImpostazioniAziendaDao().GetByAzienda(esercizio.CondominioRiferimento.Azienda.ID) ?? new ImpostazioniAzienda(esercizio.CondominioRiferimento.Azienda) { TipoIndirizzoComunicazioni = TipoIndirizzo.Residenza }; if (string.IsNullOrEmpty(esercizio.CondominioRiferimento.CodiceSIA)) result = "Non è presente il codice SIA per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine; if (string.IsNullOrEmpty(esercizio.CondominioRiferimento.CodiceFiscale)) result = "Non è presente il codice fiscale per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine; if(esercizio.CondominioRiferimento.DatiBancariPrincipale == null) result = "Non sono presenti le coordinate bancarie per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine; else if (string.IsNullOrEmpty(esercizio.CondominioRiferimento.DatiBancariPrincipale.Abi)) result = "Non è presente il codice ABI del condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine; if (esercizio.CondominioRiferimento.Indirizzo == null) result = "Non è presente l'indirizzo per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine; else if (esercizio.CondominioRiferimento.Indirizzo.Comune == null) result = "Non è presente il comune per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine; const string hql = "FROM SoggettoCondominio S WHERE S.ID IN (:lista)"; var soggetti =_daoFactory.GetSoggettoCondominioDao().GetByQuery(hql, new QueryParam("lista", lista)); return soggetti.Select(checkCondominoForEmissione).Where(checkCondomino => !string.IsNullOrEmpty(checkCondomino)).Aggregate(result, (current, checkCondomino) => current + checkCondomino); }
private RiepilogoRataSoggettoDTO getItemTemplate(Persona persona, ImpostazioniAzienda impostazioni) { var riepilogo = new RiepilogoRataSoggettoDTO { ID = persona.ID, IdPersona = persona.ID, Nominativo = persona.DisplayName, TipoSoggettoCondominio = TipoSoggetto.Proprietario, SelectColumn = true }; var contatti = new ContattoCollection(persona.Contatti); var contattoEmail = contatti.GetFirstContatto<Email>(); if (contattoEmail != null) riepilogo.Email = contattoEmail.Valore; var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>(); if (contattoEmailCertificato != null) riepilogo.EmailCertificata = contattoEmailCertificato.Valore; var contattoCellulare = contatti.GetFirstContatto<Cellulare>(); if (contattoCellulare != null) riepilogo.Cellulare = contattoCellulare.Valore; var contattoFax = contatti.GetFirstContatto<Fax>(); if (contattoFax != null) riepilogo.Fax = contattoFax.Valore; setIndirizzo(riepilogo, persona, impostazioni); return riepilogo; }
public ResultDocumentoDTO SalvaDocumentoFascicolo(int idFascicolo, string descrizione, int idCondominio, DateTime? data, int? idFornitore, bool visibileCondomino) { var fascicoloService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IFascicoloService>(); var result = fascicoloService.SaveDocument(idFascicolo, idCondominio, descrizione, data, idFornitore, visibileCondomino); ResultDocumentoDTO item; if (result.Documento != null) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(_info.Azienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(_info.Azienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } var stampaEtichette = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaContratti && daoFactory.GetCondominioDao().GetById(idCondominio, false).IsAbilitataArchiviazioneOtticaContratti.GetValueOrDefault(); var etichettatrice = impostazioni.EtichettatriceArchiviazioneOttica; var tipoEtichetta = impostazioni.TipoEtichettaArchiviazioneOttica; var trayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica; item = new ResultDocumentoDTO(GetByDomainEntity(result.Documento), result.Message, stampaEtichette, etichettatrice, tipoEtichetta, trayEtichettatriceAttivazioneOttica); } else item = new ResultDocumentoDTO(null, result.Message, false, string.Empty, "Testo", null); return item; }
public CredenzialiArchiviazioneOttica GetCredenzialiArchiviazioneOttica(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return new CredenzialiArchiviazioneOttica(impostazioni.UtenteArchiviazioneOttica, impostazioni.PasswordArchiviazioneOttica, impostazioni.NomeApplicazioneArchiviazioneOttica, impostazioni.IndiceContrattiArchiviazioneOttica, impostazioni.IndiceFattureArchiviazioneOttica); } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura delle credenziali di autenticazione per archiviazione ottica - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public string GetCausaleEmissioneRate(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.CausaleEmissioneRate; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura della causale di emissione rate - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public bool GetInversioneSaldiCondomini(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.InversioneSaldiRate; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del flag di inversione dei saldi dei condomini - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public bool GetRicaricamentoElencoSpeseDisabilitato(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.RicaricamentoElencoSpeseDisabilitato; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del flag di ricaricamento elenco spese - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
private bool insert(AziendaDTO dto, out Azienda item) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = new Azienda(string.Empty, dto.Descrizione) { Descrizione = dto.Descrizione, NomeUtente = dto.NomeUtente, PercorsoDocumenti = dto.PercorsoDocumenti, CodiceFiscale = dto.CodiceFiscale, PartitaIva = dto.PartitaIva, PercorsoCacheDocumenti = dto.PercorsoCacheDocumenti, GiornoInizioRiscaldamento = dto.GiornoInizioRiscaldamento, MeseInizioRiscaldamento = dto.MeseInizioRiscaldamento, GiornoFineRiscaldamento = dto.GiornoFineRiscaldamento, MeseFineRiscaldamento = dto.MeseFineRiscaldamento, CodiceSIA = dto.CodiceSIA, CodiceCUC = dto.CodiceCUC, CodiceSedeEntratel = dto.CodiceSedeEntratel }; // Dati per CBI if (!string.IsNullOrEmpty(dto.CodiceAbiBancaRitenuta) && !string.IsNullOrEmpty(dto.CodiceCabBancaRitenuta)) item.BancaRiferimentoRitenuta = daoFactory.GetAbiCabDao().GetByAbiCab(dto.CodiceAbiBancaRitenuta, dto.CodiceCabBancaRitenuta); // Responsabili if (dto.CodiceAmministratore > 0) item.Amministratore = daoFactory.GetReferenteDao().GetById(dto.CodiceAmministratore, false); if (dto.CodiceResponsabileAssicurazioni > 0) item.ResponsabileAssicurazioni = daoFactory.GetReferenteDao().GetById(dto.CodiceResponsabileAssicurazioni.GetValueOrDefault(), false); if (dto.CodiceResponsabilePremiAssicurativi > 0) item.ResponsabilePremiAssicurativi = daoFactory.GetReferenteDao().GetById(dto.CodiceResponsabilePremiAssicurativi.GetValueOrDefault(), false); // Indirizzo if (dto.IndirizzoSede != null) { if(item.IndirizzoSede == null) item.IndirizzoSede = new Address(); item.IndirizzoSede.Indirizzo = dto.IndirizzoSede.Indirizzo; item.IndirizzoSede.Localita = dto.IndirizzoSede.Localita; item.IndirizzoSede.Presso = dto.IndirizzoSede.Presso; item.IndirizzoSede.Cap = dto.IndirizzoSede.Cap; item.IndirizzoSede.Civico = dto.IndirizzoSede.Civico; if(!string.IsNullOrEmpty(dto.IndirizzoSede.CodiceComune)) item.IndirizzoSede.Comune = daoFactory.GetComuneDao().GetById(dto.IndirizzoSede.CodiceComune, false); } // Parametri Messaggistica var impostazioni = new ImpostazioniAzienda(item) { AutorizzazioneScadenze = dto.AutorizzazioneScadenze, SceltaCondominioEsercizio = dto.SceltaCondominioEsercizio, UtenteServiziMessaggistica = dto.UtenteServiziMessaggistica, PasswordServiziMessaggistica = dto.PasswordServiziMessaggistica, EmailRapportiniInvio = dto.EmailRapportiniInvio, ControlloRapportinoMessaggistica = dto.ControlloRapportinoMessaggistica, EmailControlloRapportinoMessaggistica = dto.EmailControlloRapportinoMessaggistica, NomeFaxHeader = dto.NomeFaxHeader, NumeroFaxHeader = dto.NumeroFaxHeader, NomeSmsHeader = dto.NomeSmsHeader, MittenteEmailAzienda = dto.MittenteEmailAzienda, DescrizioneAddebitoInteressiRitenuta = dto.DescrizioneAddebitoInteressiRitenuta, DescrizioneAddebitoSanzioniRitenuta = dto.DescrizioneAddebitoSanzioniRitenuta, CausaleEmissioneRate = dto.CausaleEmissioneRate, UtilizzoEtichettatriceArchiviazioneOtticaFatture = dto.UtilizzoEtichettatriceArchiviazioneOtticaFatture, UtilizzoEtichettatriceArchiviazioneOtticaMovimenti = dto.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti, UtilizzoEtichettatriceArchiviazioneOtticaContratti = dto.UtilizzoEtichettatriceArchiviazioneOtticaContratti, TipoIndirizzoComunicazioni = dto.TipoIndirizzoComunicazioni, EtichettatriceArchiviazioneOttica = dto.EtichettatriceArchiviazioneOttica, TipoEtichettaArchiviazioneOttica = dto.TipoEtichettaArchiviazioneOttica, TrayEtichettatriceAttivazioneOttica = dto.TrayEtichettatriceAttivazioneOttica, InversioneSaldiRate = dto.InversioneSaldiRate, StampaAutomaticaLetteraPagamentoManuale = dto.StampaLetteraPagamentoManuale, StampaNomeAmministratoreReport = dto.StampaNomeAmministratoreReport, RicaricamentoElencoSpeseDisabilitato = dto.RicaricamentoElencoSpeseDisabilitato, DescrizioneAutomaticaPagamentoManuale = dto.CausalePagamentoManuale, IntestazioneMAV = dto.IntestazioneMAV, DescrizioneSpeseAutomatica = dto.DescrizioneSpeseAutomatica, CodiceCalcoloTariffaAcqua = dto.CodiceCalcoloTariffaAcqua, FormatoNomeProprietario = dto.FormatoNomeProprietario, FormatoNomeConduttore = dto.FormatoNomeConduttore, FontNameMessaggistica = dto.FontNameMessaggistica, FontSizeMessaggistica = dto.FontSizeMessaggistica, TipoVersamentoDopoChiusura = dto.TipoVersamentoDopoChiusura, TipoVersamentoPrimaApertura = dto.TipoVersamentoPrimaApertura, ModalitaConvocazione = dto.ModalitaConvocazione, VersamentoMav = dto.VersamentoMAV, AlertAttivitaAbilitato = dto.AlertAttivitaAbilitato, AlertScadenzaContrattoAbilitato = dto.AlertScadenzaContrattoAbilitato, AlertScadenzaPremioContrattoAbilitato = dto.AlertScadenzaPremioContrattoAbilitato, TemplateDescrizioneUnitaImmobiliare = dto.TemplateDescrizioneUnitaImmobiliare }; TipoAperturaDocumentoEnum aperturaPdf; if (Enum.TryParse(dto.AperturaDocumentoPdf, out aperturaPdf)) impostazioni.AperturaDocumentoPdf = aperturaPdf; TipoAperturaDocumentoEnum aperturaMessaggistica; if (Enum.TryParse(dto.AperturaDocumentoMessaggistica, out aperturaMessaggistica)) impostazioni.AperturaDocumentoMessaggistica = aperturaMessaggistica; // GeoReferenziazione var geoService = _windsorRepository.GetContainer(item.ID).Resolve<IGeoLocationService>(); var coordinate = geoService.GetLatLong(item.IndirizzoSede.GetGeoLocationAddress()); if (coordinate != null) { item.GeoReferenziazione = new GeoReference { Longitude = coordinate.Value.Longitude, Latitude = coordinate.Value.Latitude }; } daoFactory.GetAziendaDao().SaveOrUpdate(item); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } catch (Exception ex) { _log.Error("Errore nell'inserimento dell'azienda - " + Utility.GetMethodDescription() + " - id:" + dto.ID, ex); throw; } return true; }
private bool update(AziendaDTO dto, out Azienda item) { bool result; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetAziendaDao().GetById(dto.ID, false); // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia // Per ora non viene eseguito il controllo if (dto.Version == item.Version || true) { item.Descrizione = dto.Descrizione; item.NomeUtente = dto.NomeUtente; item.PercorsoDocumenti = dto.PercorsoDocumenti; item.CodiceFiscale = dto.CodiceFiscale; item.PartitaIva = dto.PartitaIva; item.PercorsoCacheDocumenti = dto.PercorsoCacheDocumenti; item.CodiceSedeEntratel = dto.CodiceSedeEntratel; // Periodi Riscaldamento item.GiornoInizioRiscaldamento = dto.GiornoInizioRiscaldamento; item.MeseInizioRiscaldamento = dto.MeseInizioRiscaldamento; item.GiornoFineRiscaldamento = dto.GiornoFineRiscaldamento; item.MeseFineRiscaldamento = dto.MeseFineRiscaldamento; // Dati per CBI item.CodiceCUC = dto.CodiceCUC; item.CodiceSIA = dto.CodiceSIA; if (!string.IsNullOrEmpty(dto.CodiceAbiBancaRitenuta) && !string.IsNullOrEmpty(dto.CodiceCabBancaRitenuta)) item.BancaRiferimentoRitenuta = daoFactory.GetAbiCabDao().GetByAbiCab(dto.CodiceAbiBancaRitenuta, dto.CodiceCabBancaRitenuta); // Responsabili if (dto.CodiceAmministratore > 0) item.Amministratore = daoFactory.GetReferenteDao().GetById(dto.CodiceAmministratore, false); if (dto.CodiceResponsabileAssicurazioni > 0) item.ResponsabileAssicurazioni = daoFactory.GetReferenteDao().GetById(dto.CodiceResponsabileAssicurazioni.GetValueOrDefault(), false); if (dto.CodiceResponsabilePremiAssicurativi > 0) item.ResponsabilePremiAssicurativi = daoFactory.GetReferenteDao().GetById(dto.CodiceResponsabilePremiAssicurativi.GetValueOrDefault(), false); // Indirizzo if (dto.IndirizzoSede != null) { if (item.IndirizzoSede == null) item.IndirizzoSede = new Address(); item.IndirizzoSede.Indirizzo = dto.IndirizzoSede.Indirizzo; item.IndirizzoSede.Localita = dto.IndirizzoSede.Localita; item.IndirizzoSede.Presso = dto.IndirizzoSede.Presso; item.IndirizzoSede.Cap = dto.IndirizzoSede.Cap; item.IndirizzoSede.Civico = dto.IndirizzoSede.Civico; if (!string.IsNullOrEmpty(dto.IndirizzoSede.CodiceComune)) item.IndirizzoSede.Comune = daoFactory.GetComuneDao().GetById(dto.IndirizzoSede.CodiceComune, false); } // GeoReferenziazione var geoService = _windsorRepository.GetContainer(item.ID).Resolve<IGeoLocationService>(); var coordinate = geoService.GetLatLong(item.IndirizzoSede.GetGeoLocationAddress()); if (coordinate != null) { item.GeoReferenziazione = new GeoReference { Longitude = coordinate.Value.Longitude, Latitude = coordinate.Value.Latitude, AddedDate = DateTime.Now, AddressUsed = item.IndirizzoSede.GetGeoLocationAddress() }; } // Parametri Messaggistica var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(dto.ID); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(item); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } impostazioni.AutorizzazioneScadenze = dto.AutorizzazioneScadenze; impostazioni.SceltaCondominioEsercizio = dto.SceltaCondominioEsercizio; impostazioni.UtenteServiziMessaggistica = dto.UtenteServiziMessaggistica.Truncate(50); impostazioni.PasswordServiziMessaggistica = dto.PasswordServiziMessaggistica; impostazioni.EmailRapportiniInvio = dto.EmailRapportiniInvio.Truncate(50); impostazioni.ControlloRapportinoMessaggistica = dto.ControlloRapportinoMessaggistica; impostazioni.EmailControlloRapportinoMessaggistica = dto.EmailControlloRapportinoMessaggistica.Truncate(50); impostazioni.NomeFaxHeader = dto.NomeFaxHeader.Truncate(50); impostazioni.NumeroFaxHeader = dto.NumeroFaxHeader.Truncate(50); impostazioni.NomeSmsHeader = dto.NomeSmsHeader.Truncate(16); impostazioni.MittenteEmailAzienda = dto.MittenteEmailAzienda.Truncate(50); impostazioni.DescrizioneAddebitoInteressiRitenuta = dto.DescrizioneAddebitoInteressiRitenuta.Truncate(50); impostazioni.DescrizioneAddebitoSanzioniRitenuta = dto.DescrizioneAddebitoSanzioniRitenuta.Truncate(50); impostazioni.CausaleEmissioneRate = dto.CausaleEmissioneRate.Truncate(85); impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture = dto.UtilizzoEtichettatriceArchiviazioneOtticaFatture; impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti = dto.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti; impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaContratti = dto.UtilizzoEtichettatriceArchiviazioneOtticaContratti; impostazioni.TipoIndirizzoComunicazioni = dto.TipoIndirizzoComunicazioni; impostazioni.EtichettatriceArchiviazioneOttica = dto.EtichettatriceArchiviazioneOttica.Truncate(50); impostazioni.TipoEtichettaArchiviazioneOttica = dto.TipoEtichettaArchiviazioneOttica.Truncate(50); impostazioni.TrayEtichettatriceAttivazioneOttica = dto.TrayEtichettatriceAttivazioneOttica; impostazioni.VisualizzaAutomaticamenteSaldiBancari = dto.VisualizzaAutomaticamenteSaldiBancari; impostazioni.DescrizioneSpeseAutomatica = dto.DescrizioneSpeseAutomatica; impostazioni.CodiceCalcoloTariffaAcqua = dto.CodiceCalcoloTariffaAcqua; impostazioni.AperturaDocumentoArchiviazioneOttica = (TipoAperturaDocumentoArchiviazioneEnum)Enum.Parse(typeof(TipoAperturaDocumentoArchiviazioneEnum), dto.AperturaDocumentoArchiviazioneOttica); impostazioni.AperturaDocumentoPdf = (TipoAperturaDocumentoEnum)Enum.Parse(typeof(TipoAperturaDocumentoEnum), dto.AperturaDocumentoPdf); impostazioni.AperturaDocumentoMessaggistica = (TipoAperturaDocumentoEnum)Enum.Parse(typeof(TipoAperturaDocumentoEnum), dto.AperturaDocumentoMessaggistica); impostazioni.RicaricamentoElencoSpeseDisabilitato = dto.RicaricamentoElencoSpeseDisabilitato; impostazioni.FontNameMessaggistica = dto.FontNameMessaggistica.Truncate(50); impostazioni.FontSizeMessaggistica = dto.FontSizeMessaggistica; impostazioni.TipoVersamentoDopoChiusura = dto.TipoVersamentoDopoChiusura; impostazioni.TipoVersamentoPrimaApertura = dto.TipoVersamentoPrimaApertura; impostazioni.ModalitaConvocazione = dto.ModalitaConvocazione; impostazioni.VersamentoMav = dto.VersamentoMAV; impostazioni.AlertAttivitaAbilitato = dto.AlertAttivitaAbilitato; impostazioni.AlertScadenzaContrattoAbilitato = dto.AlertScadenzaContrattoAbilitato; impostazioni.AlertScadenzaPremioContrattoAbilitato = dto.AlertScadenzaPremioContrattoAbilitato; impostazioni.TemplateDescrizioneUnitaImmobiliare = dto.TemplateDescrizioneUnitaImmobiliare; // Segno Importi impostazioni.InversioneSaldiRate = dto.InversioneSaldiRate; // Pagamento Manuale impostazioni.StampaAutomaticaLetteraPagamentoManuale = dto.StampaLetteraPagamentoManuale; impostazioni.StampaNomeAmministratoreReport = dto.StampaNomeAmministratoreReport; impostazioni.DescrizioneAutomaticaPagamentoManuale = dto.CausalePagamentoManuale; // MAV impostazioni.IntestazioneMAV = dto.IntestazioneMAV.Truncate(30); // Formato nome impostazioni.FormatoNomeConduttore = dto.FormatoNomeConduttore; impostazioni.FormatoNomeProprietario = dto.FormatoNomeProprietario; result = true; } else { // Eccezione: Sul db c'è qualche cosa di più nuovo. _log.Error("Errore nel salvataggio dell'azienda: id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare"); result = false; } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio dell'azienda - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return result; }
private AziendaDTO setDto(Azienda item) { var dto = new AziendaDTO { ID = item.ID, Descrizione = item.Descrizione, Codice = item.Codice, NomeUtente = item.NomeUtente, PercorsoDocumenti = item.PercorsoDocumenti, PercorsoCacheDocumenti = item.PercorsoCacheDocumenti, CodiceFiscale = item.CodiceFiscale, PartitaIva = item.PartitaIva, DefaultCulture = item.DefaultCulture, AffiliatoSinteg = item.AffiliatoSinteg, CodiceSedeEntratel = item.CodiceSedeEntratel, IndirizzoSede = new AddressDTO() }; if (item.SmtpConfig != null) { dto.SmtpServer = item.SmtpConfig.SmtpServer; dto.SmtpUserName = item.SmtpConfig.SmtpUserName; dto.SmtpPassword = item.SmtpConfig.SmtpPassword; dto.SmtpPort = item.SmtpConfig.SmtpPort; dto.UseSsl = item.SmtpConfig.UseSsl; } // Indirizzo if (item.IndirizzoSede != null) { dto.IndirizzoSede = getLocalitaRepository().GetAddressByDomainEntity(item.IndirizzoSede); dto.IndirizzoGeoReferenziato = item.IndirizzoSede.GetGeoLocationAddress(); if (item.IndirizzoSede.Comune != null) dto.StatoEstero = item.IndirizzoSede.Comune.ProvinciaAppartenenza.StatoEstero; } // Dati per CBI dto.CodiceCUC = item.CodiceCUC; dto.CodiceSIA = item.CodiceSIA; if (item.BancaRiferimentoRitenuta != null) { dto.CodiceAbiBancaRitenuta = item.BancaRiferimentoRitenuta.ID.Abi; dto.CodiceCabBancaRitenuta = item.BancaRiferimentoRitenuta.ID.Cab; } // Responsabili if (item.Amministratore != null) { try { dto.CodiceAmministratore = item.Amministratore.ID; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento dell'amministratore - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), item.ID); } } if (item.ResponsabileAssicurazioni != null) { try { dto.CodiceResponsabileAssicurazioni = item.ResponsabileAssicurazioni.ID; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento del responsabile assicurazioni - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), item.ID); } } if (item.ResponsabilePremiAssicurativi != null) { try { dto.CodiceResponsabilePremiAssicurativi = item.ResponsabilePremiAssicurativi.ID; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento del responsabile premi assicurativi - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), item.ID); } } // Periodi Riscaldamento dto.GiornoInizioRiscaldamento = item.GiornoInizioRiscaldamento; dto.MeseInizioRiscaldamento = item.MeseInizioRiscaldamento; dto.GiornoFineRiscaldamento = item.GiornoFineRiscaldamento; dto.MeseFineRiscaldamento = item.MeseFineRiscaldamento; if (item.GeoReferenziazione != null) { dto.Latitude = item.GeoReferenziazione.Latitude; dto.Longitude = item.GeoReferenziazione.Longitude; } var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(item.ID); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(item); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } dto.AutorizzazioneScadenze = impostazioni.AutorizzazioneScadenze; dto.SceltaCondominioEsercizio = impostazioni.SceltaCondominioEsercizio; dto.UtenteServiziMessaggistica = impostazioni.UtenteServiziMessaggistica; dto.PasswordServiziMessaggistica = impostazioni.PasswordServiziMessaggistica; dto.NomeFaxHeader = impostazioni.NomeFaxHeader; dto.NumeroFaxHeader = impostazioni.NumeroFaxHeader; dto.EmailRapportiniInvio = impostazioni.EmailRapportiniInvio; dto.ControlloRapportinoMessaggistica = impostazioni.ControlloRapportinoMessaggistica; dto.EmailControlloRapportinoMessaggistica = impostazioni.EmailControlloRapportinoMessaggistica; dto.NomeSmsHeader = impostazioni.NomeSmsHeader; dto.MittenteEmailAzienda = impostazioni.MittenteEmailAzienda; dto.InversioneSaldiRate = impostazioni.InversioneSaldiRate; dto.StampaLetteraPagamentoManuale = impostazioni.StampaAutomaticaLetteraPagamentoManuale; dto.StampaNomeAmministratoreReport = impostazioni.StampaNomeAmministratoreReport; dto.CausalePagamentoManuale = impostazioni.DescrizioneAutomaticaPagamentoManuale; dto.DescrizioneAddebitoInteressiRitenuta = impostazioni.DescrizioneAddebitoInteressiRitenuta; dto.DescrizioneAddebitoSanzioniRitenuta = impostazioni.DescrizioneAddebitoSanzioniRitenuta; dto.CausaleEmissioneRate = impostazioni.CausaleEmissioneRate; dto.AperturaDocumentoArchiviazioneOttica = impostazioni.AperturaDocumentoArchiviazioneOttica.ToString(); dto.AperturaDocumentoPdf = impostazioni.AperturaDocumentoPdf.ToString(); dto.AperturaDocumentoMessaggistica = impostazioni.AperturaDocumentoMessaggistica.ToString(); dto.RicaricamentoElencoSpeseDisabilitato = impostazioni.RicaricamentoElencoSpeseDisabilitato; dto.UtilizzoEtichettatriceArchiviazioneOtticaFatture = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture; dto.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti; dto.UtilizzoEtichettatriceArchiviazioneOtticaContratti = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaContratti; dto.TipoIndirizzoComunicazioni = impostazioni.TipoIndirizzoComunicazioni; dto.EtichettatriceArchiviazioneOttica = impostazioni.EtichettatriceArchiviazioneOttica; dto.TipoEtichettaArchiviazioneOttica = impostazioni.TipoEtichettaArchiviazioneOttica; dto.TrayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica; dto.VisualizzaAutomaticamenteSaldiBancari = impostazioni.VisualizzaAutomaticamenteSaldiBancari; dto.IntestazioneMAV = impostazioni.IntestazioneMAV; dto.DescrizioneSpeseAutomatica = impostazioni.DescrizioneSpeseAutomatica; dto.CodiceCalcoloTariffaAcqua = impostazioni.CodiceCalcoloTariffaAcqua; dto.FormatoNomeConduttore = impostazioni.FormatoNomeConduttore; dto.FormatoNomeProprietario = impostazioni.FormatoNomeProprietario; dto.FontNameMessaggistica = impostazioni.FontNameMessaggistica; dto.FontSizeMessaggistica = impostazioni.FontSizeMessaggistica; dto.TipoVersamentoDopoChiusura = impostazioni.TipoVersamentoDopoChiusura; dto.TipoVersamentoPrimaApertura = impostazioni.TipoVersamentoPrimaApertura; dto.ModalitaConvocazione = impostazioni.ModalitaConvocazione; dto.VersamentoMAV = impostazioni.VersamentoMav; dto.AlertAttivitaAbilitato = impostazioni.AlertAttivitaAbilitato; dto.AlertScadenzaContrattoAbilitato = impostazioni.AlertScadenzaContrattoAbilitato; dto.AlertScadenzaPremioContrattoAbilitato = impostazioni.AlertScadenzaPremioContrattoAbilitato; dto.TemplateDescrizioneUnitaImmobiliare = impostazioni.TemplateDescrizioneUnitaImmobiliare; dto.Version = item.Version; return dto; }
public string GetTipoEtichettaArchiviazioneOttica(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)) { AperturaDocumentoPdf = TipoAperturaDocumentoEnum.DefaultViewer }; daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.TipoEtichettaArchiviazioneOttica; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del tipo di etichette attivo della etichettatrice corrente - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public string GetCodiceCalcoloTariffaAcqua(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.CodiceCalcoloTariffaAcqua; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del codice calcolo tariffa acqua - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public FontDTO GetDefaultFont(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return new FontDTO { FontName = impostazioni.FontNameMessaggistica, FontSize = impostazioni.FontSizeMessaggistica }; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del font di default per messaggistica - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public TipoVersamentoPrimaAperturaEnum? GetRichiestoMovimentoVersamentoCondominoPrecedenteApertura(int idAzienda) { try { var daoFactory = _windsorRepository.GetContainer(_info.Azienda).Resolve<IDaoFactory>(); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.TipoVersamentoPrimaApertura; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del flag per richiesta di movimenti per versamento condomino precedenti alla apertura - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public TipoModalitaConvocazione GetTipoModalitaConvocazione(int idAzienda) { try { var daoFactory = _windsorRepository.GetContainer(_info.Azienda).Resolve<IDaoFactory>(); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.ModalitaConvocazione.GetValueOrDefault(); } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del flag per tipo modalità convocazione - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public string GetIntestazioneMAVAzienda(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.IntestazioneMAV; } catch (Exception ex) { _log.ErrorFormat("Errore nella descrizione della intestazione azienda per l'emissione dei MAV - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
private void setIndirizzo(RiepilogoRataSoggettoDTO dto, Persona persona, ImpostazioniAzienda impostazioni) { // ================================================================== // Indirizzo // ================================================================== dto.Indirizzo = new AddressComunicazioneDTO { RecapitoResidenza = impostazioni.TipoIndirizzoComunicazioni }; if (persona.IndirizzoResidenza != null) { dto.Indirizzo.CapResidenza = persona.IndirizzoResidenza.Cap; dto.Indirizzo.LocalitaResidenza = persona.IndirizzoResidenza.Localita; // Località per ora viene stampata com campo singolo // personaDto.Indirizzo.ComuneResidenza = soggetto.Persona.IndirizzoResidenza.Localita; if (persona.IndirizzoResidenza.Comune != null) { if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneResidenza)) dto.Indirizzo.ComuneResidenza += " - "; dto.Indirizzo.ComuneResidenza += persona.IndirizzoResidenza.Comune.Descrizione + " " + persona.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice; } dto.Indirizzo.ViaCivicoResidenza = persona.IndirizzoResidenza.Indirizzo + " " + persona.IndirizzoResidenza.Civico; if (!string.IsNullOrEmpty(persona.IndirizzoResidenza.Presso)) dto.Indirizzo.ViaCivicoResidenza += " - c/o:" + persona.IndirizzoResidenza.Presso; } if (persona.Recapito != null) { dto.Indirizzo.CapRecapito = persona.Recapito.Cap; dto.Indirizzo.LocalitaRecapito = persona.Recapito.Localita; // Località per ora viene stampata com campo singolo // personaDto.Indirizzo.ComuneRecapito = soggetto.Persona.Recapito.Localita; if (persona.Recapito.Comune != null) { if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneRecapito)) dto.Indirizzo.ComuneRecapito += " - "; dto.Indirizzo.ComuneRecapito += persona.Recapito.Comune.Descrizione + " " + persona.Recapito.Comune.ProvinciaAppartenenza.Codice; } dto.Indirizzo.ViaCivicoRecapito = persona.Recapito.Indirizzo + " " + persona.Recapito.Civico; if (!string.IsNullOrEmpty(persona.Recapito.Presso)) dto.Indirizzo.ViaCivicoRecapito += " - c/o:" + persona.Recapito.Presso; } else { dto.Indirizzo.ViaCivicoRecapito = dto.Indirizzo.ViaCivicoResidenza; dto.Indirizzo.CapRecapito = dto.Indirizzo.CapResidenza; dto.Indirizzo.ComuneRecapito = dto.Indirizzo.ComuneResidenza; } dto.ViaCivico = dto.Indirizzo.ViaCivicoRecapito; dto.Cap = dto.Indirizzo.CapRecapito; dto.Comune = dto.Indirizzo.ComuneRecapito; dto.Localita = dto.Indirizzo.LocalitaRecapito; // ================================================================== }
public bool GetVisualizzazioneAutomaticaSaldiBancari(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.VisualizzaAutomaticamenteSaldiBancari; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del flag per la visualizzazione automatica dei saldi bancari - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
private RiepilogoRataSoggettoDTO getItemTemplate(SoggettoCondominio soggetto, ImpostazioniAzienda impostazioni, DateTime data) { var riepilogo = new RiepilogoRataSoggettoDTO { ID = soggetto.ID, TipoSoggettoCondominio = soggetto.Tipo, DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione, IdPersona = soggetto.Persona.ID, IdSoggettoCondominio = soggetto.ID, IdUnitaImmobiliare = soggetto.UnitaImmobiliare.ID, IdStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID, IdGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID, Stabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione, GruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione, Nominativo = soggetto.DisplayName, Ordine = soggetto.UnitaImmobiliare.Ordine.GetValueOrDefault(), Interno = soggetto.UnitaImmobiliare.InternoCompleto, Piano = soggetto.UnitaImmobiliare.Piano, IdCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID, DescrizioneCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName, SelectColumn = true }; var contatti = new ContattoCollection(soggetto.Persona.Contatti); var contattoEmail = contatti.GetFirstContatto<Email>(); if (contattoEmail != null) riepilogo.Email = contattoEmail.Valore; var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>(); if (contattoEmailCertificato != null) riepilogo.EmailCertificata = contattoEmailCertificato.Valore; var contattoCellulare = contatti.GetFirstContatto<Cellulare>(); if (contattoCellulare != null) riepilogo.Cellulare = contattoCellulare.Valore; var contattoFax = contatti.GetFirstContatto<Fax>(); if (contattoFax != null) riepilogo.Fax = contattoFax.Valore; setIndirizzo(riepilogo, soggetto.Persona, impostazioni); return riepilogo; }
public bool GetDescrizioneAutomaticaPagamentoManuale(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.DescrizioneAutomaticaPagamentoManuale; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del flag di descrizione automatica nel pagamento manuale - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public IEnumerable<PersonaContattoDTO> SetContattoDto(Persona item, TipoNominativo? tipoNominativo, DateTime? dataRiferimento, TipoIndirizzo? tipoIndirizzo, ImpostazioniAzienda impostazioniAzienda) { try { var listaDto = new List<PersonaContattoDTO>(); var mainDTO = new PersonaContattoDTO { ID = item.ID, Azienda = item.AziendaID.GetValueOrDefault(), Iban = item.Iban, CodiceFiscale = item.CodiceFiscale, Cognome = item.Cognome, DataNascita = item.DataNascita, DisplayName = item.DisplayName, Nome = item.Nome, Note = item.Note, PartitaIva = item.PartitaIva, RagioneSociale = item.RagioneSociale, Sesso = item.Sesso, TipoPersona = item.TipoPersona, Titolo = item.Titolo, IsDeleteAllow = false, Username = item.DatiAutenticazione?.Username, Password = item.DatiAutenticazione?.Password, Barcode = item.GetBarcode(), Version = item.Version }; if (string.IsNullOrEmpty(mainDTO.Cognome) && string.IsNullOrEmpty(mainDTO.Nome)) mainDTO.Cognome = mainDTO.RagioneSociale; var gruppi = string.Empty; foreach (var personaGruppo in item.Gruppi) { if (!string.IsNullOrEmpty(gruppi)) gruppi += ", "; gruppi += personaGruppo.Gruppo.DescrizioneBreve; } mainDTO.Gruppi = gruppi; if (item.ComuneNascita != null) { try { mainDTO.ComuneNascita = item.ComuneNascita.Descrizione; } catch (Exception ex) { _log.WarnFormat("Errore nel caricamento delle persone - COMUNE NASCITA - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID); } } // Indirizzi setIndirizzo(mainDTO, item, tipoIndirizzo, impostazioniAzienda); //if ((tipoIndirizzo == TipoIndirizzo.Residenza && item.IndirizzoResidenza != null) || (tipoIndirizzo == TipoIndirizzo.Recapito && item.Recapito == null)) //{ // var indirizzo = _locRep.GetAddressByDomainEntity(item.IndirizzoResidenza); // mainDTO.Indirizzo = indirizzo.DisplayName; // mainDTO.Comune = indirizzo.DescrizioneComune + " " + indirizzo.CodiceProvincia; // mainDTO.Localita = indirizzo.Localita; // mainDTO.Cap = indirizzo.Cap; // mainDTO.Presso = indirizzo.Presso; //} //else if (item.Recapito != null) //{ // var recapito = _locRep.GetAddressByDomainEntity(item.Recapito); // mainDTO.Recapito = recapito.DisplayName; // mainDTO.Indirizzo = recapito.DisplayName; // mainDTO.Comune = recapito.DescrizioneComune + " " + recapito.CodiceProvincia; // mainDTO.Localita = recapito.Localita; // mainDTO.Cap = recapito.Cap; // mainDTO.Presso = recapito.Presso; //} // Contatti var contatti = new ContattoCollection(item.Contatti); var tel = contatti.GetFirstContatto<Telefono>(); if (tel != null) { mainDTO.Telefono = tel.Valore; if(!string.IsNullOrEmpty(tel.Descrizione)) mainDTO.Telefono += " (" + tel.Descrizione + ")"; } var cell = contatti.GetFirstContatto<Cellulare>(); if (cell != null) { mainDTO.Cellulare = cell.Valore; if (!string.IsNullOrEmpty(cell.Descrizione)) mainDTO.Cellulare += " (" + cell.Descrizione + ")"; } var mail = contatti.GetFirstContatto<Email>(); if (mail != null) { mainDTO.Email = mail.Valore; if (!string.IsNullOrEmpty(mail.Descrizione)) mainDTO.Email += " (" + mail.Descrizione + ")"; } var mailCertificata = contatti.GetFirstContatto<EmailCertificata>(); if (mailCertificata != null) { mainDTO.EmailCertificata = mailCertificata.Valore; if (!string.IsNullOrEmpty(mailCertificata.Descrizione)) mainDTO.EmailCertificata += " (" + mailCertificata.Descrizione + ")"; } var fax = contatti.GetFirstContatto<Fax>(); if (fax != null) { mainDTO.Fax = fax.Valore; if (!string.IsNullOrEmpty(fax.Descrizione)) mainDTO.Fax += " (" + fax.Descrizione + ")"; } // Dati condominio if (item.SoggettiCondominio.Count > 0) { SoggettoCondominio soggetto = null; if(item.SoggettiCondominio.Count(soggettoItem => soggettoItem.DataFine == null) == 1) soggetto = item.SoggettiCondominio.Where(soggettoItem => soggettoItem.DataFine == null).OrderBy(pers => pers.Tipo).FirstOrDefault(); if(soggetto == null) soggetto = item.SoggettiCondominio.OrderBy(soggettoItem => soggettoItem.Tipo).ThenByDescending(soggettoItem => soggettoItem.DataFine).ThenByDescending(soggettoItem => soggettoItem.DataInizio).ThenBy(soggettoItem => soggettoItem.UnitaImmobiliare.Ordine.GetValueOrDefault()).FirstOrDefault(); if(soggetto != null) { if (soggetto.UnitaImmobiliare != null) { if (tipoNominativo.GetValueOrDefault() != TipoNominativo.CondominoAttivo || dataRiferimento == null || soggetto.DataFine == null || soggetto.DataFine.GetValueOrDefault() > dataRiferimento.GetValueOrDefault()) { var dto = mainDTO.Clone() as PersonaContattoDTO; if (dto != null) { dto.IdUnitaImmobiliare = soggetto.UnitaImmobiliare.ID; dto.IdSoggetto = soggetto.ID; dto.DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione; dto.OrdineUnitaImmobiliare = soggetto.UnitaImmobiliare.Ordine.GetValueOrDefault(); dto.Interno = soggetto.UnitaImmobiliare.InternoCompleto; dto.TipoCondomino = soggetto.Tipo.ToString(); dto.TipoSoggetto = TipoNominativo.Condomino; dto.DescrizioneSoggetto = soggetto.DescrizioneAggiuntiva; dto.IsResidente = soggetto.IsResidente; dto.IsConsigliere = soggetto.Consigliere; dto.SoggettoAccorpamento = soggetto.GetDescrizioneAccorpamento(); dto.ModalitaConvocazione = soggetto.ModalitaConvocazione; dto.FoglioCatastale = soggetto.UnitaImmobiliare.FoglioCatastale; dto.Mappale = soggetto.UnitaImmobiliare.Mappale; dto.Subalterno = soggetto.UnitaImmobiliare.Subalterno; if(soggetto.FrazionePossesso != null) dto.Possesso = soggetto.FrazionePossesso.ToString(); if (soggetto.UnitaImmobiliare.GruppoStabileRiferimento != null) { dto.IdGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID; dto.DescrizioneGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione; dto.IdStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID; dto.DescrizioneStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione; dto.IdCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID; dto.DescrizioneCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName; } listaDto.Add(dto); } } } else { _log.WarnFormat("Attenzione presente soggetto condominio senza unità immobiliare - {0} - soggetto:{1} - persona:{2}", Utility.GetMethodDescription(), soggetto.ID, item.ID); } } } // Dati Fornitore if (item.Fornitori.Count > 0) { foreach (var fornitore in item.Fornitori) { var dto = mainDTO.Clone() as PersonaContattoDTO; if (dto != null) { dto.IdFornitore = fornitore.ID; dto.TipoFornitore = fornitore.Tipo?.Descrizione; dto.TipoSoggetto = TipoNominativo.Fornitore; listaDto.Add(dto); } } } // Dati Referente if (item.Referenti.Count > 0) { foreach (var dto in item.Referenti.Select(referente => mainDTO.Clone()).OfType<PersonaContattoDTO>()) { dto.TipoSoggetto = TipoNominativo.Referente; listaDto.Add(dto); } } if (listaDto.Count == 0 && tipoNominativo.GetValueOrDefault() != TipoNominativo.CondominoAttivo) { if (item.Attivita.Count == 0) mainDTO.IsDeleteAllow = true; mainDTO.TipoSoggetto = TipoNominativo.Contatto; listaDto.Add(mainDTO); } return listaDto; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento delle persone - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID); throw; } }
public TipoAperturaDocumentoEnum GetAperturaDocumentoMessaggistica(int idAzienda) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)) { AperturaDocumentoMessaggistica = TipoAperturaDocumentoEnum.DefaultViewer }; daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } return impostazioni.AperturaDocumentoMessaggistica != TipoAperturaDocumentoEnum.Undefined ? impostazioni.AperturaDocumentoMessaggistica : TipoAperturaDocumentoEnum.DefaultViewer; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del tipo di apertura del documento messaggistica - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda); throw; } }
public SpesaInfoDTO Salva(SpesaDTO spesaDto, IDictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> listaRipartizione, bool isMultiIva) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var movimentoContabileService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMovimentiContabiliService>(); var ripartizioneSpeseService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IRipartizioneSpeseService>(); var protocolloService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IProtocolloService>(); var ripartizioneSpesa = new RipartizioneSpeseRepository(_info, _windsorRepository); // ------------------------------------------------------------ // Verifico se il fornitore è presente // ------------------------------------------------------------ var fornitore = daoFactory.GetFornitoreDao().Find(spesaDto.IdFornitore.GetValueOrDefault(), false); if (fornitore == null) { return new SpesaInfoDTO { Id = 0, IdentificativoArchiviazione = null, NumeroProtocollo = 0, StampaEtichettaArchiviazione = false, Message = "Il fornitore non è più presente in archivio." }; } // ------------------------------------------------------------ // Prima di ogni modifica recupero i movimenti secondari // ------------------------------------------------------------ IList<MovimentoContabile> movimentiSecondari = null; if (spesaDto.ID > 0) { var spesa = daoFactory.GetSpesaDao().Find(spesaDto.ID, false); if(spesa != null) movimentiSecondari = ripartizioneSpeseService.GetMovimentiSecondari(spesa); } // ------------------------------------------------------------ // Creo la ripartizione per ogni movimento // ------------------------------------------------------------ foreach (var dettaglioDto in spesaDto.Dettagli) { RipartizioneSpeseDTO ripartizione = null; var dettaglio = ripartizioneSpesa.GetDettaglioDto(listaRipartizione, dettaglioDto.NumeroRiga.GetValueOrDefault()); if (dettaglio != null) { if (listaRipartizione.ContainsKey(dettaglio)) ripartizione = listaRipartizione[dettaglio]; } if (ripartizione == null || ripartizione.UnitaImmobiliari == null) { var oldRipartizione = ripartizione; ripartizione = new RipartizioneSpeseDTO(); if(oldRipartizione != null) { ripartizione.Descrizione = oldRipartizione.Descrizione; ripartizione.DescrizioneVoceSpesa = oldRipartizione.DescrizioneVoceSpesa; ripartizione.NomeModello = oldRipartizione.NomeModello; } } foreach (var movimentoDto in dettaglioDto.Movimenti) { if (movimentoDto.ID > 0) { var movimento = daoFactory.GetMovimentoContabileDao().Find(movimentoDto.ID, false); if (movimento?.MovimentoStorno != null) { try { movimentoDto.IdMovimentoStorno = movimento.MovimentoStorno.ID; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura dell'id del movimento di storno - {0} - spesa:{1} - movimento:{2}", ex, Utility.GetMethodDescription(), spesaDto.ID, movimento.ID); } finally { movimento.MovimentoStorno = null; } } } movimentoDto.ID = 0; if(dettaglioDto.IdModelloRipartizione == null) ripartizioneSpesa.GetRipartizioneByMovimento(movimentoDto, spesaDto.IdEsercizio.GetValueOrDefault(), ripartizione); } } // -------------------------------- // Aggiungo le ripartizioni tra le diverse unità immobiliari // -------------------------------- ripartizioneSpesa.AddMovimentiRipartizione(listaRipartizione, spesaDto); // -------------------------------- // Salvataggio della spesa // -------------------------------- if(spesaDto.StatoSpesa == StatoSpesaEnum.Undefined) spesaDto.StatoSpesa = StatoSpesaEnum.Inserita; var resultSpesa = ManageDomainEntity(spesaDto, isMultiIva); if (resultSpesa.Spesa != null) { var spesa = resultSpesa.Spesa; // ripartizione di default // TODO: Dato che la ripartizione ora viene ricalcolata quando serve (stampa riparto bilancio ecc....) // probabilmente NON è più necessaria la chiamata a questo metodo //ripartizioneSpesa.AddDefaultRipartizione(listaRipartizione, spesa); // -------------------------------- // Movimenti contabili secondari // -------------------------------- // Eliminazione della vecchia testata if (spesaDto.IdTestata > 0) { var testata = daoFactory.GetTestataMovimentoContabileDao().Find(spesaDto.IdTestata, false); // bugid#4168 if(testata != null) deleteTestata(testata, daoFactory); } // Creazione dei nuovi movimenti contabili movimentoContabileService.SetMovimentiInserimentoSpesa(spesa, null, spesaDto.DataRegistrazione); // -------------------------------- // Modello registrazione contabile // -------------------------------- if (listaRipartizione.Count > 0) { foreach (var dettaglio in spesa.Dettagli) { var kvpRipartizione = getDettaglioDto(listaRipartizione, dettaglio.NumeroRiga.GetValueOrDefault()); if (kvpRipartizione != null) { var listaMovimenti = new List<MovimentoContabileDTO>(kvpRipartizione.GetValueOrDefault().Key.Movimenti.Length); listaMovimenti.AddRange(kvpRipartizione.GetValueOrDefault().Key.Movimenti); var modello = ripartizioneSpesa.SalvaModelloRipartizioneContabile(kvpRipartizione.GetValueOrDefault().Value, dettaglio, listaMovimenti, dettaglio.ImportoLordo.GetValueOrDefault()); if (modello != null) { if (kvpRipartizione.GetValueOrDefault().Value.AssociatoFornitore) { var modelloContabileFornitore = new ModelloContabileFornitore(spesa.FornitoreRiferimento, modello, null); daoFactory.GetModelloContabileFornitoreDao().SaveOrUpdate(modelloContabileFornitore); } dettaglio.ModelloRipartizione = modello; } } } } // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- // Aggiorno eventuali movimenti secondari collegati. // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- if (movimentiSecondari != null) ripartizioneSpeseService.UpdateMovimentiSecondari(spesa, movimentiSecondari); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- // Aggiorno i documenti // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- if (spesaDto.IdDocumenti.Count > 0) { foreach (var idDoc in spesaDto.IdDocumenti) { var documento = daoFactory.GetDocumentoDao().Find(idDoc, false); if(documento != null) documento.SpesaRiferimento = spesa; } } // ====================================================================================== // Registro gli eventuali pagamenti immediati // ====================================================================================== var pagamentoService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPagamentoService>(); pagamentoService.CreatePagamentiImmediati(spesa.ID, spesaDto.Scadenze, null); // ====================================================================================== // Recupero il numero di protocollo e l'identificativo di archiviazione // ====================================================================================== if (spesa.NumeroProtocollo == null) { var progressivo = protocolloService.GetProgressivo(TipoProtocollo.Fattura, spesa.EsercizioRiferimento.DataApertura.GetValueOrDefault().Year, spesa.EsercizioRiferimento.CondominioRiferimento); if (progressivo.Progressivo != null) { spesa.NumeroProtocollo = progressivo.Progressivo; spesa.AnnoArchiviazioneOttica = spesa.EsercizioRiferimento.DataApertura.GetValueOrDefault().Year; } else return new SpesaInfoDTO { Id = 0, IdentificativoArchiviazione = null, NumeroProtocollo = 0, StampaEtichettaArchiviazione = false, Message = progressivo.Message }; } var identificativoArchiviazione = getArchiviazioneOtticaService().GetIdentificativoArchiviazione(spesa); var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(spesa.EsercizioRiferimento.CondominioRiferimento.Azienda.ID); if (impostazioni == null) { impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(spesa.EsercizioRiferimento.CondominioRiferimento.Azienda.ID, false)); daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni); } var stampaEtichetta = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture && spesa.IsAbilitataArchiviazioneOttica && spesaDto.ID == 0; var etichettatrice = impostazioni.EtichettatriceArchiviazioneOttica; var tipoEtichetta = impostazioni.TipoEtichettaArchiviazioneOttica; var trayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica; // ====================================================================================== // Aggiorno eventuali movimenti per interessi e sanzioni pagati in ritardo // ====================================================================================== movimentoContabileService.SetMovimentiInteressiSanzioni(spesa); return new SpesaInfoDTO { Id = spesa.ID, NumeroProtocollo = spesa.NumeroProtocollo.GetValueOrDefault(), IdentificativoArchiviazione = identificativoArchiviazione, StampaEtichettaArchiviazione = stampaEtichetta, EtichettatriceArchiviazione = etichettatrice, TipoEtichettaArchiviazione = tipoEtichetta, TrayEtichettatriceAttivazioneOttica = trayEtichettatriceAttivazioneOttica }; } return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, EtichettatriceArchiviazione = string.Empty, TipoEtichettaArchiviazione = "Testo", Message = resultSpesa.Message }; } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio della spesa - {0} - numeroDocumento:{1} - dataDocumento:{2} - dataRegistrazione:{3}", ex, Utility.GetMethodDescription(), spesaDto.NumeroDocumento, spesaDto.DataDocumento, spesaDto.DataRegistrazione); throw; } }
// ======================================================================================================================= // Azienda Mittente --> Condominio // Banca Assuntrice --> Banca del Condominio che deve ricevere i pagamenti e a cui devovo essere inviare le disposizioni // Destinatario --> Banca del Fornitore (beneficiario) // ======================================================================================================================= public byte[] EmissioneMav(EmissioneRate testataEmissione, DatiBancariCondomini banca, string intestazioneAzienda) { _testata = testataEmissione; byte[] bytes = null; StreamWriter sw = null; try { _impostazioniAzienda = _daoFactory.GetImpostazioniAziendaDao().GetByAzienda(testataEmissione.Esercizio.CondominioRiferimento.Azienda.ID) ?? new ImpostazioniAzienda(testataEmissione.Esercizio.CondominioRiferimento.Azienda) { TipoIndirizzoComunicazioni = TipoIndirizzo.Residenza}; if(_impostazioniAzienda == null) _log.ErrorFormat("Non sono definite le impostazioni dell'azienda - {0} - azienda:{1}", Utility.GetMethodDescription(), testataEmissione.Esercizio.CondominioRiferimento.Azienda.ID); var fileName = Path.GetTempPath() + "\\" + Guid.NewGuid(); if (ApplicationDeployment.IsNetworkDeployed) fileName = ApplicationDeployment.CurrentDeployment.DataDirectory + "\\" + Guid.NewGuid(); if (File.Exists(fileName)) File.Delete(fileName); // ============================================================================================= // Creo il file // ============================================================================================= using (sw = File.CreateText(fileName)) { // Creo le riga di testa writeTestataIM(testataEmissione.Esercizio, banca, sw); decimal importoTotale = 0; var numeroRighe = 1; var numeroDisposizione = 0; foreach (var rata in testataEmissione.Rate) { try { var rataPrincipale = rata.RateCollegate.FirstOrDefault(item => item.Soggetto.SoggettoPrincipale == null); if (rataPrincipale == null) { rataPrincipale = rata.RateCollegate.FirstOrDefault(); _log.WarnFormat("Non trovata nessun rata principale - {0} - rata:{1}", Utility.GetMethodDescription(), rata.ID); } importoTotale += rata.RateCollegate.Sum(rt => rt.Importo); numeroDisposizione++; numeroRighe++; writeMovimento14(rata, banca, sw, numeroDisposizione); numeroRighe++; writeMovimento16(rataPrincipale, banca, sw, numeroDisposizione); numeroRighe++; writeMovimento20(rataPrincipale, sw, numeroDisposizione, intestazioneAzienda); numeroRighe++; writeMovimento30(rataPrincipale, sw, numeroDisposizione); numeroRighe++; writeMovimento40(rataPrincipale, sw, numeroDisposizione); numeroRighe++; writeMovimento50(rataPrincipale, testataEmissione, sw, numeroDisposizione); numeroRighe++; writeMovimento51(rata, sw, numeroDisposizione); numeroRighe++; writeMovimento70(sw, numeroDisposizione); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la elaborazione di una singola riga per la creazione del file CBI dei MAV - {0} - rata:{1}", ex, Utility.GetMethodDescription(), rata.ID); throw; } } numeroRighe++; writeCodaEF(testataEmissione.Esercizio, banca, sw, numeroDisposizione, importoTotale, numeroRighe); } _notifier.Notify("Il file dei MAV è stato correttamente creato."); var infile = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); bytes = new byte[infile.Length]; infile.Read(bytes, 0, bytes.Length); testataEmissione.File = Conversione.ToString(bytes); return bytes; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la creazione del file CBI dei MAV - {0}", ex, Utility.GetMethodDescription()); _notifier.Notify("Si sono verificati problemi inaspettati durante la creazione del file CBI dei MAV." + Environment.NewLine + "Controllare il log per ulteriori dettagli."); return bytes; } finally { if (sw != null) { sw.Close(); sw.Dispose(); } } }