Ακολουθεί η πλήρης ανάλυση της παραµετροποίησης χωρισµένη στις αντίστοιχες ενότητες µε αυτές του module Customization Tools. :

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Γενικά. Change Reference

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

Νέα λειτουργικότητα - Βελτιώσεις. Έκδοση /05/2015. Ημ/νία έκδοσης dd/mm/2015 1

Γενική περιγραφή. Περιγραφή σχεδιασμού εφαρμογής

Web Forms. Το Web Forms βρίσκεται στο µενού Οργάνωση λειτουργίας -> Βοηθητικές εργασίες -> Web Forms.

Αυτόματο Κλείσιμο Ισολογισμού

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Εργαστήριο Βάσεων Δεδομένων. Triggers

Browsers. Λειτουργικότητα και Παραμετροποίηση

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

[VARIABLES] Section Μεταβλητές τύπου Λίστες Τιµών

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Alfaware Οδηγός Χρήσης Εφαρμογής (Software User Manual)

Προσοχή: Βεβαιωθείτε ότι έχετε πάρει backup της εφαρμογής πριν την έναρξη της διαδικασίας

Νέες δυνατότητες (έκδοση 5.01b)

MEGASOFT ΤΜΗΜΑ ΤΕΧΝΙΚΗΣ ΥΠΟΣΤΗΡΙΞΗΣ. Οδηγός Σύνδεσης Ταμειακών Μηχανών Online

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Οδηγός Γρήγορης Παραμετροποίησης Auto Moto Cube

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Σχεδιασμός Βάσεων Δεδομένων

ΟΔΗΓΙΕΣ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗΣ ΓΙΑ ΤΗΝ ΔΙΑΣΥΝΔΕΣΗ ΜΕ ΣΥΣΤΗΜΑ ΕΙΣΡΟΩΝ-ΕΚΡΟΩΝ

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

. Εργαστήριο Βάσεων Δεδομένων. Triggers

Κάρτες πόντων (Loyalty card system)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Κάρτες πόντων (Loyalty card system)

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 4 7/02/2012

DELETE, UPDATE, INSERT.

Soft1 Version

Τροποποιη σεις για ενσωμα τωση του ΚΦΑΣ (Ν.4093/2012) στις εφαρμογε ς Atlantis E.R.P. και xline E.R.P.

ALERTS ή EDA (Event Driven Actions)

ΟΔΗΓΙΕΣ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗΣ

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Τμήμα Διοίκησης Επιχειρήσεων

DELETE, UPDATE, INSERT

Διαχείρισης Αποδείξεων Πετρελαίου Θέρμανσης

Διαχείριση Επιλογών Διαμόρφωσης


Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Οδηγίες Εγκατάστασης Pylon Entry

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Διαχείριση Εισπράξεων. Στη διαδικασία αυτή περιγράφεται η διαχείριση των εισπράξεων

Αυτόματο Κλείσιμο Ισολογισμού

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ιαχείριση Τηλεφωνικών Κλήσεων

Διαχείριση Τιμών / Εκπτώσεων & Μαζική ενημέρωση Τιμών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Δημιουργία πληρωμής μετρητών Πεδία Παραστατικού Πληρωμής Δημιουργία πληρωμής αξιογράφων Καταχώρηση Αξιογράφου...

Atlantis Orders on android

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

Βάσεις Δεδομένων (Databases)

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Μετάβαση σε Ε.Λ.Π. Παραμετροποίηση

Ηλεκτρονικοί Υπολογιστές II

Οδηγίες Προσαρτήματος

ΑΠΟΤΕΛΕΣΜΑΤΑ ΕΠΠΑΙΚ ΑΝΑ ΠΟΛΗ ΣΕΙΡΑ ΚΑΤΑΤΑΞΗΣ ΕΙΣΑΓΩΓΗ ΟΝΟΜΑ ΕΠΩΝΥΜΟ ΠΑΤΡΩΝΥΜΟ ΠΟΛΗ ΕΠΙΛΟΓΗΣ 1 NAI ΔΗΜΗΤΡΙΟΣ ΚΑΡΒΟΥΝΗΣ ΝΙΚΟΛΑΟΣ ΑΘΗΝΑ 2 NAI ΒΑΣΙΛΕΙΟΣ

