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

Dona suport a aquest servei

Desenvolupament de programari i aplicacions a mida

Llegir el codi