Files
rar-autopass/export_comenzi.prg
Marius Mutu 78d21d5a38 Initial commit: baza VFP ROAAUTO + planuri migrare Web API
Arhiva clasei RarAutoPass (VFP) care declara prestatiile la RAR AUTOPASS,
ca baza pentru rescrierea ca gateway central Python/FastAPI.

Include:
- sursa VFP (.prg) + datele necesare migrarii (mapare_prestatii, prestatii_rar)
- spec-ul oficial RAR (txt)
- docs/plans/: plan-design-review + plan-eng-review
- docs/CONTEXT.md: handoff pentru continuarea in alta sesiune
- .gitignore specific Visual FoxPro (ignora artefacte compilate + credentiale)

settings.xml (cu parola de test in clar) EXCLUS; vezi settings.xml.example.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 23:10:28 +03:00

83 lines
2.4 KiB
Plaintext

* export_comenzi.prg
PROCEDURE ExportComenziXML
PARAMETERS tcFileName, tdData
LOCAL loXML AS MSXML2.DOMDocument.6.0
LOCAL lcXML, llSuccess
llSuccess = .F.
Try
loXML = CREATEOBJECT("MSXML2.DOMDocument.6.0")
loXML.async = .F.
* Creare structura XML
TEXT TO lcXML NOSHOW
<?xml version="1.0" encoding="UTF-8"?>
<comenzi>
</comenzi>
ENDTEXT
loXML.loadXML(lcXML)
loRoot = loXML.documentElement
* Selectam comenzile pentru export
SELECT comenzi_service
SET FILTER TO data_comanda = tdData AND status = "FINALIZAT"
SCAN
* Adaugam nodul pentru comanda
loComanda = loXML.createElement("comanda")
* Adaugam detaliile comenzii
THIS.AddXMLNode(loXML, loComanda, "nr_comanda", nr_comanda)
THIS.AddXMLNode(loXML, loComanda, "data", TTOC(data_comanda, 1))
THIS.AddXMLNode(loXML, loComanda, "vin", vin)
THIS.AddXMLNode(loXML, loComanda, "nr_inmatriculare", nr_auto)
THIS.AddXMLNode(loXML, loComanda, "km_final", TRANSFORM(km))
THIS.AddXMLNode(loXML, loComanda, "km_initial", "0")
THIS.AddXMLNode(loXML, loComanda, "observatii", observatii)
* Adaugam operatiile
loOperatii = loXML.createElement("operatii")
SELECT operatii
SCAN FOR id_comanda = comenzi_service.id
loOperatie = loXML.createElement("operatie")
THIS.AddXMLNode(loXML, loOperatie, "cod_operatie", cod_operatie)
THIS.AddXMLNode(loXML, loOperatie, "denumire", denumire)
loOperatii.appendChild(loOperatie)
ENDSCAN
loComanda.appendChild(loOperatii)
loRoot.appendChild(loComanda)
ENDSCAN
* Salvam XML-ul
loXML.save(tcFileName)
llSuccess = .T.
Catch To loEx
MESSAGEBOX("Eroare export XML: " + loEx.Message, 16, "Eroare")
llSuccess = .F.
Endtry
Return llSuccess
* Helper pentru adaugare noduri
PROCEDURE AddXMLNode
PARAMETERS loXML, loParent, tcName, tcValue
LOCAL loNode, loText, llSuccess
llSuccess = .F.
Try
loNode = loXML.createElement(tcName)
loText = loXML.createTextNode(tcValue)
loNode.appendChild(loText)
loParent.appendChild(loNode)
llSuccess = .T.
Catch To loEx
MESSAGEBOX("Eroare adaugare nod XML: " + loEx.Message, 16, "Eroare")
llSuccess = .F.
Endtry
Return llSuccess