Τιμολόγηση · wireframe v5.28 (14/10/2026 — deploy στον κεντρικό server: auto-detect API origin · καρτέλα προϊόντος: ΦΠΑ/κόστος ΕΠΕΞΕΡΓΑΣΙΜΑ με αποθήκευση (PUT /crm/proionta/{id}) · εγχειρίδιο χρήσης ενσωματωμένο στην εφαρμογή (📖) · καρτέλα προϊόντος: «Πωλήσεις (τεμάχια)» ζωντανά από την ανάλυση πωλήσεων (τιμολόγηση − πιστωτικά) με σύνολο € · ΣΕΛΙΔΑ 1 «Εταιρείες»: live λίστα 25.189 πελατών από τη βάση, ζωντανή αναζήτηση ονομασίας + φίλτρο ρόλου εκδότρια/πελάτες · κατάλογος προϊόντων: ΦΠΑ/κόστος (DDL v9) + ζωντανές πωλήσεις · «Υπόλοιπα» → «Καρτέλα πελάτη» : κινήσεις με αρ. παραστατικών, εισπράξεις, προοδευτικό υπόλοιπο, λήξη από συμφωνία πληρωμής + σήμανση καθυστέρησης · μετονομασία «Καρτέλα» → «Στοιχεία πελάτη» · συνδρομές: αναζήτηση ανά ΜΗΝΑ/ΕΤΟΣ · προϊόν ανά πελάτη · ανά πελάτη · ένδειξη τιμολόγησης → «Ανανέωση +1 έτος» μόνο όταν έχει τιμολογηθεί · πλακίδιο χωρίς «30 ημέρες») — Φάση 1 + CRM + Τιμολόγηση

0📅Ραντεβού ημέρας
🗂️CRM
🏢Στοιχεία πελάτη
💶Καρτέλα πελάτη
📦Καρτέλα προϊόντος
0🧾Τιμολογήσεις για έγκριση
Ενεργός πελάτης: — API: … Στοιχεία Νέα παραγγελία Τιμολόγηση Ραντεβού Κλήσεις ✕ Αλλαγή πελάτη

Επιλογή πελάτη

Οθόνη εισόδου στην εφαρμογή — πριν από κάθε καρτέλα πελάτη. Ο πελάτης είναι εταιρεία του ενιαίου πίνακα (όχι ξεχωριστή οντότητα).

Πίνακας ημέρας

📅—Ραντεβού σήμερα — πάτημα για λίστα
🔔ΣυνδρομέςΑναζήτηση ανά μήνα/έτος · προϊόν · πελάτη · ανανέωση
🧾—Πρόχειρα παραστατικά για έγκριση
🗂️CRMΛίστα εταιρειών — πλήρες πελατολόγιο
Κάθε πεδίο φιλτράρει μόνο το δικό του κριτήριο, γράμμα-γράμμα / νούμερο-νούμερο, όπως πληκτρολογείτε. Συμπληρώνοντας πάνω από ένα, τα αποτελέσματα στενεύουν (και τα 4 μαζί).
ΟνομασίαΑΦΜΠόληΤηλέφωνοΡόλος
+ Νέα εταιρεία
ΟνομασίαΑΦΜΠόληΤηλέφωνοΡόλος
φόρτωση…

Στήλη «Ρόλος»: εκδότρια είναι ΜΟΝΟ η ASTBOOKS ΙΚΕ (ΑΦΜ 800412764) — όλες οι υπόλοιπες εταιρείες είναι πελάτες. Η λίστα τροφοδοτείται ζωντανά από τη βάση (25.189 πελάτες): πληκτρολογώντας στο πεδίο αναζήτησης φιλτράρεται η ονομασία γράμμα-γράμμα, και το φίλτρο ρόλου διαχωρίζει εκδότρια/πελάτες.

Στοιχεία πελάτη — επιλέξτε πελάτη από την οθόνη εισόδου

→ Παραγγελία → Τιμολόγηση + Νέο ραντεβού → Κλήση Ακύρωση Αποθήκευση
Έλεγχοι κατά την αποθήκευση: checksum ΑΦΜ (fail-closed) · μοναδικότητα ΑΦΜ · 5ψήφιο ΤΚ.

Στοιχεία ταυτότητας (live — γεμίζουν από τον επιλεγμένο πελάτη)

Διεύθυνση έδρας

Επικοινωνία

Συμφωνία τρόπου πληρωμής (καταχωρείται εδώ — οι τράπεζες δεν αφορούν τον πελάτη)

Αποθήκευση συμφωνίας Προεπισκόπηση υπενθύμισης
Υπενθύμιση στέλνεται μόνο σε όσους έχουν ανεξόφλητα παραστατικά και έχει περάσει η συμφωνημένη ημερομηνία πληρωμής (παλαιότερο παραστατικό + συμφωνημένες ημέρες, π.χ. +30) — στη συνέχεια κάθε 3 ημέρες ευγενικό email με το ποσόν και τη συνοπτική καρτέλα.

Στοιχεία παράδοσης (προεπιλογή shipTo — γεμίζουν αυτόματα τα παραστατικά)

Αποθήκευση παράδοσης

Συνδρομές υπηρεσιών (live — οι 3 υπηρεσίες ΧΩΡΙΣ δικαίωμα τιμολόγησης)

Υπηρεσία / ΠροϊόνΚατάστασηΙσχύει έωςΤιμολόγηση
— επιλέξτε πελάτη από την οθόνη εισόδου —

Εγκαταστάσεις / Υποκαταστήματα (1:N — κωδικοί όπως στο μητρώο ΑΑΔΕ, προαπαιτούμενο Ψ.Δ.Α.)

