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 fournisseur = '';
|
||||||
let date = '';
|
let date = '';
|
||||||
|
|
||||||
interface tab_res {
|
interface DetailProduit {
|
||||||
marque : string;
|
quantité: number;
|
||||||
date_achats : string;
|
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);
|
const dataBuffer = fs.readFileSync(travel);
|
||||||
|
|
||||||
pdfParse(dataBuffer)
|
pdfParse(dataBuffer)
|
||||||
@@ -32,6 +44,30 @@ function pdf_parse(travel: string){
|
|||||||
date = "non trouvé"
|
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 {
|
} else {
|
||||||
fournisseur = "Metro"
|
fournisseur = "Metro"
|
||||||
|
|
||||||
@@ -48,8 +84,9 @@ function pdf_parse(travel: string){
|
|||||||
// on renvoie les valeur avec un seul objet
|
// on renvoie les valeur avec un seul objet
|
||||||
|
|
||||||
const res : tab_res = {
|
const res : tab_res = {
|
||||||
marque: fournisseur,
|
marque: fournisseur,
|
||||||
date_achats: date
|
date_achats: date,
|
||||||
|
products: productsList
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(res);
|
console.log(res);
|
||||||
|
|||||||
Reference in New Issue
Block a user