You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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...
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
The text was updated successfully, but these errors were encountered:
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
The text was updated successfully, but these errors were encountered: