Τις βασικές αρχές για τη σχεδίαση παραστατικού (τιμολόγιο, απόδειξη λιανικής, δελτίο αποστολής, προσφορά κλπ.) σε html θα τις βρεις εδώ.
Η δημιουργία φορμών γίνεται με τις παρακάτω μεταβλητές – συντομίες (πεδία φορμών) που γράφονται μόνο με λατινικούς χαρακτήρες.
Γενικές μεταβλητές
| #TRM | Ενεργοποιεί την απλή αντικατάσταση μεταβλητών χωρίς στοίχιση και προκαθορισμένο πλάτος. Χρησιμεύει στις φόρμες html και γραμμογράφησης για ταμειακές μηχανές. *Προσοχή: με τη χρήση αυτής της μεταβλητής δεν βάζουμε καθόλου ~/^ στο τέλος των μεταβλητών |
| #LAN | Εμφάνιση επιλογών εκτύπωσης |
| #FMU | Σύνδεση με φορολογικό μηχανισμό τύπου Β. Η μεταβλητή αυτή δεν είναι απαραίτητη αφού υπάρχει επιλογή στις Ρυθμίσεις->Αγορές/πωλήσεις->Παραστατικά->Σήμανση |
| #MEA123 | Όπου 123 ο κωδικός γραμμής της μονάδας μέτρησης που θέλουμε να αντικατασταθεί στην εκτύπωση από τη δεύτερη |
| #RMU | Ορισμός δεκαδικών ψηφίων: μεταβλητή χωρίς την τρίλιζα|δεκαδικά π.χ. #RMUTIT|2,POS|2 Αν προσθέσουμε στα δεκαδικά που επιθυμούμε το 100 τότε γίνεται στρογγυλοποίση προς τα κάτω αν προσθέσουμε 200 προς τα πάνω π.χ. #RMUTIT|2,POS|102 |
Για dot matrix
| #DOS | Μετατροπή κωδικοποίησης χαρακτήρων σε DOS (Προσοχή! μόνο 1 φορά στη φόρμα) |
| #CON | Μικροί χαρακτήρες |
| #LEF | Στοίχιση αριστερά |
| #REV | Χαρτί προς τα πάνω |
| #CUT | Έλεγχος κοπής χαρτιού σε θερμικούς εκτυπωτές |
Παραστατικό
| #HME | Ημερομηνία | ||
| #PAR | Παραστατικό | ||
| #SEI | Σειρά | ||
| #ARI | Αριθμός παραστατικού | ||
| #APP | Αριθμός παραστατικού – μηδενίζει κάθε μέρα | ||
| #SXE | Σχετικό παραστατικό | ||
| #SKO | Σκοπός διακίνησης | ||
| #TRA | Τρόπος αποστολής | ||
| #TOF | Τόπος φόρτωσης | ||
| #TOA | Τόπος αποστολής | ||
| #DPA | Ημερομηνία παράδοσης | ||
| #WPA | Ώρα παράδοσης | ||
| #WPT | Ώρα παράδοσης εως | ||
| #SEL | Αριθμός σελίδας (Αν δεν υπάρχει το #SEM Σε μεταφορά δεν μπορεί να μετρήσει) | ||
| #YPO | Υπογραφή (Μόνο σε σύνδεση τύπου Β) | ||
| #TIA | Τίτλος αντιγράφου όπως έχει οριστεί στις ρυθμίσεις | ||
| #XRH | Όνομα χρήστη | ||
| #VOU | Αριθμός voucher | ||
| #QRT | Σύνδεσμος QR code για την απόδειξη λιανικής. Δεν ορίζουμε σημείο τέλους (^, ~, ±) | ||
| #QRC | Εικόνα QR code για την απόδειξη λιανικής. Δεν ορίζουμε σημείο τέλους (^, ~, ±)
|
||
| #SUM | Γραμμή συνόλων για δημιουργία αρχείου e (Μόνο για φορολογικούς μηχανισμούς που χρησιμοποιούν εικονικό εκτυπωτή). Δεν ορίζουμε σημείο τέλους (^, ~, ±)
Οι κωδικοί του παραστατικού σήμανσης ορίζονται στις ρυθμίσεις βάσει αυτού του πίνακα. Επίσης στις ρυθμίσεις ΦΠΑ πρέπει να ορισθεί και η κατηγορία ΦΠΑ σήμανσης: 1: 6% 2: 13% 3: 24% 4: 36% 5: 0% |
Στοιχεία πελάτη
| #KWP | Κωδικός πελάτη |
| #POL | Πόλη |
| #EPW | Επωνυμία |
| #EMA | |
| #TKV | Τ.Κ. |
| #TUV | Θυρίδα/Όροφος |
| #DIE | Διεύθυνση |
| #DOY | Δ.Ο.Υ. |
| #PRX | Περιοχή |
| #CRY | Κωδικός χώρας (2 γράμματα) |
| #CRT | Χώρα |
| #AFM | Α.Φ.Μ. |
| #EPA | Επάγγελμα |
| #TEL | Τηλέφωνο |
| #KIN | Κινητό |
| #ONO | Όνομα |
| #EPI | Επίθετο |
| #CC1 έως #CC9 | 1ο έως 9ο προσαρμοσμένο πεδίο |
| #C10 έως #C20 | 10ο έως 20ο προσαρμοσμένο πεδίο |
| #SH1 | 1η γραμμή σημειώσεων |
| #SH2 | 2η γραμμή σημειώσεων |
| #SHM | Σημειώσεις |
Στοιχεία πελάτη παράδοσης/αποστολέα
| #PKW | ΚΩΔΙΚΟΣ ΠΕΛΑΤΗ |
| #PPO | ΠΟΛΗ |
| #PEP | ΕΠΩΝΥΜΙΑ |
| #PTK | Τ.Κ. |
| #PDI | ΔΙΕΥΘΥΝΣΗ |
| #PDO | Δ.Ο.Υ. |
| #PPR | ΠΕΡΙΟΧΗ |
| #PRT | ΧΩΡΑ |
| #PAF | Α.Φ.Μ. |
| #PPA | ΕΠΑΓΓΕΛΜΑ |
| #PTH | ΤΗΛΕΦΩΝΟ |
| #PKI | ΚΙΝΗΤΟ |
Στοιχεία πελάτη παραλήπτη
| #SKW | ΚΩΔΙΚΟΣ ΠΑΡΑΛΗΠΤΗ |
| #SYP | ΠΟΛΗ |
| #SEP | ΕΠΩΝΥΜΙΑ |
| #SPA | ΕΠΑΓΓΕΛΜΑ |
| #STK | Τ.Κ. |
| #SDI | ΔΙΕΥΘΥΝΣΗ |
| #SDO | Δ.Ο.Υ. |
| #SPX | ΠΕΡΙΟΧΗ |
| #SRT | ΧΩΡΑ |
| #SAF | Α.Φ.Μ. |
| #STH | ΤΗΛΕΦΩΝΟ |
| #SKI | ΤΗΛΕΦΩΝΟ |
Όχημα
| #OXO | Όνομα οδηγού |
| #OXM | Μάρκα |
| #ARA | Αριθμός αυτοκινήτου |
| #MDL | Μοντέλο |
| #TYP | Τύπος |
| #FUE | Καύσιμο |
| #POW | Κυβικά |
| #VNU | Αριθμός πλαισίιου |
| #ENN | Αριθμός κινητήρα |
| #VCO | Χρώμα |
| #LID | Ημερομηνία |
Γραμμή είδους
| #AAA | Αριθμός γραμμής είδους |
| #ARX | Επαναληψη γραμμης ειδων (σε οποια γραμμη βρισκεται την επαναλαμβανει μεχρι το τελος των ειδων – ειδικο για ταμειακες) |
| #TLS | Επαναληψη δευτερευουσα (αν υπαρχουν κι αλλες γραμμες που συνοδευουν τη γραμμη ειδων – η εντολη μπαινει υποχρεωτικα μετα την #ARX) |
| #KWE | Κωδικός είδους (Πρέπει να μπαίνει υποχρεωτικά στην αρχή κάθε γραμμής) |
| #KWA | Κωδικός είδους αγοράς |
| #SD1 έως #SD9 | 1ο έως 9ο πρόσθετο πεδίο (Βοήθεια εδώ) |
| #SD0 | 10ο πρόσθετο πεδίο |
| #S11 έως #S50 | 11ο έως 50ο πρόσθετο πεδίο |
| #SDA | Σημειώσεις είδους (Αναλυτική περιγραφή) |
| #PES | Περιγραφη ειδους με σειριακο (προσοχη! οχι μαζι με τη μεταβλητη #PER) |
| #PER | Περιγραφη ειδους (προσοχη! οχι μαζι με τη μεταβλητη #PES). Στην περιγραφή μπορούμε να αφαιρέσουμε κάποιους χαρακτήρες ή και να αλλάξουμε τον αριθμό χαρακτήρων χρησιμοποιώτας την λειτουργία αντικατάστασης. |
| #POS | Ποσότητα |
| #MON | Μονάδα μέτρησης |
| #TIT | Αξία μονάδας χωρίς ΦΠΑ, #PFI Αξία μονάδας με έκπτωσή προ ΦΠΑ |
| #TIM | Αξία μονάδας με ΦΠΑ |
| #FPA | ΦΠΑ (ποσοστό %) |
| #AFP | ΦΠΑ συνόλου |
| #KFP | Κωδικος ταμειακής |
| #PFP | Περιγραφή ΦΠΑ |
| #EKP | Εκπτωση (ποσοστο %) |
| #EKX | Εκπτωση χωρισ δεκαδικα (ποσοστο %) καταργηθηκε |
| #SPR | Συνολο χωρις ΦΠΑ |
| #SYN | Συνολο με ΦΠΑ |
| #SE0 | Σειριακοι αριθμοι (ολοι) |
| #SE1 έως #SE5 | 1ος έως 5ος σειριακός αριθμός |
| #PAD | Ποσο μονάδας είδους με ΦΠΑ μετά απο έκπτωση |
| #PFI | Ποσο μονάδας είδους προ ΦΠΑ μετά απο έκπτωση |
| #PEK | Ποσο συνολικης εκπτωσης γραμμης |
| #PFK | Ποσο συνολικης εκπτωσης γραμμης με ΦΠΑ |
| #PFE | Ποσο προ ΦΠΑ προ εκπτωσης γραμμης |
| #PHO | Σύνδεσμος φωτογραφίας είδους. Στην html πρέπει να μπει ως εξής: <img src=”#PHO ~” height=”50px”> |
| #SUB | Υποκατηγορία είδους |
| #CAT | Κατηγορία είδους |
| #SEM | Σε μεταφορά (Να μπαίνει πάντα μετά τη λίστα ειδών – Δηλώνει το τέλος της) |
Γραμμή είδους – διακίνηση
| #KUE | Θέση είδους |
| #MER | Μερίδα |
| #STI | Στίχος |
| #KLH | Λήξη είδους |
| #KEN | Έναρξη είδους |
| #KKY | Όγκος είδους |
| #KTE | Εμβαδό είδους |
| #VAR | Βάρος είδους |
| #AXI | Αξία είδους |
| #KKP | Όγκος*Ποσότητα |
| #KTP | Εμβαδό*Ποσότητα |
| #VAP | Βάρος*Ποσότητα |
| #AXP | Αξία*Ποσότητα |
| #POD | 2η ποσότητα στη μονάδα |
| #MOD | 2η μονάδα μέτρησης |
| #POE | 2η ποσότητα |
| #P2D | 3η ποσότητα στη μονάδα |
| #M2D | 3η μονάδα μέτρησης |
| #P2E | 3η ποσότητα |
Σύνολα
| #SPO | Σύνολο ποσότητας | ||
| #TEP | Σύνολο χωρίς ΦΠΑ | ||
| #TEF | ΦΠΑ συνόλου | ||
| #TIL | Σύνολο με ΦΠΑ (όλου του παραστατικού) | ||
| #LOI | Αξία λοιπών χρεώσεων προ ΦΠΑ (Άθροισμα αρνητικών πρόσθετων) | ||
| #POI | Αξία πρόσθετων χρεώσεων με ΦΠΑ | ||
| #PIL | Σύνολο με ΦΠΑ – Αξία πρόσθετων χρεώσεων με ΦΠΑ | ||
| #LPF | Αξία συνόλου και λοιπών χρεώσεων προ ΦΠΑ | ||
| #LPP | Αξία συνόλου χωρίς λοιπές χρεώσεις με ΦΠΑ | ||
| #SXO | Σχόλιο | ||
| #TRP | Τίτλος τρόπου πληρωμής | ||
| #TR2 | Τίτλος πρόσθετου τρόπου πληρωμής | ||
| #KTR | Κωδικός τρόπου πληρωμής | ||
| #KTS | Κωδικός τρόπου πληρωμής ταμειακής | ||
| #PYP | Παλιό υπόλοιπο | ||
| #NYP | Νέο υπόλοιπο | ||
| #MET | Στην καταχώρηση παραστατικού, είναι τα μετρητά (Για να γίνει υπολογισμός για ρέστα στη ταμειακή. Όταν είναι μηδενική η αξία και στη γραμμή υπάρχει μόνο 1 μεταβλητή, διαγράφεται η γραμμή). Στην επανεκτύπωση είναι ο πρώτος τρόπος πληρωμής. |
||
| #RES | Ρέστα | ||
| #CRD | Αξία πρόσθετου τρόπου πληρωμής (Όταν είναι μηδενική η αξία και στη γραμμή υπάρχει μόνο 1 μεταβλητή, διαγράφεται η γραμμή) | ||
| #SPE | Συνολο προ εκπτωσης | ||
| #SSE | Συνολο εκπτωσης | ||
| #SSF | Συνολο εκπτωσης με ΦΠΑ | ||
| #EPE | Συνολικο ποσοστο εκπτωσης | ||
| #FP1 έως #FP5 | Ανάλυση ΦΠΑ | ||
| #FPN | Ανάλυση ΦΠΑ (μόνο για φόρμα HTML) Επειδή είναι πίνακας για να υπάρχει η δυνατότητα διαμόρφωσης, συμπλήρωσε στο πάνω μέρος της σελίδας:
|
||
| #MM1 έως #MM5 | Συνολική ποσότητα μονάδας μέτρησης |
Σύνολα – Διακίνηση
| #SYO | Σύνολο όγκου |
| #SYE | Σύνολο εμβαδού |
| #SYB | Σύνολο βάρους |
| #SYA | Σύνολο αξίας |
| #S2P | Σύνολο ποσότητας 2ης μονάδας μέτρησης |
| #S3P | Σύνολο ποσότητας 3ης μονάδας μέτρησης |
| #M21 έως #M25 | Ποσότητα 2ης μονάδας μέτρησης |
| #M31 έως #M35 | Ποσότητα 3ης μονάδας μέτρησης |
| #A21 έως #A25 | Συνολική ποσότητα 2ης μονάδας μέτρησης |
| #A31 έως #A35 | Συνολική ποσότητα 3ης μονάδας μέτρησης |
| #SY1 έως #SY5 | Συνολικός όγκος ανά μονάδα μέτρησης |
| #CS1 έως #CS5 | Προσαρμοσμένο πεδίο 1 έως 5 |
| #C51 έως #C59 | Στο προσαρμοσμένο πεδίο 5 των πωλήσεων (#CS5) μπορούμε να έχουμε έως 9 έξτρα πεδία. Θα πρέπει να γραφούν με διαχωριστικό μεταξύ τους το σύμβολο | όπως παρακάτω: #C51|#C52|#C53|#C54|#C55|#C56|#C57|#C58|#C59 |
| #CUS | Ελεύθερο πεδίο που προέρχεται από τη μεταβλητή “pvlhseis”.”custom”. Σε αυτό καταχωρούνται και οι πόντοι επιβράβευσης πελατών, οπότε για εκτύπωσή τους έχουμε: Προηγούμενοι πόντοι: #CU3 Πόντοι παραστατικού: #CU2 Σύνολο πόντων: #CU1 |
| #CU1 | To 1ο μέρος του #CUS με διαχωριστικό “|” |
| #CU2 | To 2ο μέρος του #CUS με διαχωριστικό “|” |
| #CU3 | To 3ο μέρος του #CUS με διαχωριστικό “|” |
| #CU4 | To 4ο μέρος του #CUS με διαχωριστικό “|” |
| #CU5 | To 5ο μέρος του #CUS με διαχωριστικό “|” |
Μεταβλητές
- Βάζοντας μέσα στις μεταβλητές το σύμβολο ^ ορίζεις το τέλος και στοιχίζεις δεξιά. Αυτό χρησιμοποιείται κυρίως σε αριθμούς. Στο σχεδιασμό φόρμας με html αυτό δεν είναι απαραίτητο, αφού στοιχίζουμε με το κώδικα.
- Βάζοντας μετά τις μεταβλητές το σύμβολο ~ ορίζεις το τέλος.
- Με το σύμβολο ± ορίζεις το τέλος με τη διαφορά ότι κόβει το περιεχόμενο του πεδίου. Στο σχεδιασμό φόρμας με html αυτό δεν είναι απαραίτητο, αφού στοιχίζουμε με το κώδικα.
Ονομασία αρχείων φόρμας
ΠΑΡΑΔΕΙΓΜΑ #1:
forma.3.txt
Δημιουργειται ο καταλογος forma και το αρχειο forma.txt καθε φορα που εκτυπώνεται ενα παραστατικο σε αρχείο
ΠΑΡΑΔΕΙΓΜΑ #2:
forma.1.txt
forma.2.txt
forma.3.txt
forma1.1.txt
Δημιουργουνται 2 καταλογοι:
forma & forma1
Στον καταλογο forma υπαρχει το αρχειο forma.txt και στο καταλογο forma1 το αρχειο forma1.txt
Δυναμική μετάφραση
Υπάρχει δυνατότητα μετάφρασης μεταβλητών και κειμένου της φόρμας προσθέτοντας το παρακάτω κώδικα:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<script> function translateText(textToTranslate) { const translations = { "ΤΙΜΟΛΟΓΙΟ ΥΠΗΡΕΣΙΩΝ": "SERVICES INVOICE", "ΑΠΟΔΕΙΞΗ ΛΙΑΝΙΚΗΣ": "RECEIPT" }; if (translations[textToTranslate]) { return translations[textToTranslate]; } return textToTranslate; } </script> |
Σε κάθε πεδίο που θέλουμε να αλλάζει δυναμικά αλλάζουμε το κώδικα από, για παράδειγμα
|
1 |
<td align="center" style="height: 20px">#PAR</td> |
σε
|
1 |
<td align="center" style="height: 20px">translateText('#PAR')</td> |
