public RegistrazioneSpeseFiscaleUC(CondominioDTO condominio, EsercizioDTO esercizio) { InitializeComponent(); _isInserimento = true; _condominio = condominio; _esercizio = esercizio; inizializza(); if(_esercizio != null) _spesa = _fatturaService.GetNewFiscale(_esercizio); }
public RegistrazioneSpeseFiscaleUC(int idSpesa, CondominioDTO condominio, EsercizioDTO esercizio) { InitializeComponent(); _condominio = condominio; _esercizio = esercizio; inizializza(); _isInserimento = false; _spesa = _fatturaService.GetFiscaleById(idSpesa); ritenutaCalcolataImponibile.CheckedChanged -=ritenutaCalcolataImponibileCheckedChanged; ritenutaCalcolataImponibile.Checked = _spesa.IsRitenutaCalcoloImponibile; ritenutaCalcolataImponibile.CheckedChanged += ritenutaCalcolataImponibileCheckedChanged; aliquotaRitenuta.ValueChanged -=aliquotaRitenutaValueChanged; aliquotaRitenuta.Value = _spesa.AliquotaRitenuta; aliquotaRitenuta.ValueChanged += aliquotaRitenutaValueChanged; }
void clearFields() { sceltaFornitore.Reset(); if (_esercizio != null) { _spesa = _fatturaService.GetNewFiscale(_esercizio); cassaProfessionistiDettaglio.Value = 0; ritenutaCalcolataImponibile.Checked = false; aliquotaRitenuta.Value = null; spesaFiscaleDTOBindingSource.DataSource = _spesa; dettaglioSpesaFiscaleDTOBindingSource.DataSource = _spesa.Dettagli; } if (!totaleFattura.IsDisposed) totaleFattura.Value = 0; }
public SpesaFiscaleDTO GetNewFiscale(EsercizioDTO esercizio) { var spesa = new SpesaFiscaleDTO { IdEsercizio = esercizio.ID, IsAbilitataArchiviazioneOttica = _condominioService.GetById(esercizio.IdCondominio, true).IsAbilitataArchiviazioneOtticaPassivi, Dettagli = new List<DettaglioSpesaFiscaleDTO>(), Scadenze = new List<ScadenzaSpesaFiscaleDTO>() }; return spesa; }
public SpesaInfoDTO SalvaFiscale(SpesaFiscaleDTO spesa) { if (spesa.Detrazione == 0) spesa.Detrazione = null; var result = GetServiceClient().SalvaSpesaFiscale(spesa, GetUserInfo()); if (result.StampaEtichettaArchiviazione) { var workerStampaEtichetta = new BackgroundWorker(); workerStampaEtichetta.DoWork += workerStampaEtichettaDoWork; workerStampaEtichetta.RunWorkerAsync(new object[] { result.IdentificativoArchiviazione, result.TrayEtichettatriceAttivazioneOttica }); } CloseService(); return result; }
public SpesaFiscaleDTO GetFiscaleById(int idSpesa) { try { var spesa = _daoFactory.GetSpesaDao().GetById(idSpesa, false); var dto = new SpesaFiscaleDTO { AliquotaRitenuta = spesa.AliquotaRitenuta, AltreSpese = spesa.AltreSpese, CassaProfessionisti = spesa.CassaProfessionisti, DataDocumento = spesa.DataDocumento, Detrazione = spesa.Detrazione, ID = idSpesa, IdCondominio = spesa.EsercizioRiferimento.CondominioRiferimento.ID, IdEsercizio = spesa.EsercizioRiferimento.ID, IdFornitore = spesa.FornitoreRiferimento.ID, IdentificativoArchiviazioneOttica = _archiviazioneService.GetIdentificativoArchiviazione(spesa), IsAbilitataArchiviazioneOttica = spesa.IsAbilitataArchiviazioneOttica, NumeroDocumento = spesa.NumeroDocumento, StatoSpesa = spesa.Stato, TipoDocumento = spesa.TipoDocumento, IsRitenutaCalcoloImponibile = spesa.IsRitenutaCalcoloImponibile, SpeseEsenti = spesa.AltreSpeseEsenti, SpeseEsentiRitenuta = spesa.SpeseEsentiRitenuta, EsenteRegimeMinimo = spesa.EsenteRegimeMinimo }; foreach (var scadenza in spesa.Scadenze) { var scadenzaDto = new ScadenzaSpesaFiscaleDTO {Importo = scadenza.Importo.GetValueOrDefault(), ImportoRitenuta = scadenza.ImportoRitenuta, DataPagamento = scadenza.Scadenza}; var pag = scadenza.Pagamenti.FirstOrDefault(); if (pag != null) { scadenzaDto.DataPagamento = pag.Data; if (pag.RitenutaAcconto != null) { scadenzaDto.DataPagamentoRitenuta = pag.RitenutaAcconto.DataPagamentoRitenuta; scadenzaDto.ImportoInteressi = pag.RitenutaAcconto.ImportoInteressi; scadenzaDto.ImportoSanzioni = pag.RitenutaAcconto.ImportoSanzione; scadenzaDto.ImportoRitenuta = pag.RitenutaAcconto.Importo.GetValueOrDefault(); } if(spesa.AliquotaRitenuta > 0) { scadenzaDto.RitenutaNONPagata = true; if (pag.RitenutaAcconto != null && pag.RitenutaAcconto.Importo > 0 && pag.RitenutaAcconto.Stato == StatoRitenutaEnum.PagataAltroAmministratore) scadenzaDto.RitenutaNONPagata = false; } } dto.Scadenze.Add(scadenzaDto); } dto.Dettagli = new DettaglioSpesaFiscaleDTO[spesa.Dettagli.Count]; int indexDettaglio = 0; foreach (var dettaglio in spesa.Dettagli) { var dtoDettaglio = new DettaglioSpesaFiscaleDTO { AliquotaIva = dettaglio.AliquotaIva, Descrizione = dettaglio.Descrizione, ID = dettaglio.ID, IdSpesaRiferimento = spesa.ID, Imponibile = dettaglio.Imponibile, ImportoIva = dettaglio.ImportoIva, ImportoLordo = dettaglio.ImportoLordo, IsDeleteAllow = dettaglio.IsDeleteAllow(), NumeroRiga = dettaglio.NumeroRiga, SoggettoRitenutaAcconto = dettaglio.SoggettoRitenutaAcconto, Version = dettaglio.Version }; dto.Dettagli[indexDettaglio] = dtoDettaglio; indexDettaglio++; } return dto; } catch (Exception ex) { _log.Fatal("Errore inaspettato nel recupero di una spesa FISCALE - " + Utility.GetMethodDescription() + " - spesa:" + idSpesa, ex); throw; } }
public SpesaInfoDTO SalvaFiscale(SpesaFiscaleDTO dto) { try { var message = string.Empty; var fornitore = _daoFactory.GetFornitoreDao().GetById(dto.IdFornitore, false); var esercizio = _daoFactory.GetEsercizioDao().Find(dto.IdEsercizio, false); if (esercizio == null) throw new InvalidDataException("L'esercizio selezionato non è più presente in archivio."); GestioneCondomini.Domain.Spesa spesa; if (dto.ID == 0) { spesa = new GestioneCondomini.Domain.Spesa(fornitore, esercizio, null); var protocollo = _protocolloService.GetProgressivo(TipoProtocollo.Fattura, esercizio.DataApertura.GetValueOrDefault().Year, esercizio.CondominioRiferimento); if (protocollo.Progressivo != null) { spesa.NumeroProtocollo = protocollo.Progressivo; _daoFactory.GetSpesaDao().SaveOrUpdate(spesa); } else message = protocollo.Message + Environment.NewLine; } else { spesa = _daoFactory.GetSpesaDao().GetById(dto.ID, false); spesa.FornitoreRiferimento = fornitore; spesa.EsercizioRiferimento = esercizio; } var info = new SpesaInfoDTO(); if (string.IsNullOrEmpty(message)) { spesa.ImportoRitenuta = dto.Scadenze.Sum(item => item.ImportoRitenuta); spesa.AltreSpese = dto.AltreSpese; spesa.AltreSpeseEsenti = dto.SpeseEsenti; spesa.SpeseEsentiRitenuta = dto.SpeseEsentiRitenuta; spesa.CassaProfessionisti = dto.CassaProfessionisti; spesa.DataDocumento = dto.DataDocumento; spesa.NumeroDocumento = dto.NumeroDocumento; spesa.AliquotaRitenuta = dto.AliquotaRitenuta; spesa.IsAbilitataArchiviazioneOttica = dto.IsAbilitataArchiviazioneOttica; spesa.IsRitenutaCalcoloImponibile = dto.IsRitenutaCalcoloImponibile; spesa.Stato = StatoSpesaEnum.Pagata; spesa.TipoDocumento = dto.TipoDocumento; spesa.Detrazione = dto.Detrazione; spesa.EsenteRegimeMinimo = dto.EsenteRegimeMinimo; // ---------------------------------------------------- // Dettagli // ---------------------------------------------------- spesa.Dettagli.Clear(); var index = 0; foreach (var dtoDettaglio in dto.Dettagli) { index++; DettaglioSpesa dettaglio; if (dtoDettaglio.ID == 0) dettaglio = new DettaglioSpesa(spesa, index); else { dettaglio = _daoFactory.GetDettaglioSpesaDao().GetById(dtoDettaglio.ID, false); dettaglio.NumeroRiga = index; spesa.Dettagli.Add(dettaglio); } dettaglio.AliquotaIva = dtoDettaglio.AliquotaIva; dettaglio.Descrizione = dtoDettaglio.Descrizione; dettaglio.ImportoIva = dtoDettaglio.ImportoIva; dettaglio.ImportoLordo = dtoDettaglio.ImportoLordo; dettaglio.SoggettoRitenutaAcconto = dtoDettaglio.SoggettoRitenutaAcconto; } // ---------------------------------------------------- // Scadenze / Pagamenti // ---------------------------------------------------- // Pulizia movimenti, scadenze e pagamenti presenti foreach (var scadenza in spesa.Scadenze) { foreach (var pagamento in scadenza.Pagamenti) _daoFactory.GetPagamentoDao().Delete(pagamento); _daoFactory.GetScadenzaFatturaDao().Delete(scadenza); } spesa.Scadenze.Clear(); foreach (var scadenzaDto in dto.Scadenze) { var scadenzaNew = new ScadenzaFattura(spesa, scadenzaDto.DataPagamento, scadenzaDto.Importo) { Stato = StatoSpesaEnum.Pagata }; var pagamentoNew = new Pagamento(scadenzaNew, null, scadenzaNew.Importo, scadenzaNew.Scadenza, TipoPagamentoFatturaEnum.Immediato) { Stato = StatoSpesaEnum.Pagata }; scadenzaNew.Pagamenti.Add(pagamentoNew); _daoFactory.GetScadenzaFatturaDao().SaveOrUpdate(scadenzaNew); // ----------------------------------------------------- // Ritenuta // ----------------------------------------------------- // ritenuta PAGATA dal vecchio amministratore i dati, compresi interessi e sanzioni servono per il modello 770 var ritenuta = new Ritenuta(scadenzaDto.ImportoRitenuta); if (!scadenzaDto.RitenutaNONPagata) { ritenuta.Stato = StatoRitenutaEnum.PagataAltroAmministratore; ritenuta.DataPagamentoRitenuta = scadenzaDto.DataPagamentoRitenuta; ritenuta.ImportoInteressi = scadenzaDto.ImportoInteressi; ritenuta.ImportoSanzione = scadenzaDto.ImportoSanzioni; } // ritenuta NON Pagata inserita come da pagare else { ritenuta.Stato = StatoRitenutaEnum.Inserita; ritenuta.DataPagamentoRitenuta = null; _daoFactory.GetSpesaDao().SaveOrUpdate(spesa); _movimentoContabileService.SetMovimentiRitenutaPagataAltroAmministratore(spesa, scadenzaDto.DataPagamento.GetValueOrDefault()); } pagamentoNew.RitenutaAcconto = ritenuta; } info = new SpesaInfoDTO { Id = spesa.ID, NumeroProtocollo = spesa.NumeroProtocollo.GetValueOrDefault(), }; if (spesa.IsAbilitataArchiviazioneOttica) { var impostazioni = _daoFactory.GetImpostazioniAziendaDao().GetByAzienda(spesa.EsercizioRiferimento.CondominioRiferimento.Azienda.ID); info.IdentificativoArchiviazione = _archiviazioneService.GetIdentificativoArchiviazione(spesa); info.StampaEtichettaArchiviazione = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture && spesa.EsercizioRiferimento.CondominioRiferimento.IsAbilitataArchiviazioneOtticaPassivi.GetValueOrDefault(); info.EtichettatriceArchiviazione = impostazioni.EtichettatriceArchiviazioneOttica; info.TipoEtichettaArchiviazione = impostazioni.TipoEtichettaArchiviazioneOttica; } spesa.Stato = StatoSpesaEnum.PagataAltroAmministratore; } else info.Message = message; return info; } catch (Exception ex) { _log.Fatal("Errore inaspettato nel salvataggio della spesa FISCALE - " + Utility.GetMethodDescription() + " - spesa:" + dto.ID, ex); throw; } }
public SpesaInfoDTO SalvaSpesaFiscale(SpesaFiscaleDTO spesa, UserInfo userinfo) { var retryCount = 10; var success = false; var windsorRep = new WindsorConfigRepository(); var item = new SpesaInfoDTO { Id = 0, Message = "Un altro utente ha confermato un movimento.", StampaEtichettaArchiviazione = false, IdentificativoArchiviazione = null, NumeroProtocollo = 0 }; while (retryCount >= 0 && !success) { try { windsorRep.BeginTransaction(userinfo); var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<ISpesaService>(); item = service.SalvaFiscale(spesa); windsorRep.Commit(); success = true; } catch (InvalidDataException ex) { windsorRep.Rollback(); return new SpesaInfoDTO { Message = ex.Message }; } catch (Exception ex) { windsorRep.Rollback(); if (!isRetryException(ex)) { _log.ErrorFormat("Errore nel salvataggio della spesa fiscale - TENTATIVO:{0} - {1} - id:{2} - azienda:{3} - number:{4}", ex, (11 - retryCount), Utility.GetMethodDescription(), spesa.ID, userinfo.Azienda, getExceptionId(ex)); throw; } // Add delay here if you wish. System.Threading.Thread.Sleep(1000 * (11 - retryCount)); retryCount--; _log.ErrorFormat("Salvataggio della spesa fiscale - INIZIO TENTATIVO:{0} - {1} - id:{2} - azienda:{3}", (11 - retryCount), Utility.GetMethodDescription(), spesa.ID, userinfo.Azienda); } } if (!success) windsorRep.Rollback(); return item; }