chore : modification du parse pour avoir la liste des produit #5

This commit is contained in:
Aurelien
2026-06-18 20:46:12 +02:00
parent 2ca6dc31a9
commit 00949c60c5

View File

@@ -9,11 +9,23 @@ function pdf_parse(travel: string){
let fournisseur = '';
let date = '';
interface tab_res {
marque : string;
date_achats : string;
interface DetailProduit {
quantité: number;
prixHT: number;
TVA: string;
}
const productsList: { [key: string]: DetailProduit } = {};
interface tab_res {
marque: string;
date_achats: string;
products: {
[nomProduit: string]: DetailProduit;
};
}
const dataBuffer = fs.readFileSync(travel);
pdfParse(dataBuffer)
@@ -31,6 +43,30 @@ function pdf_parse(travel: string){
} else {
date = "non trouvé"
}
// on prend la liste des produits et leurs detail pour auchan
const lignes = data.text.split('\n');
// Expressions régulières pour détecter les lignes de produits Auchan
const regexLigneProduit = /^(\d{13})(?!\d)(.+?)(\d+,\d+)\s+(\d+)\s+(\d+,\d+)\s+(\d+,\d+)\s+(\d+,\d+)$/;
lignes.forEach((ligne: string) => {
const match = ligne.trim().match(regexLigneProduit);
if (match) {
const nomProduit = match[1].trim();
const quantite = parseInt(match[4], 10);
const prixHT = parseFloat(match[2].replace(',', '.'));
const tva = match[6].replace(',', '.') + "%";
productsList[nomProduit] = {
quantité: quantite,
prixHT: prixHT,
TVA: tva
};
}
});
} else {
fournisseur = "Metro"
@@ -48,8 +84,9 @@ function pdf_parse(travel: string){
// on renvoie les valeur avec un seul objet
const res : tab_res = {
marque: fournisseur,
date_achats: date
marque: fournisseur,
date_achats: date,
products: productsList
}
console.log(res);