Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Validazione: Errore 00411 su fatture con ritenuta #425

Open
FantacciSimone opened this issue Jan 17, 2025 · 0 comments
Open

Validazione: Errore 00411 su fatture con ritenuta #425

FantacciSimone opened this issue Jan 17, 2025 · 0 comments

Comments

@FantacciSimone
Copy link

Salve,
ho alcune fatture di professionisti con ritenuta che in fase di validazione segnalano un errore, 00411.
Analizzando l'xml e i relativi controlli non mi pare ci sia un errore nei dati...

<FatturaElettronicaBody> <DatiGenerali> <DatiGeneraliDocumento> <TipoDocumento>TD01</TipoDocumento> <Divisa>EUR</Divisa> <Data>2024-12-03</Data> <Numero>13/001</Numero> <DatiRitenuta> <TipoRitenuta>RT01</TipoRitenuta> <ImportoRitenuta>400.00</ImportoRitenuta> <AliquotaRitenuta>20.00</AliquotaRitenuta> <CausalePagamento>A</CausalePagamento> </DatiRitenuta> <DatiCassaPrevidenziale> <TipoCassa>TC02</TipoCassa> <AlCassa>4.00</AlCassa> <ImportoContributoCassa>80.00</ImportoContributoCassa> <ImponibileCassa>2000.00</ImponibileCassa> <AliquotaIVA>22.00</AliquotaIVA> </DatiCassaPrevidenziale> <ImportoTotaleDocumento>2537.60</ImportoTotaleDocumento> </DatiGeneraliDocumento> </DatiGenerali> <DatiBeniServizi> <DettaglioLinee> <NumeroLinea>1</NumeroLinea> <Descrizione>Compenso revisore anno 2024</Descrizione> <Quantita>1.00000000</Quantita> <PrezzoUnitario>2000.00000000</PrezzoUnitario> <PrezzoTotale>2000.00000000</PrezzoTotale> <AliquotaIVA>22.00</AliquotaIVA> <Ritenuta>SI</Ritenuta> </DettaglioLinee> <DatiRiepilogo> <AliquotaIVA>22.00</AliquotaIVA> <ImponibileImporto>2080.00</ImponibileImporto> <Imposta>457.60</Imposta> <EsigibilitaIVA>I</EsigibilitaIVA> <RiferimentoNormativo>22 - 22% - GENERICO</RiferimentoNormativo> </DatiRiepilogo> </DatiBeniServizi> <DatiPagamento> <CondizioniPagamento>TP02</CondizioniPagamento> <DettaglioPagamento> <ModalitaPagamento>MP05</ModalitaPagamento> <DataScadenzaPagamento>2024-12-03</DataScadenzaPagamento> <ImportoPagamento>2137.60</ImportoPagamento> <IBAN>IT00I0000000000000000000000</IBAN> </DettaglioPagamento> </DatiPagamento> </FatturaElettronicaBody>

La classe riporta queste regole:

using FatturaElettronica.Ordinaria.FatturaElettronicaBody;
using FluentValidation;

namespace FatturaElettronica.Validators
{
public class FatturaElettronicaBodyValidator : AbstractValidator
{
public FatturaElettronicaBodyValidator()
{
[ ... ]
RuleFor(x => x.DatiGenerali.DatiGeneraliDocumento.DatiRitenuta)
.Must((body, _) => DatiRitenutaAgainstDettaglioLinee(body))
.When(x => x.DatiGenerali.DatiGeneraliDocumento.DatiRitenuta.Count == 0)
.WithMessage(
"DatiRitenuta non presente a fronte di almeno un blocco DettaglioLinee con Ritenuta uguale a SI")
.WithErrorCode("00411");
[ ... ]

Ed i test:

[TestMethod]
public void DatiRitenutaValidateAgainstError00411()
{
Challenge.DatiBeniServizi.DettaglioLinee.Add(new() {Ritenuta = "SI"});
var r = Validator.Validate(Challenge);
Assert.AreEqual("00411",
r.Errors.FirstOrDefault(x => x.PropertyName == "DatiGenerali.DatiGeneraliDocumento.DatiRitenuta")
?.ErrorCode);
Challenge.DatiBeniServizi.DettaglioLinee[0].Ritenuta = null;
r = Validator.Validate(Challenge);
Assert.IsNull(r.Errors.FirstOrDefault(x =>
x.PropertyName == "DatiGenerali.DatiGeneraliDocumento.DatiRitenuta"));
}

Sono però quasi sicuro che in una vecchia versione precedente alla 3.4.16 questo tipo di messaggio non era presente; di fatto il dettaglio della ritenuta era visibile in una anteprima di stampa. Non riesco quindi a capire come risolvere...ogni consiglio o esperienza di altri utilizzatori è ben accetto, ringrazio anticipatamente!
Simone

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant