Archives de la liste a​i​d​e​@p​a​h​e​k​o​.c​l​o​u​d​

SQL d'extraction des reçus fiscaux 2020

centrO (Association Choeur des Centraux)

26/12/2020 08:07:32

Vous l'attendiez tous, voici le SQL d'extraction conforme au nouveau 
modèle de base de données. A faire tourner sur un outil qui peut ensuite 
sortir le résultat en CSV (un SQLite Browser exécuté sur un 
téléchargement de votre base après cloture), et vous injectez ensuite 
dans un publipostage qui va bien (Word ou LibreOffice ou autres). 
J'utilise le numéro d'écriture comme numéro de reçu, ainsi il est 
garanti unique par la machine, et facile à retrouver en compta en cas de 
controle fiscal. Il n'y a pas de centimes dans le format du montant, 
mettre 2f si vous voulez les centimes.

Petit problème : il n'y a plus de mode de paiement dans la base 
(dommage), il a donc fallu filtrer sur les comptes utilisés (comptes de 
classe 5 égaux à "SG, Caisse, chèques à encaisser"), et mettre un moyen 
de paiement générique" Chèque/Virement". Bien sur on ne sort pas de reçu 
pour les contributions HelloAsso.

Attention, j'ai modifié ma base pour séparer nom et prénom (c'est un 
choix, différent de celui de BohwaZ) donc à adapter chez vous. Pareil 
pour les intitulés des comptes bancaires.

Bonne journée, à votre disposition pour tous commentaires et merci pour 
vos améliorations éventuelles.

Jean-Pierre.

select m.nom "Nom",
m.prenom "Prénom",
at.id "Num recu",
printf("%.0f", atl.debit/100) "Montant",
strftime('%d/%m/%Y', at.date) "Date Adh",
m.civilite "Civilité",
m.adresse "Adresse",
m.code_postal "Code Postal",
m.ville "Ville",
"Chèque/Virement" "Moyen Paiement"
from acc_transactions at,acc_transactions_lines atl,acc_accounts aa, 
acc_transactions_users atu,
membres m
where at.id=atl.id_transaction and atl.id_account=aa.id
and atu.id_transaction=at.id
and atu.id_user=m.id
and aa.code like "5%"
and (aa.label in ("Société Générale", "Caisse", "Chèques à
encaisser"))
and strftime('%Y', at.date) = "2020"

Re: SQL d'extraction des reçus fiscaux 2020

team spipfactoy

26/12/2020 10:53:21

Merci beaucoup

mais en l'état et n'étant pas du tout au fait du code

je ne serais pas m'en servir sur un garradin non modifié

;)


Le 26/12/2020 à 08:07, centrO (Association Choeur des Centraux) a écrit :
> Vous l'attendiez tous, voici le SQL d'extraction conforme au nouveau
> modèle de base de données. A faire tourner sur un outil qui peut ensuite
> sortir le résultat en CSV (un SQLite Browser exécuté sur un
> téléchargement de votre base après cloture), et vous injectez ensuite
> dans un publipostage qui va bien (Word ou LibreOffice ou autres).
> J'utilise le numéro d'écriture comme numéro de reçu, ainsi il
est
> garanti unique par la machine, et facile à retrouver en compta en cas de
> controle fiscal. Il n'y a pas de centimes dans le format du montant,
> mettre 2f si vous voulez les centimes.
>
> Petit problème : il n'y a plus de mode de paiement dans la base
> (dommage), il a donc fallu filtrer sur les comptes utilisés (comptes de
> classe 5 égaux à "SG, Caisse, chèques à encaisser"), et mettre un
moyen
> de paiement générique" Chèque/Virement". Bien sur on ne sort pas de
reçu
> pour les contributions HelloAsso.
>
> Attention, j'ai modifié ma base pour séparer nom et prénom (c'est
un
> choix, différent de celui de BohwaZ) donc à adapter chez vous. Pareil
> pour les intitulés des comptes bancaires.
>
> Bonne journée, à votre disposition pour tous commentaires et merci pour
> vos améliorations éventuelles.
>
> Jean-Pierre.
>
> select m.nom "Nom",
> m.prenom "Prénom",
> at.id "Num recu",
> printf("%.0f", atl.debit/100) "Montant",
> strftime('%d/%m/%Y', at.date) "Date Adh",
> m.civilite "Civilité",
> m.adresse "Adresse",
> m.code_postal "Code Postal",
> m.ville "Ville",
> "Chèque/Virement" "Moyen Paiement"
> from acc_transactions at,acc_transactions_lines atl,acc_accounts aa,
> acc_transactions_users atu,
> membres m
> where at.id=atl.id_transaction and atl.id_account=aa.id
> and atu.id_transaction=at.id
> and atu.id_user=m.id
> and aa.code like "5%"
> and (aa.label in ("Société Générale", "Caisse",
"Chèques à encaisser"))
> and strftime('%Y', at.date) = "2020"
>

