public InserimentoNotaAccreditoUC(int idNota, CondominioDTO condominio, EsercizioDTO esercizio) { InitializeComponent(); _condominio = condominio; _esercizio = esercizio; inizializza(); _nota = getFatturaService().GetNotaAccreditoById(idNota); addScadenzeStornate(new List<ScadenzaFatturaDTO>()); lista.Visible = true; panelBtn.Visible = true; btnCerca.Visible = false; }
public SpesaInfoDTO InserimentoNotaAccredito(NotaAccreditoDTO notaDto, IList<StornoScadenzaDTO> scadenze) { try { var esercizio = _daoFactory.GetEsercizioDao().Find(notaDto.IdEsercizio, false); if(esercizio == null) throw new InvalidDataException("Non è stato necessario l'esercizio di riferimento"); var nota = _daoFactory.GetSpesaDao().Find(notaDto.ID, false); if (nota == null) { nota = new Spesa(_daoFactory.GetFornitoreDao().GetById(notaDto.IdFornitore, false), esercizio, null); _daoFactory.GetSpesaDao().SaveOrUpdate(nota); } var impostazioni = _daoFactory.GetImpostazioniAziendaDao().GetByAzienda(nota.EsercizioRiferimento.CondominioRiferimento.Azienda.ID); nota.TipoDocumento = "NOTACC"; nota.NumeroDocumento = notaDto.NumeroDocumento; nota.DataDocumento = notaDto.DataDocumento; nota.ImportoRitenuta = scadenze.Sum(item => item.ImportoRitenuta); nota.Stato = StatoSpesaEnum.Stornata; DettaglioSpesa dettaglio; if (notaDto.IdDettaglioSpesa == 0) { dettaglio = new DettaglioSpesa(nota, 1); _daoFactory.GetDettaglioSpesaDao().SaveOrUpdate(dettaglio); } else dettaglio = _daoFactory.GetDettaglioSpesaDao().GetById(notaDto.IdDettaglioSpesa, false); dettaglio.Descrizione = notaDto.Descrizione; dettaglio.ImportoLordo = scadenze.Sum(item => item.Importo + item.ImportoRitenuta); var message = StornoNoteAccredito(nota.ID, scadenze, dettaglio, esercizio, notaDto.DataRegistrazione); var identificativoArchiviazione = string.Empty; if (string.IsNullOrEmpty(message)) { var protocollo = _protocolloService.GetProgressivo(TipoProtocollo.Fattura, esercizio.DataApertura.GetValueOrDefault().Year, nota.EsercizioRiferimento.CondominioRiferimento); if (protocollo.Progressivo != null) { nota.NumeroProtocollo = protocollo.Progressivo; if (nota.IsAbilitataArchiviazioneOttica) identificativoArchiviazione = _archiviazioneOtticaService.GetIdentificativoArchiviazione(nota, true); } else message += protocollo.Message + Environment.NewLine; } return string.IsNullOrEmpty(message) ? new SpesaInfoDTO { Id = nota.ID, IdentificativoArchiviazione = identificativoArchiviazione, NumeroProtocollo = nota.NumeroProtocollo.GetValueOrDefault(), StampaEtichettaArchiviazione = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture && nota.EsercizioRiferimento.CondominioRiferimento.IsAbilitataArchiviazioneOtticaPassivi.GetValueOrDefault(), EtichettatriceArchiviazione = impostazioni.EtichettatriceArchiviazioneOttica, TipoEtichettaArchiviazione = impostazioni.TipoEtichettaArchiviazioneOttica } : new SpesaInfoDTO { Id = 0, IdentificativoArchiviazione = null, NumeroProtocollo = 0, StampaEtichettaArchiviazione = false, EtichettatriceArchiviazione = string.Empty, TipoEtichettaArchiviazione = "Testo", Message = message }; } catch (Exception ex) { _log.ErrorFormat("Errore nell'inserimento di una nota di accredito - {0} - idNota:{1} - numeroNota:{2} - fornitore:{3} - esercizio:{4} - descrizione:{5}", ex, Utility.GetMethodDescription(), notaDto.ID, notaDto.NumeroDocumento, notaDto.IdFornitore, notaDto.IdEsercizio, notaDto.Descrizione); throw; } }
public NotaAccreditoDTO GetNotaAccreditoById(int idNota) { try { var nota = _daoFactory.GetSpesaDao().GetById(idNota, false); var notaDto = new NotaAccreditoDTO { ID = nota.ID, Importo = nota.ImportoLordo, ImportoRitenuta = nota.ImportoRitenuta, IdFornitore = nota.FornitoreRiferimento.ID, DisplayFornitore = nota.FornitoreRiferimento.DisplayName, DataDocumento = nota.DataDocumento, IdEsercizio = nota.EsercizioRiferimento.ID, NumeroDocumento = nota.NumeroDocumento, IsAbilitataArchiviazioneOttica = nota.IsAbilitataArchiviazioneOttica, StatoSpesa = nota.Stato }; var dettaglio = IesiGenericCollections<DettaglioSpesa>.GetByIndex(nota.Dettagli, 0); notaDto.Descrizione = dettaglio.GetDescrizione(); notaDto.IdDettaglioSpesa = dettaglio.ID; var testata = nota.TestateMovimenti.FirstOrDefault(); if (testata != null) notaDto.DataRegistrazione = testata.DataRegistrazione.GetValueOrDefault(); // Scadenze Stornate notaDto.ScadenzeStornate = new List<ScadenzaFatturaStornoDTO>(nota.Riscossioni.Count); foreach (var riscossione in nota.Riscossioni) { var scadenzaDto = setScadenzaDto(riscossione.ScadenzaRiferimento); notaDto.ScadenzeStornate.Add(new ScadenzaFatturaStornoDTO { Importo = riscossione.Importo.GetValueOrDefault(), ImportoRitenuta = riscossione.ImportoRitenuta.GetValueOrDefault(), Scadenza = scadenzaDto }); } return notaDto; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura di una notaa di accredito - {0} - nota:{1}", ex, Utility.GetMethodDescription(), idNota); throw; } }
public SpesaInfoDTO InserimentoNotaAccredito(NotaAccreditoDTO nota, IList<StornoScadenzaDTO> scadenze) { var result = GetServiceClient().InserimentoNotaAccredito(nota, new List<StornoScadenzaDTO>(scadenze), GetUserInfo()); if (result.StampaEtichettaArchiviazione) { var workerStampaEtichetta = new BackgroundWorker(); workerStampaEtichetta.DoWork += workerStampaEtichettaDoWork; workerStampaEtichetta.RunWorkerAsync(new object[] { result.IdentificativoArchiviazione, result.TrayEtichettatriceAttivazioneOttica }); } CloseService(); return result; }
public NotaAccreditoDTO GetNewNotaAccredito(EsercizioDTO esercizio) { var nota = new NotaAccreditoDTO { ID = 0, IdDettaglioSpesa = 0, IdEsercizio = esercizio.ID, StatoSpesa = StatoSpesaEnum.Inserita, ScadenzeStornate = new List<ScadenzaFatturaStornoDTO>() }; return nota; }
public void Reload(CondominioDTO condominio, EsercizioDTO esercizio) { _condominio = condominio; _esercizio = esercizio; clear(); if (_esercizio != null) { _nota = getFatturaService().GetNewNotaAccredito(_esercizio); Visible = true; } if (_esercizio != null && _esercizio.StatoEsercizio == StatoEsercizioEnum.Chiuso) { lista.Enabled = false; numeroDocumento.ReadOnly = true; dataDocumento.ReadOnly = true; dataRegistrazione.ReadOnly = true; sceltaFornitore.Enabled = false; descrizione.ReadOnly = true; btnConferma.Enabled = false; } }
private void clear() { _scadenzeDaAggiornare.Clear(); _nota = getFatturaService().GetNewNotaAccredito(_esercizio); sceltaFornitore.SetFornitoreInitial(_nota.IdFornitore); notaAccreditoDTOBindingSource.DataSource = _nota; sceltaFornitore.Reset(); lista.Visible = false; panelBtn.Visible = false; }
public SpesaInfoDTO InserimentoNotaAccredito(NotaAccreditoDTO nota, IList<StornoScadenzaDTO> scadenze, UserInfo userinfo) { var retryCount = 10; var success = false; var windsorRep = new WindsorConfigRepository(); var item = new SpesaInfoDTO(); while (retryCount >= 0 && !success) { try { windsorRep.BeginTransaction(userinfo); var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>(); item = service.InserimentoNotaAccredito(nota, scadenze); windsorRep.Commit(); success = true; } catch (InvalidDataException ex) { return new SpesaInfoDTO { Message = ex.Message }; } catch (Exception ex) { _log.ErrorFormat("Errore nell'inserimento di una nota di accredito - TENTATIVO:{0} - nota:{1} - azienda:{2} - number:{3}", ex, (11 - retryCount), Utility.GetMethodDescription(), nota.ID, 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("Inserimento di una nota di accredito - TENTATIVO:{0} - nota:{1} - azienda:{2}", (11 - retryCount), Utility.GetMethodDescription(), nota.ID, userinfo.Azienda); } } if (!success) windsorRep.Rollback(); return item; }