Κωδικός ΑΑΔΕΠεριγραφήΔιεύθυνσηΚΑΔ εγκατάστασης
— κενό —

+ Προσθήκη εγκατάστασης

Σχέσεις εταιρειών — επιλέξτε πελάτη από την οθόνη εισόδου

+ Νέα σχέση

ΕΚΔΟΤΗΣ

ΟνομασίαΑΦΜΥποκατάστημά μας
ΓΡΙΒΑΣ ΑΝΩΝΥΜΗ ΕΤΑΙΡΕΙΑ0940123450000 / ΈδραΔιαγραφή σχέσης
— εταιρείες που μας εκδίδουν παραστατικά (εμείς = πελάτης τους) —

ΠΕΛΑΤΗΣ

ΟνομασίαΑΦΜΥποκατάστημά τους
ΤΕΡΝΑ ΕΝΕΡΓΕΙΑΚΗ ΑΕ9997775550000 / ΈδραΔιαγραφή σχέσης
— εταιρείες που τους εκδίδουμε παραστατικά (εμείς = εκδότης) —

Η ίδια εταιρεία μπορεί να εμφανίζεται και στις δύο λίστες. Μοναδικότητα: (εκδότης, πελάτης, υποκατάστημα).

Έντυπο παραγγελίας ΠΑ-2026-00042

Ακύρωση Αποθήκευση παραγγελίας
Εσωτερικό έντυπο — δεν είναι παραστατικό και δεν διαβιβάζεται στην ΑΑΔΕ/myDATA. Η τιμολόγηση προκύπτει στη Φάση 2 από ολοκληρωμένη παραγγελία.

Κεφαλίδα παραγγελίας

Γραμμές παραγγελίας

Α/ΑΠεριγραφή είδους / υπηρεσίας ΠοσότηταΤιμή μονάδας Έκπτωση %ΦΠΑ % Καθαρή αξίαΦΠΑ € Σύνολο
+ Προσθήκη γραμμής

Σύνολα παραγγελίας

Καθαρή αξία0,00 €
ΦΠΑ0,00 €
ΓΕΝΙΚΟ ΣΥΝΟΛΟ0,00 €

Στο wireframe η αριθμητική είναι απλή επίδειξη — στην παραγωγή οι υπολογισμοί γίνονται αποκλειστικά σε Decimal (numeric(18,2)/(18,3), στρογγυλοποίηση half-up) στο API, ποτέ σε float.

Ραντεβού πελατών

LIVE — καταχώριση και ημερήσια λίστα συνδεδεμένες με το API

Νέο ραντεβού (καταχώριση πωλητή)

💾 Αποθήκευση ραντεβού

Ραντεβού της ημέρας

‹ Προηγ. Επόμ. › Σήμερα
ΠότεΠελάτηςΠωλητήςΤύποςΚατάσταση

Επερχόμενα ραντεβού (live — όλων των ημερών)

ΠότεΠελάτηςΠωλητήςΤύποςΚατάσταση

Αναφορά CRM ανά ημέρα (live)

Εκτέλεση αναφοράς
ΗμέραΡαντεβούΆλλαξαν ημ/νίαΠαραγγελίες
Σύνολο ραντεβού—
Σύνολο αλλαγών ημ/νίας—
Σύνολο παραγγελιών—

Καταγραφή κλήσεων — ιστορικό επαφών

LIVE — καταχώριση και ιστορικό συνδεδεμένα με το API

Νέα κλήση (καταχώριση πωλητή)

Καταγραφή κλήσης

Τελευταίες κλήσεις (live — φθίνουσα σειρά)

ΠότεΠελάτηςΠωλητήςΑποτέλεσμαΔιάρκειαΠαρατηρήσεις

Τιμολόγηση — έκδοση παραστατικού ΣΕΙΡΑ · αύξων αυτόματα από βάση

Ακύρωση Αποθήκευση πρόχειρου Οριστικοποίηση
Πρόχειρο μέχρι οριστικοποίηση — μετά αμετάβλητο· διαγραφή επιτρέπεται μόνο σε πρόχειρο (hard delete)· ο αύξων δίνεται μόνο από τη σειρά (trigger — ποτέ από τον client)· στην οριστικοποίηση ετοιμάζονται αυτόματα: πακέτο myDATA (προς διαβίβαση — απαιτούνται διαπιστευτήρια ΑΑΔΕ), PDF και email προς πελάτη (προς αποστολή — απαιτείται σύνδεση mailbox).
Από παραγγελία (ουσιαστική σύνδεση) Χειροκίνητη τιμολόγηση

Επιλογή πελάτη (ζωντανή αναζήτηση — το κάθε κριτήριο ξεχωριστά, όπως στην είσοδο)

ΕπωνυμίαΑΦΜΠόληΤηλέφωνα
— πληκτρολογήστε για αναζήτηση —

Κεφαλίδα παραστατικού

Στοιχεία παράδοσης (shipTo — στο τέλος του παραστατικού· αν μείνουν κενά, γεμίζουν από την καρτέλα πελάτη)

Γραμμές από παραγγελία — αποθηκεύστε πρώτα την παραγγελία από το έντυπο παραγγελίας —

Α/ΑΠεριγραφή ΠοσότηταΤιμή μονάδαςΈκπτωση %ΦΠΑ % Καθαρή αξίαΦΠΑ €Σύνολο
Μία γραμμή παραγγελίας τιμολογείται ΜΟΝΟ μία φορά — η βάση το επιβάλλει (partial unique index).

Σύνολα παραστατικού

