public DettaglioModelloContabileUI(ModelloListaRegistrazioneContabileDTO modello, CondominioDTO condominio, EsercizioDTO esercizio)
        {
            IsConfirmed = false;
            InitializeComponent();

            _modello = modello;
            _condominio = condominio;
            _esercizio = esercizio;

            LoadData(_modello);
        }
        public DettaglioModelloContabileUC(ModelloListaRegistrazioneContabileDTO modello, CondominioDTO condominio, EsercizioDTO esercizio)
        {
            InitializeComponent();

            if (!DesignMode)
            {
                inizializza();

                _modello = modello;
                _condominio = condominio;
                _esercizio = esercizio;
            }
        }
        public DettaglioModelloContabileUI(CondominioDTO condominio, EsercizioDTO esercizio) : base(false)
        {
            IsConfirmed = false;
            InitializeComponent();

            _condominio = condominio;
            _esercizio = esercizio;

            _modello = getModelloService().New(_condominio);

            LoadData(_modello);

            //base.SetEditing(true);
        }
        public void LoadData(ModelloListaRegistrazioneContabileDTO modello)
        {
            BusinessClass = new[] { (BaseDTOOfint)modello };
            Text += @" Id: " + _modello.ID.ToString() + @" - " + _modello.Descrizione;

            _modello = modello;

            //ReadOnly = !_fatturaService.IsAllowUpdate(_spesa);
            ultraToolbarsManagerStandard.Tools["Cancella"].SharedProps.Enabled = !ReadOnly;

            _dettaglioModello = new DettaglioModelloContabileUC(modello, _condominio, _esercizio);

            splitContainer1.Panel1.Controls.Add(_dettaglioModello);
            _dettaglioModello.Dock = DockStyle.Fill;
        }
Beispiel #5
0
        private void ricercaModelliPreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            try
            {
                if (ricercaModelli != null && ricercaModelli.ActiveRow != null && ricercaModelli.ActiveRow.IsDataRow)
                {
                    var dto = ricercaModelli.ActiveRow.ListObject as ModelloListaRegistrazioneContabileDTO;
                    if (dto != null)
                    {
                        if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab)
                        {
                            if (e.KeyCode == Keys.Tab)
                            {
                                // Se la riga attiva è fuori dal filtro pongo come riga attiva la prima del filtro
                                if (ricercaModelli.ActiveRow.IsFilteredOut)
                                {
                                    foreach (var row in ricercaModelli.Rows)
                                    {
                                        if (!row.IsFilteredOut)
                                        {
                                            ricercaModelli.ActiveRow = row;
                                            row.Selected = true;
                                            break;
                                        }
                                    }
                                }
                            }

                            if (ricercaModelli.ActiveRow.Cells["Id"].Value != null && ricercaModelli.ActiveRow.Cells["Id"].Value != DBNull.Value)
                            {
                                _modelloSelected = (ModelloListaRegistrazioneContabileDTO)ricercaModelli.ActiveRow.ListObject;
                                modello.Text = _modelloSelected.Descrizione;
                                ((DropDownEditorButton)modello.ButtonsRight["SceltaModello"]).CloseUp();
                                OnSelectModello(new DataSourceEventArgs<ModelloListaRegistrazioneContabileDTO>(SelectedModello));
                                return;
                            }
                        }

                        var filtered = false;
                        if (e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z)
                        {
                            modello.Text += e.KeyCode.ToString();
                            filtered = true;
                        }
                        else if (e.KeyCode == Keys.Space)
                        {
                            modello.Text += @" ";
                            filtered = true;
                        }
                        else if (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9)
                        {
                            modello.Text += e.KeyCode.ToString().Substring(1, 1);
                            filtered = true;
                        }
                        else if (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9)
                        {
                            modello.Text += e.KeyCode.ToString().Substring(6, 1);
                            filtered = true;
                        }
                        else if (e.KeyCode == Keys.Back)
                        {
                            if (modello.Text.Length > 0)
                            {
                                modello.Text = modello.Text.Substring(0, modello.Text.Length - 1);
                                filtered = true;
                            }
                        }
                        if (filtered && ricercaModelli.DisplayLayout.Bands[0].ColumnFilters.Count > 0)
                        {
                            if (ricercaModelli.Rows.Count > 0)
                            {
                                ricercaModelli.Rows[0].Selected = true;
                                ricercaModelli.Rows[0].Activate();
                            }
                        }

                    }
                }
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore inaspettato nell'intercettazione dei caratteri digitati per la scelta del modello - " + Utility.GetMethodDescription() + " - azienda:" + Security.Login.Instance.CurrentLogin().Azienda, ex);     
            }
        }
