chore : modification du parse pour avoir la liste des produit #5
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user