Calendari fiscal espanyol
Quan venç cada model de l’Agència Tributària, calculat i no copiat d’una taula.
Llibreries de codi obert · Python · Codi publicat
El problema
La data de venciment sembla una dada i és un càlcul. El dia canvia segons el model, es trasllada si cau en dissabte, diumenge o festiu, i s’avança cinc dies si el pagament va domiciliat. Qualsevol calendari escrit a mà és correcte l’any en què s’escriu i silenciosament fals l’any següent.
Què fa
- Calcula la data límit dels models trimestrals, anuals i de campanya de l’Agència Tributària.
- Trasllada el venciment quan cau en dia inhàbil, segons l’article 30.5 de la Llei 39/2015.
- Escurça el termini cinc dies quan la presentació va amb domiciliació bancària.
- Situa el Divendres Sant amb l’algorisme de Meeus, Jones i Butcher, en lloc de llistar anys a mà.
El que es va decidir en construir-lo
- La Pasqua es calcula, no es llista
- El Divendres Sant és l’únic festiu estatal que es mou, i la temptació és escriure deu anys en una taula. Aquesta taula caduca sense avisar: l’any onze retorna una data equivocada i ningú no hi veu res estrany. Amb l’algorisme de Meeus, Jones i Butcher l’any onze surt igual de bé que el primer.
- El trasllat surt de la llei que ho diu
- Que un termini que venç en inhàbil passi al següent hàbil no és un costum: és l’article 30.5 de la Llei 39/2015, i està citat al codi al costat de la línia que l’aplica. Una regla sense la seva norma al costat és una regla que ningú no pot revisar sense tornar a investigar-la sencera.
- La domiciliació escurça el termini, no l’allarga
- Domiciliar el pagament avança cinc dies la data real de presentació, i és l’equivocació més cara de totes perquè va en la direcció contrària a la intuïció: qui creu que domiciliar dona marge presenta fora de termini. És un paràmetre explícit, no un cas especial amagat.
Fins on arriba
- No emplena cap model, no calcula cap import i no presenta res davant l’Agència.
- No és assessorament fiscal: diu quan venç un model, no si hi ha obligació de presentar-lo.
- La cobertura és la llista de models declarada al repositori. Un model que no hi sigui no té data.
- El model 100 només retorna data per als anys de campanya verificats al repositori.
- 0 dependències
- MIT llicència
- 3.9+ Python
Construït amb
- Python
- datetime