Beispiel #6
0
        public void Reset()
        {
            try
            {
                modello.Value = null;
                _modelloSelected = null;
                if (ricercaModelli.DisplayLayout != null)
                    ricercaModelli.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters();

                if (modello.ButtonsRight.Exists("SceltaModello") && ((DropDownEditorButton)modello.ButtonsRight["SceltaModello"]).IsDroppedDown)
                    ((DropDownEditorButton)modello.ButtonsRight["SceltaModello"]).CloseUp();

                OnSelectModello(new DataSourceEventArgs<ModelloListaRegistrazioneContabileDTO>(SelectedModello));
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel reset del controllo di scelta modelli - {0}", ex, Utility.GetMethodDescription());                
                throw;
            }
        }
Beispiel #7
0
        public void SetModelloInitial(int idModello)
        {
            try
            {
                _modelloInitial = idModello;

                // Imposto il condominio iniziale
                if (ricercaModelli.Rows != null)
                {
                    foreach (var row in ricercaModelli.Rows)
                    {
                        if (row.IsDataRow && ((ModelloListaRegistrazioneContabileDTO)row.ListObject).ID == _modelloInitial)
                        {
                            row.Selected = true;
                            _modelloSelected = (ModelloListaRegistrazioneContabileDTO)row.ListObject;
                            modello.Text = _modelloSelected.DisplayName;
                            OnSelectModello(new DataSourceEventArgs<ModelloListaRegistrazioneContabileDTO>(SelectedModello));
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella impostazione del controllo di scelta modello - {0}", ex, Utility.GetMethodDescription());                
                throw;
            }
        }
Beispiel #8
0
        private void ricercaModelliClick(object sender, EventArgs e)
        {
            //Cast the sender into an UltraGrid
            var grid = sender as UltraGrid;

            //Get the last element that the mouse entered
            if (grid != null)
            {
                var lastElementEntered = grid.DisplayLayout.UIElement.LastElementEntered;

                //See if there's a RowUIElement in the chain.
                RowUIElement rowElement;
                var element = lastElementEntered as RowUIElement;
                if (element != null)
                    rowElement = element;
                else
                {
                    rowElement = (RowUIElement)lastElementEntered.GetAncestor(typeof(RowUIElement));
                }

                //Try to get a row from the element
                var row = (UltraGridRow) rowElement?.GetContext(typeof(UltraGridRow));

                //If no row was returned, then the mouse is not over a row. 
                if (row?.ListObject == null)
                    return;

                _modelloSelected = (ModelloListaRegistrazioneContabileDTO)row.ListObject;
            }

            modello.Text = _modelloSelected.Descrizione;
            OnSelectModello(new DataSourceEventArgs<ModelloListaRegistrazioneContabileDTO>(SelectedModello));
            ((DropDownEditorButton)modello.ButtonsRight["SceltaModello"]).CloseUp();
        }
Beispiel #9
0
 private void listaMouseUp(object sender, MouseEventArgs e)
 {
     _modelloClick = null;
     if (e.Button == MouseButtons.Right)
     {
         _modelloClick = DataGridHelper.GetCellEvent<ModelloListaRegistrazioneContabileDTO>(listaModelli, e);
         if (_modelloClick != null)
             contextMenuStrip1.Show(listaModelli, e.X, e.Y);
     }
 }
        public ModelloListaRegistrazioneContabileDTO GetById(int id)
        {
            try
            {
                ModelloListaRegistrazioneContabileDTO dto = null;
                var modello = _daoFactory.GetModelloRegistrazioneContabileDao().Find(id, false);
                if (modello != null)
                {

                    dto = new ModelloListaRegistrazioneContabileDTO
                    {
                        ID = modello.ID,
                        Descrizione = modello.Descrizione,
                        DescrizioneVoceFattura = modello.DescrizioneVoceFattura,
                        IdCondominio = modello.CondominioRiferimento.ID,
                        Version = modello.Version,
                        IsDeleteAllow = modello.IsDeleteAllow(),
                        DisplayName = modello.Descrizione
                    };

                    // ----------------------------------------
                    // Conti
                    // ----------------------------------------
                    foreach (var conto in modello.Conti)
                    {
                        var contoDto = new ContiListaModelloRegistrazioneContabileDTO
                        {
                            ID = conto.ID,
                            IdConto = conto.ContoRiferimento != null ? conto.ContoRiferimento.ID : 0,
                            IdModello = dto.ID,
                            PercentualeRipartizione = conto.PercentualeRipartizione.GetValueOrDefault(),
                            Version = conto.Version,
                            IsDeleteAllow = conto.IsDeleteAllow(),
                            DisplayName = conto.ContoRiferimento != null ? conto.ContoRiferimento.Descrizione : string.Empty
                        };

                        if (conto.SottoContoRiferimento != null)
                        {
                            contoDto.IdSottoConto = conto.SottoContoRiferimento.ID;
                            contoDto.DisplayName += " - " + conto.SottoContoRiferimento.GetDescrizione(null, modello.CondominioRiferimento, null);
                        }

                        // ----------------------------------------
                        // Dettagli / Riparto
                        // ----------------------------------------
                        foreach (var dettaglio in conto.Unita)
                        {
                            var dettaglioDto = new DettaglioListaModelloRegistrazioneContabileDTO
                            {
                                ID = dettaglio.ID,
                                IsDeleteAllow = dettaglio.IsDeleteAllow(),
                            };

                            if (dettaglio.LottoRiferimento != null)
                                dettaglioDto.IdLotto = dettaglio.LottoRiferimento.ID;
                            if (dettaglio.PalazzinaRiferimento != null)
                                dettaglioDto.IdStabile = dettaglio.PalazzinaRiferimento.ID;
                            if (dettaglio.GruppoStabileRiferimento != null)
                                dettaglioDto.IdGruppoStabile = dettaglio.GruppoStabileRiferimento.ID;
                            if (dettaglio.UnitaRiferimento != null)
                                dettaglioDto.IdUnita = dettaglio.UnitaRiferimento.ID;

                            contoDto.Riparto.Add(dettaglioDto);
                        }

                        dto.Conti.Add(contoDto);
                    }

                    // ----------------------------------------
                    // Fornitori
                    // ----------------------------------------
                    foreach (var modelloFornitore in modello.Fornitori)
                    {
                        var dtoFornitore = new ModelloContabileFornitoreDTO
                        {
                            ID = modelloFornitore.ID,
                            IdFornitore = modelloFornitore.Fornitore.ID,
                            IdModello = modello.ID,
                            DisplayName = modelloFornitore.Fornitore.DisplayName,
                            Version = modelloFornitore.Version
                        };

                        dto.Fornitori.Add(dtoFornitore);
                    }
                }

                return dto;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - {0} - id:{1}", ex, Library.Utility.GetMethodDescription(), id);
                throw;
            }
        }
        public AuthorizationMessages SalvaModello(ModelloListaRegistrazioneContabileDTO dto, bool ricalcoloSpeseEsistenti, int idUtente, LogTransazione logTransazione)
        {
            try
            {
                var logTransazioneModello = logTransazione;
                var logTransazioneDettaglioModello = logTransazione;
                var logTransazioneFornitoreModello = logTransazione;
                var logTransazioneContoModello = logTransazione;

                var fatalMessage = string.Empty;
                var warnMessage = string.Empty;
                ModelloRegistrazioneContabile modello = null;
                if (dto.ID == 0)
                {
                    var condominio = _daoFactory.GetCondominioDao().Find(dto.IdCondominio, false);
                    if (condominio != null)
                    {
                        var descrizione = string.Empty;
                        if (!string.IsNullOrEmpty(dto.Descrizione))
                        {
                            descrizione = dto.Descrizione;
                            if (descrizione.Length > 100)
                                descrizione = descrizione.Substring(0, 100);
                        }

                        var voceFattura = string.Empty;
                        if (!string.IsNullOrEmpty(dto.DescrizioneVoceFattura))
                        {
                            voceFattura = dto.DescrizioneVoceFattura;
                            if (voceFattura.Length > 512)
                                voceFattura = voceFattura.Substring(0, 512);
                        }

                        modello = new ModelloRegistrazioneContabile(condominio, descrizione, logTransazioneModello) { DescrizioneVoceFattura = voceFattura };
                        if (logTransazioneModello != null)
                        {
                            _daoFactory.GetModelloRegistrazioneContabileDao().SaveOrUpdate(modello);
                            logTransazioneContoModello = null;
                            logTransazioneDettaglioModello = null;
                            logTransazioneFornitoreModello = null;
                        }
                    }
                }
                else
                {
                    modello = _daoFactory.GetModelloRegistrazioneContabileDao().Find(dto.ID, false);
                    if(modello != null)
                        modello.Descrizione = dto.Descrizione;
                }

                if (modello != null)
                {
                    modello.DescrizioneVoceFattura = dto.DescrizioneVoceFattura;

                    // --------------------------
                    // Fornitori
                    // --------------------------
                    modello.Fornitori.Clear();
                    foreach (var dtoFornitore in dto.Fornitori)
                    {
                        ModelloContabileFornitore modelloFornitore = null;
                        if (dtoFornitore.ID == 0)
                        {
                            if (dtoFornitore.IdFornitore > 0)
                            {
                                var fornitore = _daoFactory.GetFornitoreDao().Find(dtoFornitore.IdFornitore, false);
                                if (fornitore != null)
                                {
                                    modelloFornitore = new ModelloContabileFornitore(fornitore, modello, logTransazioneFornitoreModello);
                                    if(logTransazioneFornitoreModello != null)
                                        _daoFactory.GetModelloContabileFornitoreDao().SaveOrUpdate(modelloFornitore);
                                }
                                else
                                {
                                    _log.WarnFormat("Fornitore inesistente - {0} - fornitore:{1}", Library.Utility.GetMethodDescription(), dtoFornitore.IdFornitore);
                                }
                            }
                            else
                            {
                                _log.WarnFormat("Fornitore non definito - {0}", Library.Utility.GetMethodDescription());
                            }
                        }
                        else
                        {
                            modelloFornitore = _daoFactory.GetModelloContabileFornitoreDao().Find(dtoFornitore.ID, false);
                            if (modelloFornitore != null)
                                modelloFornitore.Fornitore = _daoFactory.GetFornitoreDao().GetById(dtoFornitore.IdFornitore, false);
                            else
                            {
                                _log.WarnFormat("Modello inesistente - {0} - IdModello:{1}", Library.Utility.GetMethodDescription(), dtoFornitore.IdModello);
                            }
                        }

                        if (modelloFornitore != null)
                            modello.Fornitori.Add(modelloFornitore);
                    }

                    // --------------------------
                    // Conti
                    // --------------------------
                    modello.Conti.Clear();
                    foreach (var dtoConto in dto.Conti)
                    {
                        var conto = _daoFactory.GetContoDao().Find(dtoConto.IdConto, false);
                        var sottoConto = _daoFactory.GetSottoContoDao().Find(dtoConto.IdSottoConto, false);

                        var modelloConto = _daoFactory.GetContiModelloRegistrazioneContabileDao().Find(dtoConto.ID, false);
                        if (modelloConto == null)
                        {
                            modelloConto = new ContiModelloRegistrazioneContabile(modello, conto, sottoConto, dtoConto.PercentualeRipartizione, logTransazioneContoModello);
                            if (logTransazioneContoModello != null)
                            {
                                _daoFactory.GetContiModelloRegistrazioneContabileDao().SaveOrUpdate(modelloConto);
                                logTransazioneDettaglioModello = null;
                            }
                        }
                        else
                        {
                            modelloConto.PercentualeRipartizione = dtoConto.PercentualeRipartizione;

                            if (conto != null)
                                modelloConto.ContoRiferimento = conto;

                            if (sottoConto != null)
                                modelloConto.SottoContoRiferimento = sottoConto;
                        }

                        // --------------------------
                        // Riparto
                        // --------------------------
                        modelloConto.Unita.Clear();
                        foreach (var dtoRiparto in dtoConto.Riparto)
                        {
                            var modelloRiparto = _daoFactory.GetDettaglioModelloRegistrazioneContabileDao().Find(dtoRiparto.ID, false);
                            if (modelloRiparto == null)
                            {
                                modelloRiparto = new DettaglioModelloRegistrazioneContabile(modelloConto, logTransazioneDettaglioModello);
                                if(logTransazioneDettaglioModello != null)
                                    _daoFactory.GetDettaglioModelloRegistrazioneContabileDao().SaveOrUpdate(modelloRiparto);
                            }

                            // Lotto
                            modelloRiparto.LottoRiferimento = dtoRiparto.IdLotto > 0 ? _daoFactory.GetLottoDao().GetById(dtoRiparto.IdLotto.Value, false) : null;

                            // Stabile
                            modelloRiparto.PalazzinaRiferimento = dtoRiparto.IdStabile > 0 ? _daoFactory.GetPalazzinaDao().GetById(dtoRiparto.IdStabile.Value, false) : null;

                            // Gruppo Stabile
                            modelloRiparto.GruppoStabileRiferimento = dtoRiparto.IdGruppoStabile > 0 ? _daoFactory.GetGruppoStabileDao().GetById(dtoRiparto.IdGruppoStabile.Value, false) : null;

                            // Unità Immobiliare
                            modelloRiparto.UnitaRiferimento = dtoRiparto.IdUnita > 0 ? _daoFactory.GetUnitaImmobiliareDao().GetById(dtoRiparto.IdUnita.Value, false) : null;

                            modelloConto.Unita.Add(modelloRiparto);
                        }

                        modello.Conti.Add(modelloConto);
                    }

                    if (ricalcoloSpeseEsistenti)
                    {
                        var authMessage = ReloadRipartizioneByModelloEsercizio(modello.ID, null, null, idUtente, logTransazione);
                        if (!string.IsNullOrEmpty(authMessage.FatalMessage))
                            fatalMessage += authMessage.FatalMessage + Environment.NewLine;
                        if (!string.IsNullOrEmpty(authMessage.WarnMessage))
                            warnMessage += authMessage.WarnMessage + Environment.NewLine;

                    }

                    return new AuthorizationMessages(fatalMessage, warnMessage) {Id = modello.ID};
                }

                return new AuthorizationMessages(fatalMessage, warnMessage);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante il salvataggio del modello contabile - {0} - modello:{1} - condominio:{2}", ex, Library.Utility.GetMethodDescription(), dto.ID, dto.IdCondominio);
                throw;
            }
        }
        public List<ModelloListaRegistrazioneContabileDTO> GetByCondominio(int idCondominio)
        {
            try
            {
                var condominio = _daoFactory.GetCondominioDao().GetById(idCondominio, false);
                var modelli = _daoFactory.GetModelloRegistrazioneContabileDao().GetByCondominio(idCondominio);
                var modelliDto = new List<ModelloListaRegistrazioneContabileDTO>(modelli.Count);

                // ----------------------------------------
                // Modelli
                // ----------------------------------------
                foreach (var modello in modelli)
                {
                    try
                    {
                        var dto = new ModelloListaRegistrazioneContabileDTO
                        {
                            ID = modello.ID,
                            Descrizione = modello.Descrizione,
                            DescrizioneVoceFattura = modello.DescrizioneVoceFattura,
                            IdCondominio = idCondominio,
                            Version = modello.Version,
                            IsDeleteAllow = modello.IsDeleteAllow(),
                            DisplayName = modello.Descrizione
                        };

                        // ----------------------------------------
                        // Conti
                        // ----------------------------------------
                        foreach (var conto in modello.Conti)
                        {
                            try
                            {
                                var contoDto = new ContiListaModelloRegistrazioneContabileDTO
                                {
                                    ID = conto.ID,
                                    IdModello = dto.ID,
                                    PercentualeRipartizione = conto.PercentualeRipartizione.GetValueOrDefault(),
                                    Version = conto.Version,
                                    IsDeleteAllow = conto.IsDeleteAllow()
                                };

                                if(conto.ContoRiferimento != null)
                                {
                                    contoDto.IdConto = conto.ContoRiferimento.ID;
                                    contoDto.DisplayName = conto.ContoRiferimento.Descrizione;

                                    // ----------------------------------------
                                    // Dettagli / Riparto
                                    // ----------------------------------------
                                    foreach (var dettaglio in conto.Unita)
                                    {
                                        try
                                        {
                                            var dettaglioDto = new DettaglioListaModelloRegistrazioneContabileDTO
                                            {
                                                ID = dettaglio.ID,
                                                IsDeleteAllow = dettaglio.IsDeleteAllow(),
                                            };

                                            if (dettaglio.LottoRiferimento != null)
                                                dettaglioDto.IdLotto = dettaglio.LottoRiferimento.ID;
                                            if (dettaglio.PalazzinaRiferimento != null)
                                                dettaglioDto.IdStabile = dettaglio.PalazzinaRiferimento.ID;
                                            if (dettaglio.GruppoStabileRiferimento != null)
                                                dettaglioDto.IdGruppoStabile = dettaglio.GruppoStabileRiferimento.ID;
                                            if (dettaglio.UnitaRiferimento != null)
                                                dettaglioDto.IdUnita = dettaglio.UnitaRiferimento.ID;

                                            contoDto.Riparto.Add(dettaglioDto);
                                        }
                                        catch (Exception ex)
                                        {
                                            _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - SINGOLO DETTAGLIO - {0} - idConto:{1} - idDettaglio:{2} - idModello:{3} - idCondominio:{4}", ex, Library.Utility.GetMethodDescription(), conto.ID, dettaglio.ID, modello.ID, idCondominio);
                                            throw;
                                        }
                                    }
                                }
                                else
                                {
                                    _log.WarnFormat("ATTENZIONE Modello con riga di riparto senza conto definito - {0} - idConto:{1} - idModello:{2} - idCondominio:{3}", Library.Utility.GetMethodDescription(), conto.ID, modello.ID, idCondominio);
                                }
                                
                                if (conto.SottoContoRiferimento != null)
                                {
                                    contoDto.IdSottoConto = conto.SottoContoRiferimento.ID;
                                    contoDto.DisplayName += " - " + conto.SottoContoRiferimento.GetDescrizione(null, condominio, null);
                                }

                                dto.Conti.Add(contoDto);
                            }
                            catch (Exception ex)
                            {
                                _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - SINGOLO CONTO - {0} - idConto:{1} - idModello:{2} - idCondominio:{3}",  ex, Library.Utility.GetMethodDescription(), conto.ID, modello.ID, idCondominio);
                                throw;
                            }
 
                        }

                        // ----------------------------------------
                        // Fornitori
                        // ----------------------------------------
                        foreach (var modelloFornitore in modello.Fornitori)
                        {
                            var dtoFornitore = new ModelloContabileFornitoreDTO
                            {
                                ID = modelloFornitore.ID,
                                IdFornitore = modelloFornitore.Fornitore.ID,
                                IdModello = modello.ID,
                                DisplayName = modelloFornitore.Fornitore.DisplayName,
                                Version = modelloFornitore.Version
                            };

                            dto.Fornitori.Add(dtoFornitore);
                        }

                        modelliDto.Add(dto);
                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - SINGOLO MODELLO - {0} - idModello:{1} - idCondominio:{2}", ex, Library.Utility.GetMethodDescription(), modello.ID, idCondominio);
                        throw;
                    }
                }

                return modelliDto;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la lettura dei modelli per condominio - {0} - idCondominio:{1}", ex, Library.Utility.GetMethodDescription(), idCondominio);
                throw;
            }
        }
 public string Delete(ModelloListaRegistrazioneContabileDTO modello, EsercizioDTO esercizio)
 {
     var message = GetServiceClient().DeleteModelloContabile(modello.ID, GetUserInfo());
     if(esercizio != null)
         updateCache(esercizio);
     CloseService();
     return message;
 }
 public AuthorizationMessages Salva(ModelloListaRegistrazioneContabileDTO modello, EsercizioDTO esercizio, bool ricalcoloSpeseEsistenti)
 {
     var message = GetServiceClient().SalvaModelloContabile(modello, ricalcoloSpeseEsistenti, GetUserInfo());
     modello.ID = message.Id.GetValueOrDefault();
     if(esercizio != null)
         updateCache(esercizio);
     CloseService();
     return message;
 }
        public ModelloListaRegistrazioneContabileDTO New(CondominioDTO condominio)
        {
            if (condominio != null)
            {
                var modello = new ModelloListaRegistrazioneContabileDTO
                {
                    IdCondominio = condominio.ID,
                    Fornitori = new List<ModelloContabileFornitoreDTO>(),
                    Conti = new List<ContiListaModelloRegistrazioneContabileDTO>()
                };

                return modello;
            }

            return new ModelloListaRegistrazioneContabileDTO();
        }
Beispiel #16
0
		public AuthorizationMessages SalvaModelloContabile(ModelloListaRegistrazioneContabileDTO modello, bool ricalcoloSpeseEsistenti, UserInfo userinfo)
		{
            var retryCount = 10;
            var success = false;
            var windsorRep = new WindsorConfigRepository();
            var item = new AuthorizationMessages();
            while (retryCount >= 0 && !success)
            {
                try
                {
                    var logTransazione = windsorRep.BeginTransaction(userinfo, true, true);
                    var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<IModelloContabileService>();
                    item = service.SalvaModello(modello, ricalcoloSpeseEsistenti, userinfo.Utente, logTransazione);

                    // Se sono presenti errori bloccanti non eseguo la commit
                    if (!item.FatalMessage.Any())
                        windsorRep.Commit(logTransazione);

                    success = true;
                }
                catch (InvalidDataException ex)
                {
                    return new AuthorizationMessages(ex.Message, null);
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nel salvataggio del modello contabile - TENTATIVO:{0} - {1} - modello:{2} - descrizione:{3} - condominio:{4} - azienda:{5} - number:{6}", ex, (11 - retryCount), Utility.GetMethodDescription(), modello.ID, modello.Descrizione, modello.IdCondominio, userinfo.Azienda, getExceptionId(ex));

                    windsorRep.Rollback();
                    if (!isRetryException(ex))
                        throw;

                    // Add delay here if you wish. 
                    System.Threading.Thread.Sleep(1000 * (11 - retryCount));
                    retryCount--;
                    _log.InfoFormat("Salvataggio del modello contabile - TENTATIVO:{0} - {1} - modello:{2} - descrizione:{3} - condominio:{4} - azienda:{5}", (11 - retryCount), Utility.GetMethodDescription(), modello.ID, modello.Descrizione, modello.IdCondominio, userinfo.Azienda);
                }
            }

            if (!success)
                windsorRep.Rollback();

            return item;
		}