Closed matteoopenf closed 10 months ago
Ciao, qual è il codice di errore dello SdI?
Ciao, qual è il codice di errore dello SdI?
cerco subito asp, sto anche per fare una PR
@TheMule71 Eccolo
Ok se fai la PR occhio a https://github.com/OCA/l10n-italy/pull/2602
Il caso di cliente EU senza CF va preservato.
Il problema si pone solo per cliente IT, per il quale non va aggiunta la PIVA se presente il cod. fiscale.
Ok se fai la PR occhio a #2602
Il caso di cliente EU senza CF va preservato.
Il problema si pone solo per cliente IT, per il quale non va aggiunta la PIVA se presente il cod. fiscale.
provo e mi dici che ne pensi ancora qualche minuto
@TheMule71 pensavo di girare un attimo la cosa pensavo di controllare se il partner ha la vat allora metto il tag altrimenti no https://github.com/OCA/l10n-italy/pull/2973 ecco cosa intendo dimmi pure cosa ne pensi. Che ho testato in locale qualche XML e va, però dimmi pure
ho inoltre pensato in questo modo perchè ci sono Aziende che hanno PIVA e Codice fiscale e essi sono diversi perchè fanno parte di gruppi IVA, quindi non posso solo vedere se hanno CF e allora non mettere la PIVA
Per riassumere le regole:
IdFiscaleIVA
e CodiceFiscale
deve essere presente;IdFiscaleIVA.IdPaese == 'IT'
allora IdCodice
deve essere una PIVA valida in Italia;IdFiscaleIVA.IdPaese != 'IT'
nessuno controllo viene fatto su IdCodice
.Ciò permette di gestire il caso di sia assenza piva sia cf per l'estero inserendo IdCodice
pari a un valore fittizio come XX99999999
.
L'assenza di entrambi per IT è una casistica possibile? Da come la capisco io, no.
Pensavo quindi di cambiare il metodo così def get_id_fiscale_iva(partner, prefer_fiscalcode=False): id_paese = partner.country_id.code
if partner.vat:
if id_paese == "IT" and partner.vat.startswith("IT"):
id_codice = partner.vat[2:]
else:
id_codice = partner.vat
elif id_paese == 'IT' and not partner.vat and partner.fiscalcode:
id_codice = False
else:
id_codice = "99999999999"
if prefer_fiscalcode and partner.fiscalcode:
id_codice = partner.fiscalcode
return {
"id_paese": id_paese,
"id_codice": id_codice,
}
e ti mettere il t-if sul template come mi hai indicato sulla PR
Che dici di
def get_id_fiscale_iva(partner):
id_paese = partner.country_id.code
if partner.vat:
if id_paese == "IT" and partner.vat.startswith("IT"):
id_codice = partner.vat[2:]
else:
id_codice = partner.vat
elif partner.fiscalcode or id_paese == "IT":
id_codice = False
else:
id_codice = "99999999999"
return {
"id_paese": id_paese,
"id_codice": id_codice,
}
from typing import NamedTuple
class Country(NamedTuple):
code: str
class Partner:
def __init__(self, cc, piva=None, cf=None):
self.country_id = Country(cc)
self.vat = piva
self.fiscalcode = cf
def __str__(self):
return "P({}, {}, {})".format(self.country_id.code, self.vat, self.fiscalcode)
def test_one(partner):
print(partner)
print(get_id_fiscale_iva(partner))
print()
test_one(Partner("GB", "IX06363391001", "06363391001"))
test_one(Partner("GB", "IX06363391001"))
test_one(Partner("GB", None, "06363391001"))
test_one(Partner("GB"))
test_one(Partner("IT", "IT06363391001", "06363391001"))
test_one(Partner("IT", "IT06363391001"))
test_one(Partner("IT", None, "06363391001"))
test_one(Partner("IT"))
P(GB, IX06363391001, 06363391001)
{'id_paese': 'GB', 'id_codice': 'IX06363391001'}
P(GB, IX06363391001, None)
{'id_paese': 'GB', 'id_codice': 'IX06363391001'}
P(GB, None, 06363391001)
{'id_paese': 'GB', 'id_codice': False}
P(GB, None, None)
{'id_paese': 'GB', 'id_codice': '99999999999'}
P(IT, IT06363391001, 06363391001)
{'id_paese': 'IT', 'id_codice': '06363391001'}
P(IT, IT06363391001, None)
{'id_paese': 'IT', 'id_codice': '06363391001'}
P(IT, None, 06363391001)
{'id_paese': 'IT', 'id_codice': False}
P(IT, None, None)
{'id_paese': 'IT', 'id_codice': False}
In pratica, se c'è la piva, la restituisce, strippando IT se è il caso. Se non c'è la piva, e c'è il c.f., restituisce False Se non ci sono né la piva né il c.f. restiutisce 99999999999 per l'estero, False per IT.
L'ultimo caso, False per IT darebbe un XML non valido ma non è un problema è una cosa gestita (o da gestire) molto prima di arrivare al template, tipo preventive_checks, oppure res_partner rende obbligatatoria la piva per le aziende e il cf per i privati in IT.
Pensate riusciremo ad avere una fix mergiata per la fine del mese? Questo è un bug di modesta entità, a mio avviso.
Scusate tutti ma questa situazione ha bisogno di essere risolta, non possiamo tenere bloccate istanze con questo problema. Propongo di unmergiare la https://github.com/OCA/l10n-italy/pull/2602 e continuare la discussione per poi mergiare solo nel momento in cui si coprono tutte le casistiche.
@tafaRU @TheMule71 @matteoopenf @mmaridev
Scusate tutti ma questa situazione ha bisogno di essere risolta, non possiamo tenere bloccate istanze con questo problema. Propongo di unmergiare la #2602 e continuare la discussione per poi mergiare solo nel momento in cui si coprono tutte le casistiche.
@tafaRU @TheMule71 @matteoopenf @mmaridev
Se comunque mettiamo preferfiscalcode = False sul parametro iniziale i test passano e poi possiamo dedicarci a tutto il resto
Scusate tutti ma questa situazione ha bisogno di essere risolta, non possiamo tenere bloccate istanze con questo problema. Propongo di unmergiare la #2602 e continuare la discussione per poi mergiare solo nel momento in cui si coprono tutte le casistiche. @tafaRU @TheMule71 @matteoopenf @mmaridev
Se comunque mettiamo preferfiscalcode = False sul parametro iniziale i test passano e poi possiamo dedicarci a tutto il resto
puoi procedere tu ?
Scusate tutti ma questa situazione ha bisogno di essere risolta, non possiamo tenere bloccate istanze con questo problema. Propongo di unmergiare la #2602 e continuare la discussione per poi mergiare solo nel momento in cui si coprono tutte le casistiche. @tafaRU @TheMule71 @matteoopenf @mmaridev
Se comunque mettiamo preferfiscalcode = False sul parametro iniziale i test passano e poi possiamo dedicarci a tutto il resto
puoi procedere tu ?
Ho in programma di farlo, perchè appunto abbiamo il problema interno, pr per i vari casi e cerco anche di esporre al meglio il mio punto di vista nei prossimi giorni
Per cortesia, riportate se il problema specifico di questa issue è risolto che la chiudiamo. Altri problemi sarebbe meglio affrontarli in una issue dedicata.
Per cortesia, riportate se il problema specifico di questa issue è risolto che la chiudiamo.
Altri problemi sarebbe meglio affrontarli in una issue dedicata.
Va bene
Module
l10n_it_fatturapa_out
Describe the bug
Quando si esporta una fattura verso privati che hanno solo il codice fiscale. Odoo attualmente mette oltre il codice fiscale anche la partita IVA 99999999 come se il cliente fosse estero e poi viene scartata.
To Reproduce
Steps to reproduce the behavior:
Expected behavior Non vi sia la parte IT99999999 in caso di cliente privato
Additional context Add any other context about the problem here. (e.g. OS, Python version, ...)