public virtual IUpdatableBusinessEntity Copy() { RipartoConsuntivoSoggettoCondominio riparto = new RipartoConsuntivoSoggettoCondominio(Soggetto, Esercizio, Conto, Importo); return riparto; }
public void SalvaRiparto(int idEsercizio, byte[] bytes, IList<ReportRipartizioneBilancioDTO> riparto, TipoRendiconto tipo) { if (riparto.Count > 0) { var esercizio = _daoFactory.GetEsercizioDao().GetById(idEsercizio, false); // Elenco rendiconti var rendiconto = riparto[0].IdRendiconto > 0 ? _daoFactory.GetRendicontoAnnualeDao().GetById(riparto[0].IdRendiconto, false) : new RendicontoAnnuale(esercizio, "Riparto", tipo) { Stato = StatoRendicontoEnum.Salvato }; var fileName = "Riparto " + tipo + " - " + esercizio.DataApertura.GetValueOrDefault().Year + ".pdf"; var documentMessage = _documentService.SaveDocument(bytes, fileName, ".pdf", null, esercizio.CondominioRiferimento.Azienda.ID); if (documentMessage.Documento != null) { var checksum = documentMessage.Documento.Checksum; rendiconto.Documento = new Documento(checksum, fileName, ".pdf", "Riparto", false, esercizio.CondominioRiferimento.Azienda); _daoFactory.GetDocumentoDao().SaveOrUpdate(rendiconto.Documento); _daoFactory.GetRendicontoAnnualeDao().SaveOrUpdate(rendiconto); // Salvataggio riparto if (tipo == TipoRendiconto.Consuntivo) { foreach (var item in riparto) { // Se IdConto non è valorizzato trattasi solo di righe riepilogative necessarie solo per la stampa. // TODO: Per migliorare le performance escluderle direttamente sul client. if (item.IdConto > 0 && item.IdPartecipante > 0) { var soggetto = _daoFactory.GetSoggettoCondominioDao().Find(item.IdPartecipante, false); if (soggetto != null && item.Importo != null) { var conto = _daoFactory.GetContoDao().GetById(item.IdConto, false); var itemRipartoConsuntivo = new RipartoConsuntivoSoggettoCondominio(soggetto, esercizio, conto, item.Importo) { Rendiconto = rendiconto }; _daoFactory.GetRipartoConsuntivoSoggettoCondominioDao().SaveOrUpdate(itemRipartoConsuntivo); } } } } } } }