private ResultDettaglioSpesa manageDettaglioSpesa(DettaglioSpesaDTO dto, DettaglioSpesa dettaglioMultiIva) { DettaglioSpesa item = null; string result = string.Empty; // Controllo sullo stato U, D, I switch (dto.Stato.ToUpper()) { case "U": result = updateDettaglio(dto, dettaglioMultiIva, out item); break; case "I": result = insertDettaglio(dto, dettaglioMultiIva, out item); break; } if (!string.IsNullOrEmpty(result)) item = null; return new ResultDettaglioSpesa(item, result); }
public ResultDettaglioSpesa ManageDettaglioDomainEntity(DettaglioSpesaDTO dettaglioDto, DettaglioSpesa dettaglioMultiIva) { try { return manageDettaglioSpesa(dettaglioDto, dettaglioMultiIva); } catch (Exception ex) { _log.ErrorFormat("Errore nella gestione dei dettagli delle Fatture/Spese - {0} - id:{1}", ex, Utility.GetMethodDescription(), dettaglioDto.ID); throw; } }
private string updateDettaglio(DettaglioSpesaDTO dto, DettaglioSpesa dtoMultiIva, out DettaglioSpesa item) { var message = string.Empty; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetDettaglioSpesaDao().GetById(dto.ID, false); // Condizione necessaria per il controllo del fatto che sul DB ho una versione uguale o più vecchia if (dto.Version == item.Version) { item.AliquotaIva = dto.AliquotaIva; item.ImportoIva = dto.ImportoIva; item.ImportoLordo = dto.ImportoLordo - item.SpesaRiferimento.AltreSpese.GetValueOrDefault(); item.Note = dto.Note; item.NumeroRiga = dto.NumeroRiga; item.SoggettoRitenutaAcconto = dto.SoggettoRitenutaAcconto; item.Descrizione = dto.Descrizione; item.ModelloRipartizione = dto.IdModelloRipartizione != null ? daoFactory.GetModelloRegistrazioneContabileDao().GetById(dto.IdModelloRipartizione.Value, false) : null; // ------------------------------------------ // Movimenti contabili // ------------------------------------------ item.Movimenti.Clear(); for (int i = 0; i < dto.Movimenti.Length; i++) { dto.Movimenti[i].IdDettaglio = item.ID; // Se non è valorizzata alcun sottoconto e nessuna descrizione uso la descrione presente sul dettaglio if (dto.Movimenti[i].IdSottoConto == null && (dto.Movimenti[i].Descrizione == null || dto.Movimenti[i].Descrizione.Trim() == string.Empty)) dto.Movimenti[i].Descrizione = item.Descrizione; int? id = dto.Movimenti[i].ID; if (id.GetValueOrDefault() > 0) { var movimentoCheck = daoFactory.GetMovimentoContabileDao().Find(id.GetValueOrDefault(), false); if (movimentoCheck == null) dto.Movimenti[i].ID = 0; } if ((dto.Movimenti[i].Stato == "U") || (dto.Movimenti[i].Stato == "I")) { var result = getMovimentoRepository().ManageDomainEntity(dto.Movimenti[i]); if (result.Movimento != null) id = result.Movimento.ID; else return result.Message; } var movimento = daoFactory.GetMovimentoContabileDao().GetById(id.Value, false); item.Movimenti.Add(movimento); movimento.DettaglioRiferimento = item; if (dtoMultiIva != null) { var movimentoPrincipale = IesiGenericCollections<MovimentoContabile>.GetByIndex(dtoMultiIva.Movimenti, i); if (movimentoPrincipale != null && movimentoPrincipale.ContoRiferimento != null && movimentoPrincipale.ContoRiferimento.ID == movimento.ContoRiferimento.ID) movimento.MovimentoPrincipaleMultiIva = movimentoPrincipale; } } } else { // Eccezione: Sul db c'è qualche cosa di più nuovo. _log.Error("Errore nel salvataggio del dettaglio Spesa id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare"); message = "Errore nel salvataggio del dettaglio Spesa id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare"; } } catch (Exception ex) { _log.Error("Errore nel salvataggio del dettaglio Spesa: " + Utility.GetMethodDescription() + " - id:" + dto.ID, ex); throw; } return message; }
private string insertDettaglio(DettaglioSpesaDTO dto, DettaglioSpesa dettaglioMultiIva, out DettaglioSpesa item) { string message = string.Empty; item = null; try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); item = new DettaglioSpesa(daoFactory.GetSpesaDao().GetById(dto.IdSpesaRiferimento, false),dto.NumeroRiga) {AliquotaIva = dto.AliquotaIva, ImportoIva = dto.ImportoIva}; item.ImportoLordo = dto.ImportoLordo - item.SpesaRiferimento.AltreSpese.GetValueOrDefault(); item.Note = dto.Note; item.SoggettoRitenutaAcconto = dto.SoggettoRitenutaAcconto; item.Descrizione = dto.Descrizione; if(dto.IdModelloRipartizione != null) item.ModelloRipartizione = daoFactory.GetModelloRegistrazioneContabileDao().GetById(dto.IdModelloRipartizione.Value, false); daoFactory.GetDettaglioSpesaDao().SaveOrUpdate(item); // ------------------------------------------ // Movimenti contabili // ------------------------------------------ item.Movimenti.Clear(); for (var i = 0; i < dto.Movimenti.Length; i++) { try { dto.Movimenti[i].IdDettaglio = item.ID; // Se non è valorizzata alcun sottoconto e nessuna descrizione uso la descrione presente sul dettaglio if (dto.Movimenti[i].IdSottoConto == null && (dto.Movimenti[i].Descrizione == null || dto.Movimenti[i].Descrizione.Trim() == string.Empty)) dto.Movimenti[i].Descrizione = item.Descrizione; int? id = dto.Movimenti[i].ID; if ((dto.Movimenti[i].Stato == "U") || (dto.Movimenti[i].Stato == "I")) { // Se è presente modello recupero eventuali ripartizioni personalizzate if (item.ModelloRipartizione != null) { var contiModelloRegistrazioneContabile = item.ModelloRipartizione.Conti.ToList()[i]; if (contiModelloRegistrazioneContabile != null) { var listaUnita = contiModelloRegistrazioneContabile.Unita.Where(unita => unita.UnitaRiferimento != null).ToList(); if (listaUnita.Count > 0) { dto.Movimenti[i].DettaglioRipartizione = new SpeseUnitaDTO[listaUnita.Count]; for (var j = 0; j < listaUnita.Count; j++) { dto.Movimenti[i].DettaglioRipartizione[j] = new SpeseUnitaDTO { IdUnitaRiferimento = listaUnita.ToList()[j].UnitaRiferimento.ID }; if (contiModelloRegistrazioneContabile.ContoRiferimento.IsSpesePersonali && listaUnita.Count == 1) dto.Movimenti[i].DettaglioRipartizione[j].Importo = dto.Movimenti[i].Importo; } if (dto.Movimenti[i].DettaglioRipartizione.Length > 0) dto.Movimenti[i].IsRipartoPersonalizzato = true; } } } var resultMovimento = getMovimentoRepository().ManageDomainEntity(dto.Movimenti[i]); if (resultMovimento.Movimento != null) id = resultMovimento.Movimento.ID; else return resultMovimento.Message; } var movimento = daoFactory.GetMovimentoContabileDao().GetById(id.Value, false); if (dettaglioMultiIva != null) { var movimentoPrincipale = IesiGenericCollections<MovimentoContabile>.GetByIndex(dettaglioMultiIva.Movimenti, i); if (movimentoPrincipale != null && movimentoPrincipale.ContoRiferimento != null && movimentoPrincipale.ContoRiferimento.ID == movimento.ContoRiferimento.ID) movimento.MovimentoPrincipaleMultiIva = movimentoPrincipale; } item.Movimenti.Add(movimento); movimento.DettaglioRiferimento = item; if (item.ModelloRipartizione != null) { movimento.LottiAddebito = getAddebito("L", item.ModelloRipartizione, i); movimento.StabiliAddebito = getAddebito("S", item.ModelloRipartizione, i); movimento.GruppiAddebito = getAddebito("G", item.ModelloRipartizione, i); } } catch (Exception ex) { _log.ErrorFormat("Errore nell'inserimento del dettaglio Spesa - SINGOLO MOVIMENTO - {0} - movimento:{1} - spesa:{2}", ex, Utility.GetMethodDescription(), dto.Movimenti[i].ID, dto.IdSpesaRiferimento); throw; } } } catch (Exception ex) { _log.ErrorFormat("Errore nell'inserimento del dettaglio Spesa - {0} - spesa:{1} - modello:{2}", ex, Utility.GetMethodDescription(), dto.IdSpesaRiferimento, dto.IdModelloRipartizione); message = "Errore nell'inserimento del dettaglio Spesa: " + Utility.GetMethodDescription(); } return message; }
private DettaglioSpesaDTO newDettaglioSpesa() { var dettaglio = new DettaglioSpesaDTO {SoggettoRitenutaAcconto = false, Movimenti = new List<MovimentoContabileDTO>()}; _spesa.Dettagli.Add(dettaglio); _ripartizione.Add(dettaglio, null); return dettaglio; }
private DettaglioSpesaDTO setDettaglioDto(DettaglioSpesa dettaglio, bool includeDettaglioMovimenti, bool detrazione = false) { try { var dto = new DettaglioSpesaDTO { ID = dettaglio.ID, AliquotaIva = dettaglio.AliquotaIva, Descrizione = dettaglio.Descrizione, IdSpesaRiferimento = dettaglio.SpesaRiferimento.ID, Imponibile = dettaglio.Imponibile, ImportoIva = dettaglio.ImportoIva, ImportoLordo = dettaglio.ImportoLordo, Note = dettaglio.Note, NumeroRiga = dettaglio.NumeroRiga, SoggettoRitenutaAcconto = dettaglio.SoggettoRitenutaAcconto, Version = dettaglio.Version }; if (dettaglio.ModelloRipartizione != null) dto.IdModelloRipartizione = dettaglio.ModelloRipartizione.ID; // ------------------------------------------ // Movimenti contabili // ------------------------------------------ var indexMovimento = 0; dto.Movimenti = new MovimentoContabileDTO[dettaglio.Movimenti.Count]; foreach (var movimento in dettaglio.Movimenti) { var movimentoDto = getMovimentoRepository().GetByDomainEntity(movimento, includeDettaglioMovimenti, true, detrazione); movimentoDto.Segno = "D"; dto.Movimenti[indexMovimento] = movimentoDto; indexMovimento++; } return dto; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nella creazione dell'istanza DTO per un dettaglio di una spesa - {0} - dettaglio:{1}", ex, Utility.GetMethodDescription(), dettaglio.ID); throw; } }
private void setDettaglioDataSource(DettaglioSpesaDTO oldDettaglio, DettaglioSpesaDTO newDettaglio) { try { modelloRipartizione.SelectionChanged -= modelloRipartizioneSelectionChanged; // Salvo i valori attuali if (oldDettaglio != null) { oldDettaglio.Descrizione = (string)descrizioneDettaglio.Value; oldDettaglio.SoggettoRitenutaAcconto = ritenuta.Checked; oldDettaglio.ImportoIva = importoDettaglioIva.Value; oldDettaglio.ImportoLordo = importoDettaglioSpesa.Value; oldDettaglio.Imponibile = imponibileDettaglio.Value; if (modelloRipartizione.Value != null) oldDettaglio.IdModelloRipartizione = (int)modelloRipartizione.Value; oldDettaglio.Note = (string)noteDettaglio.Value; if (aliquotaDettaglioIva.Value != null && aliquotaDettaglioIva.Value != DBNull.Value) oldDettaglio.AliquotaIva = (string)aliquotaDettaglioIva.Value; } // Imposto i valori nuovi if (newDettaglio != null) { clearDettaglioFields(); descrizioneDettaglio.Value = newDettaglio.Descrizione; ritenuta.Checked = newDettaglio.SoggettoRitenutaAcconto != null && newDettaglio.SoggettoRitenutaAcconto.Value; importoDettaglioIva.ValueObject = newDettaglio.ImportoIva; importoDettaglioSpesa.ValueObject = newDettaglio.ImportoLordo; if (_spesa.Dettagli.Count == 1) importoDettaglioSpesa.Value += _spesa.AltreSpese.GetValueOrDefault(); imponibileDettaglio.ValueObject = newDettaglio.Imponibile; modelloRipartizione.Value = newDettaglio.IdModelloRipartizione; noteDettaglio.Value = newDettaglio.Note; aliquotaDettaglioIva.ValueChanged -= aliquotaDettaglioIvaValueChanged; aliquotaDettaglioIva.Value = newDettaglio.AliquotaIva; aliquotaDettaglioIva.ValueChanged += aliquotaDettaglioIvaValueChanged; } modelloRipartizione.SelectionChanged += modelloRipartizioneSelectionChanged; } catch (Exception ex) { _log.ErrorFormat("Errore non nella impostazione del data source del dettaglio - {0} - spesa:{1} - esercizio:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), _spesa.ID, _esercizio.ID, Security.Login.Instance.CurrentLogin().Azienda); throw; } }
private void btnConfermaMultispesaClick(object sender, EventArgs e) { try { if(listaMultispesa.Rows.Count == 0) return; validationSummaryMultiSpesa.Validate(); if (validationSummaryMultiSpesa.IsValid) { _spesa.Dettagli.Clear(); _ripartizione.Clear(); altreSpeseDettaglio.ValueObject = null; altreSpeseDettaglio.Visible = false; altreSpeseEsenti.ValueObject = null; altreSpeseEsenti.Visible = false; speseEsentiRitenuta.ValueObject = null; speseEsentiRitenuta.Visible = false; lblAltreSpeseDettaglio.Visible = false; lblSpeseEsentiRitenuta.Visible = false; lblAltreSpeseEsenti.Visible = false; _spesa.AltreSpese = null; _spesa.AltreSpeseEsenti = null; _spesa.SpeseEsentiRitenuta = null; foreach (var row in listaMultispesa.Rows) { try { if (row.Cells.Exists("AliquotaIva") && row.Cells.Exists("ImportoTotale") && row.Cells.Exists("Imponibile") && row.Cells.Exists("ImportoIva")) { var dettaglio = new DettaglioSpesaDTO { AliquotaIva = row.Cells["AliquotaIva"].Value.ToString(), ImportoLordo = (decimal)row.Cells["ImportoTotale"].Value, Imponibile = (decimal)row.Cells["Imponibile"].Value, ImportoIva = (decimal)row.Cells["ImportoIva"].Value }; if (modelloRipartizione.Value != null) dettaglio.IdModelloRipartizione = (int)modelloRipartizione.Value; dettaglio.Movimenti = new List<MovimentoContabileDTO>(); if (sceltaFornitore.SelectedFornitore != null && ((decimal?)aliquotaRitenuta.Value).GetValueOrDefault() > 0) dettaglio.SoggettoRitenutaAcconto = true; _spesa.Dettagli.Add(dettaglio); _ripartizione.Add(dettaglio, null); } else { _log.WarnFormat("Spesa multi iva NON sono presenti nella grid i campi previsti - {0} - spesa:{1} - esercizio:{2}", Utility.GetMethodDescription(), _spesa.ID, _esercizio.ID); } } catch (Exception ex) { var aliquota = "<NULL>"; if (row.Cells["AliquotaIva"].Value != null) aliquota = row.Cells["AliquotaIva"].Value.ToString(); _log.ErrorFormat("Errore nella conferma della spesa multi iva - SINGOLO DETTAGLIO - {0} - iva:{1} - spesa:{2} - esercizio:{3}", ex, Utility.GetMethodDescription(), aliquota, _spesa.ID, _esercizio.ID); throw; } } if(_spesa.Dettagli.Count > 0) importoDettaglioSpesa.Value = _spesa.Dettagli[0].ImportoLordo.GetValueOrDefault(); getMovimentoContabileService().SetMultiSpesa(true, _spesa); bindDettagliSpesa(_spesa.Dettagli); popUpMultispesa.Close(); if (dettagliSpesa.Tabs.Count > 0) { try { dettagliSpesa.ActiveTab = dettagliSpesa.Tabs[0]; dettagliSpesa.SelectedTab = dettagliSpesa.Tabs[0]; } catch (Exception ex) { _log.WarnFormat("Errore nella impostazione del tab di dettaglio attivo - {0}", ex, Utility.GetMethodDescription()); throw; } } else { _log.WarnFormat("Spesa multi iva 'dettagliSpesa' non ha nessun TAB - {0} - spesa:{1} - esercizio:{2}", Utility.GetMethodDescription(), _spesa.ID, _esercizio.ID); } // TODO: Senza questa riga ottengo una exception in Infragisticis.UltraTab, probabilmente perchè risulta essere null il Text del Tab. // Provare Infragistics 8.2 descrizioneDettaglio.Text = _condominio.FormatoDescrizioneSpesa; if (string.IsNullOrEmpty(descrizioneDettaglio.Text)) descrizioneDettaglio.Text = _condominio.DescrizioneSpeseAutomatica ? @"$vuoto" : @" "; modelloRipartizioneSelectionChanged(importoDettaglioSpesa.Value, EventArgs.Empty); // Disabilito i controlli a video per importo, imponibile e iva importoDettaglioSpesa.Enabled = false; importoDettaglioIva.Enabled = false; imponibileDettaglio.Enabled = false; aliquotaDettaglioIva.Enabled = false; loadScadenzeTab(); } else validationSummaryMultiSpesa.ShowErrorSummary(); } catch (Exception ex) { _log.ErrorFormat("Errore nella conferma della spesa multi iva - {0} - spesa:{1} - esercizio:{2}", ex, Utility.GetMethodDescription(), _spesa.ID, _esercizio.ID); throw; } }
public SpesaDTO GetNew(SpesaDTO spesaOriginale, CondominioDTO condominio) { try { var aziendaDTO = _aziendaService.GetAzienda(); var spesa = new SpesaDTO { Autorizzata = !aziendaDTO.AutorizzazioneScadenze, IsAbilitataArchiviazioneOttica = _condominioService.GetById(condominio.ID, true).IsAbilitataArchiviazioneOtticaPassivi, Dettagli = new List<DettaglioSpesaDTO>() }; if (spesaOriginale != null) { spesa.AliquotaRitenuta = spesaOriginale.AliquotaRitenuta; spesa.Detrazione = spesaOriginale.Detrazione; spesa.DisplayFornitore = spesaOriginale.DisplayFornitore; spesa.DisplayName = spesaOriginale.DisplayName; spesa.IdEsercizio = spesaOriginale.IdEsercizio; spesa.IdFornitore = spesaOriginale.IdFornitore; spesa.TipoDocumento = spesaOriginale.TipoDocumento; spesa.Contestata = spesaOriginale.Contestata; spesa.Sinistro = spesaOriginale.Sinistro; foreach (var dettaglio in spesaOriginale.Dettagli) { var dettaglioNew = new DettaglioSpesaDTO { AliquotaIva = dettaglio.AliquotaIva, Descrizione = dettaglio.Descrizione, DisplayName = dettaglio.DisplayName, ID = 0, IdModelloRipartizione = dettaglio.IdModelloRipartizione, Note = dettaglio.Note, NumeroRiga = dettaglio.NumeroRiga, SoggettoRitenutaAcconto = dettaglio.SoggettoRitenutaAcconto, Movimenti = new List<MovimentoContabileDTO>() }; foreach (var movimento in dettaglio.Movimenti) { var movimentoNew = new MovimentoContabileDTO { Causale = movimento.Causale, Descrizione = movimento.Descrizione, DisplayName = movimento.DisplayName, ID = 0, IdCondomino = movimento.IdCondomino, IdConto = movimento.IdConto, IdFornitore = movimento.IdFornitore, NumeroRiga = movimento.NumeroRiga, IdNumeroRigaMovimentoMultiIvaPrincipale = movimento.NumeroRiga, IdSottoConto = movimento.IdSottoConto }; dettaglioNew.Movimenti.Add(movimentoNew); } spesa.Dettagli.Add(dettaglioNew); } } else spesa.TipoDocumento = "FATTURA"; spesa.Scadenze = new List<ScadenzaFatturaDTO>(); spesa.StatoSpesa = StatoSpesaEnum.Inserita; return spesa; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura della nuova spesa - {0} - spesa:{1} - condominio:{2}", ex, Gipasoft.Library.Utility.GetMethodDescription(), spesaOriginale != null ? spesaOriginale.ID.ToString() : "<NULL>", condominio != null ? condominio.ID.ToString() : "<NULL>"); throw; } }
private void setRipartizioneDettaglio(DettaglioSpesaDTO dettaglio) { dettaglio.Stato = "U"; movimentoContabileBindingSource.DataSource = dettaglio.Movimenti; // Imposto il data source corretto per tutte le celle foreach (var row in ripartizioneDettaglio.Rows) { if (row.Cells["IdConto"].Value != null) { if (ripartizioneDettaglio.DisplayLayout.ValueLists.Exists("SottoConti")) ripartizioneDettaglio.DisplayLayout.ValueLists.Remove("SottoConti"); var listUniqueKey = "SottoConti_" + ((int)row.Cells["IdConto"].Value); if (ripartizioneDettaglio.DisplayLayout.ValueLists.Exists(listUniqueKey)) ripartizioneDettaglio.DisplayLayout.ValueLists.Remove(listUniqueKey); var valueList = DataSourceHelper.GetValueList(_pianoContiService.GetSottoContiDataSource(_pianoContiService.GetById((int)row.Cells["IdConto"].Value, _esercizio.ID), _esercizio.ID), "ID", "DescrizioneCompleta", "Sottoconti"); valueList.Key = listUniqueKey; ripartizioneDettaglio.DisplayLayout.ValueLists.Add(valueList); row.Cells["IdSottoConto"].ValueList = ripartizioneDettaglio.DisplayLayout.ValueLists[listUniqueKey]; } } if (ripartizioneDettaglio.ActiveRow != null) { ripartizioneDettaglio.ActiveRow.Cells["Importo"].Value = dettaglio.ImportoLordo.GetValueOrDefault() + _spesa.AltreSpeseEsenti + - totaleImportoRipartito(true); } }
public List<MovimentoContabileDTO> GetMovimentiByDettaglio(DettaglioSpesaDTO dettaglio, Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> ripartizione, EsercizioDTO esercizio) { try { if (ripartizione == null) { _log.ErrorFormat("Ripartizione a null - {0} - esercizio:{1} - azienda:{2}", Utility.GetMethodDescription(), esercizio != null ? esercizio.ID.ToString(CultureInfo.InvariantCulture) : "<NULL>", Login.Instance.CurrentLogin().Azienda); return new List<MovimentoContabileDTO>(); } if (dettaglio == null) { _log.ErrorFormat("Dettaglio a null - {0} - esercizio:{1} - azienda:{2}", Utility.GetMethodDescription(), esercizio != null ? esercizio.ID.ToString(CultureInfo.InvariantCulture) : "<NULL>", Login.Instance.CurrentLogin().Azienda); return new List<MovimentoContabileDTO>(); } if (ripartizione.ContainsKey(dettaglio) && ripartizione[dettaglio] != null) { dettaglio.Movimenti = ripartizione[dettaglio].Testata.Movimenti; var movimenti = ripartizione[dettaglio].Testata.Movimenti.OrderBy(mov => mov.NumeroRiga); return new List<MovimentoContabileDTO>(new List<MovimentoContabileDTO>(movimenti)); } RipartizioneSpeseDTO ripartizioneDTO = null; foreach (var movimento in dettaglio.Movimenti) { try { if (movimento != null) { // Escludo i movimenti che non hanno un conto definito if (movimento.IdConto > 0) { if (dettaglio.IdSpesaRiferimento > 0) { ripartizioneDTO = GetRipartizioneByMovimentoEsistente(movimento, esercizio, ripartizioneDTO, null); if(ripartizioneDTO != null && ripartizioneDTO.Testata != null && ripartizioneDTO.Testata.Movimenti != null) ripartizioneDTO.Testata.Movimenti.Clear(); } else ripartizioneDTO = GetRipartizioneByMovimento(movimento, esercizio, ripartizioneDTO); } else { var log = LogManager.GetLogger("Sfera"); log.WarnFormat("ATTENZIONE: Trovato movimento senza conti definito - {0} - esercizio:{1}", Utility.GetMethodDescription(), esercizio.ID); } } } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura dei movimenti per dettaglio - SINGOLO MOVIMENTO - {0} - movimento:{1} - esercizio:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), movimento != null ? movimento.ID.ToString(CultureInfo.InvariantCulture) : "<NULL>", esercizio != null ? esercizio.ID.ToString(CultureInfo.InvariantCulture) : "<NULL>", Login.Instance.CurrentLogin().Azienda); throw; } } // Inserisco in testata i soli movimenti dello specifico dettaglio foreach (var movimento in dettaglio.Movimenti) { if (ripartizioneDTO != null && ripartizioneDTO.Testata != null && ripartizioneDTO.Testata.Movimenti != null) ripartizioneDTO.Testata.Movimenti.Add(movimento); } if (!ripartizione.ContainsKey(dettaglio)) ripartizione.Add(dettaglio, ripartizioneDTO); return dettaglio.Movimenti; } catch (CommunicationObjectAbortedException ex) { _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda); } catch (CommunicationObjectFaultedException ex) { _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda); } catch (IOException ex) { _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda); } catch (ObjectDisposedException ex) { _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda); } catch (Exception ex) { _log.ErrorFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda); throw; } return new List<MovimentoContabileDTO>(); }
public Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> Delete(Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> ripartizione, DettaglioSpesaDTO dettaglio, MovimentoContabileDTO movimento, SpesaDTO spesa) { dettaglio.Movimenti.Remove(movimento); var key = GetKey(movimento); if (ripartizione.ContainsKey(dettaglio) && ripartizione[dettaglio] != null) { ripartizione[dettaglio].UnitaImmobiliari.Remove(key); ripartizione[dettaglio].Gruppi.Remove(key); ripartizione[dettaglio].Stabili.Remove(key); ripartizione[dettaglio].Lotti.Remove(key); ripartizione[dettaglio].Testata.Movimenti.Remove(movimento); } return ripartizione; }
public Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> SetRipartizioneByMovimento(DettaglioSpesaDTO dettaglio, MovimentoContabileDTO movimento, EsercizioDTO esercizio, RipartizioneSpeseDTO ripartizioneDettaglio, Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> ripartizione) { var ripartizioneDettaglioNew = GetRipartizioneByMovimento(movimento, esercizio, ripartizioneDettaglio); ripartizione[dettaglio] = ripartizioneDettaglioNew; //if (_isMultiSpesa) //{ // Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> newRipartizione = new Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO>(ripartizione.Count); // foreach (KeyValuePair<DettaglioSpesaDTO, RipartizioneSpeseDTO> kvp in ripartizione) // { // RipartizioneSpeseDTO riparto = ripartizioneDettaglioNew; // if (kvp.Key != dettaglio) // { // // Duplico il flag di selezione // if (kvp.Value != null) // { // string key = GetKey(movimento); // if (kvp.Value.UnitaImmobiliari.ContainsKey(key)) // { // List<UnitaImmobiliareSelectedDTO> listaUnita = kvp.Value.UnitaImmobiliari[key]; // foreach (UnitaImmobiliareSelectedDTO unita in listaUnita) // { // unita.Selezionato = getSelezionatoUnita(ripartizioneDettaglioNew.UnitaImmobiliari[key], unita.ID); // unita.Stato = "U"; // } // } // } // // Calcolo la ripartizione // MovimentoContabileDTO movimentoClone = cloneMovimento(movimento, dettaglio.ImportoLordo.Value, kvp.Key.ImportoLordo.Value); // if (movimentoClone.IdConto > 0) // { // riparto = GetRipartizioneByMovimento(movimentoClone, esercizio, kvp.Value); // if (kvp.Value != null) // { // foreach (MovimentoContabileDTO movimentoDto in riparto.Testata.Movimenti) // { // if (isEqualMovimento(movimento, movimentoDto)) // { // movimentoDto.Importo = movimentoClone.Importo; // movimentoDto.IdConto = movimentoClone.IdConto; // movimentoDto.IdSottoConto = movimentoClone.IdSottoConto; // } // } // } // } // else // { // ILog _log = LogManager.GetLogger("Sfera"); // log4net.MDC.Set("user", Gipasoft.Security.Login.Instance.CurrentLogin().LoginName); // log.Warn("ATTENZIONE: Trovato movimento senza conti definito - " + Gipasoft.Library.Utility.GetMethodDescription() + " - dettaglio:" + dettaglio.ID + " - esercizio:" + esercizio.ID); // } // } // newRipartizione.Add(kvp.Key, riparto); // kvp.Key.Movimenti = riparto.Testata.Movimenti; // } // ripartizione = newRipartizione; //} return ripartizione; }
public Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> SetRipartizioneByModello(DettaglioSpesaDTO dettaglio, int idEsercizio, int idModello, int idCausale, decimal importo, Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> ripartizione, TipoMovimentoEnum tipo) { var ripartizioneDettaglioNew = GetServiceClient().GetRipartizioneByModello(idEsercizio, 0, idModello, idCausale, importo, tipo, GetUserInfo()); ripartizione[dettaglio] = ripartizioneDettaglioNew; if (_isMultiSpesa) { var newRipartizione = new Dictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO>(ripartizione.Count); foreach (var kvp in ripartizione) { var riparto = ripartizioneDettaglioNew; if (kvp.Key != dettaglio) { riparto = GetRipartizioneByModello(idEsercizio, null, idModello, idCausale, kvp.Key.ImportoLordo.GetValueOrDefault(), tipo); kvp.Key.Movimenti = riparto.Testata.Movimenti; } newRipartizione.Add(kvp.Key, riparto); } ripartizione = newRipartizione; } CloseService(); return ripartizione; }
public string GetDescrizioneTab(DettaglioSpesaDTO dettaglio) { string descrizione; if (!_isMultiSpesa) descrizione = "Dettaglio"; else descrizione = "Al. " + dettaglio.AliquotaIva + "%"; return descrizione; }