private void listaMouseUp(object sender, MouseEventArgs e) { _dettaglioDatiCertificazioneClick = null; if (e.Button == MouseButtons.Right) { _dettaglioDatiCertificazioneClick = DataGridHelper.GetCellEvent<DettaglioDatiCertificazioneDTO>(lista, e); if (_dettaglioDatiCertificazioneClick != null) contextMenuStrip1.Show(lista, e.X, e.Y); } }
private List<DatiCertificazioneDTO> setDatiCertificazione(List<DatiCertificazioneDTO> dati, Pagamento pag, DateTime? dataPagamentoRitenuta, int anno, bool esenteRegimeMinimo) { if (pag.RitenutaAcconto != null && (pag.RitenutaAcconto.Importo.GetValueOrDefault() != 0 || esenteRegimeMinimo)) { var datiCertificazione = (from item in dati where item.IdCondominio == pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ID && item.IdFornitore == pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.ID select item).SingleOrDefault(); if (datiCertificazione == null) { datiCertificazione = new DatiCertificazioneDTO { DescrizioneFornitore = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.DisplayName, IdFornitore = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.ID, IdPersona = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.ID, CodiceCondominio = pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Codice, IdCondominio = pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ID, DescrizioneCondominio = pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Descrizione, CodiceFiscaleCondominio = pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.CodiceFiscale, CodiceFiscaleFornitore = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.CodiceFiscale, PartitaIvaFornitore = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.PartitaIva, EsenteRegimeMinimo = esenteRegimeMinimo }; var contatti = new ContattoCollection(pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Contatti); var contattoEmail = contatti.GetFirstContatto<Email>(); if (contattoEmail != null) datiCertificazione.Email = contattoEmail.Valore; var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>(); if(contattoEmailCertificato != null) datiCertificazione.EmailCertificata = contattoEmailCertificato.Valore; var contattoFax = contatti.GetFirstContatto<Fax>(); if (contattoFax != null) datiCertificazione.Fax = contattoFax.Valore; var contattoCellulare = contatti.GetFirstContatto<Cellulare>(); if (contattoCellulare != null) datiCertificazione.Cellulare = contattoCellulare.Valore; if (pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.IndirizzoResidenza != null) { var indirizzo = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.IndirizzoResidenza.DisplayNameArray; datiCertificazione.IndirizzoFornitore = indirizzo[0]; datiCertificazione.SecondaRigaIndirizzoFornitore = indirizzo[1]; datiCertificazione.CapFornitore = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.IndirizzoResidenza.Cap; if (pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.IndirizzoResidenza.Comune != null) datiCertificazione.ComuneFornitore = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.IndirizzoResidenza.Comune.Descrizione; } if (pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Indirizzo != null) { var indirizzo = pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Indirizzo.DisplayNameArray; datiCertificazione.IndirizzoCondominio = indirizzo[0]; datiCertificazione.SecondaRigaIndirizzoCondominio = indirizzo[1]; } datiCertificazione.Dettaglio = new List<DettaglioDatiCertificazioneDTO>(); dati.Add(datiCertificazione); } // ======================================================== // Dettagli della certificazione // ======================================================== var dettaglioDatiCertificazione = new DettaglioDatiCertificazioneDTO { IdCondominio = datiCertificazione.IdCondominio, IdFornitore = datiCertificazione.IdFornitore, CodiceTributo = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.CodiceTributo, DataFattura = pag.ScadenzaRiferimento.SpesaRiferimento.DataDocumento.GetValueOrDefault(), NumeroFattura = pag.ScadenzaRiferimento.SpesaRiferimento.NumeroDocumento, DataPagamentoFattura = pag.Data.GetValueOrDefault(), DataPagamentoRitenuta = dataPagamentoRitenuta, IdFattura = pag.ScadenzaRiferimento.SpesaRiferimento.ID, ImportoIva = pag.ScadenzaRiferimento.SpesaRiferimento.ImportoIva, ImportoImponibile = pag.ScadenzaRiferimento.SpesaRiferimento.Imponibile, ImportoRitenuta = pag.RitenutaAcconto.Importo.GetValueOrDefault(), PercentualeRitenuta = pag.ScadenzaRiferimento.SpesaRiferimento.AliquotaRitenuta.GetValueOrDefault() * 100, CompensiSoggetti = esenteRegimeMinimo ? 0m : pag.ScadenzaRiferimento.SpesaRiferimento.GetImponibileRitenuta(), CompensiNonSoggetti = esenteRegimeMinimo ? pag.ScadenzaRiferimento.SpesaRiferimento.GetImponibileRitenuta() : pag.ScadenzaRiferimento.SpesaRiferimento.AltreSpese.GetValueOrDefault(), AltreSpeseNonSoggette = pag.ScadenzaRiferimento.SpesaRiferimento.SpeseEsentiRitenuta.GetValueOrDefault(), ImportoTotale = pag.ScadenzaRiferimento.SpesaRiferimento.ImportoLordo, ImportoPagato = pag.Importo.GetValueOrDefault() }; // In casi di pagamento parziale if (pag.ScadenzaRiferimento.SpesaRiferimento.ImportoLordo - pag.ScadenzaRiferimento.SpesaRiferimento.ImportoRitenuta.GetValueOrDefault() != pag.Importo) { var percentualePagata = 1m; // Nel caso in cui l'importo lordo corrisponde con la ritenuta siamo nel caso di fattura da bilancio di apertura inserita in modo non corretto bugid#7583 var denominatore = pag.ScadenzaRiferimento.SpesaRiferimento.ImportoLordo; // Nel caso di fattura inserita in bilancio d'apertura con conto "Ritenuta Fiscale" non devo sottrarre l'importo della ritenuta bugid#9391 if (pag.ScadenzaRiferimento.SpesaRiferimento.TipoDocumento.ToUpper() != "FATBILAPP" || pag.ScadenzaRiferimento.SpesaRiferimento.MovimentiBollette.FirstOrDefault() == null || pag.ScadenzaRiferimento.SpesaRiferimento.MovimentiBollette.FirstOrDefault().ContoRiferimento.Codice != "904") denominatore -= pag.ScadenzaRiferimento.SpesaRiferimento.ImportoRitenuta.GetValueOrDefault(); if (denominatore != 0) percentualePagata = pag.Importo.GetValueOrDefault() / denominatore; dettaglioDatiCertificazione.ImportoTotale = dettaglioDatiCertificazione.ImportoTotale * percentualePagata; dettaglioDatiCertificazione.CompensiSoggetti = dettaglioDatiCertificazione.CompensiSoggetti * percentualePagata; dettaglioDatiCertificazione.CompensiNonSoggetti = dettaglioDatiCertificazione.CompensiNonSoggetti * percentualePagata; dettaglioDatiCertificazione.ImportoIva = dettaglioDatiCertificazione.ImportoIva * percentualePagata; dettaglioDatiCertificazione.ImportoImponibile = dettaglioDatiCertificazione.ImportoImponibile * percentualePagata; dettaglioDatiCertificazione.AltreSpeseNonSoggette = dettaglioDatiCertificazione.AltreSpeseNonSoggette*percentualePagata; } // Per le fatture da bilancio di apertura il campo AltreSpeseEsenti viene usato come: SpeseEsentiRitenuta perchè il campo SpeseEsentiRitenuta non è presente // occorre quindi sottrarre il valore di tale campo per i CompensiSoggetti bugid#4139 if (pag.ScadenzaRiferimento.SpesaRiferimento.TipoDocumento == "FATBILAPP") { dettaglioDatiCertificazione.CompensiSoggetti -= pag.ScadenzaRiferimento.SpesaRiferimento.AltreSpeseEsenti.GetValueOrDefault(); } datiCertificazione.Dettaglio.Add(dettaglioDatiCertificazione); } return dati; }