Bonjour Tintinux,
Je m'appuie sur le document suivant que j'essaie d'interpréter:
http://www.experts-comptables.fr/sites/ ... 2015_0.pdf
Champ 4 - date de comptabilisation (page 50 du pdf)
Une date de saisie est enregistrée automatiquement
:
S'IL S'AGIT BIEN de UpdateDate de la table Moves:
- cette date est modifiée par la date système lors d'une restauration : si je restaure à la maison aujourd'hui le fichier sql fait au boulot
j'ai toutes mes écritures (y compris celles des exercices clôturées) en date d'aujourd'hui (je parle de UpdateDate).
- Si le point ci-dessus peut être résolu , il suffirait de modifier la requête SQL du champ 4 : UpdateDate_format(m.MoveDate,'......) AS ......,
Champ 6 - date de validation ( page60 du pdf):
'Elle doit avoir lieu au plus tard lors de la liasse fiscale'
Je propose d'ajouter un champ ValidDate à la table Moves et de le renseigner avec la date de clôture,
je pense que cette solution ne va pas convenir à tout le monde car cela suppose de clôturer avant de faire la liasse fiscale
(ce que je fais car je pense ainsi assurer le caractère probant de ma compta).
CONTROLE DE LA STRUCTURE DU FEC:
pour faire le test j'ai ajouté (avec PhpMyAdmin) dans la table Moves deux champs date (je ne voulais pas toucher à UpdateDate)
- WDate pour la date d'écriture
- VDate pour la date de validation
ces deux champs je les ai renseignés avec des requêtes sql (avec les dates proposées ci-dessus)
puis j'ai passé le test proposé par l'administration qui m'a retourné 5 erreurs
Champ 4 --- Le champ doit être ECRITUREDATE et non DATE
Il manque 4 champs : COMPAUXNUM, COMPAUXLIB, MONTANTDEVISE, IDEVISE
Ces 4 champs doivent être vides si pas utilisés.
Le fichier généré par la requête ci-après a lui été validé:
Code: Select all
SELECT
j.Code AS 'JournalCode',
j.Name AS 'JournalLib',
@i:=@i+1 as 'EcritureNum',
date_format(m.WDate, '%Y%m%d') AS 'ECRITUREDate',
a.Account AS 'CompteNum',
a.Name AS 'CompteLib',
' ' AS 'COMPAUXNUM',
' ' AS 'COMPAUXLIB',
m.Id AS 'PieceRef',
date_format(m.MoveDate, '%Y%m%d') AS 'PieceDate',
m.MoveText AS 'EcritureLib',
CASE WHEN ml.Amount > 0 THEN ml.Amount ELSE NULL END AS 'Debit',
CASE WHEN ml.Amount < 0 THEN -ml.Amount ELSE NULL END AS 'Credit',
r.ReconciliationString AS 'EcritureLet',
date_format(r.UpdateDate, '%Y%m%d %H:%i:%s') AS 'DateLet',
date_format(m.VDate, '%Y%m%d ') AS 'ValidDate' ,
' ' AS 'MONTANTDEVISE',
' ' AS 'IDEVISE'
FROM Moves m
JOIN Journals j ON j.Id=m.JournalId
JOIN MoveLines ml ON ml.MoveNumber=m.Id
JOIN Accounts a ON a.id=ml.AccountId
LEFT JOIN Reconciliations r ON r.MoveLineId=ml.MoveLineId
JOIN (SELECT @i:=0) cpt
WHERE m.MoveDate BETWEEN :StartDate AND :EndDate ;
J'espère que ce pavé ne va pas vous décourager de continuer ...
A+
Patrice