Pocketbiz Android ExVan
Entersoft Business Suite® | Entersoft CRM® | Entersoft Mobile Suite®
Τεχνικό εγχειρίδιο
Περιεχόμενα
- 1 Ταυτότητα
- 2 Copyright
- 3 = Ex-Van
- 3.1 Εισαγωγή
- 3.2 Σχετικοί Πίνακες
- 3.3 Σχετικές παράμετροι πίνακα CONFIGURATION
- 3.4 Λειτουργικότητα
- 3.5 Παραμετροποίηση
- 3.5.1 Διαφορές από Windows Mobile
- 3.5.2 Παραμετροποίηση tblLoading
- 3.5.3 Αυτόματη Δημιουργία Φόρτωσης (AUTOLOADFROMSDE)
- 3.5.4 Παραστατικά πώλησης - παραμετροποίηση SDT
- 3.5.5 Παραστατικά Αποθήκης (ΣΔΑ-ΣΔΕ) – παραμετροποίηση XDT
- 3.5.6 Παραμετροποίηση tblPrintouts - Εκτυπώσεις
- 3.5.7 Παραμετροποίηση tblPDAMenu
- 3.5.8 Ακυρώσεις - Ειδικές εργασίες
- 3.5.9 Ταμειακή εκκαθάριση (tblReports)
- 3.5.10 Σημεία προσοχής
- 3.6 XML παραμέτρων πίνακα Configuration
- 3.6.1 Υποστηριζόμενα attributes στο xml των παραμέτρων
- 3.6.2 Παραμετροποίηση EXVanBalanceXML (εμφάνιση Ισοζυγίου)
- 3.6.3 Παραμετροποίηση ExVanLoadingXML (οθόνη φορτώσεων)
- 3.6.4 Παραμετροποίηση EXVanViewInvoicesXML (οθόνη προβολών παραστατικών) – EXVanViewInvoicesXMLByCusId
- 3.6.5 Παραμετροποίηση ExvanWrhDocumentListXML (Προβολή ΣΔΑ, ΣΔΕ – από την επιλογή εκτύπωση παραστατικών αποθήκης)
- 3.6.6 Παραμετροποίηση EXVANSETSXML (Σετ ειδών)
- 3.6.7 Παραμετροποίηση XVANINVENTORYCATALOGUEXML
- 3.6.8 Παραμετροποίηση XVANInventoryXML (Απογραφή)
- 3.6.9 Παραμετροποίηση XVanManualLoadingCatalogueXML (χειροκίνητη φόρτωση)
Ταυτότητα
Έκδοση κειμένου 2.0
Τελ. ενημέρωση Ιούνιος 2021
Copyright
© Copyright 2011 Entersoft A.E. Με την επιφύλαξη όλων των νόμιμων δικαιωμάτων.
Δεν επιτρέπεται η αναδημοσίευση ή μετάδοση με οποιαδήποτε μορφή και για οποιοδήποτε λόγο μέρους ή όλου του παρόντος εγχειριδίου, χωρίς τη ρητή άδεια της Entersoft Α.Ε.
Όσον αφορά το περιεχόμενο του παρόντος…
- Μπορεί να μεταβληθεί οποιαδήποτε στιγμή.
- Εξυπηρετεί αποκλειστικά πληροφοριακούς σκοπούς.
- Δεν παρέχεται εγγύηση για την ύπαρξη τυχόν λαθών ή για τη λανθασμένη χρήση ή για μη επιθυμητά αποτελέσματα από τη χρήση των προτεινόμενων στο παρόν διαδικασιών.
= Ex-Van
Εισαγωγή
Περιγράφεται η παραμετροποίηση και η λειτουργικότητα του κύκλου λειτουργίας του Ex-Van.
Ένας κύκλος λειτουργίας του ex-van αποτελείται από τις παρακάτω εργασίες (με bold γράμματα οι απαραίτητες):
Συγχρονισμός
Φόρτωση (Χειροκίνητη Φόρτωση)
Πωλήσεις – επιστροφές – ακυρώσεις – Αξιακά Παραστατικά
Εκτύπωση ισοζυγίου
Εκτύπωση αξιών πώλησης
Καταμέτρηση
Εκφόρτωση (κλείσιμο ημέρας)
Εκτύπωση ΣΔΕ
Συγχρονισμός
Το module ex-van.apk αποτελεί μια διαφορετική έκδοση του sales. Το Ex-Van αναφέρεται ως όρος στην τιμολόγηση επί αυτοκινήτου και αφορά αντιπροσώπους ή υπαλλήλους εταιριών, οι οποίοι τιμολογούν απευθείας τους πελάτες της εταιρίας. Οι ex-van έχουν ένα φορτηγό (το οποίο συστημικά είναι ένας αποθηκευτικός χώρος) και το γεμίζουν με είδη που θα πουλήσουν, πραγματοποιώντας φόρτωση. Τα είδη αυτά με τις ποσότητες τους αφαιρούνται από την κεντρική αποθήκη της εταιρίας. Η έννοια παραστατικά αποθήκης αναφέρεται στα παραστατικά που κόβονται από τους exvan και διακινούν ποσότητες ειδών μεταξύ αποθηκών. Τα παραστατικά αποθήκης είναι :
- Το ΣΔΑ (Συγκεντρωτικό Δελτίο Αποστολής) και κόβεται από την κεντρική αποθήκη προς ένα Van που θα τιμολογεί. Αυτό γίνεται με την έναρξη ημέρας και ενημερώνει και το στοκ του φορτηγού με τα είδη και τις ποσότητες τους.
- Το ΣΔΕ (Συγκεντρωτικό Δελτίο Επιστροφών), που κόβεται από το φορτηγό προς την κεντρική αποθήκη και αδειάζει το στοκ του φορτηγού. Αυτό κόβεται κατά το κλείσιμο ημέρας. Δεν είναι απαραίτητο να γίνεται κλείσιμο ημέρας καθημερινά. Μπορεί να γίνεται μια φόρτωση (ΣΔΑ) τη Δευτέρα, επαναφορτώσεις την Τρίτη και την Τετάρτη και κλείσιμο ημέρας να γίνει την Πέμπτη.
Είναι πολύ σημαντικό ότι τόσο το sales όσο και το ex-van στηρίζονται στην ίδια βάση και απαιτούνται λίγες αλλαγές στην παραμετροποίηση.
Σχετικοί Πίνακες
| Πίνακας | Περιγραφή | Article Type | Sync Type |
|---|---|---|---|
| SDT | Τύποι παραστατικών πώλησης | DOWNLOAD | PUBLIC |
| XDT | Τύποι παραστατικών αποθήκης | DOWNLOAD | PUBLIC |
| DOS | Σειρές παραστατικών | DOWNLOAD | PUBLIC |
| STS | Σύνδεση τύπου παραστατικού πώλησης με σειρά και όχημα | DOWNLOAD | PUBLIC |
| XTS | Σύνδεση τύπου παραστατικού αποθήκης με σειρά και όχημα | DOWNLOAD | PUBLIC |
| SEN | Αρίθμηση σειρών | UPLOAD | PRIVATE |
| tblLoading | Πίνακας παραστατικών φόρτωσης (ΣΔΑ) | DOWNLOAD | PUBLIC |
| tblAkirotika | Δέσιμο των κανονικών τύπων παραστατικών με τους αντίστοιχους ακυρωτικούς τύπους παραστατικών | DOWNLOAD | PUBLIC |
| tblExvanLoaded | Αποθηκεύει τις πραγματοποιθείσες φορτώσεις, ανά αποθήκη, ανά slmid, ανά Loadcode (κωδικός φόρτωσης) και ενημερώνεται με την ημερομηνία εκφόρτωσης (UnloadDate) και με το xidid του ΣΔΑ. | UPLOAD | PRIVATE |
| tblPDAMenu | Πίνακας στον οποίο παραμετροποιούνται τα μενού του XVAN Module | DOWNLOAD | PUBLIC |
| Vehicles | Πίνακας φορτηγών («δένει» τον πωλητή slmid με την αποθήκη του φορτηγού του wrhid) | DOWNLOAD | PUBLIC |
| tblVehicleStock | Πίνακας στοκ φορτηγού | UPLOAD | PRIVATE |
| tblInvMaster | Πίνακας header παραστατικών | UPLOAD | PRIVATE |
| tblInvDetail | Πίνακας detail παραστατικών | UPLOAD | PRIVATE |
| tblWrhMaster | Πίνακας header παραστατικών αποθήκης (ΣΔΑ,ΣΔΕ) | UPLOAD | PRIVATE |
| tblWrhDetail | Πίνακας detail παραστατικών αποθήκης | UPLOAD | PRIVATE |
| Wrh | Αποθήκες | DOWNLOAD | PUBLIC |
| tblPrintouts | Εκτυπώσεις | DOWNLOAD | PUBLIC |
Όταν έχουμε χειροκίνητη φόρτωση, το tblLoading πρέπει να είναι UPLOAD αλλά χρειάζεται προσοχή αν γίνονται insert και στον server…
Σχετικές παράμετροι πίνακα CONFIGURATION
| ΠΑΡΑΜΕΤΡΟΣ | ΠΕΡΙΓΡΑΦΗ | ΤΙΜΕΣ | DEFAULT | ΥΠΟΧΡΕΩΤΙΚΟ | Έως έκδοση | ||
|---|---|---|---|---|---|---|---|
| ALLOW_ADD_ALL | Προσθέτει στο details όλα τα στοιχεία από tblVehicleStock. Δουλεύει όταν έχει τιμή 1 και μόνο για sdt με updQty = -1 | 1 | OXI | 6 | |||
| AUTOLOADFROMSDE | Αυτόματη δημιουργία φόρτωσης με βάση το ΣΔΕ | 0,1 | 0 | ΟΧΙ | 7 | ||
| CANCELINGPARAM |
|
Ακέραιος | ΟΧΙ | 7 | |||
| Default_Product_Input | 0: Δεν ανήγει κάποιο input (catalogue/fast entry/pdf) κατά την έναρξη του παραστατικού 1: Ανοίγει το fast entry κατά την έναρξη του παραστατικού |
0, 1 | 0 | ΟΧΙ | 6 | ||
| DEFICITEXPIREDXDT | XdtID ληγμένων που θα δημιουργηθεί από την απογραφή | FK xdtid πίνακα XDT | ΟΧΙ | 7 | |||
| DEFICITXDT | XdtID ελλείματος που θα δημιουργηθεί από την απογραφή | FK xdtid πίνακα XDT | ΟΧΙ | 7 | |||
| EXPIREDWRH | Αποθήκη Ληγμένων | Ακερ | 99999 | ΟΧΙ | 6 | ||
| EXVAN | ΕΝΕΡΓΟΠΟΙΗΣΗ MODULE EXVAN (κεντρικό μενού) | 0,1 | 0 | ΝΑΙ | 7 | ||
| EXVAN_ALLOWRELOAD | Αν θα επιτρέπεται η επαναφόρτωση | 0,1 | ΟΧΙ | 7 | |||
| EXVAN_ALLOWRETURNWITHOUTLOADING | Επιτρέπει να κάνεις επιστροφή αν δεν έχεις κάνει φόρτωση | 0,1 | 6 | ||||
| EXVAN_LOADINGS_SORTING | Σειρά εμφάνισης φορτώσεων π.χ. LoadDate DESC | ΟΧΙ | 7 | ||||
| EXVanBalanceXML | Το XML για την εμφάνιση του Ισοζυγίου | XML 7.1 | - | ΟΧΙ | 7 | ||
| EXVanLoadingXML | Το XML για την παραμετροποίηση της οθόνης των φορτώσεων |
XML 7.2 |
- | ΝΑΙ | 7 | ||
| EXvanReturnsXML | Το XML που καθορίζει τον τρόπο εμφάνισης του καταλόγου των ειδών σε παραστατικά επιστροφών. Αυτό γίνεται σε νεότερες εκδόσεις και μέσα από το πεδίο salesconfig | XML | - | OXI | 6 | ||
| EXvanSalesXML | Το XML που καθορίζει τον τρόπο εμφάνισης του καταλόγου των ειδών στα παραστατικά πωλήσεων. Αυτό γίνεται σε νεότερες εκδόσεις και μέσα από το πεδίο salesconfig | XML | - | ΝΑΙ | 6 | ||
| EXVANSETS | 1=Ενεργοποιεί τα σετ ειδών | 0,1 | 0 | OXI | 6 | ||
| EXVANSETSXML | Το xml για τα Σετ ειδών |
XML 7.3 |
- | 6 | |||
| EXVanViewInvoicesXML | To XML που καθορίζει τη μορφή εμφάνισης των προβολών των παραστατικών. Στις προβολές φαίνονται όλα τα παραστατικά που έχει κόψει το φορτηγό σε μια ημερομηνία. |
XML 7.4 |
- | ΟΧΙ | 7 | ||
| EXVanViewInvoicesXMLByCusId | XML όμοιο με το προηγούμενο, μόνο που αφορά τις προβολές παραστατικών μέσα στον πελάτη |
XML 7.4 |
- | ΟΧΙ | 7 | ||
| ExVanWrhDocumentListXML | Προβολή παραστατικών αποθήκης (ΣΔΑ, ΣΔΕ) |
XML 7.5 |
- | 7 | |||
| HIDEUNLOADEXPIRED | 1=κρύβει το κουμπί ληγμένων πάνω δεξιά στην έκδοση ΣΔΕ | 0,1 | - | OXI | 7 | ||
| isnewXvan | 1=ενεργοποίηση νέου XVan | 0,1 | 0 | ΟΧΙ | 7 | ||
| ISSUEWRHINVOICES | Αν είναι 1 τότε θα καταχωρούνται ΣΔΑ & ΣΔΕ κατά την έναρξη και το κλείσιμο ημέρας | 0,1 | 1 | ΟΧΙ | 7 | ||
| LOADINGXDTID | xdtID παραστατικού αποθήκης για ΣΔΑ (για καταχώρηση στα tblWrhMaster & tblWrhDetail) | FK xdtid πίνακα XDT | OXI | 7 | |||
| PREFILLINVENTORY | Αν θα είναι προγεμισμένη η απογραφή από το tblvehiclestock | - | - | OXI | 7 | ||
| resetQtyOnLoad | 1=η επαναφόρτωση αρχικοποιεί την ποσότητα φόρτωσης και μηδενίζει τις υπόλοιπες ποσότητες. 0= απλώς αθροίζει στην ποσότητα φόρτωσης. | 0,1 | OXI | 7 | |||
| SET_DOCNUM_ON_PRINT | Δίνει αρίθμηση στο παραστατικό όταν πατήσει εκτύπωση (mondelez) | OXI | 7 | ||||
|
sqlOffGetEXVanHeaderInfo /sqlOnGetEXVanHeaderInfo |
Το SQL που καθορίζει τα στοιχεία που θα παρουσιάζονται στο header των παραστατικών. | XML | - | ΟΧΙ | 6 | ||
| sqlOffGetXVanDetailEditInfo | 6 | ||||||
| SURPLUSEXPIREDXDT | XdtId πλεονάσματος ληγμένων που θα δημιουργηθεί από την απογραφή | FK xdtid πίνακα XDT | ΟΧΙ | 7 | |||
| SURPLUSXDT | XdtId πλεονάσματος που θα δημιουργηθεί από την απογραφή | FK xdtid πίνακα XDT | ΟΧΙ | 7 | |||
| UNLOADINGXDTID | ID παραστατικού αποθήκης για ΣΔΕ (για καταχώρηση στα tblWrhMaster & tblWrhDetail) | FK xdtid πίνακα XDT | OXI | 7 | |||
| WRHID | ID κεντρικής αποθήκης | ΟΧΙ | 7 | ||||
| XVanDetailsEditXML | Το xml που καθορίζει το edit των γραμμών του παραστατικού. Είναι τα στοιχεία που εμφανίζονται με το μολύβι στα details του παραστατικού. | XML | - | ΟΧΙ | 6 | ||
| XVanDetailsXML | XML που καθορίζει τις πληροφορίες που θα εμφανίζονται στις γραμμές του παραστατικού. | XML | ΟΧΙ | 6 | |||
| XVanHeaderXML | Το XML που καθορίζει τι θα φαίνεται στο footer της οθόνης των details. (Συνολικές αξίες, Σύνολα ποσοτήτων, Σύνολα Εκπτώσεων) | XML | ΟΧΙ | 6 | |||
| XVANEXTERNALMEDIASQL | Το SQL που δημιουργεί λίστα με εξωτερικά αρχεία (π.χ. Pdf) από τα οποία θα μπορεί να γίνει παραγγελιοληψία. Αντικαθιστά το $CUSID$. Το query πρέπει να φέρνει τις στήλες MediaID, FileName, IsLocalFile,URI. Προαιρετικά μπορεί να έχει και μια στήλη με τίτλο qtytype που μπορεί να πάρει τιμές 1 ή 2 (1=εισαγωγή σε ποσότητα Α, 2=εισαγωγή σε ποσότητα Β). Αν δεν οριστεί το qtytype η εισαγωγή γίνεται σε ποσότητα Α. Προαιρετικά μπορεί να έχει και μια στήλη με τίτλο Description η οποία καθορίζει το λεκτικό που θα εμφανιστεί, αν δεν έχει οριστεί μπαίνει το filename. | SQLlite | OXI | 6 | |||
| XVANINVENTORYCATALOGUEXML | XML Καταλόγου απογραφής |
XML 7.6 |
7 | ||||
| XVANInventoryXML | XML απογραφής |
XML 7.7 |
7 | ||||
| XVANMANUALLOADINGCATALOGUEXML | XML χειροκίνητης φόρτωσης |
XML 7.8 |
7 | ||||
| XVANMANUALLOADINGXML | XML χειροκίνητης φόρτωσης | XML | OXI | 6 | |||
| INVENTORYREASONSSQL | Λόγοι διαφορών απογραφής | SQL | ΟΧΙ | 7 |
Tip: To configvalue δεν πρέπει να έχει τιμή null
- Η έκδοση 7 του Xvan αναφέρεται στην ενσωμάτωση του XVAN στο new sales order plus apk.
Λειτουργικότητα
Εκτέλεση εφαρμογής
Για τις εργασίες X-Van sales από το κεντρικό μενού πάνω αριστερά, επιλέγουμε την επιλογή «Χ-Van»
Στην οθόνη εμφανίζεται νέο μενού με τις διαθέσιμες εργασίες exVAN.
Η παραμετροποίηση του συγκεκριμένου μενού περιγράφεται παρακάτω στο tblPDAMenu.
Έναρξη ημέρας / Φόρτωση
Στην περίπτωση που το ΣΔΑ καταχωρείται στο ERP και ο XVAN το παίρνει έτοιμο, αυτή θα είναι η πρώτη κίνηση που θα κάνει ο xvan κάθε μέρα. Αλλιώς, θα πρέπει ο ίδιος να καταχωρήσει το ΣΔΑ του (βλ. Επόμενη παράγραφo) και μετά να εκτελέσει το βήμα της φόρτωσης.
Η φόρτωση ενημερώνει την αποθήκη του φορτηγού με τα είδη που έχουν καταχωρηθεί στο ΣΔΑ του xvan.
Στην οθόνη φόρτωσης εμφανίζονται τα διαθέσιμα είδη για να γεμίσει η αποθήκη του φορτηγού με προϊόντα. Τα είδη μπορεί να προκύπτουν από την έκδοση ΣΔΕ της προηγούμενης ημέρας (Αν η παράμετρος AUTOLOADFROMSDE είναι ίση με 1).
Σε περίπτωση που υπάρχει διαθέσιμη νέα φόρτωση, εμφανίζεται στη λίστα των φορτώσεων ώστε να επιλεχθεί και να προστεθεί στο απόθεμα του φορτηγού. Έχουν την μορφή «Κωδικός πωλητή Έτος Μήνα Ημέρα Ώρα». Την επιλέγουμε και πατάμε «Φόρτωση».
Αν θέλουμε να προσθέσουμε και άλλα προϊόντα από λίστα στα υπάρχοντα προϊόντα, πατάμε «Επαναφόρτωση».
Την πρώτη φόρτωση της ημέρας την κάνουμε με το «Φόρτωση» και τις υπόλοιπες με το «Επαναφόρτωση».
Πατώντας το πλήκτρο
γίνεται αυτόματη καταχώρηση στην ΣΔΑ, των προϊόντων που υπάρχουν στο φορτηγό, από την προηγούμενη ΣΔΕ.
Μετά την ολοκλήρωση της φόρτωσης ο πωλητής μπορεί να εκτυπώσει το ΣΔΑ και να προχωρήσει σε έκδοση παραστατικών.
Αν δεν γίνει η διαδικασία της φόρτωσης, δεν υπάρχει απόθεμα στο φορτηγό και δεν μπορεί να γίνει έκδοση παραστατικών.
Στην φόρτωση, αν resetQtyOnLoad=0, ελέγχει αν έχει ήδη γίνει φόρτωση. Αν ναι, απαγορεύει ή βγάζει ερώτηση, ανάλογα με την τιμή της παραμέτρου EXVAN_ALLOWRELOAD. Προσοχή, αν το επιτρέψει και εκτελέσει και τη δεύτερη φόρτωση, τότε στον tblVehicleStock θα έχουν μείνει μόνο τα στοιχεία της δεύτερης φόρτωσης.
Αν έχει άδεια αποθήκη, δεν μπορεί να κόψει παραστατικό πώλησης. Άδεια αποθήκη (δηλαδή τα πούλησε όλα) θεωρείται ότι έχει όταν, για όλες τις γραμμές του tblVehicleStock που αφορούν τρέχουσες φορτώσεις και επαναφορτώσεις, ισχυεί LoadQty – SalesQty + FreshQty =0. Ο έλεγχος γίνεται πάλι στο + του καταλόγου.
Αν δεν έχει κάνει φόρτωση δεν μπορεί να πάρει επιστροφές, εκτός αν η παράμετρος EXVAN_ALLOWRETURNWITHOUTLOADING=1. Ο έλεγχος γίνεται πάλι στο + του καταλόγου.
Χειροκίνητη Φόρτωση
Ο χρήστης έχει την δυνατότητα να δημιουργήσει φόρτωση χρησιμοποιώντας όποια από τα προϊόντα επιθυμεί. Η φόρτωση που δημιουργείται με αυτόν τον τρόπο έχει το λεκτικό “ΧΕΙΡΟΚΙΝΗΤΗ”.
Επιλέγοντας το εικονίδιο με τις 3 κάθετες τελείες δεξιά στην οθόνη, ο χρήστης μπαίνει σε Fast Entry mode όπου μπορεί γρήγορα να πληκτρολογήσει τον κωδικό είδους και την ποσότητα, πατώντας ΟΚ. Όταν ολοκληρωθεί η καταγραφή πατάμε END. Αν έχει παραμετροποιηθεί μπορεί να πληκτρολογείται επίσης ένας σύντομος κωδικός που αντιστοιχεί στον μεγάλο κανονικό κωδικό.
Πατώντας το μεσαίο εικονίδιο (της λίστας) ανοίγει η οθόνη καταγραφής και δημιουργίας της χειροκίνητης φόρτωσης, όπου πληκτρολογούνται οι ποσότητες ανά είδος (παράμετρος ExVanManualLoadingCatalogueXML)
Μπορεί επίσης να περιοριστούν τα αποτελέσματα με την επιλογή κατηγορίας είδους, αρκεί να έχει παραμετροποιηθεί κατάλληλα το παραπάνω XML.
Αφού ολοκληρωθεί αυτή η διαδικασία, εμφανίζεται η παρακάτω οθόνη όπου μπορούν να γίνουν διορθώσεις (προσθαφαιρέσεις) ανά γραμμή.
Για να ολοκληρωθεί η διαδικασία, ο χρήστης επιλέγει το εικονίδιο της Δισκέτας.
Μετά από αυτό η χειροκίνητη φόρτωση είναι πλέον διαθέσιμη για φόρτωση από την επιλογή 1.
Εκτύπωση ΣΔΑ-ΣΔΕ
Εμφανίζονται τα βασικά στοιχεία των ΣΔΑ και ΣΔΕ και η κατάσταση εκτύπωσής τους.
Επιλέγοντας κάποιο παραστατικό γίνεται η εκτύπωσή του.
Με την παράμετρο HIDEUNLOADEXPIRED του configuration, δίνεται η δυνατότητα το εικονίδιο των ληγμένων δεξιά να κρυφτεί.
Ισοζύγιο
Εμφανίζεται το ισοζύγιο της αποθήκης του φορτηγού, με τις προσθαφαιρέσεις των ειδών που έχουν γίνει με την απογραφή (διόρθωση ΣΔΑ)
Απογραφή Φορτηγού (Διόρθωση ΣΔΑ)
Με την επιλογή αυτή, ο χρήστης έχει την δυνατότητα να καταγράψει τις ποσότητες των προϊόντων που υπάρχουν στην αποθήκη του και να εκδώσει παραστατικά κίνησης από και προς την αποθήκη για να διορθώσει πιθανά ελλείματα ή πλεονάσματα σε σχέση με τις ποσότητες που θα έπρεπε να περιέχει το φορτηγό σύμφωνα με την φόρτωση (και πιθανόν και επαναφόρτωση). Η λίστα ειδών μπορεί να έρθει προγεμισμένη ή άδεια με δυνατότητα χειροκίνητης προσθήκης είδους.
Μπορεί να προσθέσει προϊόντα ή να αφαιρέσει αντίστοιχα με κλικ στο + και -. Οι διαφορές απεικονίζονται με πράσινο και κόκκινο χρώμα πάνω στην ποσότητα δεξιά.
Όταν ολοκληρωθεί η απογραφή, για να αποθηκευτεί, επιλέγουμε
και κατόπιν επιλέγουμε τον λόγο απογραφής (προαιρετικό αν έχει σεταριστεί), δηλαδή για ποιόν λόγο υπάρχουν οι διαφορές.
Αν οι λόγοι είναι πολλοί μπορούμε να κάνουμε πολλαπλές διορθώσεις ΣΔΑ (απογραφές) με τον αντίστοιχο λόγο απογραφής.
Η οθόνη απογραφής ξεκινάει με γεμάτο Grid με όλα τα είδη. Πρώτα εμφανίζονται αυτά που έχουν ποσότητες στην αποθήκη, και στη συνέχεια όσα δεν έχουν ποσότητες. Ο χρήστης μπορεί να τροποποιήσει τις ποσότητες των ειδών σύμφωνα με ό,τι υπάρχει σε απόθεμα.
Κατά την απογραφή καταχωρούνται ποσότητες μόνο στα είδη που υπάρχουν διαφορές και όχι σε όλα.
Η απογραφή καταχωρεί παραστατικά ελλειμάτων & πλεονασμάτων που θα ενσωματωθούν, χωρίς να χρειάζεται να τυπωθεί κάποιο έγγραφο. Η σχετική παραμετροποίηση αναφέρεται στο 1.6.8 Παραμετροποίηση XVANInventoryXML (Απογραφή).
Κατά την αποθήκευση καταχωρούνται τα στοιχεία της καταμέτρησης στο πεδίο measure (καλά) και στο measureExpired (για τα ληγμένα) του πίνακα tblvehicleStock.
Oι λόγοι απογραφής (προαιρετικό π.χ.Mondelez) παραμετροποιούνται στο configuration στην παράμετρο INVENTORYREASONSSQL και με extraconfigvalue: select '1' as storevalue, 'ΔΙΑΦ ΠΑΡ/ΒΗΣ' as displayvalue union all select '2' as storevalue, 'ΚΑΤΑΣΤΡΟΦΗ' as displayvalue union all select '3' as storevalue, 'ΛΟΙΠΟΙ ΛΟΓΟΙ' as displayvalue union all select '4' as storevalue, 'ΧΕΙΡ. ΠΑΡ/ΒΗ' as displayvalue union all select '5' as storevalue, 'ΔΙΑΦ ΑΠΟ/ΦΗΣ' as displayvalue union all select '6' as storevalue, 'ΑΛΛΟΙΩΜΕΝΑ/ΛΗΓΜ.' as displayvalue
Μαζική εκτύπωση
Με την επιλογή αυτή γίνεται μαζικά η εκτύπωση των παραστατικών που δεν έχουν ήδη εκτυπωθεί.
Κλείσιμο ημέρας / Έκδοση ΣΔΕ
Με την επιλογή αυτή, στο κλείσιμο της ημέρας εκδίδουμε ΣΔΕ - Συγκεντρωτικό Δελτίο Επιστροφής, επιλέγοντας «Κλείσιμο». Για να γίνει αυτό πρέπει να μην υπάρχουν παραστατικά που δεν έχουν εκτυπωθεί. Τα παραστατικά που δεν έχουν εκδοθεί φαίνονται από την επιλογή «Προβολές» ή από την επιλογή εκτύπωση ΣΔΑ/ΣΔΕ. Η σχετική παραμετροποίηση αναφέρεται στο 1.6.8 Παραμετροποίηση XVANInventoryXML (Απογραφή).
Με την διαδικασία αυτή δημιουργείται η φόρτωση (ΣΔΑ) της επόμενης ημέρας, αν έχει παραμετροποιηθεί το ΣΔΕ να γίνεται αυτόματα ΣΔΑ (παράμετρος AUTOLOADFROMSDE).
Το κλείσιμο ημέρας σηματοδοτεί το τέλος των εργασιών του πωλητή. Μετά το κλείσιμο της ημέρας δεν είναι δυνατή η έκδοση νέων παραστατικών, οι μόνες εργασίες που επιτρέπονται είναι η φόρτωση και οι εκτυπώσεις προηγούμενου ισοζυγίου και αξιακής εκκαθάρισης.
Προβολές
Με την επιλογή αυτή μπορούμε να δούμε την λίστα με τα παραστατικά.
Επιλέγοντας ένα παραστατικό (κόκκινο χρώμα), εμφανίζεται μια μπάρα εικονιδίων με τις ακόλουθες λειτουργίες από αριστερά προς τα δεξιά: Προβολή, Εκτύπωση, Ακύρωση, Διαγραφή. Για να γίνει ακύρωση, πρέπει το παραστατικό να είναι εκτυπωμένο και όχι συγχρονισμένο.
Βλέπε σχετική παράγραφο 1.6.4 για Παραμετροποίηση EXVanViewInvoicesXML (οθόνη προβολών παραστατικών)
Άλλες εργασίες
Παραμετροποίηση
Η παραμετροποίηση γίνεται με τις παραμέτρους που αναφέρθηκαν παραπάνω (1.3) και καταχωρούνται στον πίνακα Configuration.
Σύνδεση με ERP
Οι πληροφορίες που πρέπει να έρθουν από το ERP είναι οι πελάτες και τα είδη με όλους τους σχετικούς πίνακες (CUS, LEE, ADR, TXO, PRF, STI, STP, PST, SLM, CPM, VEHICLES).
Οι πίνακες των παραστατικών (SDT) και των σειρών (DOS) συνήθως έρχονται από το ERP ώστε να έχουμε ταύτιση στοιχείων μεταξύ PocketBiz και ERP.
Στο ex-van είναι πολύ σημαντικό τα στοιχεία των παραστατικών να είναι ακριβώς τα ίδια στο τυπωμένο από το PocketBiz χαρτί και στο ERP. Γι’ αυτό προσπαθούμε να φέρουμε όσο το δυνατόν πιο πολλά στοιχεία από το ERP.
Διαφορές από Windows Mobile
Οι βασικές διαφορές είναι:
- Υποστηρίζει 2 αποθήκες (κύρια και βοηθητική) στο φορτηγό. Η βοηθητική αποθήκη ορίζεται στο πεδίο vehicles.secondarywrhid
- Υποστηρίζει τη νέα παράμετρο resetQtyOnLoad
- Το στοκ κάθε αποθήκης αποθηκεύεται στον πίνακα tblVehicleStock αντί για τον tblStock
- Στον πίνακα tblExvanLoaded αποθηκεύονται οι πραγματοποιηθείσες φορτώσεις
Παραμετροποίηση tblLoading
Στη σύνδεση πρέπει να συμπεριλάβουμε και τον πίνακα tblLoading που χρησιμοποιείται μόνο στο ex-van και στον οποίο αποθηκεύονται οι φορτώσεις. Για να γεμίσουμε με στοιχεία τον πίνακα χρησιμοποιούμε τα παραστατικά φόρτωσης (ΣΔΑ – Συγκεντρωτικά Δελτία Αποστολής) που εκδίδονται από το ERP.
Ο πίνακας έχει δομή header και detail μαζί, δεν υπάρχει ξεχωριστός πίνακας για header και ξεχωριστός για detail.
Τα πεδία του πίνακα tbLoading – Πίνακας φορτώσεων είναι:
| Όνομα πεδίου | Τύπος | Περιγραφή |
|---|---|---|
| LoadingID | Unique identifier | ID πίνακα, παίρνει αυτόματα τιμή |
| LoadDate | Datetime | Ημ/νια έκδοσης παραστατικού |
| LoadDescr | Nvarchar(50) | Περιγραφή παραστατικού, π.χ. ΣΔΑ |
| Stiid | int | Το είδος της γραμμής του παραστατικού. Foreign key στον πίνακα STI. |
| Wrhid | int | Η αποθήκη στην οποία γίνεται φόρτωση. Η αποθήκη αντιστοιχεί σε ένα όχημα, άρα ουσιαστικά καθορίζει το όχημα. Foreign key στον πίνακα WRH. |
| LoadQty | float | Ποσότητα φόρτωσης |
| LoadCode | Nvarchar(50) | Ομαδοποιεί τις γραμμές του ίδιου παραστατικού. Μπορεί να έχει οποιαδήποτε τιμή, αρκεί να είναι ίδια για τις γραμμές του ίδιου παραστατικού και μοναδική για κάθε παραστατικό. Για παράδειγμα, μπορεί να έχει την τιμή ΣΔΑ-11, όπου το 11 είναι το ID του παραστατικού |
| Loadudfchar1 | Nvarchar(50) | Ελεύθερο |
| LoadImported | Tinyint | Δεν συγχρονίζεται από το ERP Connectivity, ενημερώνεται κατά την φόρτωση. Δεν ενημερώνεται στο android και γίνεται εγγραφή στον tblExvanLoaded. |
| LoadLine | Int | Α/Α γραμμής, χρησιμοποιείται για να ταξινομηθούν τα είδη με την ίδια σειρά που έχουν και στο ΣΔΑ. |
| LoadGrossValue | Float | Αξία γραμμής χωρίς εκπτώσεις |
| LoadVatValue | Float | Αξία ΦΠΑ γραμμής |
| LoadCommissionValue | Float | Αξία προμήθειας γραμμής. Η προμήθεια αφορά το ποσοστό έκπτωσης που κάνει η εταιρεία στον αντιπρόσωπο-πωλητή. |
| LoadPrice | Float | Τιμή γραμμής |
| LoadImportedDate | Datetime | Δεν συγχρονίζεται από το ERP Connectivity, ενημερώνεται κατά την φόρτωση. Δεν ενημερώνεται στο android αλλά γίνεται εγγραφή στον TblExvanLoaded. |
| LastUsedSerialNumber | Int | Αφορά πώληση εισιτηρίων, όπου παρακολουθούμε και την αρίθμηση των ειδών που πουλάμε. |
| LoadQtyExpired |
Τα πεδία LoadDate, LoadDescr, Stiid, Wrhid, LoadQty, LoadCode, LoadLine είναι ΥΠΟΧΡΕΩΤΙΚΑ κατά τη λειτουργία του προγράμματος και πρέπει πάντα να συμπληρώνονται.
Στον πίνακα tblLoading δεν πρέπει να φέρνουμε παραστατικά που δεν προορίζονται για φόρτωση, όπως ακυρωμένα ΣΔΑ, ακυρωτικά κλπ, γιατί οι εγγραφές του πίνακα θα εμφανιστούν στους XVAN με επιλογή να φορτωθούν στα φορτηγά τους.
Επίσης, για να μην «γεμίζει» αενάως ο tblLoading με εγγραφές, καλό είναι το SQL που θα φτιάξουμε για να δημιουργήσει τον tblLoading να έχει ανάμεσα στα κριτήρια και την ημερομηνία. Έτσι, μπορούμε να περιορίσουμε τις εγγραφές του tblLoading, πχ. να φέρνουμε μόνο τα ΣΔΑ των τελευταίων 5 ημερών.
Σε περίπτωση που δεν εκδίδονται ΣΔΑ από το ERP και πρέπει να γίνει έκδοση από το VAN, μπορούμε να γεμίσουμε τον tblLoading με την κατάσταση αποθήκης για κάθε αποθήκη-φορτηγό και ημερομηνία φόρτωσης την τρέχουσα ημερομηνία. Ακόμα και σε αυτή την περίπτωση πάντως θα πρέπει να γεμίσει ο tblLoading με δεδομένα και η διαδικασία της φόρτωσης παραμένει η ίδια για τους XVAN.
Σε περίπτωση που δεν καταχωρούνται καθόλου ενδοδιακινήσεις στο ERP, και θέλουμε να καταχωρεί ο XVAN το ΣΔΑ ώστε να κάνει τη φόρτωση, ο πίνακας tblLoading δεν πρέπει να γεμίσει καθόλου από το ERP. Όλες οι καταχωρήσεις θα γίνονται στα PDA.
Παράδειγμα εγγραφών στον πίνακα tblLoading:
Γέμισμα του tblLoading από ERP & χειροκίνητα.
O tblLoading είναι συνήθως ένας download πίνακας. Γεμίζει με ΣΔΑ που έχουν κοπεί από το ERP. Πολλές φορές όμως υπάρχει η απαίτηση ο xvan να κάνει και χειροκίνητα φορτώσεις, όταν η αποθήκη δεν είναι διαθέσιμη για να προετοιμάσει την κίνηση από το ERP, ή να μετατρέπονται αυτόματα σε φορτώσεις τα κλεισίματα ημέρας του.
Σε αυτή την περίπτωση πρέπει να δοθεί προσοχή σε δύο σημεία:
- Ο πίνακας tblLoading πρέπει να γίνει upload στον srarticles
- Πρέπει να προστεθεί sqlite φίλτρο στον srarticles, αν δεν υπάρχει ήδη, ώστε να καθαρίζουν οι εγγραφές που καταχωρούνται τοπικά
- πχ. (tblloading.LoadImported=0 and tblloading.loadqty>0 and ((tblloading.LoadDescr not like 'A%' and date(tblloading.LoadDate)> date('now','-8 day')) or
- (tblloading.LoadDescr like 'A%' and date(tblloading.LoadDate)> date('now','-30 day'))) and tblloading.wrhid in (select wrhid from vehicles where slmid=$SLMID$ limit 1))
- Στο ERP Connectivity θα πρέπει να δοθεί προσοχή ώστε τα πεδία που χρησιμοποιούνται ως μοναδικά κλειδιά κατά τον πλήρη συγχρονισμό με ERP να δίνουν μοναδικούς συνδυασμούς και στην περίπτωση των εγγραφών που δημιουργούνται στις φορητές συσκευές. Αλλιώς κινδυνεύουν να αλλοιωθούν εγγραφές που πρωτογενώς έχουν καταχωρηθεί στις φορητές συσκευές.
Αυτόματη Δημιουργία Φόρτωσης (AUTOLOADFROMSDE)
Κατά το κλείσιμο ημέρας δημιουργείται μια φόρτωση με όλο το στοκ που υπήρχε εκείνη την στιγμή καταγεγραμμένο στο φορτηγό (δλδ. Οι εγγραφές του tblVehicleStock της συσκευής οι οποίες δεν ήταν flagged ως deleted ή unloaded ).
Στην φόρτωση αυτή περιέχονται και τα ληγμένα προϊόντα.
Η φόρτωση που δημιουργείται με αυτόν τον τρόπο έχει LoadCode που έχει μορφή παρόμοια με την παρακάτω: A56-20150110-1131.
Στο παράδειγμα αυτό, τo A σημαίνει ότι η φόρτωση είναι αυτόματη, το 56 αντιστοιχεί στο slmid, το 20150110 είναι η ημερομηνία δημιουργίας και το 1131 είναι η ώρα δημιουργίας.
Για να λειτουργήσει χρειάζεται η παράμετρος AUTOLOADFROMSDE να έχει τιμή 1 (στον πίνακα configuration).
Επίσης, σε περίπτωση που δεν υπάρχει θα πρέπει να προστεθεί το πεδίο LoadQtyExpired στον πίνακα tblLoading.
Παραστατικά πώλησης - παραμετροποίηση SDT
Tα παραστατικά πώλησης παραμετροποιούνται στα βασικά πεδία του πίνακα SDT:
| ΥΠΟΧΡΕΩΤΙΚΟ | Πεδίο | Πιθανές Τιμές | Έννοια |
|---|---|---|---|
| ΝΑΙ | Sdtupdqty | -1, 0, 1 | Το πρόσημο της κίνησης ποσοτήτων στην αποθήκη (πχ. Για ΤΔΑ -1, για πιστωτικό 1) |
| ΝΑΙ | sdtupdvalue | -1, 0, 1 | Το πρόσημο της κίνησης αξιών στην αποθήκη (πχ. Για ΤΔΑ 1, για πιστωτικό -1) |
| ΝΑΙ | printoutid | FK printoutid tblPrintouts | Το id της εκτύπωσης για το παραστατικό |
| ΝΑΙ | sdtid | Id πίνακα SDT | |
| ΝΑΙ | sdtprintdescr | Περιγραφή που θα εκτυπωθεί | |
| sdtdescription | Περιγραφή αναλυτική | ||
| allowdelete | 0,1,2,3 | επιτρέπει την επεξεργασία των παραστατικών ανάλογα της τιμής | |
| 0 δεν επιτρέπεται αλλαγή ή διαγραφή στο παραστατικό, 1 επιτρέπεται μόνο η διαγραφή, όταν δεν έχει συγχρονιστεί, 2 επιτρέπεται η αλλαγή και η διαγραφή, όταν δεν έχει συγχρονιστεί, 3 επιτρέπεται μόνο η αλλαγή όταν δεν έχει εκτυπωθεί και δεν έχει συγχρονιστεί | |||
| allowfid | 0,1 | 1=θα γίνει και καταχώρηση είσπραξης | |
| allowmobile | 0,1 | 1=θα κατέβει στο κινητό | |
| allowprint | 0,1 | 1=θα εκτυπωθεί αυτόματα με την αποθήκευση | |
| Copies | ακεραιος | Πλήθος εκτυπώσεων | |
| IssueNextSDTID | FK sdtid | To ID του επόμενου τύπου παραστατικού που θέλουμε να εκτυπωθεί αυτόματα | |
| mobilestock | 0,1,2 | 0 δεν υπάρχει αποθήκη, 1 υπάρχει αποθήκη φορτηγό (παίρνει τιμή από το πεδίο wrhid του πίνακα Vehicles), 2 υπάρχει κεντρική αποθήκη (παίρνει τιμή από την εγγραφή WRHID του πίνακα Configuration) | |
| pstid | FK PSTid | Id τιμοκατάλογου ειδών | |
| NAI | sdtcode | Σύντομος κωδικός παραστατικού | |
| ΝΑΙ | productsXML | XML | Καθορίζει τη μορφή του grid και των κριτηρίων αναζήτησης στον κατάλογο προϊόντων στο Salesorder |
| ΝΑΙ | configuration | JSON |
Σε αυτό το πεδίο μπορεί να γίνει override οποιοδήποτε πεδίου του πίνακα configuration από τις τιμές που έχουν δηλωθεί (Αλλαγή παραμέτρων του configuration ανά SDT στην μορφή ενός json. Πχ. {"curid":"5", "sqlOnGetSalesOrderHeaderInfo":"test" } H σειρά που ακούει το πρόγραμμα τις παραμέτρους είναι η εξής: -Διαβάζει από τον configuration -Διαβάζει από τον SDT τη στήλη configuration και κάνει override όποιες τιμές έχουν επιλεγεί -Διαβάζει από τον SDT τη στήλη productsxml και κάνει override το xml του configuration (Στο προηγούμενο παράδειγμα το τελικό xml του καταλόγου που θα εμφανίσει το πρόγραμμα είναι της στήλης του productsxml από τον SDT) |
Τιμολόγιο Δελτίο Αποστολής – printoutid: 29
| sdtid | 100 |
|---|---|
| sdtprintdescr | Τιμολόγιο Δελτίο Αποστολής |
| sdtdescription | Τιμολόγιο Δελτίο Αποστολής |
| printoutid | 29 |
| allowdelete | 1 |
| allowfid | 0 |
| allowmobile | 1 |
| allowprint | 1 |
| checkstock | 1 |
| Copies | 1 |
| mobilestock | 1 |
| pstid | 2 |
| Sdtcode | ΤΔΑ |
| sdtupdqty | -1 |
| sdtupdvalue | 1 |
ProductsXML
Configuration
Σημείωση:
Τους κώδικες XML, sql του παρόντος εγχειριδίου προτείνεται να τους κάνετε copy paste στο Notepad++ ή στο XML Pad για ευκολότερη μελέτη και επεξεργασία.
Παραμετροποίηση άλλων παραστατικών
Πηγή: Mantis
Παραστατικά Αποθήκης (ΣΔΑ-ΣΔΕ) – παραμετροποίηση XDT
Τα παραστατικά Αποθήκης, παραμετροποιούνται στα βασικά πεδία του πίνακα XDT:
| ΥΠΟΧΡΕΩΤΙΚΟ | Πεδίο | Πιθανές Τιμές | Έννοια |
|---|---|---|---|
| ΝΑΙ | Wrhidfrom | FK wrhid WRH | Το id της αποθήκης από την οποία γίνεται η κίνηση |
| ΝΑΙ | Wrhidto | FK wrhid WRH | Το id της αποθήκης προς την οποία γίνεται η κίνηση |
| ΝΑΙ | Xdtupdqty | -1, 0, 1 | Το πρόσημο της κίνησης αξιών στην αποθήκη (πχ. Για ΤΔΑ -1, για πιστωτικό 1) |
| ΝΑΙ | Allowmobile | 0,1 | ΠΡΕΠΕΙ να είναι 1 για να είναι διαθέσιμο το παραστατικό στα PDA |
| ΝΑΙ | xdtid | ID πίνακα XDT | |
| ΝΑΙ | xdtcode | Σύντομος κωδικός | |
| xdtdescription | Περιγραφή παραστατικού | ||
| ΝΑΙ | xdtprintdescription | Περιγραφή που θα εκτυπωθεί | |
| ΝΑΙ | allowprint | 0,1 | 1=θα εκτυπωθεί |
| ΝΑΙ | printoutid | FK tblprintouts | ID εκτύπωσης από τον πίνακα tblPrintouts |
ΣΔΑ – printoutid: 27
| xdtid | 1 |
|---|---|
| xdtcode | ΣΔΑ |
| xdtdescription | Συγκεντρωτικό Δελτίο Αποστολής Αναχώρησης |
| xdtprintdescription | Συγκεντρωτικό Δελτίο Αναχώρησης |
| xdtupdqty | 1 |
| allowmobile | 1 |
| allowprint | 0 |
| ReplVerify | 255 |
| printoutid | 27 |
Παραμετροποίηση άλλων παραστατικών
Παραμετροποίηση tblPrintouts - Εκτυπώσεις
Οι εκτυπώσεις που προκύπτουν από το module EXVAN είναι εξής:
- Παραστατικά πώλησης: Εξαρτώνται από το printoutid του πίνακα SDT
- Παραστατικά αποθήκης: Εξαρτώνται από το printoutid του πίνακα ΧDT
- Ισοζύγιο: Εγγραφή με printoutdescr load_isozigio στον tblPrintouts
- Αξιακή εκκαθάριση: Εγγραφή με printoutdescr clearance στον tblPrintouts
Για τις εκτυπώσεις, απαραίτητη είναι η εγκατάσταση του Printing.apk στο pda. Για την ορθή λειτουργία του θα πρέπει στον tblPrintοuts να έχουν οριστεί σωστά τα SQL για το Header & Detail και τα token να είναι δυναμικά (πέρα από κάποια που υπάρχουν στο εγχειρίδιο των εκτυπώσεων και είναι υπολογιστικά). Περισσότερα για τις εκτυπώσεις στο manual “Printing & Reports & Dashboard”.
Παραγγελία - 29
PrintoutId: 29
PrintoutDescr: Παραγγελία
PrintoutHeader:
PrintoutDetail:
$CODCODE$$STINAME $ #QA# $UA$#TIMI# #DIS# #NETV##vat##efk#
PrintoutFooter:
PrintoutDetailLines: 1000
PrintoutHeaderAllways: 1
PrintoutHeaderSQL:
PrintoutDetailSQL:
Δελτίο Αποστολής Τριγωνικής - 60
PrintoutId: 60
PrintoutDescr: Δελτίο Αποστολής Τριγωνικής
PrintoutHeader:
PrintoutDetail:
$CODCODE$$STINAME $#QA# $UA$#TIMI# #DIS# #NETV##vat##efk#
PrintoutFooter:
PrintoutDetailLines: 1000
PrintoutHeaderAllways: 1
PrintoutHeaderSQL:
PrintoutDetailSQL:
Κουπόνι - 31
PrintoutId: 31
PrintoutDescr: Κουπόνι
PrintoutHeader:
PrintoutDetail:
PrintoutFooter:
PrintoutDetailLines: 1000
PrintoutHeaderAllways: 1
PrintoutHeaderSQL:
PrintoutDetailSQL:
ΣΔΑ - 27
PrintoutId: 27
PrintoutDescr: ΣΔΑ
PrintoutHeader:
PrintoutDetail:
$CODCOD$$STINAME $ #QA # $UA$ #QB # $UB$
PrintoutFooter:
PrintoutDetailLines: 1000
PrintoutHeaderAllways: 1
PrintoutHeaderSQL:
PrintoutDetailSQL:
Ισοζύγιο - 61
PrintoutId: 61
PrintoutDescr: Ισοζύγιο
PrintoutHeader:
PrintoutDetail:
$CODCOD$$STINAME $ $U$#LQty ##SQty ##FQty##Rqty#
PrintoutFooter:
PrintoutDetailLines: 1000
PrintoutHeaderAllways: 1
PrintoutHeaderSQL:
PrintoutDetailSQL:
Επιπλέον παραδείγματα υλοποίησης salesconfig
Δελτίο ποσοτικής παραλαβής Καλών (επιστροφή καλών)
Δελτίο ποσοτικής παραλαβής Ακατάλληλων (επιστροφή αλλοιωμένων)
Παραμετροποίηση tblPDAMenu
Στον πίνακα αυτόν δηλώνεται η δομή του μενού του ExVan. Παρακάτω εμφανίζεται ένα σενάριο με όλες τις ενδεικτικές τιμές.
| MenuCode | MenuLevel | DescrLangNative | DescrLang1 | MenuAction | MenuIsActive | MenuItemLevel | ImageIndex |
|---|---|---|---|---|---|---|---|
| ExVanStartDay | 10 | 1. Έναρξη Ημέρας / Φόρτωση | 1. Start Day | ExVanStartDay | 1 | 2 | 7 |
| ExVanManualLoading | 20 | 2. Χειρ\τη Φόρτωση | 2. Manual loading | ExVanManualLoading | 1 | 2 | 9 |
| ExVanUtilities | 30 | 3. Εκτύπωση ΣΔΑ - ΣΔΕ | NULL | NULL | 1 | 2 | 9 |
| ExVanPrintWRHInvoices | 30.10 | 3.1. Εκτύπωση Παρ. Αποθ. | 3.1. Print Wareh. Doc. | ExVanPrintWRHInvoices | 1 | 2 | 9 |
| ExVanIsozygio | 40 | 4. Ισοζύγιο | 4. Balance | ExVanIsozygio | 1 | 2 | 8 |
| ExVanInventory | 50 | 5. Απογραφή Φορτηγού | NULL | ExVanInventory | 0 | 2 | 9 |
| ExVanPrintInvoices | 60 | 6. Μαζική Εκτύπωση | 6. Print Documents | ExVanPrintInvoices | 1 | 2 | 9 |
| ExVanEndDay | 70 | 7. Κλείσιμο Ημέρας / Έκδοση ΣΔΕ | 7. End Day | ExVanEndDay | 1 | 2 | 11 |
| EXVANVIEW | 80 | 8. Προβολές | 8. Display | EXVANVIEW | 1 | 2 | 5 |
| ExVanUtilities | 90 | 9. Άλλες Εργασίες | 9. Other Tasks | NULL | 1 | 2 | 10 |
| ExVanCancel | 90.10 | 9.1. Ακυρώσεις | 9.2. Annulments | ExVanCancel | 0 | 2 | 4 |
| ExVanIsozygio | 90.20 | 9.2. Προηγ. Ισοζύγιο | 9.2. Previous Balance | ExVanPreviousIsozygio | 0 | 3 | 13 |
| ExVanChangePlates | 90.30 | 9.3. Αλλαγή Αρ. Κυκλοφορίας | 9.3. Change Plates | ExVanChangePlates | 0 | 3 | 12 |
Στο πεδίο ParentForm δηλώνεται η τιμή fExVanMenu για κάθε εγγραφή του πίνακα.
Στο πεδίο MenuActionType δηλώνεται η τιμή NAVIGATE για κάθε εγγραφή του πίνακα.
Οι τιμές στο MenuCode και MenuAction είναι δεσμευμένες και εκτελούν αυτό που περιγράφει το πεδίο DescrLangNative (στα πεδία DescrLang1 -3 δίνεται η περιγραφή σε ακόμη 3 γλώσσες).
Δηλαδή
ExVanStartDay 1. Έναρξη Ημέρας/Φόρτωση αποθ. φορτηγού (tblLoading)
ExVanManualLoading 2. Χειροκίνητη Φόρτωση αποθήκης φορτηγού
ExVanPrintWRHInvoices 3.1. Εκτύπωση Παρ. Αποθ. (ΣΔΑ – ΣΔΕ)
ExVanIsozygio 4. Ισοζύγιο αποθήκης φορτηγού
ExVanInventory 5. Απογραφή Φορτηγού (φρέσκα/ληγμένα)
ExVanPrintInvoices 6. Μαζική Εκτύπωση εκκρεμών παραστατικών για εκτύπωση
ExVanEndDay 7. Κλείσιμο Ημέρας / Έκδοση ΣΔΕ (ξεφόρτωμα)
ExVanView 8. Προβολές παραστατικών που έχουν εκδοθεί, ακυρωθεί)
ExVanCancel 9.1. Ακυρώσεις
ExVanIsozygio 9.2. Προηγ. Ισοζύγιο αποθήκης φορτηγού
ExVanChangePlates 9.3. Αλλαγή Αρ. Κυκλοφορίας πινακίδας φορτηγού
To ExVanUtilities χρησιμοποιείται για την δημιουργία υπομενού
Addkms καταχώρηση χιλιομέτρων έναρξης ημέρας
ExVanPattern custom (Μπισκότα Παπαδόπουλου)
CollectionDeposit custom (Mondelez)
Προσοχή !!! Πρέπει να σημειωθεί ότι η επιλογή ExVanPrintWRHInvoices (εκτύπωση ΣΔΑ-ΣΔΕ) λειτουργεί μόνο όταν βρίσκεται σε υπομενού και όχι στο πρώτο επίπεδο (δηλαδή όπως φαίνεται στην παραπάνω υλοποίηση)
Το MenuLevel εκτός από την σειρά εμφάνισης της εκάστοτε επιλογής δηλώνει και το επίπεδο του μενού, π.χ. το 90.20 δηλώνει ότι θα εμφανιστεί δεύτερη (9.2 Προηγ.Ισοζύγιο) στο υπομενού 90 (9.Άλλες Εργασίες).
To πεδίο MenuIsActive παίρνει τιμές 1= ενεργό (active - άρα εμφανίζεται στο μενού), 0=ανενεργό
Τα πεδία MenuItemLevel, imageindex δεν λειτουργούν στο android.
Για ευκολία, μπορείτε να χρησιμοποιήσετε το παρακάτω Insert, ολόκληρο ή μόνο συγκεκριμένες επιλογές του ex-van μενού.
tblSLMTasks
Στο tblSLMTasks μπορούν να σεταριστούν τα παραστατικά και ως Tasks με τιμές στο πεδίο ACTION='EXVANSALES' παραστατικά (καθορίζοντας και το αντίστοιχο sdtid), ACTION='EXVANVIEW' προβολή παραστατικών μόνο του συγκεκριμένου πελάτη (που εκτελείται η tasklist).
Ακυρώσεις - Ειδικές εργασίες
Για να λειτουργήσει ένα παραστατικό σαν ακυρωτικό κάποιου άλλου, θα πρέπει να έχει ορισθεί ως ακυρωτικό του. O ορισμός αυτός έχει σαν αποτέλεσμα τη δημιουργία εγγραφής στον πίνακα tblAkirotika που συσχετίζει τα κανονικά παραστατικά (NormalID) με τα ακυρωτικά τους (CancelID).
Τα ακυρωτικά παραστατικά δεν εμφανίζονται σαν διαθέσιμα παραστατικά κατά την τιμολόγηση.
Δεν επιτρέπεται η ακύρωση παραστατικού αν:
- Έχει γίνει κλείσιμο ημέρας
- Το παραστατικό προς ακύρωση έχει ήδη ακυρωθεί
- Το παραστατικό προς ακύρωση είναι ακυρωτικό
- Το παραστατικό προς ακύρωση έχει εκδοθεί σε προηγούμενη ημερομηνία
1. Όταν ακυρώνεται παραστατικό, εννοείται ότι επηρεάζεται ανάλογα και ο tblVehicleStock.
2. Πριν από την ακύρωση γίνονται οι έλεγχοι. Δηλαδή αν είναι εκτυπωμένο, συγχρονισμένο, ακυρωμένο, ακυρωτικό, καθώς και αν έχει περάσει μια μέρα από την έκδοση του (αυτό ρυθμίζεται από την παράμετρο CANCELINGPARAM).
3. Η έκδοση παραστατικού ΣΔΑ χρησιμοποιεί τις παραμέτρους ISSUEWRHINVOICES, LOADINGXDTID. Όταν κόβεται ΣΔΑ κρατάμε το id του (xidid) στον πίνακα tblExvanLoaded, στην εγγραφή που αναφέρεται στη συγκεκριμένη φόρτωση.
4. Όταν κόβεται παραστατικό (tblInvMaster) στο πεδίο xidid αποθηκεύεται το id της φόρτωσης στην οποία ανήκει το παραστατικό (όχι επαναφόρτωσης) και το οποίο έχουμε κρατήσει στον tblExvanLoaded.
5. Ο έλεγχος του blacklist και για τον debit πελάτη, αν υπάρχει, λειτουργεί όπως ακριβώς και στο WM.
Ταμειακή εκκαθάριση (tblReports)
Στην οθόνη κλεισίματος ημέρας υπάρχουν ενδείξεις για την αξία των παραστατικών που έχουν εκδοθεί μετρητοίς και επί πιστώσει κατά τη διάρκεια της ημέρας. Για να ενημερωθούν σωστά οι αξίες αυτές θα πρέπει να έχουν ρυθμιστεί
- Τα πεδία updclearancecash και updclearancecredit του πίνακα CPM. Αν ο τρόπος πληρωμής θεωρείται μετρητοίς, τότε τo updclearancecash παίρνει τιμή 1 και το updclearancecredit 0, ενώ αν θεωρείται επί πιστώσει το ανάποδο.
- Το πεδίο updvalue στον πίνακα SDT (τύποι παραστατικών πώλησης) με 1 αν το παραστατικό αυξάνει αξίες (πχ. Τιμολόγιο δελτίο αποστολής) με -1 αν μειώνει (πχ ακυρωτικό ΤΔΑ) και με 0 αν δεν επηρεάζει (πχ Δελτίο Αποστολής).
Οι παράμετροι αυτοί επηρεάζουν και τον τρόπο που εμφανίζονται οι αξίες κατά την εκτύπωση του κλεισίματος ημέρας. Η εκτύπωση αυτή περιλαμβάνει λίστα με όλα τα παραστατικά που εκδόθηκαν κατά τη διάρκεια της ημέρας και την αξία σε μετρητά ή επί πιστώσει για το κάθε ένα και συνολικά.
Παράδειγμα υλοποίησης η αναφορά Ταμειακή Εκκαθάριση:
Description: Ταμειακή Εκκαθάριση
Report code: Collection
ReportGridLayout:
SqlQuery:
Σημεία προσοχής
- Αν θέλετε οι πωλητές να βλέπουν όλους τους πελάτες, τότε θα πρέπει στο ERP Connectivity το πεδίο slmid του πίνακα cus να παίρνει default τιμή null. Οι πελάτες που έχουν slmid is null μεταφέρονται σε όλες τις συσκευές.
- Υπάρχει η δυνατότητα να εκδίδεται αυτόματα παραστατικό όταν γίνεται πώληση με συγκεκριμένο τρόπο πληρωμής (π.χ. μετρητά). Πεδίο: SDT.IssueNextSDTID Δεν υποστηρίζεται από το νέο Sales, πρέπει να γίνει μέσω Xvan module.
- Για τις εγγραφές στους πίνακες LEE και ADR που αφορούν στον πελάτη «Νέος Πελάτης». Τα πεδία prfid, leeafm, txocode του πίνακα LEE καθώς επίσης και τα adrstreet, adrnumber, adrzipcode, adrdistrict, adrcity, adrphone1 του πίνακα ADR θα πρέπει να είναι null αν θέλουμε να συμπληρώνονται υποχρεωτικά από τον χρήστη κατά την καταχώρηση νέου πελάτη.
- Αν δεν δημιουργούνται παρ/κα φόρτωσης και κλεισίματος στους πίνακες tblWrhMaster και tblWrhDetail, ελέγξτε ότι έχετε ορίσει τις παραμέτρους LOADINGXDTID, UNLOADINGXDTID και ISSUEWRHINVOICES.
- Αν ένας πελάτης στον πίνακα LEE έχει leeafm null, τότε θεωρείται πως ανήκει στο group Νέων Πελατών και θα εμφανιστεί όταν ο XVAN κάνει αναζήτηση νέου πελάτη.
- Το PocketBiz δεν επιτρέπει την καταχώρηση παραστατικού με ημερομηνία ή ώρα νωρίτερη από αυτή του τελευταίου που καταχωρήθηκε. Σε κάθε καταχώρηση παραστατικού, γίνεται έλεγχος της ημερομηνίας και ώρας καταχώρησης του τελευταίου παρ/κου και της τρέχουσας ημερομηνίας και ώρας. Αν η τρέχουσα είναι νωρίτερη από του τελευταίου παρ/κου απαγορεύεται η καταχώρηση. Σε περίπτωση που η ημερομηνία ή η ώρα προχωρήσει προς τα εμπρός (κατά λάθος ή «κατά λάθος»), γίνει έκδοση παραστατικών και μετά επανέλθει κανονικά, θα εμφανιστεί αυτό το πρόβλημα. Θα πρέπει να αλλαχτεί το πεδίο lastupdate του πίνακα SEN ή να ξαναπροχωρήσει η ώρα προς τα εμπρός.
- Για να ενημερωθεί σωστά η αξία μετρητοίς και επί πιστώσει στο κλείσιμο ημέρας θα πρέπει να έχουν ρυθμίστεί τα πεδία updclearancecash και updclearancecredit του πίνακα CPM.
- Τα πεδία LoadDate, LoadDescr, Stiid, Wrhid, LoadQty, LoadCode, LoadLine του πίνακα tblLoading είναι υποχρεωτικά για τη σωστή λειτουργία του προγράμματος και πρέπει πάντα να συμπληρώνονται.
- Στο ERP connectivity θα πρέπει να ΜΗΝ συγχρονίζονται οι αποθήκες των ex-van. Επιτρέπεται να συγχρονίζονται μόνο οι κεντρικές αποθήκες. Μπορείτε να χρησιμοποιήσετε την παράμετρο SQLWhereForWRH του section StockSync ώστε να περιορίσετε τις αποθήκες που συγχρονίζονται.
- Το κάθε είδος πρέπει να υπάρχει μόνο μια φορά στο tblloading σαν άθροισμα ποσοτήτων.
XML παραμέτρων πίνακα Configuration
Υποστηριζόμενα attributes στο xml των παραμέτρων
Για την παραμετροποίηση των παραμέτρων του πίνακα Configuration, υπάρχουν τα αντίστοιχα XML. Το κάθε XML αποτελείται από διάφορα tags, όπως header, row, sql, columns και γενικά είναι της μορφής:
<AndroidLayout> <header height="40" textsize="8"/> <row height="35" textsize="8"/>
<sql> <online query="" <offline query="…….." </sql>
<columns> <column position="1" caption="Κωδικός" datamember="codcode" width="110" visible="1" editable="0" alignment = "C"/>
<column position="2" caption="Είδος" datamember="stiname" visible="1" editable="0" width="400"/> </columns> </AndroidLayout>
Το attribute height αφορά στο ύψος της κεφαλίδας και το textsize είναι το μέγεθος της γραμματοσειράς της κεφαλίδας.
Αντίστοιχα στο tag rows το attribute height και textsize αφορά στο ύψος της γραμμής και το μέγεθος της γραμματοσειράς αντίστοιχα.
Ακολυθεί το offline query SQL.
Στη συνέχεια ξεκινάει η παραμετροποίηση για κάθε στήλη στο tag columns. Τα υποστηριζόμενα attributes που αφορούν το εκάστοτε column / row είναι τα:
· datamember: Αντιπροσωπεύει το πεδίο που θα εμφανιστεί είτε θα είναι διαθέσιμο για επεξεργασία από το select στο SQL. (ΥΠΟΧΡΕΩΤΙΚΟ)
· width: το πλάτος της στήλης
· height: το ύψος της κεφαλίδας
· alignment: καθορίζει τη διάταξη της στήλης , λαμβάνει μία από τις τιμές “C”, “L”,”R” ("CENTER", "LEFT", "RIGHT"). Αν δεν οριστεί, χρησιμοποιείται η τιμή CENTER.
· Position: H σειρά εμφάνισης
· Caption: το κείμενο που θα εμφανιστεί
· Color: το χρώμα του κειμένου σε μορφή '#FFFF00'
· Editable: αν θα μπορεί ο χρήστης να πατήσει και να επεξεργαστεί την τιμή (τιμές 0 ή 1=ναι) (ΠΡΟΑΙΡΕΤΙΚΟ)
· Visible: αν θα είναι εμφανές (1=ναι, 0=όχι εμφανές)
· Fieldtype: είναι το τι μπορεί να γράψει ο χρήστης αφού πατήσει για να επεξεργαστεί την γραμμή. (NVARCHAR, FLOAT, INT, DATE, SQL, VATNUMBER). (Αν το editable είναι 1, τότε είναι ΥΠΟΧΡΕΩΤΙΚΟ)
Παραμετροποίηση EXVanBalanceXML (εμφάνιση Ισοζυγίου)
Η παραμετροποίηση του συγκεκριμένου XML είναι πλήρης (παρουσιάζονται όλα τα πεδία). Εύκολα μπορεί να αφαιρεθούν για παράδειγμα οι στήλες Φόρτ(Β), Πώλ(Β), Επ/φή Φρεσκα, Επ/φή Ληγμένα, Υπ.Φρέσκα και να τροποποιηθεί ανάλογα με τις εκάστοτε ανάγκες.
Η αντίστοιχη εκτύπωση περιγράφεται στο κεφάλαιο των εκτυπώσεων.
Ανά πάσα στιγμή το διαθέσιμο στοκ είναι loadqty-salesqty+freshqty
Παραμετροποίηση ExVanLoadingXML (οθόνη φορτώσεων)
Και ένα παράδειγμα απλοποιημένης έκδοσης (Κωδικός, Ποσότητα, Είδος)
<AndroidLayout> <header height="40" textsize="13"/> <row height="35" textsize="12"/> <sql> <online query="select LoadQty, LoadLine, wrhid, STI.stiid, STI.stiname, from tblloading inner join STI on STI.stiid=tblLoading.stiid where LoadCode=N'$LOADCODE$' order by LoadLine" /> <offline query="select LoadQty, LoadLine, wrhid, STI.stiid, STI.stiname, codcode from tblloading inner join STI on STI.stiid=tblLoading.stiid where LoadCode='$LOADCODE$' order by LoadLine" /> </sql> <columns> <column position="1" caption="Κωδικός" datamember="codcode" width="100" visible="1" alignment="C" /> <column position="2" caption="Ποσ" datamember="LoadQty" width="70" visible="1" alignment="R" /> <column position="3" caption="Είδος" datamember="stiname" visible="1" width="400"/> <column datamember="wrhid" visible="0" /> <column datamember="LoadLine" visible="0" /> <column datamember="stiid" visible="0" /> </columns> </AndroidLayout>
Σημειώσεις
Η φόρτωση διαβάζει από τον πίνακα tblLoading και ενημερώνει στον πίνακα tblVehicleStock τη στήλη loadqty, δηλαδή την ποσότητα φόρτωσης/απόθεμα στο φορτηγό.
Στο πάνω μέρος της οθόνης της φόρτωσης εμφανίζονται σε ένα combo όλα τα distinct loadcode από τον πίνακα tblLoading που προορίζονται για τον συγκεκριμένο πωλητή. Ο διαχωρισμός των φορτώσεων για κάθε φορτηγό γίνεται με βάση το πεδίο wrhid του tblLoading.
Ο πωλητής πρέπει να επιλέξει τη σωστή φόρτωση από το combo box και να πατήσει το κουμπί φόρτωση. Αν δεν έχει προηγηθεί κλείσιμο ημέρας την προηγούμενη ημέρα, δηλαδή αν ο tblVehicleStock έχει εγγραφές φόρτωσης, τότε θα εμφανιστεί προειδοποιητικό μήνυμα, το οποίο αναφέρει πως η αποθήκη του δεν έχει μηδενικές ποσότητες.
Όταν ένα ΣΔΑ έχει φορτωθεί, τότε σταματά να εμφανίζεται στο combo box των διαθέσιμων φορτώσεων.
Για να αποφεύγονται λάθη στην επιλογή του ΣΔΑ, καλό είναι να φέρνουμε στον tblLoading μόνο ΣΔΑ που έχουν καταχωρηθεί πρόσφατα (πχ τελευταίες 5 ημέρες. Αυτό έχει σαν αποτέλεσμα να εμφανίζονται τελικά μόνο αυτά που δεν έχει ξαναφορτώσει – δηλ. τα σημερινά – και να μην επιλέγονται άλλα παραστατικά κατά λάθος.
Το κουμπί επαναφόρτωση χρησιμοποιείται όταν ο πωλητής κάνει συμπληρωματική φόρτωση, δηλαδή όταν τα περιεχόμενα του ΣΔΑ θέλουμε να προστεθούν στο τρέχον στοκ του φορτηγού (συμπληρωματικό ΣΔΑ). Η επαναφόρτωση κάνει έλεγχο αν έχει προηγηθεί κανονική φόρτωση (δεν επιτρέπεται επαναφόρτωση σε περίπτωση που δεν έχει γίνει πρώτα φόρτωση) και εμφανίζει σχετικό μήνυμα.
Αν η παράμετρος LOADINGXDTID έχει τιμή τότε εκδίδεται αυτόματα παραστατικό αποθήκης κατά την φόρτωση. Το παραστατικό αποθηκεύεται στους πίνακες tblWrhMaster και tblWrhDetail. Για να λειτουργήσει σωστά η έκδοση, πρέπει να έχουν παραμετροποιηθεί σωστά οι σειρές του πωλητή για τα παραστατικά αποθήκης. Συγκεκριμένα πρέπει να υπάρχει μια εγγραφή στον XTS με XDTID=η τιμή της παραμέτρου LOADINGXDTID, DOSID=μια σειρά που θα χρησιμοποιείται μόνο από αυτόν τον πωλητή και vehicleid=το όχημα του πωλητή (η παραμετροποίηση μπορεί να γίνει από το administration ή από το desktop, στις οθόνες των παραστατικών αποθήκης). Το παραστατικό που δημιουργείται περιέχει όλα τα είδη που φορτώθηκαν και ουσιαστικά συμπίπτει με το ΣΔΑ της φόρτωσης.
Η φόρτωση-επαναφόρτωση ή το κλείσιμο ημέρας έχουν συμπεριληφθεί σε ένα transaction, μαζί και με την έκδοση των ανάλογων παραστατικών αποθήκης, έτσι ώστε να μπορεί να γίνει rollback όλη η διαδικασία, αν προκύψει κάποιο πρόβλημα. Δηλαδή, αν κάνουμε φόρτωση και χτυπήσει κάτι στη δημιουργία του παραστατικού φόρτωσης (ΣΔΑ), τότε θα γίνει rollback ΚΑΙ η φόρτωση. Το ανάλογο ισχύει για επαναφόρτωση και για κλείσιμο ημέρας.
Ο τρόπος που ενημερώνονται τα πεδία RelatedXidid και ReloadedXidids του tblWRHMaster, όταν εκδίδεται παραστατικό κλεισίματος ημέρας είναι ο εξής:
- resetQtyOnLoad=1
Το RelatedXidid περιέχει το xidid του παραστατικού της πρώτης φόρτωσης (που δεν έχει κλείσει). Το ReloadedXidids περιέχει τα xidids των παραστατικών των υπόλοιπων φορτώσεων και επαναφορτώσεων που δεν έχουν κλείσει (όλες μετά την πρώτη).
- resetQtyOnLoad=0
Έχουμε εκτελέσει μία φόρτωση και οσεσδήποτε επαναφορτώσεις. Το RelatedXidid περιέχει το xidid του παραστατικού της φόρτωσης (που δεν έχει κλείσει). Το ReloadedXidids περιέχει τα xidids των παραστατικών των επαναφορτώσεων που δεν έχουν κλείσει.
- resetQtyOnLoad=0 και EXVAN_ALLOWRELOAD=1
Έχουμε εκτελέσει περισσότερες από μία φορτώσεις και οσεσδήποτε επαναφορτώσεις. Το RelatedXidid περιέχει το xidid του παραστατικού της τελευταίας φόρτωσης που δεν έχει κλείσει. Η φόρτωση αυτή ήταν η μόνη που ήταν ενεργή πριν κάνουμε το κλείσιμο ημέρας. Το ReloadedXidids περιέχει τα xidids των παραστατικών των επαναφορτώσεων που δεν έχουν κλείσει και εκτελέστηκαν μετά την τελευταία φόρτωση.
- Αν το περιεχόμενο του ReloadedXidids υπερβαίνει τους 255 χαρακτήρες, τότε θα αγνοηθούν όσες φορτώσεις (ή επαναφορτώσεις) χρειάζεται από αυτές που βρίσκονται στην αρχή του πεδίου, έτσι ώστε το περιεχόμενο να αποκτήσει το απαιτούμενο μέγεθος.
- Για να μπορεί να γίνει η διαγραφή στους upload πίνακες (και συγκεκριμένα στον tblVehicleStock) πρέπει να έχουν το πεδίο IsDeleted. Η εφαρμογή όπου διάβαζει από τον tblVehicleStock, πρόσθετει στα κριτήρια το (tblVehicleStock.IsDeleted=0 OR tblVehicleStock.IsDeleted IS NULL). Έτσι, τις γραμμές που έχουν IsDeleted=1 θα τις αγνοεί, δηλαδή θα έχει την ίδια συμπεριφορά σαν να τις είχαμε κάνει delete από τον πίνακα. Σημείωση: το να ανέβουν εκκρεμείς (IsUnloaded=0) και σβησμένες (IsDeleted=1) εγγραφές στον server μπορεί να συμβεί μόνο με τον συνδυασμό παραμέτρων resetQtyOnLoad=0, EXVAN_ALLOWRELOAD=1. Ο τρόπος είναι ότι κάνεις 2 συνεχόμενες φορτώσεις χωρίς κλείσιμο ημέρας (για τις παραμέτρους αυτές το επιτρέπει, αφού βγάλει ερώτηση στη 2η φόρτωση). Και σε αυτήν την περίπτωση, τις εγγραφές με IsUnloaded=0 και IsDeleted=1 δεν τις βλέπει το PDA σαν εκκρεμείς.
Παραμετροποίηση EXVanViewInvoicesXML (οθόνη προβολών παραστατικών) – EXVanViewInvoicesXMLByCusId
Είναι το XML που καθορίζει τη μορφή εμφάνισης των προβολών των παραστατικών. Στις προβολές φαίνονται όλα τα παραστατικά που έχει κόψει το φορτηγό σε μια ημερομηνία. Το EXVanViewInvoicesXMLByCusId είναι XML όμοιο με το προηγούμενο, μόνο που αφορά τις προβολές παραστατικών μέσα στον πελάτη
Στο .. byCusID
Where tblInvMaster.Docekdosidate>= '$LOADDATE$' AND tblInvMaster.docidakiromeno is null and CUS.cusid='$CUSID$'
Παραμετροποίηση ExvanWrhDocumentListXML (Προβολή ΣΔΑ, ΣΔΕ – από την επιλογή εκτύπωση παραστατικών αποθήκης)
H παράμετρος ExvanWrhDocumentListXML του Configuration προσδιορίζει δυναμικά το τι θα εμφανίζεται στη λίστα των παραστατικών αποθήκης. Η διαμόρφωση αυτής ορίζεται από xml αντίστοιχης μορφής με αυτό της λίστας των πελατών.
Ενδεικτικά η μορφή του xml πρέπει να είναι ως εξής:
Στη λίστα είναι υποχρεωτικά τα πεδία: tblWrhMaster.xidid και xdt.printoutid γιατί τα χρειάζεται το module των εκτυπώσεων για να παίξει σωστά.
Στο sql του xml τα token που μπορείτε και πρέπει να χρησιμοποιήσετε είναι το $SLMID$ και $WRHID$. Ειδικά για το $WRHID$ η τιμή αντιστοιχεί στην αποθήκη που έχει επιλέξει ο χρήστης από μια dropdown λίστα στην ίδια οθόνη.
Ένα δείγμα SQL για τη λίστα των παραστατικών αποθήκης είναι αυτό που φαίνεται παρακάτω:
Και ένα διαφορετικό WHERE (tblWrhMaster.isPrinted & lt;& gt;1 OR tblWrhMaster.isPrinted IS NULL) AND (tblWrhMaster.wrhidto = $WRHID$ OR tblWrhMaster.wrhidfrom = $WRHID$)
Παράδειγμα οθόνης αποτέλεσμα της ανωτέρω παραμετροποίησης.
Παραμετροποίηση EXVANSETSXML (Σετ ειδών)
<AndroidLayout><sql>
<online query="SELECT tblSets.setid,descr,uniid from tblSets inner join CustomSetCus on CustomSetCus.setid=tblSets.setid where CustomSetCus.cusid = $CUSID$"/>
<offline query="SELECT tblSets.setid,descr,uniid from tblSets inner join CustomSetCus on CustomSetCus.setid=tblSets.setid where CustomSetCus.cusid = $CUSID$"/>
</sql></AndroidLayout>
Παραμετροποίηση XVANINVENTORYCATALOGUEXML
Παραμετροποίηση XVANInventoryXML (Απογραφή)
Ο χρήστης έχει την δυνατότητα να καταγράψει τις ποσότητες των προϊόντων που υπάρχουν στην αποθήκη του και να εκδώσει παραστατικά κίνησης από και προς την αποθήκη για να διορθώσει πιθανά ελλείματα ή πλεονάσματα.
Αρχικά χρειάζεται να ορίσουμε στον πίνακα configuration τις εξής παραμέτρους:
ExpiredWRH: σε αυτή δηλώνεται το ID που θα χρησιμοποιηθεί ως αποθήκη ληγμένων
SurplusXDT: Το id του τύπου παραστατικού που θα χρησιμοποιείται για την έκδοση παραστατικού πλεονάσματος φρέσκων προϊόντων
DeficitXDT: Το id του τύπου παραστατικού που θα χρησιμοποιείται για την έκδοση παραστατικού ελλείματος φρέσκων προϊόντων
SurplusExpiredXDT: Το id του τύπου παραστατικού που θα χρησιμοποιείται για την έκδοση παραστατικού πλεονάσματος ληγμένων προϊόντων
DeficitExpiredXDT: Το id του τύπου παραστατικού που θα χρησιμοποιείται για την έκδοση παραστατικού ελλείματος ληγμένων προϊόντων.
Ο τύπος παραστατικού ορίζεται στον πίνακα XDT και μας δίνει διάφορες πληροφορίες για το παραστατικό που θα εκδοθεί (π.χ. printoutID)
Η οθόνη αυτή ενεργοποιείται προσθέτοντας μια εγγραφή στον πίνακα tblPDAMenu, με την τιμή exvaninventory στο πεδίο MenuAction.
Για την μορφοποίηση της οθόνης μπορούμε να χρησιμοποιήσουμε ένα xml με μορφή παρόμοια με την παρακάτω:
<AndroidLayout>
<select offline= "SELECT * FROM STI LEFT OUTER JOIN tblVehicleStock ON STI.stiid = tblVehicleStock.stiid AND tblVehicleStock.IsUnloaded=0 AND (tblVehicleStock.IsDeleted=0 OR tblVehicleStock.IsDeleted IS NULL)" />
<rows> <row showExpiredColumn="true/false">
<column text="$stiname$" />
<column text="$inventoryQty$"/>
<column text="$inventoryExpiredQty$"/>
</row> </rows>
<layout width="0"/>
</AndroidLayout>
To attribute "showExpiredColumn" καθορίζει αν θα φαίνεται η στήλη των ληγμένων ποσοτήτων στην οθόνη. Παίρνει τιμές "true"/"false" και αν δεν δηλωθεί, θεωρείται FALSE (η στήλη ληγμένων ΔΕΝ φαίνεται)
Σύμφωνα με το παραπάνω xml, σε κάθε γραμμή της λίστας θα εμφανίζεται στην πρώτη στήλη το όνομα του προϊόντος (token $stiname$), στην δεύτερη στήλη η ποσότητα των φρέσκων που απογράφουμε (token $inventoryQty$) και στην τρίτη στήλη η ποσότητα των ληγμένων που απογράφουμε (token $inventoryExpiredQty$).
Για την ώρα υποστηρίζεται μόνο μια γραμμή (σε αντίθεση με το xml των details). Τα tokens που υποστηρίζονται είναι τα ίδια με αυτά που υποστηρίζονται στο xml των details.
To xml που χρησιμοποιήθηκε ως παράδειγμα είναι το default xml που χρησιμοποιείται σε περίπτωση που δεν οριστεί κάποιο στον πίνακα configuration. Για να ορίσουμε το xml για την απογραφή πρέπει να δημιουργήσηομε μια εγγραφή στον πίνακα configuration με configcode XVANINVENTORYXML.
Παράδειγμα της οποίας ακολουθεί:
<AndroidLayout>
<select offline= "SELECT tblvehiclestock.stiid as stiid, sti.codcode as codcode, sti.stiname as stiname, sum(loadqty) as loadqty, sum(salesqty) as salesqty, sum(returnqty) as returnqty, sum(freshqty) as freshqty, sum(reservedqty) as reservedqty, sum(expiredqty) as expiredqty, sum(measure) as measure, sum(measureexpired) as measureexpired FROM STI inner JOIN tblVehicleStock ON STI.stiid = tblVehicleStock.stiid AND tblVehicleStock.IsUnloaded=0 AND (tblVehicleStock.IsDeleted=0 OR tblVehicleStock.IsDeleted IS NULL) group by tblvehiclestock.stiid, sti.stiname, sti.codcode order by sti.codcode " />
<rows> <row>
<column text="$codcode$ - $stiname$" />
<column text="$inventoryQty$"/>
<column text="$inventoryExpiredQty$"/>
</row>
</rows>
<layout width="0"/>
</AndroidLayout>
Παραμετροποίηση XVanManualLoadingCatalogueXML (χειροκίνητη φόρτωση)
Ο χρήστης έχει την δυνατότητα να δημιουργήσει φόρτωση (εγγραφές στον tblLoading) χρησιμοποιώντας όποια από τα προϊόντα επιθυμεί (τα προϊόντα είναι εγγραφές στον πίνακα STI).
Η φόρτωση που δημιουργείται με αυτόν τον τρόπο έχει στο πεδίο LoadDescription του tblLoading το λεκτικό “ΧΕΙΡΟΚΙΝΗΤΗ”.
Επίσης οι φορτώσεις που δημιουργούνται με αυτόν τον τρόπο έχουν LoadCode σε παρόμοια μορφή: X56-20150110-1131 όπου το Χ υποδηλώνει ότι η φόρτωση είναι χειροκίνητη, το 56 αντιστοιχεί στο SLMid, το 20150110 είναι η ημερομηνία δημιουργίας και το 1131 είναι η ώρα δημιουργίας.
Ένα δείγμα XML για την συγκεκριμένη παράμετρο:



