mirror of
https://github.com/R0m1k3/Regisflow.git
synced 2026-10-15 03:07:41 +02:00
Improve sales data exports to include individual product details
Fixes the sales history and CSV exports to accurately represent each product within a sale. Replit-Commit-Author: Agent Replit-Commit-Session-Id: e80fed01-7137-4997-b9af-dad57132d430 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/e80fed01-7137-4997-b9af-dad57132d430/KcImq5w
This commit is contained in:
1 parent
e3cd2f890c
commit
933ea44342
3 files changed
+645
-27
No files matched your search
@@ -0,0 +1,567 @@
|
||||
{
|
||||
"timestamp": "2025-07-19T10:37:56.847Z",
|
||||
"version": "1.0",
|
||||
"type": "automatic",
|
||||
"data": {
|
||||
"users": [
|
||||
{
|
||||
"id": 5,
|
||||
"username": "ff579",
|
||||
"email": null,
|
||||
"firstName": "",
|
||||
"lastName": "",
|
||||
"role": "employee",
|
||||
"storeId": 2,
|
||||
"isActive": true,
|
||||
"createdAt": "2025-07-10T09:48:22.256Z",
|
||||
"updatedAt": "2025-07-10T09:48:22.256Z"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"username": "ff292",
|
||||
"email": null,
|
||||
"firstName": "",
|
||||
"lastName": "",
|
||||
"role": "employee",
|
||||
"storeId": 1,
|
||||
"isActive": true,
|
||||
"createdAt": "2025-07-10T09:48:06.549Z",
|
||||
"updatedAt": "2025-07-10T09:48:06.549Z"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"username": "gael",
|
||||
"email": null,
|
||||
"firstName": "",
|
||||
"lastName": "",
|
||||
"role": "administrator",
|
||||
"storeId": null,
|
||||
"isActive": true,
|
||||
"createdAt": "2025-07-10T08:47:04.063Z",
|
||||
"updatedAt": "2025-07-10T08:47:04.063Z"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"username": "FFNANCY",
|
||||
"email": "michaelschal@gmail.com",
|
||||
"firstName": "",
|
||||
"lastName": "",
|
||||
"role": "manager",
|
||||
"storeId": 1,
|
||||
"isActive": true,
|
||||
"createdAt": "2025-07-09T18:55:01.413Z",
|
||||
"updatedAt": "2025-07-09T18:55:01.413Z"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"email": "michaelschal@ffest.fr",
|
||||
"firstName": "Administrateur",
|
||||
"lastName": "Principal",
|
||||
"role": "admin",
|
||||
"storeId": 1,
|
||||
"isActive": true,
|
||||
"createdAt": "2025-07-09T18:37:53.865Z",
|
||||
"updatedAt": "2025-07-09T18:37:53.865Z"
|
||||
}
|
||||
],
|
||||
"stores": [
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Houdemont",
|
||||
"address": "",
|
||||
"phone": "",
|
||||
"email": "",
|
||||
"isActive": true,
|
||||
"createdAt": "2025-07-09T19:00:30.782Z",
|
||||
"updatedAt": "2025-07-09T19:00:30.782Z"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Frouard",
|
||||
"address": "À définir",
|
||||
"phone": "",
|
||||
"email": "",
|
||||
"isActive": true,
|
||||
"createdAt": "2025-07-09T18:37:53.432Z",
|
||||
"updatedAt": "2025-07-09T18:37:53.432Z"
|
||||
}
|
||||
],
|
||||
"sales": [
|
||||
{
|
||||
"id": 17,
|
||||
"storeId": 2,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-19T10:36:48.911Z",
|
||||
"vendeur": "Michael SCHAL",
|
||||
"nom": "SCHAL",
|
||||
"prenom": "Michael",
|
||||
"dateNaissance": "2025-07-10",
|
||||
"lieuNaissance": "Bar le duc",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "CNI",
|
||||
"numeroIdentite": "qsdfqsdgc23445",
|
||||
"autoriteDelivrance": "Frouard",
|
||||
"dateDelivrance": "2025-07-23",
|
||||
"photo_recto": "data:image/jpeg;base64,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 truncated
|
||||
"photo_verso": "data:image/jpeg;base64,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 truncated
|
||||
"photo_ticket": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAAQACAIAAACoEwUVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGWGVYSWZJSSoACAAAAAgADwECAAkAAAB+AAAAEgEDAAEAAAABAAAAGgEFAAEAAABuAAAAGwEFAAEAAAB2AAAAKAEDAAEAAAACAAAAEwIDAAEAAAABAAAAaYcEAAEAAAAKBgAAhpIHAIIFAACIAAAAAAAAAEgAAAABAAAASAAAAAEAAABncHRpbWFnZQAAQVNDSUkAAAB7InByb21wdCI6IkEgaGlnaGx5IGRldGFpbGVkIDhLIGNpbmVtYXRpYyB3YWxscGFwZXIgZGVwaWN0aW5nIGEgcmVhbGlzdGljIFN0YXIgV2Fycy1pbnNwaXJlZCBjaXR5c2NhcGUgYXQgZHVzaywgZmVhdHVyaW5nIGEgc2xlZWsgc3BhY2VzaGlwIGxhbmRlZCBvbiB0aGUgZ3JvdW5kIG5lYXIgYSBkaW1seSBsaXQgc3RyZWV0LiBBbG9uZ3NpZGUgdGhlIHN0cmVldCBzdGFuZHMgYW4gYXRtb3NwaGVyaWMgYmFyIHdpdGggYSBnbG93aW5nIG5lb24gc2lnbiByZWFkaW5nIFwiT2xkIERhRCxcIiBjYXN0aW5nIHN1YnRsZSByZWZsZWN0aW9ucyBvbiB0aGUgd2V0IHBhdmVtZW50LiBUaGUgc2NlbmUgaXMgc3BhcnNlbHkgcG9wdWxhdGVkIHdpdGggYSBmZXcgZGl2ZXJzZSBjaGFyYWN0ZXJzIGRyZXNzZWQgaW4gZnV0dXJpc3RpYyBhdHRpcmUsIGVhY2ggZGlzdGluY3QgaW4gYXBwZWFyYW5jZSwgYWRkaW5nIGRlcHRoIHdpdGhvdXQgY3Jvd2RpbmcgdGhlIHZpZXcuIFRoZSB3aWRlIDIxOjkgYXNwZWN0IHJhdGlvIGVtcGhhc2l6ZXMgdGhlIGV4cGFuc2l2ZSB1cmJhbiBlbnZpcm9ubWVudCB3aXRoIHRvd2VyaW5nIHN0cnVjdHVyZXMsIGNvbXBsZXggYXJjaGl0ZWN0dXJlLCBhbmQgbW9vZHksIG5hdHVyYWxpc3RpYyBsaWdodGluZyB0aGF0IGhpZ2hsaWdodHMgdGV4dHVyZXMgYW5kIGZpbmUgZGV0YWlscyB0aHJvdWdob3V0IHRo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 truncated
|
||||
"products": [
|
||||
{
|
||||
"id": 16,
|
||||
"saleId": 17,
|
||||
"typeArticle": "Batterie",
|
||||
"categorie": "F3",
|
||||
"quantite": 1,
|
||||
"gencode": "3560238902912",
|
||||
"createdAt": "2025-07-19T10:36:48.911Z"
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"saleId": 17,
|
||||
"typeArticle": "Combinaison nécessitant un support externe",
|
||||
"categorie": "F3",
|
||||
"quantite": 1,
|
||||
"gencode": "3560238902912",
|
||||
"createdAt": "2025-07-19T10:36:48.911Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"storeId": 2,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-19T10:35:03.315Z",
|
||||
"vendeur": "Michael SCHAL",
|
||||
"nom": "SCHAL",
|
||||
"prenom": "Michael",
|
||||
"dateNaissance": "2025-07-04",
|
||||
"lieuNaissance": "Bar le duc",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "CNI",
|
||||
"numeroIdentite": "qsdfqsdgc23445",
|
||||
"autoriteDelivrance": "Frouard",
|
||||
"dateDelivrance": "2025-07-02",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 14,
|
||||
"saleId": 16,
|
||||
"typeArticle": "Pétard à mèche",
|
||||
"categorie": "F3",
|
||||
"quantite": 1,
|
||||
"gencode": "3560238902912",
|
||||
"createdAt": "2025-07-19T10:35:03.315Z"
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"saleId": 16,
|
||||
"typeArticle": "Pétard à composition flash",
|
||||
"categorie": "F3",
|
||||
"quantite": 1,
|
||||
"gencode": "3560238902912",
|
||||
"createdAt": "2025-07-19T10:35:03.315Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"storeId": 2,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-11T18:27:55.231Z",
|
||||
"vendeur": "Test Vendeur",
|
||||
"nom": "DUPONT",
|
||||
"prenom": "Jean",
|
||||
"dateNaissance": "01/01/1980",
|
||||
"lieuNaissance": "Paris",
|
||||
"modePaiement": "Carte bancaire",
|
||||
"typeIdentite": "Carte d'identité",
|
||||
"numeroIdentite": "ABC123456",
|
||||
"autoriteDelivrance": "Préfecture de Paris",
|
||||
"dateDelivrance": "01/01/2020",
|
||||
"photo_recto": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
|
||||
"photo_verso": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
|
||||
"photo_ticket": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
|
||||
"products": [
|
||||
{
|
||||
"id": 7,
|
||||
"saleId": 8,
|
||||
"typeArticle": "Batterie Test",
|
||||
"categorie": "F2",
|
||||
"quantite": 1,
|
||||
"gencode": "1234567890123",
|
||||
"createdAt": "2025-07-11T18:27:55.231Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"storeId": 2,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-11T15:36:32.194Z",
|
||||
"vendeur": "Moi",
|
||||
"nom": "SCHAL",
|
||||
"prenom": "Michaël",
|
||||
"dateNaissance": "1998-02-05",
|
||||
"lieuNaissance": "Bar le duc",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "CNI",
|
||||
"numeroIdentite": "qsdfqsdgc23445",
|
||||
"autoriteDelivrance": "Frouard",
|
||||
"dateDelivrance": "2025-07-11",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 6,
|
||||
"saleId": 7,
|
||||
"typeArticle": "Batterie",
|
||||
"categorie": "F3",
|
||||
"quantite": 1,
|
||||
"gencode": "3660092323745",
|
||||
"createdAt": "2025-07-11T15:36:32.194Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"storeId": 2,
|
||||
"userId": 2,
|
||||
"timestamp": "2025-07-09T19:16:46.797Z",
|
||||
"vendeur": "Moi",
|
||||
"nom": " ASSOCIATION GRAND AIR",
|
||||
"prenom": "Anne-Laure",
|
||||
"dateNaissance": "2025-06-03",
|
||||
"lieuNaissance": "Bar le duc",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "Passeport",
|
||||
"numeroIdentite": "qsdfqsdgc23445",
|
||||
"autoriteDelivrance": "Frouard",
|
||||
"dateDelivrance": "2025-07-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 4,
|
||||
"saleId": 5,
|
||||
"typeArticle": "Fusée",
|
||||
"categorie": "F2",
|
||||
"quantite": 10,
|
||||
"gencode": "3660092323745",
|
||||
"createdAt": "2025-07-09T19:16:46.797Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"storeId": 2,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-09T19:07:15.650Z",
|
||||
"vendeur": "Moi",
|
||||
"nom": "SCHAL",
|
||||
"prenom": "Michaël",
|
||||
"dateNaissance": "2025-07-02",
|
||||
"lieuNaissance": "Bar le duc",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "CNI",
|
||||
"numeroIdentite": "qsdfqsdgc23445",
|
||||
"autoriteDelivrance": "Frouard",
|
||||
"dateDelivrance": "2025-07-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 2,
|
||||
"saleId": 2,
|
||||
"typeArticle": "Pétard aérien",
|
||||
"categorie": "F3",
|
||||
"quantite": 1,
|
||||
"gencode": "3660092323745",
|
||||
"createdAt": "2025-07-09T19:07:15.650Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"storeId": 2,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-09T19:05:20.904Z",
|
||||
"vendeur": "Moi",
|
||||
"nom": "SCHAL",
|
||||
"prenom": "Michaël",
|
||||
"dateNaissance": "2025-07-02",
|
||||
"lieuNaissance": "Bar le duc",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "CNI",
|
||||
"numeroIdentite": "qsdfqsdgc23445",
|
||||
"autoriteDelivrance": "Frouard",
|
||||
"dateDelivrance": "2025-07-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 1,
|
||||
"saleId": 1,
|
||||
"typeArticle": "Pétard aérien",
|
||||
"categorie": "F3",
|
||||
"quantite": 1,
|
||||
"gencode": "3660092323745",
|
||||
"createdAt": "2025-07-09T19:05:20.904Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"storeId": 1,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-13T11:24:50.830Z",
|
||||
"vendeur": "TEST PRODUCTION",
|
||||
"nom": "PRODUCTION",
|
||||
"prenom": "Ready",
|
||||
"dateNaissance": "1990-01-01",
|
||||
"lieuNaissance": "Test",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "CNI",
|
||||
"numeroIdentite": "123456789",
|
||||
"autoriteDelivrance": "Test",
|
||||
"dateDelivrance": "2025-01-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": "data:image/jpeg;base64,PRODUCTION_READY_TEST",
|
||||
"products": [
|
||||
{
|
||||
"id": 13,
|
||||
"saleId": 14,
|
||||
"typeArticle": "Test",
|
||||
"categorie": "F2",
|
||||
"quantite": 1,
|
||||
"gencode": "1234567890123",
|
||||
"createdAt": "2025-07-13T11:24:50.830Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"storeId": 1,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-11T19:02:01.423Z",
|
||||
"vendeur": "Production Test",
|
||||
"nom": "PROD",
|
||||
"prenom": "Test",
|
||||
"dateNaissance": "1990-01-01",
|
||||
"lieuNaissance": "Test",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "Passeport",
|
||||
"numeroIdentite": "123456789",
|
||||
"autoriteDelivrance": "Test",
|
||||
"dateDelivrance": "2025-01-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": "data:image/jpeg;base64,PRODUCTION_TEST_TICKET",
|
||||
"products": [
|
||||
{
|
||||
"id": 12,
|
||||
"saleId": 13,
|
||||
"typeArticle": "Chandelle",
|
||||
"categorie": "F2",
|
||||
"quantite": 1,
|
||||
"gencode": "1234567890999",
|
||||
"createdAt": "2025-07-11T19:02:01.423Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"storeId": 1,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-11T18:48:31.159Z",
|
||||
"vendeur": "Test Final",
|
||||
"nom": "FINAL",
|
||||
"prenom": "Test",
|
||||
"dateNaissance": "1990-01-01",
|
||||
"lieuNaissance": "Test",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "Passeport",
|
||||
"numeroIdentite": "123456789",
|
||||
"autoriteDelivrance": "Test",
|
||||
"dateDelivrance": "2025-01-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": "data:image/jpeg;base64,TICKET_TEST_FINAL",
|
||||
"products": [
|
||||
{
|
||||
"id": 11,
|
||||
"saleId": 12,
|
||||
"typeArticle": "Chandelle",
|
||||
"categorie": "F2",
|
||||
"quantite": 1,
|
||||
"gencode": "1234567890999",
|
||||
"createdAt": "2025-07-11T18:48:31.159Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"storeId": 1,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-11T18:39:03.438Z",
|
||||
"vendeur": "Test Debug",
|
||||
"nom": "DEBUG",
|
||||
"prenom": "Test",
|
||||
"dateNaissance": "1990-01-01",
|
||||
"lieuNaissance": "Test",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "Passeport",
|
||||
"numeroIdentite": "123456789",
|
||||
"autoriteDelivrance": "Test",
|
||||
"dateDelivrance": "2025-01-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": "data:image/jpeg;base64,TEST_TICKET_DATA",
|
||||
"products": [
|
||||
{
|
||||
"id": 10,
|
||||
"saleId": 11,
|
||||
"typeArticle": "Chandelle",
|
||||
"categorie": "F2",
|
||||
"quantite": 1,
|
||||
"gencode": "1234567890125",
|
||||
"createdAt": "2025-07-11T18:39:03.438Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"storeId": 1,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-11T18:38:45.251Z",
|
||||
"vendeur": "Test Vendeur 2",
|
||||
"nom": "TEST2",
|
||||
"prenom": "Photo2",
|
||||
"dateNaissance": "1990-01-01",
|
||||
"lieuNaissance": "Test",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "Passeport",
|
||||
"numeroIdentite": "123456789",
|
||||
"autoriteDelivrance": "Test",
|
||||
"dateDelivrance": "2025-01-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 9,
|
||||
"saleId": 10,
|
||||
"typeArticle": "Chandelle",
|
||||
"categorie": "F2",
|
||||
"quantite": 1,
|
||||
"gencode": "1234567890124",
|
||||
"createdAt": "2025-07-11T18:38:45.251Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"storeId": 1,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-11T18:38:21.913Z",
|
||||
"vendeur": "Test Vendeur",
|
||||
"nom": "TEST",
|
||||
"prenom": "Photo",
|
||||
"dateNaissance": "1990-01-01",
|
||||
"lieuNaissance": "Test",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "Passeport",
|
||||
"numeroIdentite": "123456789",
|
||||
"autoriteDelivrance": "Test",
|
||||
"dateDelivrance": "2025-01-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 8,
|
||||
"saleId": 9,
|
||||
"typeArticle": "Chandelle",
|
||||
"categorie": "F2",
|
||||
"quantite": 1,
|
||||
"gencode": "1234567890123",
|
||||
"createdAt": "2025-07-11T18:38:21.913Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"storeId": 1,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-10T00:08:19.097Z",
|
||||
"vendeur": "Moi",
|
||||
"nom": "SCHAL",
|
||||
"prenom": "Anne-Laure",
|
||||
"dateNaissance": "2018-02-10",
|
||||
"lieuNaissance": "Bar le duc",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "Passeport",
|
||||
"numeroIdentite": "qsdfqsdgc23445",
|
||||
"autoriteDelivrance": "Frouard",
|
||||
"dateDelivrance": "2025-07-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 5,
|
||||
"saleId": 6,
|
||||
"typeArticle": "Chandelle romaine",
|
||||
"categorie": "F2",
|
||||
"quantite": 1,
|
||||
"gencode": "3660092323745",
|
||||
"createdAt": "2025-07-10T00:08:19.097Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"storeId": 1,
|
||||
"userId": 1,
|
||||
"timestamp": "2025-07-09T19:11:36.505Z",
|
||||
"vendeur": "Moi",
|
||||
"nom": "SCHAL",
|
||||
"prenom": "Michaël",
|
||||
"dateNaissance": "2025-07-18",
|
||||
"lieuNaissance": "Bar le duc",
|
||||
"modePaiement": "Espèce",
|
||||
"typeIdentite": "CNI",
|
||||
"numeroIdentite": "qsdfqsdgc23445",
|
||||
"autoriteDelivrance": "Frouard",
|
||||
"dateDelivrance": "2025-07-01",
|
||||
"photo_recto": null,
|
||||
"photo_verso": null,
|
||||
"photo_ticket": null,
|
||||
"products": [
|
||||
{
|
||||
"id": 3,
|
||||
"saleId": 4,
|
||||
"typeArticle": "Batterie",
|
||||
"categorie": "F3",
|
||||
"quantite": 1,
|
||||
"gencode": "3660092323745",
|
||||
"createdAt": "2025-07-09T19:11:36.505Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"totalUsers": 5,
|
||||
"totalStores": 2,
|
||||
"totalSales": 15,
|
||||
"exportedBy": "system-auto-backup"
|
||||
}
|
||||
}
|
||||
@@ -121,16 +121,38 @@ export default function SalesHistory({ canDelete = false }: SalesHistoryProps) {
|
||||
doc.text(period, 20, 35);
|
||||
}
|
||||
|
||||
const tableData = filteredSales.map(sale => [
|
||||
new Date(sale.timestamp).toLocaleDateString('fr-FR'),
|
||||
sale.vendeur,
|
||||
`${sale.nom} ${sale.prenom}`,
|
||||
sale.typeArticle,
|
||||
sale.categorie,
|
||||
sale.quantite.toString(),
|
||||
sale.modePaiement,
|
||||
sale.gencode
|
||||
]);
|
||||
// Créer une ligne pour chaque produit de chaque vente
|
||||
const tableData: string[][] = [];
|
||||
|
||||
filteredSales.forEach(sale => {
|
||||
if (sale.products && sale.products.length > 0) {
|
||||
// Pour chaque produit, créer une ligne avec les infos de la vente
|
||||
sale.products.forEach(product => {
|
||||
tableData.push([
|
||||
new Date(sale.timestamp).toLocaleDateString('fr-FR'),
|
||||
sale.vendeur,
|
||||
`${sale.nom} ${sale.prenom}`,
|
||||
product.typeArticle,
|
||||
product.categorie,
|
||||
product.quantite.toString(),
|
||||
sale.modePaiement,
|
||||
product.gencode || ''
|
||||
]);
|
||||
});
|
||||
} else {
|
||||
// Fallback pour les ventes sans produits (anciennes données)
|
||||
tableData.push([
|
||||
new Date(sale.timestamp).toLocaleDateString('fr-FR'),
|
||||
sale.vendeur,
|
||||
`${sale.nom} ${sale.prenom}`,
|
||||
'N/A',
|
||||
'N/A',
|
||||
'0',
|
||||
sale.modePaiement,
|
||||
''
|
||||
]);
|
||||
}
|
||||
});
|
||||
|
||||
autoTable(doc, {
|
||||
head: [['Date', 'Vendeur', 'Client', 'Article', 'Cat.', 'Qty', 'Paiement', 'Code']],
|
||||
|
||||
+46
-17
@@ -21,23 +21,52 @@ export function exportToCSV(sales: Sale[]): void {
|
||||
'Date de délivrance'
|
||||
];
|
||||
|
||||
const rows = sales.map(sale => [
|
||||
new Date(sale.timestamp).toLocaleString('fr-FR'),
|
||||
sale.vendeur,
|
||||
sale.typeArticle,
|
||||
sale.categorie,
|
||||
sale.quantite.toString(),
|
||||
sale.gencode || '',
|
||||
sale.nom,
|
||||
sale.prenom,
|
||||
sale.dateNaissance || '',
|
||||
sale.lieuNaissance || '',
|
||||
sale.modePaiement || '',
|
||||
sale.typeIdentite || '',
|
||||
sale.numeroIdentite || '',
|
||||
sale.autoriteDelivrance || '',
|
||||
sale.dateDelivrance || ''
|
||||
]);
|
||||
// Créer une ligne pour chaque produit de chaque vente
|
||||
const rows: string[][] = [];
|
||||
|
||||
sales.forEach(sale => {
|
||||
if (sale.products && sale.products.length > 0) {
|
||||
// Pour chaque produit, créer une ligne avec les infos de la vente
|
||||
sale.products.forEach(product => {
|
||||
rows.push([
|
||||
new Date(sale.timestamp).toLocaleString('fr-FR'),
|
||||
sale.vendeur,
|
||||
product.typeArticle,
|
||||
product.categorie,
|
||||
product.quantite.toString(),
|
||||
product.gencode || '',
|
||||
sale.nom,
|
||||
sale.prenom,
|
||||
sale.dateNaissance || '',
|
||||
sale.lieuNaissance || '',
|
||||
sale.modePaiement || '',
|
||||
sale.typeIdentite || '',
|
||||
sale.numeroIdentite || '',
|
||||
sale.autoriteDelivrance || '',
|
||||
sale.dateDelivrance || ''
|
||||
]);
|
||||
});
|
||||
} else {
|
||||
// Fallback pour les ventes sans produits (anciennes données)
|
||||
rows.push([
|
||||
new Date(sale.timestamp).toLocaleString('fr-FR'),
|
||||
sale.vendeur,
|
||||
'N/A',
|
||||
'N/A',
|
||||
'0',
|
||||
'',
|
||||
sale.nom,
|
||||
sale.prenom,
|
||||
sale.dateNaissance || '',
|
||||
sale.lieuNaissance || '',
|
||||
sale.modePaiement || '',
|
||||
sale.typeIdentite || '',
|
||||
sale.numeroIdentite || '',
|
||||
sale.autoriteDelivrance || '',
|
||||
sale.dateDelivrance || ''
|
||||
]);
|
||||
}
|
||||
});
|
||||
|
||||
const csvContent = [headers, ...rows]
|
||||
.map(row => row.map(field => `"${String(field).replace(/"/g, '""')}"`).join(';'))
|
||||
|
||||
Reference in new issue
Block a user