1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
| Sub cmd_interfacecoda_Click()
On Error GoTo err
Dim fichier As String, ligne As String, SQL As String, nbligne As String, dossier As String
Dim datecreation As String, timecreation As String
Dim db As DAO.Database: Set db = CurrentDb
Dim rec As DAO.Recordset, rec2 As DAO.Recordset
Dim FSO As New Scripting.FileSystemObject
Dim FichText As Scripting.TextStream
'remplissage et mise a jour des tables facture et ligne_facture
DoCmd.RunMacro ("facturation - remplissage des tables")
'test si le dossier où on va stocker le fichier exporté existe
dossier = CurrentProject.Path & "\Export METROPOLE CODA"
If Not (DossierExiste(dossier)) Then
MkDir dossier
End If
SQL = "SELECT facture.cdfacture, facture.typefacture, facture.montantHT, facture.datecomptabilisation, facture.dateecheance, annexe.cdannexe, annexe.typeannexe, contrat.cdcontrat, contrat.typecontrat, contrat.cdclient" & _
" FROM contrat INNER JOIN (facture INNER JOIN annexe ON facture.cdannexe = annexe.cdannexe) ON contrat.cdcontrat = annexe.cdcontrat" & _
" WHERE (((facture.datecomptabilisation)=Date()));"
'hypothèse pas d'enregistrements
Set rec = db.OpenRecordset(SQL, dbOpenSnapshot)
If rec.RecordCount = 0 Then
MsgBox "pas de factures a comptabiliser"
Exit Sub
End If
'incrémentation du compteur de sequence de comptabilisation
DoCmd.RunSQL ("INSERT INTO sequencecompta ( dateinterfacage )SELECT Date() AS Expr1;")
Set rec2 = db.OpenRecordset("SELECT Max(sequencecompta.sequencenumber)FROM sequencecompta;", dbOpenSnapshot)
'creation du fichier d'ecritures
datecreation = Format(Date, "yyyymmdd")
timecreation = Format(Time(), "hhmmss")
fichier = dossier & "\" & "METR_CODA_FSER_" & datecreation & "_" & timecreation & ".txt"
Set FichText = FSO.CreateTextFile(fichier, True)
TFichier = fichier
Set FSO = Nothing
Set FichText = Nothing
'ligne controle
ligne = ("METRCODA" & rec2![sequencenumber] & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & "SECKH" & Format(Date, "ddmmyy") & Format(Time(), "hhmm") & " 295 03597004001002003004005006008009010011012013014015016017018019020021022023024025026027030031032089090091092093094095096097119" & Space(270))
EcrireLigne fichier, ligne
nbligne = 1
' pour chaque enregistrement , faire la boucle
While Not rec.EOF
'ligne entete
ligne = ("METRCODA" & rec2("sequencenumber") & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & _
"SEHHZ-F-HONO " & rec("typefacture") & "-" & Format(rec("cdfacture"), "!@@@@@@@") & _
Format(Date, "yyyymm") & "EUR " & Format(Date, "ddmmyyyy"))
EcrireLigne fichier, ligne
'ligne 1
ligne = ("METRCODA0000001" & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & "SELLZ-F-HONO " & _
rec("typefacture") & "-" & Format(rec("cdfacture"), "!@@@@@@@") & "00001" & "295.250.622806.ASA" & Space(61) & _
Replace(Format(rec("montantHT"), "00000000000000.00"), ",", ".") & "2" & Space(36) & "158" & "161" & _
Format(rec("dateecheance"), "yyyymmdd") & Space(7) & Space(37) & rec("typecontrat") & "-" & _
Format(rec("cdcontrat"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typeannexe") & "-" & _
Format(rec("cdannexe"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typefacture") & "-" & _
Format(rec("cdfacture"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & Space(144) & _
"D196E " & Replace(Format((rec("montantHT") * 0.196), "00000000000000.00"), ",", ".") & "2" & Space(103))
EcrireLigne fichier, ligne
'ligne 2
ligne = ("METRCODA0000001" & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & "SELLZ-F-HONO " & _
rec("typefacture") & "-" & Format(rec("cdfacture"), "!@@@@@@@") & "00002" & "295.250.445663.T1960E" & Space(58) & _
Replace(Format((rec("montantHT") * 0.196), "00000000000000.00"), ",", ".") & "2" & Space(36) & "159" & "161" & _
Format(rec("dateecheance"), "yyyymmdd") & Space(7) & Space(37) & rec("typecontrat") & "-" & _
Format(rec("cdcontrat"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typeannexe") & "-" & _
Format(rec("cdannexe"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typefacture") & "-" & _
Format(rec("cdfacture"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & Space(32) & Space(64) & Space(18) & _
"D196E " & Replace(Format(rec("montantHT"), "00000000000000.00"), ",", ".") & "2" & Space(133))
EcrireLigne fichier, ligne
'ligne 3
ligne = ("METRCODA0000001" & Format(Date, "yyyymmdd") & Format(Time(), "hhmmss") & "SELLZ-F-HONO " & _
rec("typefacture") & "-" & Format(rec("cdfacture"), "!@@@@@@@") & "00003" & "295.250.401120.FP" & rec("cdclient") & Space(56) & _
Replace(Format((rec("montantHT") * 1.196), "00000000000000.00"), ",", ".") & "2" & Space(36) & "157" & "160" & _
Format(rec("dateecheance"), "yyyymmdd") & Space(7) & Space(37) & rec("typecontrat") & "-" & _
Format(rec("cdcontrat"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typeannexe") & "-" & _
Format(rec("cdannexe"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & rec("typefacture") & "-" & _
Format(rec("cdfacture"), "!@@@@@@@@@@@@@@@@@@@@@@@@@@@") & Space(32) & Space(64) & Replace(Format((rec("montantHT") * 0.196), "00000000000000.00"), ",", ".") & "2" & Space(163))
EcrireLigne fichier, ligne
nbligne = nbligne + 4
rec.MoveNext
Wend
'creation du fichier EOF attaché
fichier = dossier & "\" & "METR_CODA_FSER_" & datecreation & "_" & timecreation & ".eof"
Set FichText = FSO.CreateTextFile(fichier, True)
TFichier = fichier
Set FSO = Nothing
Set FichText = Nothing
ligne = rec2("sequencenumber") & Format(nbligne, "000000")
EcrireLigne fichier, ligne
Exit Sub
err:
MsgBox err.Description
End Sub |
Partager