Οδηγίες εγκατάστασης και λειτουργίας ERPeshop

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

Υπολογισμός Φορολογικής Αναμόρφωσης

Προσαρμογή των εφαρμογών PRISMA Win στη νομοθεσία και πιο συγκεκριμένα στις νέες διατάξεις του κώδικα ΦΠΑ.

Διαχείριση Γρήγορης Καταχώρησης Πωλήσεων

ΕΝΑΥΣΜΑΤΑ ΣΤΗΝ POSTGRES

Συγκεντρωτικές καταστάσεις ΜΥΦ

ΓΕΦΥΡΑ ΣΥΝ ΕΣΗΣ ΓΕΝΙΚΗΣ ΛΟΓΙΣΤΙΚΗΣ ΜΕ ΕΜΠΟΡΙΚΗ ΙΑΧΕΙΡΙΣΗ

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

xline Βασικές Ενότητες

Ηλεκτρονικοί Υπολογιστές II

Σεμινάρια Εκπαίδευση Προσωπικού

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Διαχείριση Γρήγορης Καταχώρησης Πωλήσεων

Εργασί α Data migration από ΚΕΦΑΛΑΙΟ ERP

Ειδικό Καθεστώς Φ.Π.Α (39β) Αντιγραφή Παραμέτρων των Παραγόμενων Άρθρων/Εγγραφών

Αρχική Σελίδα χωρίς να έχει πραγματοποιηθεί Σύνδεση

ΚΕΦΑΛΑΙΟ Web Services

Διαχείριση εισπράξεων

Περιβαλλοντικό τέλος στις πλαστικές σακούλες μεταφοράς.

Διαχείριση Πολιτισμικών Δεδομένων

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΠΡΟΚΗΡΥΞΕΙΣ

Ηλεκτρονικοί Υπολογιστές II

Εκφράσεις. Τύποι, Σταθερές & Μεταβλητές. Ορισµός Μεταβλητών

Εγχειρίδιο Οδηγιών. BrainStorm. Διαχείριση Πινάκων. Εισαγωγή, Μεταβολή, Διαγραφή Κατάταξη, Εντοπισμός Εγγραφών

EBS Version Entersoft Business Suite Entersoft CRM

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Μηνιαίες Συγκεντρωτικές1 Καταστάσεις1

Βεβαιωθείτε ότι έχετε πάρει backup της εφαρμογής πριν την έναρξη της διαδικασίας

Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας διαχείρισης Προϋπολογισμών. Παρακάτω προτείνεται μια

MySQL stored procedures

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΝΕΑ - ΑΝΑΚΟΙΝΩΣΕΙΣ

Μαζική Έκδοση Παραστατικών

Βάσεις Περιβαλλοντικών Δεδομένων

SQL Data Manipulation Language

Transcript:

