private void dettagliSpesaSelectedTabChanged(object sender, SelectedTabChangedEventArgs e) { try { if (e.Tab.Index == -1) { dettagliSpesa.SelectedTab = dettagliSpesa.Tabs[0]; return; } var modelloDaSalvare = false; if (dettagliSpesa.Tabs.Count > 2) { lblAltreSpese.Visible = false; altreSpese.Visible = false; altreSpese.Tag = null; altreSpeseDettaglio.ValueObject = null; altreSpeseDettaglio.Visible = false; lblAltreSpeseEsenti.Visible = false; altreSpeseEsenti.ValueObject = null; altreSpeseEsenti.Visible = false; lblSpeseEsentiRitenuta.Visible = false; speseEsentiRitenuta.ValueObject = null; speseEsentiRitenuta.Visible = false; _spesa.AltreSpese = null; _spesa.AltreSpeseEsenti = null; _spesa.SpeseEsentiRitenuta = null; } if (_isInserimento && modelloRipartizione.Value == null && ripartizioneDettaglio.Rows.Count > 1 && getCurrentRipartizione() != null && string.IsNullOrEmpty(getCurrentRipartizione().NomeModello)) modelloDaSalvare = true; DettaglioSpesaDTO dettaglio; DettaglioSpesaDTO oldDettaglio = null; if (e.Tab.Tag == null) { dettaglio = newDettaglioSpesa(); dettaglio.NumeroRiga = e.Tab.Index + 1; e.Tab.Tag = dettaglio; if (e.PreviousSelectedTab?.Tag != null) { oldDettaglio = (DettaglioSpesaDTO)e.PreviousSelectedTab.Tag; if (oldDettaglio.IdModelloRipartizione != null && oldDettaglio.IdModelloRipartizione.Value > 0) dettaglio.IdModelloRipartizione = oldDettaglio.IdModelloRipartizione; dettaglio.AliquotaIva = oldDettaglio.AliquotaIva; dettaglio.SoggettoRitenutaAcconto = oldDettaglio.SoggettoRitenutaAcconto; dettaglio.Descrizione = oldDettaglio.Descrizione; if (modelloDaSalvare) { var form = new SalvataggioModelloRegistrazioneContabile((List<ModelloRegistrazioneContabileDTO>)modelliContabiliBindingSource.DataSource, modelloRipartizione.Text, descrizioneDettaglio.Text); if (form.ShowDialog() != DialogResult.Cancel) { getCurrentRipartizione().NomeModello = form.Nome; getCurrentRipartizione().DescrizioneVoceSpesa = form.DescrizioneVoceSpesa; getCurrentRipartizione().AssociatoFornitore = form.AssociatoFornitore; } form.Dispose(); } } } else dettaglio = (DettaglioSpesaDTO)e.Tab.Tag; setRipartizioneDettaglio(dettaglio); // Se non è impostato un importo elimino il dettaglio if (importoDettaglioSpesa.Value == 0 && e.PreviousSelectedTab?.Tag != null) { _spesa.Dettagli.Remove((DettaglioSpesaDTO)e.PreviousSelectedTab.Tag); e.PreviousSelectedTab.Tag = null; } setDettaglioDataSource(oldDettaglio, dettaglio); setFocus(importoDettaglioSpesa); // Cassa professionisti e Altre spese sono campi di testata li visualizzo solo sul primo dettaglio if (dettagliSpesa.SelectedTab.Index != 0) { cassaProfessionistiDettaglio.Visible = false; lblCassaProfessionistiDettaglio.Visible = false; altreSpeseDettaglio.Visible = false; lblAltreSpeseDettaglio.Visible = false; altreSpeseEsenti.Visible = false; lblAltreSpeseEsenti.Visible = false; speseEsentiRitenuta.Visible = false; lblSpeseEsentiRitenuta.Visible = false; } else { lblCassaProfessionistiDettaglio.Visible = true; cassaProfessionistiDettaglio.Visible = true; if (dettagliSpesa.Tabs.Count <= 2 && !getMovimentoContabileService().IsMultiSpesa) { altreSpeseDettaglio.Visible = true; lblAltreSpeseDettaglio.Visible = true; speseEsentiRitenuta.Visible = true; lblSpeseEsentiRitenuta.Visible = true; altreSpeseEsenti.Visible = true; lblAltreSpeseEsenti.Visible = true; } else { altreSpeseDettaglio.Visible = false; altreSpeseDettaglio.ValueObject = null; lblAltreSpeseDettaglio.Visible = false; altreSpeseEsenti.Visible = false; altreSpeseEsenti.ValueObject = null; lblAltreSpeseEsenti.Visible = false; lblAltreSpese.Visible = false; speseEsentiRitenuta.Visible = false; speseEsentiRitenuta.ValueObject = null; lblSpeseEsentiRitenuta.Visible = false; if(_spesa.AltreSpeseEsenti != 0 && _spesa.AltreSpeseEsenti != null) _spesa.AltreSpeseEsenti = null; if (_spesa.SpeseEsentiRitenuta != 0 && _spesa.SpeseEsentiRitenuta != null) _spesa.SpeseEsentiRitenuta = null; } } if (string.IsNullOrEmpty(descrizioneDettaglio.Text)) descrizioneDettaglio.Text = _condominio.FormatoDescrizioneSpesa; ripartizioneDettaglio.Focus(); ripartizioneDettaglio.PerformAction(UltraGridAction.FirstCellInGrid); } catch (Exception ex) { _log.Error("Errore non previsto nel click sul tab di dettaglio - " + Utility.GetMethodDescription(), ex); throw; } }
public bool Conferma() { var result = true; btnConferma.Focus(); setValidators(true); spesaValidationSummary.Validate(); if (spesaValidationSummary.IsValid) { // -------------------------------------------- // Controllo Data Registrazione // -------------------------------------------- var messageDataList = getMovimentoContabileService().IsAllowDataRegistrazione(new List<int>(1) {_condominio.ID}, _esercizio.ID, dataRegistrazione.DateTime); if(messageDataList.Count > 0) { var messageData = "La data di registrazione " + dataRegistrazione.DateTime + " non è ammessa:" + Environment.NewLine; messageData = messageDataList.Aggregate(messageData, (current, mess) => current + (mess + Environment.NewLine)); CommonMessages.DisplayWarning(messageData); return false; } // -------------------------------------------- // Controllo Data Scadenza se pagamento immediato // -------------------------------------------- if (_pagamentoImmediato) { var messaggiDataPagamento = new List<string>(); foreach (var scadenzaFatturaDTO in _spesa.Scadenze) { if (scadenzaFatturaDTO != null) { var messageData = getMovimentoContabileService().IsAllowDataPagamento(_condominio.ID, scadenzaFatturaDTO.Scadenza.GetValueOrDefault()); if (!string.IsNullOrEmpty(messageData)) messaggiDataPagamento.Add(messageData); } } if (messaggiDataPagamento.Count > 0) { var messageDataStr = messaggiDataPagamento.Aggregate(string.Empty, (current, mess) => current + (mess + Environment.NewLine)); CommonMessages.DisplayWarning(messageDataStr); return false; } } // -------------------------------------------- // Controllo sul numero fattura // -------------------------------------------- var messageAuth = _fatturaService.IsAllowNumeroFattura(_spesa); if (string.IsNullOrEmpty(messageAuth.FatalMessage)) { var resultNumeroFattura = DialogResult.Yes; if (!string.IsNullOrEmpty(messageAuth.WarnMessage)) resultNumeroFattura = CommonMessages.DisplayConfirm("ATTENZIONE il controllo sul numero fattura ha dato i seguenti risultati:" + Environment.NewLine + Environment.NewLine + messageAuth.WarnMessage + Environment.NewLine + Environment.NewLine + "Vuoi confermare l'inserimento della spesa?"); if (resultNumeroFattura == DialogResult.Yes) { RipartizioneSpeseDTO ripartizione; if (importoDettaglioSpesa.Value != 0) { _spesa.AltreSpese = altreSpeseDettaglio.Value; _spesa.AltreSpeseEsenti = altreSpeseEsenti.Value; _spesa.SpeseEsentiRitenuta = speseEsentiRitenuta.Value; _spesa.AliquotaRitenuta = (decimal?)aliquotaRitenuta.Value; _spesa.AliquotaCassaProfessionisti = (decimal?)cassaProfessionistiDettaglio.Value; _spesa.IsRitenutaCalcoloImponibile = ritenutaCalcolataImponibile.Checked; ripartizione = getCurrentRipartizione(); if (_isInserimento && modelloRipartizione.Value == null && ripartizioneDettaglio.Rows.Count > 1 && (ripartizione == null || string.IsNullOrEmpty(getCurrentRipartizione().NomeModello))) { var form = new SalvataggioModelloRegistrazioneContabile((List<ModelloRegistrazioneContabileDTO>)modelliContabiliBindingSource.DataSource, modelloRipartizione.Text, descrizioneDettaglio.Text); if (form.ShowDialog() != DialogResult.Cancel) { if (ripartizione == null) { ripartizione = new RipartizioneSpeseDTO { Testata = new TestataMovimentoContabileDTO {IdEsercizio = _esercizio.ID} }; setCurrentRipartizione(ripartizione); } ripartizione.NomeModello = form.Nome; ripartizione.DescrizioneVoceSpesa = form.DescrizioneVoceSpesa; ripartizione.AssociatoFornitore = form.AssociatoFornitore; } form.Dispose(); } // Se non sono ancora state caricate creo le scadenze if (scadenze.Rows.Count == 0) loadScadenzeTab(); } // Salvo i valori a video nell'oggetto DTO setDettaglioDataSource((DettaglioSpesaDTO)dettagliSpesa.ActiveTab.Tag, null); _spesa.IdFornitore = sceltaFornitore.SelectedFornitore.ID; _spesa.TipoDocumento = tipoDocumento.SelectedItem.DataValue.ToString(); _spesa.DataRegistrazione = dataRegistrazione.DateTime; if (_spesaRiferimento != null) _spesa.IdSpesaRiferimento = _spesaRiferimento.ID; SpesaInfoDTO spesaInfo =null; try { if (_spesa != null) { //spesaInfo = _fatturaService.Salva(_spesa, _ripartizione, getMovimentoContabileService().IsMultiSpesa); var form = new ExecuteLoadDataObjectAsync<SpesaInfoDTO>("Salvataggio della fattura in corso ....." + Environment.NewLine + "Si prega di attendere."); Func<SpesaInfoDTO> loadDati = () => _fatturaService.Salva(_spesa, _ripartizione, getMovimentoContabileService().IsMultiSpesa); form.LoadData(loadDati); form.ShowDialog(); spesaInfo = form.DataSourceObject; form.Dispose(); } } catch (Exception ex) { _log.Error("Errore non previsto nell'inserimento della spesa - " + Utility.GetMethodDescription() + " - spesa:" + getIdSpesa().GetValueOrDefault(), ex); spesaInfo = new SpesaInfoDTO { Message = "Errore imprevisto nell'inserimento della spesa" }; } if (spesaInfo != null && string.IsNullOrEmpty(spesaInfo.Message)) { _spesa.ID = spesaInfo.Id; _spesa.DisplayName = _spesa.Dettagli[0].Descrizione; if (_speseAccorpate && _isFirstSpesa && _spesaRiferimento == null) { _spesaRiferimento = _spesa; _isFirstSpesa = false; _fatturaService.SetSpesaRiferimento(_spesaRiferimento.ID, _spesaRiferimento.ID); } if (modelloFornitore.Checked) getModelloContabileService().AssociaFornitore((ModelloRegistrazioneContabileDTO)modelloRipartizione.SelectedItem.ListObject, sceltaFornitore.SelectedFornitore); // Se è stato richiesto il salvataggio del modello devo ricaricare la cache dei modelli if (importoDettaglioSpesa.Value != 0) { ripartizione = getCurrentRipartizione(); if (!string.IsNullOrEmpty(ripartizione?.NomeModello)) getModelloContabileService().Reload(_esercizio); } if (_isInserimento) CommonMessages.DisplayComplete("La spesa è stata correttamente inserita." + Environment.NewLine + "Sul documento deve essere riportato: " + spesaInfo.IdentificativoArchiviazione); else CommonMessages.DisplayComplete("La spesa è stata correttamente aggiornata." + Environment.NewLine + "Sul documento deve essere riportato: " + spesaInfo.IdentificativoArchiviazione); Dirty = false; OnConfirm(new ConfirmArgs(_spesa)); if (_formGestione == null || !_formGestione.IsDisposed) { if (_isInserimento) Reload(_condominio, _esercizio); Dirty = false; } } else { if (spesaInfo != null) CommonMessages.DisplayWarning("Si sono verificati dei problemi nell'aggiornamento della spesa:" + Environment.NewLine + spesaInfo.Message + Environment.NewLine + "Si prega di riprovare."); result = false; } } } else { CommonMessages.DisplayWarning("Si sono verificati i seguenti errori nel controllo del numero di fattura:" + Environment.NewLine + messageAuth.FatalMessage + Environment.NewLine + "Si prega di riprovare."); return false; } } else { spesaValidationSummary.ShowErrorSummary(); result = false; } setValidators(false); return result; }
private void btnSalvaModelloClick(object sender, EventArgs e) { try { if (dettagliSpesa?.ActiveTab?.Tag != null && modelliContabiliBindingSource.DataSource != null) { var form = new SalvataggioModelloRegistrazioneContabile((List<ModelloRegistrazioneContabileDTO>)modelliContabiliBindingSource.DataSource, modelloRipartizione.Text, descrizioneDettaglio.Text); if (form.ShowDialog() == DialogResult.Cancel) { form.Dispose(); return; } var ripartizione = getCurrentRipartizione(); if (ripartizione != null) { ripartizione.NomeModello = form.Nome; ripartizione.DescrizioneVoceSpesa = form.DescrizioneVoceSpesa; ripartizione.AssociatoFornitore = form.AssociatoFornitore; } form.Dispose(); } } catch (Exception ex) { _log.Error("Errore non previsto nel salvataggio del modello - " + Utility.GetMethodDescription(), ex); throw; } }