Γραμμές προς τιμολόγηση—
Καθαρή αξία (πριν Α/Β)0,00 €
Έκπτωση Α0,00 €
Έκπτωση Β0,00 €
ΦΠΑ0,00 €
ΓΕΝΙΚΟ ΣΥΝΟΛΟ0,00 €

Τραπεζικοί λογαριασμοί εκδότριας (έως 5 — αποτυπώνονται στο ΤΕΛΟΣ του παραστατικού)

Α/ΑΤράπεζαIBANSWIFT
— φόρτωση από βάση —
+ Προσθήκη λογαριασμού

Εκδοθέντα παραστατικά (live — φορτώνουν με την επιλογή πελάτη)

Σειρά / ΑύξωνΤύποςΠελάτηςΗμ/νίαΣύνολοΚατάσταση
— επιλέξτε πελάτη —

Συνδρομές — αναζήτηση ανά μήνα / έτος

LIVE — φίλτρα σε AND · προεπιλογή: τρέχων μήνας/έτος

Φίλτρα

🔍 Αναζήτηση

Αποτελέσματα

ΠελάτηςΠροϊόν / υπηρεσίαΛήξη (μήνας/έτος)ΚατάστασηΤιμολόγηση
— πατήστε Αναζήτηση —

Σειρά αναζήτησης: ① μήνας + έτος → οι συνδρομές που λήγουν εκείνο τον μήνα · ② προϊόν → ανά πελάτη · ③ πελάτης → όλες οι συνδρομές του με αναφορά μήνα/έτους · ④ τιμολόγηση → αν έχει εκδοθεί τιμολόγιο εμφανίζεται «Ανανέωση +1 έτος» για το επόμενο έτος.

Νέα είσπραξη (μείωση υπολοίπου πελάτη)

💾 Καταχώριση είσπραξης

Καρτέλα πελάτη — επιλέξτε πελάτη από την οθόνη εισόδου

Ημ/νίαΠαραστατικόΛήξηΧρέωσηΠίστωσηΥπόλοιπο
— επιλέξτε πελάτη —

Συγκεντρωτικά

Σύνολο χρεώσεων0,00 €
Σύνολο πιστώσεων0,00 €
ΤΕΛΙΚΟ ΥΠΟΛΟΙΠΟ0,00 €

Καρτέλα προϊόντος

ΚωδικόςΟνομασίαΣειράΑιτιολογίαΚατάστασηΥπηρεσία / Τιμολόγηση

Στοιχεία επιλεγμένου προϊόντος (ΦΠΑ/κόστος επεξεργάσιμα — ο κατάλογος δεν κρατά τιμές/αποθέματα)

Ο κατάλογος προϊόντων δεν κρατά τιμές/αποθέματα — οι τιμές καταχωρούνται χειροκίνητα ανά γραμμή παραγγελίας/παραστατικού. ΦΠΑ/κόστος καταχωρούνται στον κατάλογο (fpa/kostos).

Τιμολογήσεις της ημέρας — προς έγκριση

Σειρά / ΑύξωνΠελάτηςΠωλητήςΗμ/νίαΣύνολοΚατάσταση
Πρωτόκολλο έγκρισης: ο πωλητής εκδίδει σε κατάσταση «Πρόχειρο» — ο υπεύθυνος ελέγχει και πατά «Έγκριση & οριστικοποίηση» (αριθμός + myDATA). Μέχρι την έγκριση το παραστατικό ΔΕΝ παίρνει αριθμό ούτε διαβιβάζεται.
Πηγές: ΔΟΥ → ΑΑΔΕ · ΚΑΔ/Δήμοι → ΕΛΣΤΑΤ · Τράπεζες → ΕΚΤ/BIC · Χώρες → ISO 3166 Εισαγωγή από αρχείο πηγής
ΚωδικόςΠεριγραφήΕνεργήΠηγή / Ημ. ενημέρωσης
1101ΔΟΥ Α' Αθηνών✓ΑΑΔΕ · 07/10/2026Επεξεργασία
1104ΔΟΥ Γλυφάδας✓ΑΑΔΕ · 07/10/2026Επεξεργασία
…

Μελλοντικά (κλειδωμένο, εκτός Φάσης 1)

Παραστατικά (κατάλογος) · myDATA διαβίβαση (MARK/UID, QR) · Ψ.Δ.Α. · Είδη/Υπηρεσίες · Χρήστες/Δικαιώματα — Σειρές (tim_seira): ενεργές στη βάση από v3 — δείτε tab «Σειρές»

📖 Εγχειρίδιο χρήσης — Τιμολόγηση + CRM πωλητών

ενσωματωμένο στην εφαρμογή · πηγή ΕΓΧΕΙΡΙΔΙΟ_ΧΡΗΣΗΣ.md (13/10/2026)

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ — ASTBOOKS Τιμολόγηση + CRM πωλητών

Έκδοση εφαρμογής: wireframe v5.28 · API FastAPI · 14/10/2026 (ανάπτυξη server) Σύστημα: FastAPI (127.0.0.1:8790) + βάση Supabase/Postgres (tmgk) + wireframe UI (127.0.0.1:8791)


1. ΕΚΚΙΝΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ

  1. Κάνετε διπλό κλικ στο ΤΙΜΟΛΟΓΗΣΗ_ΕΚΚΙΝΗΣΗ.bat (φάκελος wireframe).
  2. Το παράθυρο που ανοίγει δεν το κλείνετε — είναι ο server της εφαρμογής (uvicorn, port 8790).
  3. Ανοίγετε τον browser στη διεύθυνση: http://127.0.0.1:8791/index.html (αν δεν ανοίξει αυτόματα, ζητήστε το).
  4. Στη μπάρα κατάστασης βλέπετε:
    • «API: online — live δεδομένα» → δουλεύετε πάνω στην πραγματική βάση.
    • «API: εκτός λειτουργίας — demo λειτουργία» → ο server δεν τρέχει ή δεν υπάρχει σύνδεση. Επανεκκινήστε το .bat.

⚠️ Τέλος ημέρας: κλείνετε πρώτα τον browser, μετά το παράθυρο του server (Ctrl+C ή κλείσιμο παραθύρου).


2. ΠΙΝΑΚΑΣ ΗΜΕΡΑΣ + ΜΠΑΡΑ ΕΙΚΟΝΙΔΙΩΝ

Πίνακας ημέρας (πρώτη σελίδα, πριν από την αναζήτηση πελάτη)

  • 📅 Ραντεβού σήμερα — πάτημα ανοίγει κατευθείαν τη σημερινή λίστα, ταξινομημένη με τη σειρά της ώρας.
  • 🔔 Συνδρομές — πάτημα για την οθόνη αναζήτησης συνδρομών (λήξεις ανά μήνα/έτος, ανά υπηρεσία, ανά πελάτη).
  • 🧾 Πρόχειρα παραστατικά για έγκριση — πάτημα για τις τιμολογήσεις προς έγκριση.
  • 🗂️ CRM — λίστα εταιρειών.

Η μπάρα εικονιδίων (γρήγορη πρόσβαση — ροή ημέρας πωλητή)

Εικονίδιο Λειτουργία
📅 Ραντεβού ημέρας Σημερινά ραντεβού + καταχώριση νέου
🗂️ CRM Πελατολόγιο — αναζήτηση και λίστα εταιρειών
🏢 Στοιχεία πελάτη Στοιχεία ταυτότητας του επιλεγμένου πελάτη
💶 Καρτέλα πελάτη Οικονομική κίνηση (αγορές, εισπράξεις, αρ. παραστατικών), προοδευτικά υπόλοιπα, λήξεις, γενικό υπόλοιπο
📦 Καρτέλα προϊόντος Κατάλογος προϊόντων (live)
🧾 Τιμολογήσεις για έγκριση Πρόχειρα παραστατικά προς έλεγχο

Στα 📅 και 🧾 εμφανίζεται κόκκινος/μπλε μετρητής με τον αριθμό των σημερινών ραντεβού / των προχείρων προς έγκριση. Ανανεώνεται αυτόματα.


3. ΕΠΙΛΟΓΗ ΠΕΛΑΤΗ — ΟΘΟΝΗ ΕΙΣΟΔΟΥ

Κάθε εργασία ξεκινά από εδώ. Η οθόνη έχει 4 ανεξάρτητα πεδία αναζήτησης:

  1. ΟΝΟΜΑΣΙΑ — γράμμα-γράμμα (π.χ. «ΚΑΝΤΑ»)
  2. ΑΦΜ — νούμερο-νούμερο (9 ψηφία)
  3. ΠΕΡΙΟΧΗ / ΠΟΛΗ — γράμμα-γράμμα
  4. ΤΗΛΕΦΩΝΟ — νούμερο-νούμερο (κινητό ή σταθερό)

Κανόνας: το κάθε πεδίο φιλτράρει ΜΟΝΟ το δικό του κριτήριο, ζωντανά με την πληκτρολόγηση. Με πάνω από ένα πεδίο συμπληρωμένο, τα αποτελέσματα στενεύουν (λειτουργία AND).

Από κάθε γραμμή αποτελέσματος έχετε 3 ενέργειες: Άνοιγμα (καρτέλα πελάτη) · Παραγγελία · Τιμολόγηση.

Μόλις επιλεγεί πελάτης, εμφανίζεται μπάρα «Ενεργός πελάτης» με τα βασικά στοιχεία και κουμπιά γρήγορης μετάβασης. Αλλαγή πελάτη μόνο από το κουμπί «✕ Αλλαγή πελάτη».

Χωρίς επιλεγμένο πελάτη, οι καρτέλες πελάτη / υπολοίπων / παραγγελίας / ραντεβού / κλήσεων σας επιστρέφουν στην οθόνη εισόδου.


4. ΣΤΟΙΧΕΙΑ ΠΕΛΑΤΗ (🏢)

Δείχνει τα πλήρη στοιχεία του ενεργού πελάτη (live από τη βάση): επωνυμία, εμπορική ονομασία, νομική μορφή, ΑΦΜ, ΔΟΥ, ΓΕΜΗ, καθεστώς ΦΠΑ, επάγγελμα, ΚΑΔ, διεύθυνση έδρας (οδός, αριθμός, πόλη, Τ.Κ., δήμος, νομός, χώρα), τηλέφωνα, email, ιστοσελίδα.

Έλεγχοι κατά την αποθήκευση: checksum ΑΦΜ (fail-closed) · μοναδικότητα ΑΦΜ · 5ψήφιο Τ.Κ.

Συμφωνία τρόπου πληρωμής (νέα)

Στην καρτέλα καταχωρείται η συμφωνία με τον πελάτη: Μετρητά / 15 / 30 / 45 / 60 ημέρες / Άλλο (κενό = όχι συμφωνημένο). Πλήκτρο «Προεπισκόπηση υπενθύμισης» δείχνει το κείμενο του email όπως θα σταλεί.

Αυτοματοποιημένη υπενθύμιση: σε όσους έχουν ανεξόφλητα παραστατικά και έχει περάσει η συμφωνημένη ημερομηνία πληρωμής (παλαιότερο παραστατικό + συμφωνημένες ημέρες, π.χ. +30), στέλνεται ευγενικό email με το ποσόν και τη συνοπτική καρτέλα — μετά, κάθε 3 ημέρες. Η αποστολή είναι με email (ο λογαριασμός mail ορίζεται από τη διαχείριση).

Στοιχεία παράδοσης (νέα — shipTo)

Καταχωρούνται εδώ: παραλήπτης/επωνυμία, οδός, αριθμός, περιοχή, πόλη, Τ.Κ. Αυτά γεμίζουν αυτόματα τα παραστατικά (προεπιλογή στον τύπο παραστατικού).

Συνδρομές υπηρεσιών

Live για τον ενεργό πελάτη: οι τρεις υπηρεσίες — ΣΕΜΙΝΑΡΙΑ (astseminars), IN PHONE/Πωλήτρια (inphone), IN WRITTEN/ΡΕΠΟΡΤΕΡ (inwritten) — με κατάσταση και ημερομηνία λήξης, συν όλες οι λοιπές συνδρομές του. Οι 3 υπηρεσίες είναι μόνο για ενημέρωση — δεν τιμολογούνται ποτέ (η βάση τις απορρίπτει με 422).

Εγκαταστάσεις / Υποκαταστήματα

Καρτέλα 1:N με κωδικούς όπως στο μητρώο ΑΑΔΕ (προαπαιτούμενο Ψ.Δ.Α.).

Τράπεζες δεν αφορούν τον πελάτη — τραπεζικοί λογαριασμοί υπάρχουν μόνο στην εκδότρια (βλ. §8).

Νέο ραντεβού από εδώ: το πλήκτρο «+ Νέο ραντεβού» ανοίγει την καταχώριση με τον ενεργό πελάτη ήδη συμπληρωμένο.

Εκδότρια = ΜΟΝΟ η ASTBOOKS ΙΚΕ (ΑΦΜ 800412764). Η καταχώριση νέας εταιρείας δημιουργεί πάντα πελάτη· αν ζητηθεί νέα εκδότρια η βάση απορρίπτει με 409.


5. ΣΥΝΔΡΟΜΕΣ — ΑΝΑΖΗΤΗΣΗ (🔔)

Οθόνη αναζήτησης συνδρομών με τα εξής φίλτρα (σε AND): ΜΗΝΑΣ (1–12) · ΕΤΟΣ · Προϊόν/υπηρεσία · Πελάτης (κομμάτι ονομασίας). Ανοίγει αυτόματα στον τρέχοντα μήνα.

Τα αποτελέσματα δείχνουν: πελάτη, κωδικό/υπηρεσία, κατάσταση, λήξη και στήλη «Τιμολόγηση» (✓ έχει εκδοθεί τιμολόγιο μέσα στο τελευταίο 12μηνο πριν τη λήξη / ✗ όχι — οι 3 υπηρεσίες πάντα χωρίς δικαίωμα).

«Ανανέωση +1 έτος» — ενεργοποιείται μόνο για συνδρομές που έχουν τιμολογηθεί· παρατείνει τη λήξη κατά ένα έτος (ίδια μέρα/μήνας) και κρατά ιστορικό ανανεώσεων. Live — 10.057 συνδρομές στη βάση.


6. ΚΑΡΤΕΛΑ ΠΕΛΑΤΗ (💶) — LIVE

Νέα είσπραξη

  • Ποσό (€), ημ/νία πληρωμής, τρόπος πληρωμής: Τράπεζα / Μετρητά / Χρεόγραφο (σε Τράπεζα συμπληρώνεται όνομα τράπεζας), σημειώσεις.
  • Καταχώριση είσπραξης → μειώνει το υπόλοιπο του πελάτη.

Κίνηση και συγκεντρωτικά

Πίνακας κίνησης: ημερομηνία, παραστατικό (σειρά/αύξων, τύπος), λήξη, χρέωση (αγορές/τιμολόγια) / πίστωση (πιστωτικά + εισπράξεις με τρόπο πληρωμής), προοδευτικό υπόλοιπο ανά γραμμή. Συγκεντρωτικά: σύνολο χρεώσεων, πιστώσεων, γενικό υπόλοιπο. Όλα live πάνω στα 29.977 πραγματικά παραστατικά που μεταφέρθηκαν από το παλαιό σύστημα.

Λήξη: υπολογίζεται ανά παραστατικό ως ημ/νία έκδοσης + συμφωνημένες ημέρες πληρωμής του πελάτη (§4 — χωρίς συμφωνία = 30 ημέρες, «Μετρητά» = ίδια μέρα). Αν η λήξη έχει περάσει και το υπόλοιπο είναι θετικό, εμφανίζεται κόκκινη σήμανση «καθυστέρηση».


7. ΠΑΡΑΓΓΕΛΙΑ — ΕΝΤΥΠΟ ΠΩΛΗΤΗ

  1. Ο πελάτης έχει ήδη επιλεγεί (το πεδίο πελάτη είναι read-only).
  2. Επιλέγετε πωλητή, ημερομηνία, κατάσταση, ημ/νία αποστολής/παράδοσης, παρατηρήσεις.
  3. Γραμμές: περιγραφή, ποσότητα, τιμή μονάδας, έκπτωση %, ΦΠΑ % ανά γραμμή.
  4. Τα σύνολα (καθαρά/ΦΠΑ/γενικό) υπολογίζονται με ακρίβεια Decimal — ποτέ float.
  5. Αποθήκευση → η παραγγελία παίρνει κατάσταση «Δημιουργήθηκε».

