Ανάπτυξη Εφαρμογής Αυτόματης Συμφωνίας Packing List και Invoice από Αρχεία PDF με Python και Flask
Περιγραφή λειτουργίας της εφαρμογής
Η εφαρμογή πραγματοποιεί αυτόματο έλεγχο συμφωνίας (reconciliation) μεταξύ ενός Packing List και ενός Invoice.
Ο χρήστης επιλέγει τα δύο αρχεία PDF και η εφαρμογή εξάγει αυτόματα όλα τα απαραίτητα στοιχεία χωρίς να απαιτείται χειροκίνητη καταχώρηση.
Τι ελέγχει η εφαρμογή
Μετά την εξαγωγή των δεδομένων πραγματοποιούνται οι παρακάτω έλεγχοι:
- Ταυτοποίηση πελάτη (Customer / Company)
- Σύγκριση συνολικής ποσότητας τεμαχίων
- Σύγκριση των αριθμών παραγγελίας (Order References)
- Σύγκριση των ημερομηνιών παραγγελίας
- Ανάγνωση αριθμού τιμολογίου
- Ανάγνωση ημερομηνίας τιμολογίου
- Ανάγνωση συνολικής αξίας τιμολογίου
Στο τέλος παρουσιάζεται αναλυτικός πίνακας με όλα τα αποτελέσματα των ελέγχων.
Αντιστοίχιση προϊόντων
Για κάθε γραμμή του Packing List η εφαρμογή αναζητά την αντίστοιχη γραμμή του Invoice.
Η αντιστοίχιση γίνεται μόνο όταν ισχύουν τα παρακάτω:
- Ο αριθμός παραγγελίας (Order Reference) είναι ο ίδιος.
- Η περιγραφή του προϊόντος που υπάρχει στο Invoice εμφανίζεται αυτούσια μέσα στην περιγραφή του προϊόντος στο Packing List.
- Υπάρχει διαθέσιμη ποσότητα στο Invoice για να καλύψει την ποσότητα της συγκεκριμένης γραμμής του Packing List.
Δεν χρησιμοποιείται τεχνητή νοημοσύνη ούτε αλγόριθμος ομοιότητας κειμένου.
Δεν πραγματοποιούνται αυτόματες διορθώσεις ή μετατροπές των περιγραφών.
Η σύγκριση βασίζεται αποκλειστικά στο πραγματικό κείμενο που υπάρχει στα δύο έγγραφα.
Αποτελέσματα
Για κάθε προϊόν εμφανίζονται:
- Barcode
- Κωδικός προϊόντος του Invoice
- Περιγραφή στο Packing List
- Περιγραφή στο Invoice
- Ποσότητα
- Τιμή μονάδας
- Συνολική αξία της γραμμής
- Μέθοδος αντιστοίχισης
Προϊόντα χωρίς αντιστοίχιση
Εάν κάποια γραμμή του Packing List δεν βρεθεί στο Invoice, εμφανίζεται στον πίνακα Μη αντιστοιχισμένα προϊόντα (Orphan Packing Rows).
Αντίστοιχα, εάν υπάρχουν προϊόντα στο Invoice που δεν χρησιμοποιήθηκαν σε καμία αντιστοίχιση, εμφανίζονται στον πίνακα Μη χρησιμοποιημένες γραμμές Invoice (Orphan Invoice Lines).
Με αυτόν τον τρόπο ο χρήστης μπορεί να εντοπίσει άμεσα:
- προϊόντα που λείπουν από το Invoice,
- προϊόντα που λείπουν από το Packing List,
- διαφορές στις ποσότητες,
- καθώς και πιθανές ασυμφωνίες μεταξύ των δύο εγγράφων.
Σκοπός της εφαρμογής
Η εφαρμογή έχει σχεδιαστεί ώστε να αυτοματοποιεί τον έλεγχο μεταξύ Packing List και Invoice, μειώνοντας σημαντικά τον χρόνο χειροκίνητης σύγκρισης και περιορίζοντας τα ανθρώπινα λάθη.
Όλες οι αντιστοιχίσεις είναι πλήρως ελέγξιμες και τεκμηριωμένες, καθώς κάθε αποτέλεσμα βασίζεται στα πραγματικά δεδομένα που εξήχθησαν από τα δύο αρχεία PDF.
—
Οδηγίες Χρήσης
- Εκκινήστε την εφαρμογή Flask.
- Ανεβάστε το αρχείο Packing List (PDF).
- Ανεβάστε το αντίστοιχο Invoice (PDF).
- Πατήστε Σύγκριση / Compare.
- Η εφαρμογή εξάγει αυτόματα τα δεδομένα από τα δύο PDF.
- Πραγματοποιείται έλεγχος συμφωνίας των εγγράφων.
- Εμφανίζονται τα αποτελέσματα της σύγκρισης, όπως:
- Πελάτης / Εταιρεία
- Αριθμοί παραγγελίας
- Ημερομηνίες παραγγελιών
- Συνολικές ποσότητες
- Αριθμός και ημερομηνία τιμολογίου
- Συνολική αξία τιμολογίου
- Για κάθε γραμμή του Packing List γίνεται αναζήτηση της αντίστοιχης γραμμής στο Invoice.
- Εμφανίζονται οι αντιστοιχισμένες γραμμές με την τιμή μονάδας και τη συνολική αξία.
- Οι γραμμές που δεν βρέθηκαν παρουσιάζονται ξεχωριστά ως Μη Αντιστοιχισμένες (Orphan Rows) για περαιτέρω έλεγχο.
Σημείωση: Η αντιστοίχιση πραγματοποιείται μόνο όταν εντοπιστεί αντίστοιχη περιγραφή προϊόντος στο Invoice και συμφωνεί ο αριθμός παραγγελίας και η διαθέσιμη ποσότητα. Οι γραμμές που δεν πληρούν αυτά τα κριτήρια επισημαίνονται ώστε να ελεγχθούν από τον χρήστη.
—
Εκκίνηση της Εφαρμογής
1. Άνοιγμα του PowerShell ή του Command Prompt
Μεταβείτε στον φάκελο του έργου:
cd C:\PythonPrograms\flask_pdf_extractor
2. (Προαιρετικά) Ενεργοποίηση του Virtual Environment
Εάν χρησιμοποιείται virtual environment:
.venv\Scripts\activate
ή
venv\Scripts\activate
ανάλογα με το όνομα του περιβάλλοντος.
3. Εκκίνηση της εφαρμογής Flask
Εκτελέστε:
python -m flask --app app run --debug
ή εναλλακτικά:
flask --app app run --debug
4. Άνοιγμα της εφαρμογής
Ανοίξτε τον φυλλομετρητή (Chrome, Edge, Firefox κ.λπ.) και μεταβείτε στη διεύθυνση:
Διαδικασία Χρήσης
- Επιλέξτε το αρχείο Packing List (PDF).
- Επιλέξτε το αντίστοιχο Invoice (PDF).
- Πατήστε Σύγκριση (Compare).
- Περιμένετε λίγα δευτερόλεπτα μέχρι να ολοκληρωθεί η επεξεργασία.
- Εμφανίζονται:
- Τα στοιχεία του Packing List.
- Τα στοιχεία του Invoice.
- Οι έλεγχοι συμφωνίας (Reconciliation Checks).
- Οι αντιστοιχισμένες γραμμές προϊόντων.
- Οι μη αντιστοιχισμένες γραμμές (Orphan Rows).
- Οι τιμές μονάδας και οι συνολικές αξίες των προϊόντων.
Τερματισμός της Εφαρμογής
Για να διακόψετε την εκτέλεση του Flask Server, επιστρέψτε στο παράθυρο του PowerShell ή του Command Prompt και πατήστε:
Ctrl + C
Η εφαρμογή θα τερματιστεί με ασφάλεια.

Comments are closed.