Esempio n. 1
0
        private Conto loadContoSottoconto(DataRow row, Condominio condominio, Conto conto, DataTable sottoconti, Dictionary<int, Conto> loadedConti)
        {
            if (conto == null) throw new ArgumentNullException("conto");
            if (row["DESCR1"] != DBNull.Value)
            {
                var nomeConto = ((string)row["DESCR1"]).Trim();
                if (nomeConto.Length > 50)
                    nomeConto = nomeConto.Substring(0, 50);
                conto = new Conto(condominio, Sfera.Enums.TipoContoEconomicoEnum.Economico, Sfera.Enums.TipoPeriodoCompetenzaContabile.Esercizio, nomeConto, true, true, false)
                            {PresenteBilancio = true, Ordine = Convert.ToInt32(row["COLONNA"])};

                conto.Codice = conto.Ordine.ToString().PadLeft(3, '0');
                conto.CodiceImportazione = row["CODITTA"] + "&" + row["CODSTAB"] + "&" + row["COLONNA"];

                var contoKey = Convert.ToInt32(row["CODSTAB"]) * 1000 + conto.Ordine;
                if (!loadedConti.ContainsKey(contoKey))
                    loadedConti.Add(contoKey, conto);

                // Sottoconti
                var sottocontiRows = sottoconti.Select("CODPREDEF = " + row["COLONNA"], "PROGR");
                ModelloRegistrazioneContabile modelloContabile = null;
                foreach (var rowSottoconto in sottocontiRows)
                {
                    var descrizioneSottoconto = string.Empty;
                    if (rowSottoconto["DESCR"] != DBNull.Value)
                        descrizioneSottoconto = rowSottoconto["DESCR"].ToString();
                    if (string.IsNullOrEmpty(descrizioneSottoconto) && rowSottoconto["TITOLO"] != DBNull.Value)
                        descrizioneSottoconto = rowSottoconto["TITOLO"].ToString();

                    if (!string.IsNullOrEmpty(descrizioneSottoconto))
                    {
                        var sottoconto = new SottoConto(conto, descrizioneSottoconto)
                        {
                            Codice = conto.Codice + "." + rowSottoconto["PROGR"].ToString().PadLeft(3, '0'),
                            CodiceImportazione =
                                rowSottoconto["CODITTA"] + "&" +
                                rowSottoconto["CODSTAB"] + "&" +
                                rowSottoconto["CODPREDEF"] + "&" +
                                rowSottoconto["PROGR"]
                        };

                        // Modelli
                        if (Convert.ToDecimal(rowSottoconto["PERCENT"]) < 100)
                        {
                            // Se ho già raggiunto il 100% il modello è completo
                            if (modelloContabile != null && modelloContabile.Conti.Sum(item => item.PercentualeRipartizione.GetValueOrDefault()) >= 1)
                                modelloContabile = null;

                            if (modelloContabile == null)
                                modelloContabile = new ModelloRegistrazioneContabile(condominio, sottoconto.GetDescrizione(null, condominio, null), null);
                            else
                                modelloContabile.Descrizione += " - " + sottoconto.GetDescrizione(null, condominio, null);

                            if (modelloContabile.Descrizione.Length > 100)
                                modelloContabile.Descrizione = modelloContabile.Descrizione.Substring(0, 100);

                            new ContiModelloRegistrazioneContabile(modelloContabile, conto, sottoconto, Convert.ToDecimal(rowSottoconto["PERCENT"]) / 100, null);
                        }
                        //else
                        //    modelloContabile = null;
                    }
                }

                return conto;
            }
            return null;
        }
Esempio n. 2
0
        private SottoContoDTO setSottoContoDto(SottoConto sottoConto, bool gestione)
        {
            var dto = new SottoContoDTO
            {
                IdContoRiferimento = sottoConto.ContoRiferimento.ID,
                DescrizioneContoRiferimento = sottoConto.ContoRiferimento.Descrizione,
                ID = sottoConto.ID,
                IsDeleteAllow = true,
                Codice = sottoConto.Codice,
                PercentualeProprieta = sottoConto.PercentualeProprieta,
                AddebitoCompetenze = sottoConto.AddebitoCompetenze,
                IsInteressiSanzioni = sottoConto.IsInteressiSanzioni,
                DettaglioMovimentiContabili = sottoConto.DettaglioMovimentiContabili,
                DisplayName = $"{sottoConto.ContoRiferimento.Codice} - {sottoConto.ContoRiferimento.Descrizione} - {sottoConto.GetDescrizione(null, sottoConto.ContoRiferimento.CondominioRiferimento, null)}",
                DescrizioneCompleta = $"{sottoConto.Codice} - {sottoConto.Descrizione}",
                Version = sottoConto.Version,
                Descrizione = gestione ? sottoConto.Descrizione : sottoConto.GetDescrizione(null, sottoConto.ContoRiferimento.CondominioRiferimento, null)
            };

            return dto;
        }