Καταστάσεις παραγγελίας: Δημιουργήθηκε → Σε εκτέλεση → Ολοκληρώθηκε → Τιμολογήθηκε (αυτόματα) ή Ακυρώθηκε.

Το έντυπο παραγγελίας είναι εσωτερικό — δεν είναι παραστατικό και δεν διαβιβάζεται στην ΑΑΔΕ/myDATA.


8. ΤΙΜΟΛΟΓΗΣΗ — ΕΚΔΟΣΗ ΠΑΡΑΣΤΑΤΙΚΟΥ

Επιλογή πελάτη εντός τιμολόγησης

Αν το παραστατικό είναι χειροκίνητο, εμφανίζεται ζωντανή αναζήτηση πελάτη με τα ίδια 4 ανεξάρτητα κριτήρια (ονομασία / ΑΦΜ / περιοχή-πόλη / τηλέφωνο) — δεν χρειάζεται να γυρίσετε στην οθόνη εισόδου.

Δύο τρόποι έκδοσης

Α) Από παραγγελία (βασική ροή): επιλέγετε την παραγγελία του πελάτη → οι γραμμές της έρχονται στο παραστατικό. Μία γραμμή παραγγελίας τιμολογείται ΜΟΝΟ ΜΙΑ φορά — η βάση το επιβάλλει (409 / partial unique index).

Β) Χειροκίνητη τιμολόγηση: προσθέτετε ελεύθερες γραμμές χωρίς παραγγελία (περιγραφή, ποσότητα, τιμή, έκπτωση %, ΦΠΑ %).

Κεφαλίδα παραστατικού

  • Σειρά (από βάση — μόνο ενεργές), αύξων αυτόματος από τη βάση (trigger — ποτέ από τον client).
  • Εκδότρια (εμείς) — φορτώνεται από τη βάση.
  • Ημ/νία έκδοσης, τρόπος πληρωμής.
  • Έκπτωση Α % και Έκπτωση Β % — εφαρμόζονται στο σύνολο των γραμμών, υπολογίζονται στο API με Decimal.
  • Στοιχεία παράδοσης (shipTo) — αν μείνουν κενά, γεμίζουν από την καρτέλα πελάτη.

Τραπεζικοί λογαριασμοί εκδότριας

Έως 5 λογαριασμοί (τράπεζα, IBAN, SWIFT) — αποτυπώνονται στο τέλος του παραστατικού. Διαχείριση (προσθήκη/διαγραφή) από την ίδια οθόνη τιμολόγησης. Δεν αφορούν τον πελάτη.

Αποθήκευση πρόχειρου → οριστικοποίηση

  • «Αποθήκευση πρόχειρου» — το παραστατικό ΔΕΝ παίρνει αριθμό, ΔΕΝ διαβιβάζεται. Διαγραφή επιτρέπεται μόνο σε πρόχειρο (hard delete).
  • «Οριστικοποίηση» — μετά την έγκριση (βλ. §9). Τότε ετοιμάζονται αυτόματα: πακέτο myDATA (προς διαβίβαση), PDF παραστατικού και email προς πελάτη (προς αποστολή).
  • Μετά την οριστικοποίηση εμφανίζονται πλήκτρα: «Λήψη PDF παραστατικού» και «Προεπισκόπηση email προς πελάτη».

Το υπόλοιπο πελάτη (§6) μετά την οριστικοποίηση ενημερώνεται αυτόματα από την καρτέλα.


9. ΠΡΩΤΟΚΟΛΛΟ ΕΓΚΡΙΣΗΣ (σύμφωνα με τη νομοθεσία myDATA)

  1. Ο πωλητής εκδίδει το παραστατικό σε κατάσταση «Πρόχειρο» — ΔΕΝ παίρνει αριθμό, ΔΕΝ διαβιβάζεται. (Το e-τιμολόγιο της ΑΑΔΕ δεν εκδίδει τίποτα σε αυτό το στάδιο.)
  2. Ο υπεύθυνος ελέγχει από την οθόνη 🧾 Τιμολογήσεις για έγκριση (τιμολογήσεις της ημέρας — σειρά/αύξων, πελάτης, πωλητής, ημ/νία, σύνολο, κατάσταση) και πατά «Έγκριση & οριστικοποίηση».
  3. Τότε μόνο το παραστατικό γίνεται «Οριστικοποιημένο» (myDATA: pending → διαβίβαση ΑΑΔΕ) και κλειδώνει: δεν μεταβάλλεται, δεν διαγράφεται ποτέ (αμετάβλητο ιστορικό).

Η παραγγελία και το τιμολόγιο συμφωνούν 100% — οι γραμμές του τιμολογίου είναι δεμένες με τις γραμμές της παραγγελίας (order_line_id) και οι αξίες υπολογίζονται σε ένα και μοναδικό σημείο (API, Decimal). Διαγραφή: μόνο πρόχειρα παραστατικά διαγράφονται (204) — και τότε η παραγγελία επιστρέφει σε «Σε εκτέλεση».


10. ΡΑΝΤΕΒΟΥ (📅) — LIVE

Καταχώριση (ο πωλητής):

  1. Ο πελάτης είναι επιλεγμένος.
  2. Επιλέγετε πωλητή από τη λίστα (live από βάση), ημ/νία, ώρα, τύπο (Δια ζώσης / Τηλεφωνικό / Βιντεοκλήση), τοποθεσία, παρατηρήσεις.
  3. 💾 Αποθήκευση → επιβεβαίωση με αριθμό id.

Ραντεβού της ημέρας: από το πλακίδιο «📅 Ραντεβού σήμερα» ανοίγει κατευθείαν η λίστα της ημέρας, ταξινομημένη με τη σειρά της ώρας (δυνατότητα ταξινόμησης ανά στήλη). Πλοήγηση ημερομηνίας (προηγ./επόμ./σήμερα) — ονόματα πελατών/πωλητών (όχι κωδικοί), ώρα, τύπος, κατάσταση. Κάθε γραμμή έχει «Άνοιγμα» — εμφανίζει τα στοιχεία του πελάτη με πλήρη λεπτομέρειες και πλήκτρο «+ Νέο ραντεβού». Επίσης καρτέλα «Επερχόμενα ραντεβού» (όλων των ημερών).

Αλλαγή ραντεβού: αν μετακινηθεί σε άλλη ώρα/ημέρα, κρατάται αυτόματα η προηγούμενη ώρα (rescheduled_from) — μετράει στις αναφορές «πόσα άλλαξαν ημερομηνία».

Καταστάσεις: Προγραμματίστηκε → Ολοκληρώθηκε / Ακυρώθηκε.


11. ΑΝΑΦΟΡΑ CRM ΑΝΑ ΗΜΕΡΑ (στη σελίδα Ραντεβού)

  • Ορίζετε ΑΠΟ / ΕΩΣ → «Εκτέλεση αναφοράς» (live).
  • Πίνακας ανά ημέρα: πόσα ραντεβού, πόσα άλλαξαν ημερομηνία (πορτοκαλί σήμανση), πόσες παραγγελίες γράφτηκαν, και σύνολα.

12. ΚΛΗΣΕΙΣ — LIVE

Καταγραφή εκάστης επαφής: αποτέλεσμα (Απάντησε / Απουσία / Κατειλημμένο / Μήνυμα), διάρκεια (δευτερόλεπτα), πωλητής, σημειώσεις. Καταχώριση → επιβεβαίωση με id. Ιστορικό: λίστα σε φθίνουσα χρονολογία με χρωματιστή σήμανση αποτελέσματος — live από τη βάση.


13. ΚΑΡΤΕΛΑ ΠΡΟΪΟΝΤΟΣ (📦) — LIVE

Αναζήτηση προϊόντος γράμμα-γράμμα (κωδικός ή ονομασία) με φίλτρο «μόνο ενεργά». Live από τον κατάλογο προϊόντων της βάσης.

Στοιχεία επιλεγμένου προϊόντος

Κωδικός, ονομασία, σειρά, αιτιολογία, ημερολόγιο, κατάσταση, υπηρεσία (οι 3 υπηρεσίες χωρίς δικαίωμα τιμολόγησης επισημαίνονται ρητά), σειρά ταξινόμησης.

Πωλήσεις (τεμάχια) — ζωντανά

Εμφανίζονται αυτόματα από την ανάλυση πωλήσεων (τιμολόγηση − πιστωτικά) μαζί με το σύνολο σε €.

ΦΠΑ % και Κόστος (€) — επεξεργάσιμα (v5.27)

  • Καταχωρείτε συντελεστή ΦΠΑ (π.χ. 24) και/ή κόστος σε € στα αντίστοιχα πεδία.
  • Πατάτε 💾 Αποθήκευση ΦΠΑ / κόστους — αποθηκεύεται απευθείας στον κατάλογο προϊόντων.
  • Κενό πεδίο = παράλειψη (δεν μηδενίζει την υπάρχουσα τιμή).
  • Η αλλαγή δεν αγγίζει τα ήδη εκδομένα παραστατικά — μόνο τον κατάλογο.

Ανάλυση πωλήσεων ανά πελάτη (κρυφή — μόνο αν ζητηθεί)

Το κουμπί 📊 Ανάλυση πωλήσεων ανά πελάτη ανοίγει αναλυτικό πίνακα: πελάτης, ΑΦΜ, τεμάχια, καθαρή αξία, σύνολο (εξαιρούνται πιστωτικά και ακυρωμένα).

Ο κατάλογος δεν κρατά τιμές/αποθέματα· οι τιμές πώλησης καταχωρούνται χειροκίνητα ανά γραμμή παραγγελίας/παραστατικού.


14. ΒΟΗΘΗΤΙΚΟΙ ΠΙΝΑΚΕΣ

ΔΟΥ (πηγή ΑΑΔΕ), ΚΑΔ και Δήμοι/Νομοί (ΕΛΣΤΑΤ), Τράπεζες (ΕΚΤ/BIC), Χώρες (ISO 3166), Συντελεστές ΦΠΑ, Πωλητές, Σειρές (tim_seira — ενεργές στη βάση).

Κατηγορία ΦΠΑ (πιστοποιημένη): 1=24% · 2=13% · 3=6% · 4=17% · 5=9% · 6=4% · 7=Χωρίς ΦΠΑ · 8=Εξαιρούμενο.