XLINE E.R.P. CUSTOMIZATION TOOLS Παράδειγµα Το παρακάτω κείµενο αποτελεί παράδειγµα παραµετροποίησης του xline E.R.P. Για την καλύτερη κατανόηση και υλοποίηση του παραδείγµατος θα πρέπει πρώτα να διαβάσετε προσεκτικά το αναλυτικό κείµενο που συνοδεύει το module. Το σενάριο που θα υλοποιηθεί είναι το ακόλουθο: Συγκεκριµένοι πελάτες θα χαρακτηρίζονται ως πελάτες µε δικαίωµα ειδικής έκπτωσης. Η έκπτωση αυτή θα ισχύει έως συγκεκριµένη ηµεροµηνία που θα καθορίζεται κατά πελάτη. Θα πρέπει επίσης να περιγράφεται και η αιτιολογία που δικαιολογεί το καθεστώς ειδικών εκπτώσεων κατά πελάτη. Οι εκπτώσεις που δίδονται θα είναι κατηγοριοποιηµένες σε ειδικό πίνακα εκπτώσεων. Κατά την διαδικασία πώλησης θα εµφανίζεται το ειδικό καθεστώς που διέπει τον κάθε πελάτη, και η δοθείσα επιπλέον έκπτωση θα ενηµερώνει ειδικό πίνακα (στατιστική ειδικών εκπτώσεων). Τέλος, θα πρέπει να δοθεί δυνατότητα αναζήτησης πελατών και µε ένα επί πλέον κριτήριο Σχετικός κωδικός αναζήτησης. Σηµείωση: Στην ονοµατολογία που έχει χρησιµοποιηθεί θα παρατηρήσετε ότι όλοι οι νέοι πίνακες/πεδία αρχίζουν από τα γράµµατα CS_ ώστε να ξεχωρίζουν εύκολα τα στοιχεία που αφορούν τη συγκεκριµένη παραµετροποίηση. Αυτό είναι προτεινόµενη τακτική και όχι υποχρεωτική. Ακολουθεί η πλήρης ανάλυση της παραµετροποίησης χωρισµένη στις αντίστοιχες ενότητες µε αυτές του module Customization Tools. : Πίνακες Στον πίνακα πελατών προσθέτονται τα απαραίτητα νέα πεδία. Πελάτες (Customer) CS_RelCode: Σχετικός κωδικός πελάτη, επιπλέον πεδίο αναζήτησης. CS_HasSpecDis: 0 = Απενεργοποίηση 1 = Ενεργοποίηση ειδικού καθεστώτος έκπτωσης. CS_SpecDisEnd: Ηµεροµηνία λήξης ειδικού καθεστώτος CS_DisJust - Αιτιολογία έκπτωσης CS_CSDID Κατηγορία ειδικής έκπτωσης, σύνδεση µε τον νέο πίνακα CS_CustSpecDisc που περιέχει τις κατηγορίες ειδικού καθεστώτος έκπτωσης. Νέοι Πίνακες ηµιουργείτε δύο νέους πίνακες. Ο πρώτος θα περιέχει τα % εκπτώσεων και ο δεύτερος θα ενηµερώνεται από τις πωλήσεις και θα κρατά την στατιστική των ειδικών εκπτώσεων. Ο πρώτος πίνακας θα έχει και ειδική φόρµα καταχώρησης / αλλαγής %, παρ όλο που όπως θα δείτε παρακάτω, οι αρχικές εγγραφές θα δηµιουργούνται κατά την πρώτη εκτέλεση του customization. CS_CustSpecDisc Ειδικές εκπτώσεις πελατών, πίνακας που περιέχει περιγραφές και ποσοστά ειδικών καθεστώτων έκπτωσης. DESCR: Περιγραφή έκπτωσης PERCENTAGE: Ποσοστό έκπτωσης CS_CustSpecDisLog Πίνακας στον οποίο καταγράφουµε στατιστικά πωλήσεων για τους πελάτες µε ειδικό καθεστώς εκπτώσεων DisDate: Ηµεροµηνία παραστατικού CusID: Κωδικός πελάτη TrdID: Κωδικός παραστατικού Justification: Αιτιολογία έκπτωσης (από τον πελάτη) DisPerc Float Ποσοστό έκπτωσης 1

Selectors Τροποποιείτε τον selector πελατών προσθέτοντάς του την δυνατότητα αναζήτησης πελατών και µε το νέο κριτήριο του Σχετικού Κωδικού Αναζήτησης. Customer Προσθήκη του σχετικού κωδικού (CS_RelCode) στα πεδία αναζήτησης. Stored Procedure ηµιουργείτε µία stored procedure στη βάση, η οποία όταν καλείται θα επιστρέφει τα στοιχεία µε τα οποία θα ενηµερώνεται ο ειδικός πίνακας στατιστικής εκπτώσεων. GetSTLDiscAVG Η Stored procedure GetSTLDiscAVG δέχεται σαν παράµετρο τον κωδικού παραστατικού και επιστρέφει τη συνολική αξία και έκπτωση για όλες τις γραµµές του παραστατικού. CREATE PROCEDURE CS_GetSTLDiscAVG @_FTRID INT, @DISCV FLOAT OUTPUT, @AMOUNT FLOAT OUTPUT AS SELECT @DISCV = SUM(ISNULL(VALDISC1,0)) FROM STORETRADELINES WHERE FTRID = @_FTRID HAVING COUNT(*)>0 SELECT @AMOUNT = SUM(ISNULL(LINEVALUE,0)) FROM STORETRADELINES WHERE FTRID = @_FTRID HAVING COUNT(*)>0 Σηµείωση: Η σύνταξη της συγκεκριµένης Stored Procedure είναι συµβατή µόνο µε SQL Server. Οι χρήστες άλλης βάσης (Oracle) θα πρέπει να κάνουν τις αντίστοιχες αλλαγές πριν τη χρησιµοποιήσουν. Παραµετροποίηση φορµών Στις φόρµες ιαχείριση σταθερών στοιχείων πελατών και Πωλήσεις, και ειδικότερα στο νέο Tab λοιπών πεδίων προσθέτουµε τα απαραίτητα παιδία για την υλοποίηση του σεναρίου. ιαχείριση πελατών - Προσθήκη control TRDBEdit, σύνδεση µε το πεδίο CS_RelCode (Σχετικός κωδικός πελάτη). - Προσθήκη control TRDBCheckBox, σύνδεση µε το πεδίο CS_HasSpecDis (Ενεργοποίηση / Απενεργοποίηση ειδικού καθεστώτος έκπτωσης), ορισµός ιδιοτήτων ValueChecked = 1, ValueUnchecked = 0 - Προσθήκη control TRDBEditLookUpComboBox, σύνδεση µε το πεδίο CS_CSDID (κατηγορία ειδικής έκπτωσης), ορισµός ιδιοτήτων ListTableName = CS_CUSTSPECDISC, ListField = DESCR, KeyField = ID. - Προσθήκη control TRDBEditCalendar, σύνδεση µε το πεδίο CS_SpecDisEnd (Ηµεροµηνία λήξης ειδικού καθεστώτος). - Προσθήκη control TRDBEdit, σύνδεση µε το πεδίο CS_DisJust (Αιτιολογία έκπτωσης). - Προσθήκη 5 TRLabel µε αντίστοιχες περιγραφές (caption) για κάθε control. Παραστατικά πωλήσεων - Προσθήκη TRLabel (XCLLabel1) ορισµός caption = Ειδικό καθεστώς έκπτωσης. - Προσθήκη TRLabel (XCLLabel2) δεξιά του XCLLabel1, ορισµός caption = []. - Προσθήκη TRLabel (XCLLabel3) ορισµός caption = Ποσοστό έκπτωσης - Προσθήκη TRLabel (XCLLabel4) δεξιά του XCLLabel3, ορισµός caption = []. - Προσθήκη TRLabel (XCLLabel5) ορισµός caption = Αιτιολογία έκπτωσης - Προσθήκη TRLabel (XCLLabel6) δεξιά του XCLLabel5, ορισµός caption = []. Σηµείωση: θα πρέπει να δοθεί ιδιαίτερη προσοχή στη δηµιουργία των TRLabel ώστε τα ονόµατα να συµπίπτουν µε αυτά που βλέπουµε παραπάνω. Ο λόγος είναι ότι σε αυτά γίνεται αναφορά από το Scripting και τυχόν λάθη θα δηµιουργούσαν λανθασµένα οπτικά αποτελέσµατα. 2

