public virtual IUpdatableBusinessEntity Copy()
        {
            RipartoConsuntivoSoggettoCondominio riparto = new RipartoConsuntivoSoggettoCondominio(Soggetto, Esercizio, Conto, Importo);

            return riparto;
        }
Example #2
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }