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"
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"
>
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"
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