Scripting Ακολουθεί το αναλυτικό Scripting που θα πρέπει να προστεθεί στη φόρµα των πωλήσεων. Στην αρχή του κάθε τµήµατος του Script αναφέρεται η κατηγορία, το πεδίο και το γεγονός. Το παράδειγµα που ακολουθεί είναι εµπλουτισµένο µε σχόλια που περιγράφουν επιγραµµατικά το τµήµα του κώδικα που ακολουθεί. Fields Scriptings.FINTRADE.CUSID.ONCHANGE Data module Scripting AFTERLOCATE Ο παρακάτω κώδικας είναι κοινός και για τα δύο γεγονότα. Με την εκτέλεση του ανακτώνται οι πληροφορίες ειδικού καθεστώτος έκπτωσης του εκάστοτε πελάτη και ενηµερώνονται αντίστοιχα τα TRLabel που προστέθηκαν παραπάνω. Tmp, CusID, CusHasSpecDis, CusSpecDisEnd, CusDisJust, CusCSDID, HasSpecDis, SpecDisPercent; // Αρχικοποίηση τιµών HasSpecDis = 0; CusDisJust = '[]'; SpecDisPercent = 0; // Ανάκτηση τιµής του πεδίου FINTRADE.CUSID (κωδικός πελάτη) CusID = FldGetValue('FINTRADE.CUSID'); If not IsNull(CusID) then // Αν υπάρχει πελάτης ανακτούµε τα πεδία ειδικής έκπτωσης Tmp = SELECT CS_HasSpecDis, CS_SpecDisEnd, CS_DisJust, CS_CSDID FROM CUSTOMER WHERE ID=:CusID; // Η χρήση της µεταβλητής Tmp δεν είναι απαραίτητη, έγινε για λόγους παρουσίασης // και καλύτερης εµφάνισης κώδικα [CusHasSpecDis, CusSpecDisEnd, CusDisJust, CusCSDID] = Tmp; // Ελέγχουµε αν υπάρχει ειδικό καθεστώς έκπτωσης καθώς και την ηµεροµηνία λήξης αυτής if (CusHasSpecDis == 1) and (not IsNull(CusCSDID)) and (not IsNull(CusSpecDisEnd)) and (CusSpecDisEnd>=Today) then // Ενηµερώνουµε τη µεταβλητή HasSpecDis και ανακτούµε το ποσοστό έκπτωσης HasSpecDis = 1; SpecDisPercent = SELECT PERCENTAGE FROM CS_CUSTSPECDISC WHERE ID=:CusCSDID; // Ενηµέρωση των TRLabel µε τα στοιχεία έκπτωσης του συγκεκριµένου πελάτη. if IsNull(CusDisJust) then CusDisJust = ''; if HasSpecDis == 1 then XCLLabel2.caption = 'NAI'; 3

XCLLabel2.caption = 'OXI'; XCLLabel4.caption = SpecDisPercent; XCLLabel6.caption = CusDisJust; Field Scripting ITEID.ONCHANGE Ενεργοποίηση ειδικού καθεστώτος έκπτωσης στην επιλογή του είδους: SpecDisPerc; // Έλεγχος ύπαρξης ειδικού καθεστώτος έκπτωσης if XCLLabel2.caption =='NAI' then SpecDisPerc = XCLLabel4.caption; // Ενεργοποίηση έκπτωσης FldSetValue('STORETRADELINES.PRCDISC1',SpecDisPerc); DataModule Scripting AFTERPOST Σε αυτό το γεγονός χρησιµοποιείται η GetSTLDiscAVG που επιστρέφει τον µέσο όρο έκπτωσης των γραµµών του συγκεκριµένου παραστατικού. Αν ο πελάτης έχει ενεργοποιηµένο ειδικό καθεστώς εκπτώσεων ενηµερώνετε τον πίνακα CS_CustSpecDisLog µε τα αντίστοιχα δεδοµένα. LogRecID, MyFtrID, MyCusID, MyDate, MyDisPerc, MyTotDiscV, MyTotLAmount, MyJust; // Έλεγχος αν υπάρχει ειδικό καθεστώς εκπτώσεων if XCLLabel2.caption == 'NAI' then MyFtrID = FldGetValue('FINTRADE.ID'); MyCusID = FldGetValue('FINTRADE.CusID'); MyDate = FldGetValue('FINTRADE.FtrDate'); MyJust = XCLLabel6.caption; // Εκτέλεση Stored Procedure [MyTotDiscV, MyTotLAmount] = ExecuteDBProc('CS_GetSTLDiscAVG', '_FTRID', 'DISCV F;AMOUNT F', MyftrID); // Αν είναι µηδενικές οι αξίες τότε θέτουµε το ποσοστό έκπτωσης = 0 if (MyTotDiscV + MyTotLAmount) == 0 then MyDisPerc = 0; MyDisPerc = (MyTotDiscV/ (MyTotLAmount+MyTotDiscV) ) * 100; // Έλεγχος αν υπάρχει ήδη εγγραφή για το συγκεκριµένο παραστατικό LogRecID = SELECT ID FROM CS_CustSpecDisLog WHERE TrdID =:MyFtrID; // Αν δεν υπάρχει εγγραφή, προσθέτουµε νέα εγγραφή στον CS_CustSpecDisLog // σε αντίθετη περίπτωση ενηµερώνουµε τη παλιά if IsNull(LogRecID) then 4

INSERT INTO CS_CustSpecDisLog (DisDate, CusId, TrdId, DisPerc, Justification) VALUES (:MyDate, :MyCusId, :MyFtrID, :MyDisPerc, ':MyJust'); UPDATE CS_CustSpecDisLog SET DisDate=:MyDate, CusId=:MyCusId, TrdId=:MyFtrID, DisPerc=:MyDisPerc, Justification=':MyJust' WHERE ID=:LogRecID; DataModule Scripting BEFOREDELETE Αποθηκεύεται ο κωδικός του τρέχοντος παραστατικού ώστε να µπορείτε να το ανακτήσετε στο γεγονός AfterDelete TradeID; // Ανάκτηση κωδικού παραστατικού TradeID = FldGetValue('FINTRADE.ID'); // Αποθήκευση στο XCLLabel6.tag XCLLabel6.tag = TradeID; DataModule Scripting AFTERDELETE ουλεύει σε συνδυασµό µε το BeforeDelete. Ανακτάται ο κωδικός του - διαγραµµένου πια - παραστατικού και διαγράφετε την αντίστοιχη εγγραφή από τον πίνακα CS_CustSpecDisLog. TradeID, LogID; // Ανάκτηση διεγραµµένου κωδικού παραστατικού TradeID = XCLLabel6.tag; // Εύρεση αντίστοιχης εγγραφής από τον CS_CustSpecDisLog LogID = SELECT ID FROM CS_CustSpecDisLog WHERE TrdID=:TradeID; // Αν υπάρχει αντίστοιχη εγγραφή τη διαγράφουµε if not IsNull(LogID) then DELETE FROM CS_CustSpecDisLog WHERE ID=:LogID; Scripting Εγκατάστασης Σε αυτό το τµήµα που ενεργοποιείται όταν εγκατασταθεί η παραµετροποίηση, ενηµερώνετε τον πίνακα ειδικών εκπτώσεων (CS_CustSpecDisc) µε 4 προεπιλεγµένες εγγραφές (καθεστώτα εκπτώσεων). RecCount; // Έλεγχος εγγραφών στον πίνακα CS_CustSpecDisc RecCount = SELECT count(*) FROM CS_CustSpecDisc; // Αν δεν υπάρχουν εγγραφές, ενηµέρωση µε τα προεπιλεγµένα καθεστώτα εκπτώσεων. IF RecCount == 0 then $INSERT INTO CS_CustSpecDisc (PERCENTAGE, DESCR) VALUES (0, 'Χωρίς έκπτωση'); $INSERT INTO CS_CustSpecDisc (PERCENTAGE, DESCR) VALUES (5, 'Χαµηλή έκπτωση'); $INSERT INTO CS_CustSpecDisc (PERCENTAGE, DESCR) VALUES (10, 'Μεσαία έκπτωση'); $INSERT INTO CS_CustSpecDisc (PERCENTAGE, DESCR) VALUES (20, 'Υψηλή έκπτωση'); 5