Re: SQL d'extraction des reçus fiscaux 2020

Francois WEINACKER

26/12/2020 11:13:37

Bonjour,

Merci pour cette requête, je n'étais pas encore aux recus, mais cela va
m'aider.
Pour le moyen de paiement, j'ai adapté ta requête pour tester le compte
comptable,ce qui permet de préciser chèque, especes,...(le bloc CASE

select m.nom "Nom",
m.prenom "Prénom",
at.id "Num recu",
printf("%.0f", atl.debit/100) "Montant",
strftime('%d/%m/%Y', at.date) "Date Adh",
m.civilite "Civilité",
m.adresse "Adresse",
m.code_postal "Code Postal",
m.ville "Ville",
CASE aa.code
WHEN '5112' THEN 'Chèque'
WHEN '53' THEN 'Espèces'
ELSE 'Chèque/Virement'
END as "Moyen Paiement"
from acc_transactions at,acc_transactions_lines atl,acc_accounts aa,
acc_transactions_users atu,
membres m
where at.id=atl.id_transaction and atl.id_account=aa.id
and atu.id_transaction=at.id
and atu.id_user=m.id
and aa.code like "5%"
and (aa.label in ("Société Générale", "Caisse", "Chèques à
encaisser"))
and strftime('%Y', at.date) = "2020"

Re: SQL d'extraction des reçus fiscaux 2020

centrO (Association Choeur des Centraux)

26/12/2020 15:33:10

Le 26/12/2020 à 10:51, team spipfactoy a écrit :
>
> Merci beaucoup
>
> mais en l'état et n'étant pas du tout au fait du code
>
> je ne serais pas m'en servir sur un garradin non modifié
>
> ;)
>
Ma  modif est très mineure : il suffit d'enlever le prénom (puisqu'en 
Garradin "normal" le champ "Nom" contient l'identité complète)
et 
d'adapter les champs banque.

Avec les modifs de François ça donne (NB : il est juste dommage encore 
une fois d'induire le type de règlement du compte sur lequel il a été 
imputé à la saisie - ici il faut mettre les chèques en chèques en 
attente d'encaissement, et les virements directement sur la banque 
"512A", et la banque de HelloAsso doit etre la "512B" sinon il faut 
remplacer tous ces numéros de compte par ceux qui vont bien) :

select m.nom "Nom",
m.prenom "Prénom",
at.id "Num recu",
printf("%.0f", atl.debit/100) "Montant",
strftime('%d/%m/%Y', at.date) "Date Adh",
m.civilite "Civilité",
m.adresse "Adresse",
m.code_postal "Code Postal",
m.ville "Ville",
CASE aa.code
WHEN '5112' THEN 'Chèque'
WHEN '512A' THEN 'Virement'
WHEN '53' THEN 'Espèces'
ELSE 'Erreur !'
END as "Moyen Paiement"
from acc_transactions at,acc_transactions_lines atl,acc_accounts aa,
acc_transactions_users atu,
membres m
where at.id=atl.id_transaction and atl.id_account=aa.id
and atu.id_transaction=at.id
and atu.id_user=m.id
and aa.code like "5%"
and aa.code != "512B"
and strftime('%Y', at.date) = "2020"

S'il y a également des ventes elle vont sortir et il ne faut pas 
produire de reçu fiscal pour elles. Chez moi elles sont rares, je les 
enlève du .csv généré.
Il faudrait les filtrer, mais pour cela, soit il faut sélectionner 
uniquement les cotisations, soit il faut filtrer sur le numéro de compte 
de l'autre patte de l'écriture... qui s'y colle ?

Bon week end.
JP