Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
        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;
        }