15. ΠΑΓΙΟΙ ΚΑΝΟΝΕΣ (τι πρέπει να ξέρετε)

  1. Διαγραφές = οριστικές. Δεν υπάρχει «κάδος». Πριν σβήσετε κάτι, σιγουρευτείτε.
  2. Οριστικοποιημένο παραστατικό δεν διαγράφεται και δεν μεταβάλλεται. Μόνο πρόχειρα.
  3. Πελάτης = εταιρεία του ενιαίου πίνακα. Δεν υπάρχει ξεχωριστός πίνακας πελατών — εκδότρια (ASTBOOKS ΙΚΕ, ΑΦΜ 800412764) και πελάτες στο ίδιο πελατολόγιο. Νέα εταιρεία = πάντα πελάτης· εκδότρια είναι ΜΟΝΟ η ASTBOOKS (η βάση απορρίπτει νέα εκδότρια με 409).
  4. Ακρίβεια χρημάτων: όλοι οι υπολογισμοί γίνονται με Decimal (numeric(18,2)/(18,3), half-up), ποτέ float. Έλεγχος: 100/100 tests ακρίβειας.
  5. Η εφαρμογή δουλεύει χωρίς AI — FastAPI + Supabase με service key. Το κλειδί API είναι ενσωματωμένο στο wireframe (τοπική χρήση μόνο).
  6. Κάθε γραμμή τιμολογίου δεμένη με πηγή της (παραγγελία) — απαγορεύεται η διπλή τιμολόγηση από τη βάση.
  7. Οι 3 υπηρεσίες (ΣΕΜΙΝΑΡΙΑ / IN PHONE / IN WRITTEN) δεν έχουν δικαίωμα τιμολόγησης — εμφανίζονται μόνο ως συνδρομές· η έκδοση παραγγελίας/παραστατικού με αυτές απορρίπτεται (422).
  8. Τραπεζικοί λογαριασμοί ανήκουν στην εκδότρια (έως 5, στο τέλος του παραστατικού) — όχι στους πελάτες.
  9. myDATA / email: στην οριστικοποίηση ετοιμάζονται το πακέτο myDATA (προς διαβίβαση ΑΑΔΕ — απαιτούνται διαπιστευτήρια) και το email προς πελάτη (προς αποστολή — απαιτείται σύνδεση mailbox).

16. ΑΝΤΙΜΕΤΩΠΙΣΗ ΠΡΟΒΛΗΜΑΤΩΝ

Σύμπτωμα Λύση
«API: εκτός λειτουργίας» Ξεκινήστε ξανά το ΤΙΜΟΛΟΓΗΣΗ_ΕΚΚΙΝΗΣΗ.bat — το παράθυρο του server πρέπει να μένει ανοιχτό
Λευκή σελίδα Ανανέωση (F5). Αν συνεχίζει, ελέγξτε ότι ο server τρέχει
«Κάποια γραμμή έχει ήδη τιμολογηθεί» (409) Η παραγγελία έχει ήδη τιμολογηθεί. Διαγράψτε πρώτα το πρόχειρο παραστατικό αν θέλετε επανέκδοση
«Η σειρά είναι ανενεργή» (409) Ενεργοποιήστε τη σειρά από Βοηθητικούς / API
«Λείπει η εκδότρια εταιρεία και/ή οι σειρές» Καταχωρήστε εκδότρια + σειρές στη βάση (βλ. §8)
«Λάθος checksum ΑΦΜ» Ελέγξτε τα 9 ψηφία του ΑΦΜ — ο έλεγχος είναι fail-closed

17. ΤΡΕΧΟΥΣΑ ΚΑΤΑΣΤΑΣΗ ΣΥΝΔΕΣΗΣ (13/10/2026)

Οθόνη Κατάσταση
Επιλογή πελάτη (4 κριτήρια) ✅ LIVE (ενιαίο πελατολόγιο)
Στοιχεία πελάτη (ταυτότητα + συμφωνία πληρωμής + παράδοση + συνδρομές + νέο ραντεβού) ✅ LIVE
Συνδρομές αναζήτηση (μήνας/έτος · προϊόν · πελάτης · ένδειξη τιμολόγησης → ανανέωση +1 έτος) ✅ LIVE (10.057 συνδρομές)
Καρτέλα πελάτη (💶): κίνηση, εισπράξεις (τράπεζα/μετρητά/χρεόγραφο), λήξεις, καθυστερήσεις ✅ LIVE (29.977 πραγματικά παραστατικά)
Παραγγελία → Τιμολόγηση → Έγκριση ✅ LIVE (πιστοποιημένη συμφωνία 100%)
Τιμολόγηση: εκπτώσεις Α/Β, ΦΠΑ % ανά γραμμή, στοιχεία παράδοσης ✅ LIVE
Τραπεζικοί λογαριασμοί εκδότριας (έως 5) ✅ LIVE (ο πίνακας υπάρχει — περιμένει καταχώριση IBAN)
Οριστικοποίηση → myDATA payload + PDF + email πελάτη ✅ LIVE (payload/PDF/email ετοιμάζονται αυτόματα)
Ραντεβού (πλακίδιο → λίστα ημέρας με σειρά ώρας) + Επερχόμενα + Αναφορές ημέρας ✅ LIVE
Κλήσεις (καταχώριση + ιστορικό) ✅ LIVE
Καρτέλα προϊόντος ✅ LIVE (κατάλογος 111 προϊόντων, πλήρη στοιχεία: σημαίες/λογαριασμοί/χαρακτήρες)
myDATA ΑΑΔΕ διαβίβαση ⏳ Προς διαβίβαση — απαιτούνται διαπιστευτήρια ΑΑΔΕ
Αποστολή email πελάτη / υπενθυμίσεων ⏳ Προς αποστολή — απαιτείται σύνδεση mailbox

ASTBOOKS — Εσωτερικό εγχειρίδιο χρηστών. Ενημέρωση: 13/10/2026 (v5.22 — νέο: καρτέλες «Στοιχεία πελάτη»/«Καρτέλα πελάτη» με λήξεις & καθυστερήσεις, συνδρομές μήνα/έτος/προϊόν/πελάτη με ανανέωση +1 έτος, ραντεβού ημέρας με σειρά ώρας & νέο ραντεβού από καρτέλα, πλήρη στοιχεία προϊόντων, εκδότρια μόνο ASTBOOKS). Προηγούμενη έκδοση: v5.15.