Pocketbiz Android Νέος Πελάτης

Από


ESPocketBiz – Νέος πελάτης Pocketbiz Android Νέος Πελάτης-image1.png

Entersoft Business Suite® | Entersoft CRM® | Entersoft Mobile Suite®

Τεχνικό εγχειρίδιο

Ταυτότητα

Έκδοση κειμένου 2.0

Τελ. ενημέρωση Ιούνιος 2021

Copyright

© Copyright 2011 Entersoft A.E. Με την επιφύλαξη όλων των νόμιμων δικαιωμάτων.

Δεν επιτρέπεται η αναδημοσίευση ή μετάδοση με οποιαδήποτε μορφή και για οποιοδήποτε λόγο μέρους ή όλου του παρόντος εγχειριδίου, χωρίς τη ρητή άδεια της Entersoft Α.Ε.

Όσον αφορά το περιεχόμενο του παρόντος…

  • Μπορεί να μεταβληθεί οποιαδήποτε στιγμή.
  • Εξυπηρετεί αποκλειστικά πληροφοριακούς σκοπούς.
  • Δεν παρέχεται εγγύηση για την ύπαρξη τυχόν λαθών ή για τη λανθασμένη χρήση ή για μη επιθυμητά αποτελέσματα από τη χρήση των προτεινόμενων στο παρόν διαδικασιών.

= Νέος Πελάτης

Περιγράφεται η παραμετροποίηση για τη λειτουργικότητα, καταχώρηση και επεξεργασία του νέου πελάτη στο Pocketbiz Android.

Σχετικοί Πίνακες

Πίνακας Περιγραφή Article Type Sync Type
tblSLMRequest καταχωρούνται οι αιτήσεις δημιουργίας νέου πελάτη UPLOAD PUBLIC
tblNewCustomerXML Καταχωρούνται τα πεδία για την φόρμα δημιουργίας νέου πελάτη DOWNLOAD PUBLIC

Σχετικές Παράμετροι πίνακα Configuration

ConfigCode Περιγραφή Τιμές default
AllowNewCustomer

0 : Δεν επιτρέπεται η δημιουργία νέου πελάτη

1 : Επιτρέπεται η δημιουργία νέου πελάτη αλλά αποθηκεύει μόνο την αίτηση, δεν μπορεί στη συνέχεια να τον επιλέξει και να ξεκινήσει επίσκεψη

2 : Επιτρέπεται η δημιουργία νέου πελάτη και στη συνέχεια μπορεί να τον επιλέξει και να ξεκινήσει επίσκεψη

0,1,2 2
NewCustomerXML XML μορφοποίησης για την εισαγωγή των στοιχείων του νέου πελάτη XML
NewCustomersListXML XML μορφοποίησης για την λίστα νέων πελατών XML
GetAFMData αυτόματη συμπλήρωση πεδίων του πελάτη από το Web Service του Taxis
VatRegCheck Ορίζει αν θα εκτελεστεί και πως ο έλεγχος του ΑΦΜ 0,1,2 1
NewCUSPattern Ορίζει τα πεδία του πίνακα SLM και τη σειρά με την οποία θα χρησιμοποιηθούν για την δημιουργία του Κωδικού Νέου Πελάτη.
NewCUS_AFM_Unique ελέγχει το ΑΦΜ του νέου πελάτη αν υπάρχει 0,1

==
Παραμετροποίηση ==

AllowNewCustomer

Η παράμετρος AllowNewCustomer παίρνει τιμές στο πεδίο Configvalue του πίνακα Configuration. Οι διαθέσιμες τιμές είναι

0 : Δεν επιτρέπεται η δημιουργία νέου πελάτη

1 : Επιτρέπεται η δημιουργία νέου πελάτη αλλά αποθηκεύει μόνο την αίτηση, δεν μπορεί στη συνέχεια να τον επιλέξει και να ξεκινήσει επίσκεψη

2 : Επιτρέπεται η δημιουργία νέου πελάτη και στη συνέχεια μπορεί να τον επιλέξει και να ξεκινήσει επίσκεψη

Pocketbiz Android Νέος Πελάτης-image2.jpeg Pocketbiz Android Νέος Πελάτης-image3.jpeg

Εικόνα 1: Λίστα πελατών με AllowNewCustomer=0 Λίστα πελατών με AllowNewCustomer= 1 ή 2

NewCustomerXML

Η φόρμα που εμφανίζεται για την εισαγωγή των στοιχείων του νέου πελάτη εξαρτάται από την παράμετρο NewCustomerXML.

Η γενική μορφή είναι η εξής

<NewCustomerXML>

<sql> <online query="…" />

<offline query="… SELECT 'leename' AS datamember, 'Όνομα' AS title, AS storevalue, 'Στοιχεία' AS category, '1' AS editable, '1' AS mandatory, 'NVARCHAR' AS fieldtype, '1' AS position , AS SQL,'commerTitle' as TaxisField UNION ALL …" />

</sql>

<cusid cusid="(…)" /> </NewCustomerXML>

Στο tag <sql> περιλαμβάνονται 2 κατηγορίες, το online και offline Select queries από τα οποία διαβάζει η εφαρμογή, αντίστοιχα με τον τρόπο εγκατάστασης.

Κάθε query αποτελείται από τα παρακάτω πεδία:

Datamember: Το πεδίο του πίνακα tblSLMRequest όπου θα αποθηκευτεί η εγγραφή

Title: Η περιγραφή του πεδίου στη φόρμα

Storevalue: Η τιμή που αποθηκεύεται

Category: Πεδίο για ομαδοποίηση εγγραφών στη φόρμα

Editable: Εάν το πεδίο είναι editable. Διαθέσιμες τιμές 0/1

Mandatory: Εάν το πεδίο είναι υποχρεωτικό. Διαθέσιμες τιμές 0/1

Fieldtype: Το input που θα είναι διαθέσιμο στον χρήστη. Διαθέσιμες τιμές INT, NVARCHAR, FLOAT, SQL, VATNUMBER

Position: Η σειρά του πεδίου στο category που ανήκει

SQL: Αν το πεδίο είναι τύπου SQL εδώ συμπληρώνεται το SQL ερώτημα

TaxisField: Το πεδίο που έρχεται από το web service του Taxis (βλ. παραμετροποίηση Taxis)

Pocketbiz Android Νέος Πελάτης-image4.jpegΣτο tag <cusid cusid="(-1,-2)" />, ορίζουμε ποιο id του CUS θα αποθηκευτεί στην αίτηση για τον νέο πελάτη. Μπορούμε να βάλουμε περισσότερο από ένα ID ώστε να γίνεται διακριτή καταχώρηση για κάθε τύπο πελάτη, π.χ. Πελάτης Direct με cusid=-1, Πελάτης Ανταγωνισμού με cusid=-2 κτλ.

Έτσι, πριν την φόρμα καταχώρησης νέου πελάτη ανοίγει Pop Up για να επιλέξουμε τον τύπο πελάτη που αφορά η αίτηση. Η περιγραφή που εμφανίζεται στο pop up έρχεται από το πεδίο Cusname του πίνακα cus, οπότε πρέπει να συντηρείτε σωστά το πεδίο.

Εικόνα 2: Pop up για επιλογή τύπου πελάτη (εμφανίζεται αν υπάρχει πάνω από μια τιμή)

information Σημείωση

Τα CUSID που καταχωρούμε πρέπει να υπάρχουν και στη βάση, στους αντίστοιχους πίνακες (CUS , LEE, ADR με replverify 255 για να μην σβήνονται από το Connectivity).

Παράδειγμα NewCustomerXML

<NewCustomerXML><sql><online query="" /><offline query="SELECT 'leename' AS datamember, 'Όνομα' AS title, AS storevalue, 'Στοιχεία' AS category, '1' AS editable, '1' AS mandatory, 'NVARCHAR' AS fieldtype, '1' AS position , AS SQL,'commerTitle' as TaxisField UNION ALL SELECT 'leeafm' AS datamember, 'AΦΜ' AS title, AS storevalue, 'Στοιχεία' AS category, '1' AS editable, '1' AS mandatory, 'NVARCHAR' AS fieldtype, '2' AS position , AS SQL, as TaxisField UNION ALL SELECT 'udfchar1' AS datamember, 'Δ.Ο.Υ.' AS title, AS storevalue, 'Στοιχεία' AS category, '1' AS editable, '0' AS mandatory, 'NVARCHAR' AS fieldtype, '3' AS position , AS SQL,'doyDescr' as TaxisField UNION ALL SELECT 'prfid' AS datamember, 'Επάγγελμα' AS title, AS storevalue, 'Στοιχεία' AS category, '1' AS editable, '0' AS mandatory, 'SQL' AS fieldtype, '4' AS position , 'SELECT prfid AS storevalue, prfdescr AS displayvalue FROM PRF' AS SQL, as TaxisField UNION ALL SELECT 'udfint1' AS datamember, 'Τρόπος Πληρωμής' AS title, AS storevalue, 'Στοιχεία' AS category, '1' AS editable, '0' AS mandatory, 'SQL' AS fieldtype, '5' AS position , 'SELECT CPMID AS storevalue, cpmtitle AS displayvalue FROM CPM' AS SQL, as TaxisField UNION ALL SELECT 'adrstreet' AS datamember, 'Οδός' AS title, AS storevalue, 'Διεύθυνση' AS category, '1' AS editable, '1' AS mandatory, 'NVARCHAR' AS fieldtype, '1' AS position , AS SQL ,'postalAddress' as TaxisField UNION ALL SELECT 'adrnumber' AS datamember, 'Αριθμός' AS title, AS storevalue, 'Διεύθυνση' AS category, '1' AS editable, '1' AS mandatory, 'INT' AS fieldtype, '2' AS position , AS SQL, as TaxisField UNION ALL SELECT 'adrcity' AS datamember, 'Πόλη' AS title, AS storevalue, 'Διεύθυνση' AS category, '1' AS editable, '1' AS mandatory,'NVARCHAR' AS fieldtype, '3' AS position, AS SQL, as TaxisField UNION ALL SELECT 'adrdistrict' AS datamember, 'Περιοχή' AS title, AS storevalue, 'Διεύθυνση' AS category, '1' AS editable, '1' AS mandatory,'NVARCHAR' AS fieldtype, '4' AS position, AS SQL, as TaxisField UNION ALL SELECT 'adrphone1' AS datamember, 'Τηλέφωνο' AS title, AS storevalue, 'Διεύθυνση' AS category, '1' AS editable, '1' AS mandatory, 'NVARCHAR' AS fieldtype, '5' AS position , AS SQL, as TaxisField UNION ALL SELECT 'adrzipcode' AS datamember, 'T.K.' AS title, AS storevalue, 'Διεύθυνση' AS category,'1' AS editable,'0' AS mandatory,'NVARCHAR' AS fieldtype, '6' AS position , AS SQL ,'postalZipCode' as TaxisField " /></sql><cusid cusid="(-1)" /><taxis username="Username_Taxis" password="Password_Taxis" url="https://www1.gsis.gr/webtax2/wsgsis/RgWsPublic/RgWsPublicPort%22 /><gps streetNumberField="adrnumber" streetNameField="adrstreet" stateField="adrdistrict" cityField="adrcity" postalCodeField="adrzipcode" phoneField="adrphone1"/></NewCustomerXML>

Παράδειγμα 2 NewCustomerXML (από την Model)

<NewCustomerXML> <sql> <online query="" /> <offline query="SELECT * FROM tblNewCustomerXML WHERE CUSID=$CUSID$ ORDER BY sortOrder " /> </sql> <cusid cusid="(-1)" /> <taxis username="" password="" url="https://www1.gsis.gr/webtax2/wsgsis/RgWsPublic/RgWsPublicPort%22 /> <gps streetNumberField="adrnumber" streetNameField="adrstreet" stateField="adrdistrict" cityField="adrcity" postalCodeField="adrzipcode" phoneField="adrphone1"/></NewCustomerXML>

C:\Users\m.fragkiadakis\Desktop\new.jpg

Εικόνα 3: Φόρμα νέου πελάτη

information Σημείωση

Σαν δυνατότητα παραμετροποίησης υπάρχει και προτείνεται η δυναμική επιλογή πεδίων με select από πίνακα της βάσης. Βλ παράγραφο 1.3 παρακάτω.

Web Service Taxis

Υποστηρίζεται η αυτόματη συμπλήρωση πεδίων του πελάτη από το Web Service του Taxis. Πρέπει στον πίνακα Configuration να βάλουμε την παράμετρο GetAFMData με configvalue=1 και στο NewCustomerXML συμπληρώνουμε το tag <taxis> με στοιχεία:

Username: Το username της υπηρεσίας του Taxis για αναζήτηση ΑΦΜ

Password: Το password της υπηρεσίας του Taxis για αναζήτηση ΑΦΜ

URL: Το url για το service της υπηρεσίας του taxis

https://www1.gsis.gr/webtax2/wsgsis/RgWsPublic/RgWsPublicPort

Για τα διαθέσιμα πεδία παρακάτω, πρέπει στα αντίστοιχα πεδία του NewCustomerXML να συμπληρωθεί το attribute TaxisField

Για παράδειγμα για τη ΔΟΥ έχουμε:

SELECT 'udfchar1' AS datamember, 'Δ.Ο.Υ.' AS title, AS storevalue, 'Στοιχεία' AS category, '1' AS editable, '0' AS mandatory, 'NVARCHAR' AS fieldtype, '3' AS position , AS SQL,'doyDescr' as TaxisField

ΒΑΣΙΚΑ ΠΕΔΙΑ ΜΗΤΡΩΟΥ

Πεδίο

Τύπος

Περιγραφή Πεδίου

afm

CHAR (12)

ΑΦΜ

doy

CHAR (4)

ΚΩΔΙΚΟΣ ΔΟΥ

doyDescr

VARCHAR2 (60)

ΠΕΡΙΓΡΑΦΗ ΔΟΥ

INiFlagDescr

CHAR (5)

ΦΠ /ΜΗ ΦΠ

deactivationFlag

CHAR (1)

ΕΝΔΕΙΞΗ ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟΣ ΑΦΜ: 1=ΕΝΕΡΓΟΣ ΑΦΜ

2=ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟΣ ΑΦΜ

deactivationFlagDescr

CHAR (21)

ΕΝΔΕΙΞΗ ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟΣ ΑΦΜ (ΠΕΡΙΓΡΑΦΗ):

ΕΝΕΡΓΟΣ ΑΦΜ ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟΣ ΑΦΜ

firmFlagDescr

CHAR (20)

ΤΙΜΕΣ: ΕΠΙΤΗΔΕΥΜΑΤΙΑΣ

ΜΗ ΕΠΙΤΗΔΕΥΜΑΤΙΑΣ ΠΡΩΗΝ ΕΠΙΤΗΔΕΥΜΑΤΙΑΣ

onomasia

VARCHAR2 (120)

ΕΠΩΝΥΜΙΑ

commerTitle

VARCHAR2 (80)

ΤΙΤΛΟΣ ΕΠΙΧΕΙΡΗΣΗΣ

legalStatusDescr

VARCHAR2 (40)

ΠΕΡΙΓΡΑΦΗ ΜΟΡΦΗΣ ΜΗ Φ.Π.

postalAddress

VARCHAR2 (60)

ΟΔΟΣ ΕΠΙΧΕΙΡΗΣΗΣ

postalAddressNo

CHAR (9)

ΑΡΙΘΜΟΣ ΕΠΙΧΕΙΡΗΣΗΣ

postalZipCode

CHAR (5)

ΤΑΧ. ΚΩΔ. ΕΠΙΧΕΙΡΗΣΗΣ

postalAreaDescription

VARCHAR2 (40)

ΠΕΡΙΟΧΗ ΕΠΙΧΕΙΡΗΣΗΣ

registDate

DATE

ΗΜ/ΝΙΑ ΕΝΑΡΞΗΣ

stopDate

DATE

ΗΜ/ΝΙΑ ΔΙΑΚΟΠΗΣ

ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΕΠΙΧΕΙΡΗΣΗΣ

firmActCode

NUMBER (8)

ΚΩΔΙΚΟΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ

firmActDescr

VARCHAR2 (300)

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

firmActKind

CHAR (1)

ΕΙΔΟΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ: 1=ΚΥΡΙΑ

2=ΔΕΥΤΕΡΕΥΟΥΣΑ

3=ΛΟΙΠΗ

4=ΒΟΗΘΗΤΙΚΗ

firmActKindDescr

VARCHAR2 (12)

ΠΕΡΙΓΡΑΦΗ ΕΙΔΟΥΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ: ΚΥΡΙΑ

ΔΕΥΤΕΡΕΥΟΥΣΑ ΛΟΙΠΗ ΒΟΗΘΗΤΙΚΗ

Για να καλέσει η εφαρμογή το web service πρέπει να πατηθεί το εικονίδιο με το σύννεφο.

C:\Users\m.fragkiadakis\Desktop\new.jpg

Εικόνα 4: Το κουμπί για το web service του Taxis

information Σημείωση

Για να καλέσει η εφαρμογή το web service πρέπει να υπάρχει διαθέσιμη σύνδεση στο Internet.

Αντίστροφη Γεωκωδικοποίηση

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

Συμπληρώνουμε στο NewCustomerXML το tag <gps> με τα διαθέσιμα πεδία.

Τα attributes που υποστηρίζει το <gps> tag είναι:

streetNumberField: αντιστοιχεί στο πεδίο feature του αντικειμένου Address, δλδ στον αριθμό της οδού

streetNameField: αντιστοιχεί στο πεδίο thoroughfare του αντικειμένου Address, δλδ στο όνομα της οδού

countryField: αντιστοιχεί στο πεδίο countryName του αντικειμένου Address, δλδ στο όνομα της χώρας

countryCodeField: αντιστοιχεί στο πεδίο countryCode του αντικειμένου Address, δλδ στον κωδικό της χώρας (πχ. Ελλάδα -> 30)

cityField: αντιστοιχεί στο πεδίο locality του αντικειμένου Address, δλδ στην πόλη

stateField: αντιστοιχεί στο πεδίο admin του αντικειμένου Address, δλδ στον νομό

postalCodeField: αντιστοιχεί στο πεδίο postalCode του αντικειμένου Address, δλδ στον Τ.Κ.

phoneField: αντιστοιχεί στο πεδίο phone του αντικειμένου Address, δλδ στο τηλέφωνο που είναι καταχωρημένο στην συγκεκριμένη διεύθυνση (Δεν αν υποστηρίζεται για Ελλάδα)

Για παράδειγμα εάν θέλουμε το πεδίο της διεύθυνσης να γεμίζει αυτόματα από την λήψη στίγματος πρέπει να ορίσουμε στο tag <gps>, "streetNameField="adrstreet" , όπου το streetNameField είναι το διαθέσιμο πεδίο της γεωκωδικοποίησης για τη διεύθυνση και το πεδίο adrstreet, το αντίστοιχο datamember του XML.

Pocketbiz Android Νέος Πελάτης-image8.jpeg

Για να γίνει λήψη στίγματος και συμπλήρωση των πεδίων πατάμε το κουμπί με το εικονίδιο GPS

Εικόνα 5: Το κουμπί για λήψη στίγματος και αντίστροφη γεωκωδικοποίηση

information Σημείωση

Τα στοιχεία του πελάτη που συμπληρώνονται από την αντίστροφη γεωδικοποίηση πρέπει να είναι τύπου NVARCHAR. Σε περίπτωση που ένα στοιχείο δεν είναι NVARCHAR τότε αγνοείται από την διαδικασία της αντίστροφης γεωκωδικοποίησης ακόμα και αν υπάρχει στο tag <gps>.

NewCustomersListXML

Η λίστα νέων πελατών διαμορφώνεται από την παράμετρο NewCustomersListXML.

<AndroidLayout>

<sql>        

<online query="..." />

<offline query="..." />

</sql>

<rows>

<row datamember="..." textsize="…" color="…" />

<row datamember="…" textsize="…" color=".." />

<row datamember="..." color="…" />

<row ….. />

</rows>

</AndroidLayout>

TAG <sql>:

INNER TAGS: Η λογική είναι αντίστοιχη με αυτή του καταλόγου στη sales για όσους έχουν ασχοληθεί, χωρίζονται σε 2 μεγάλες κατηγορίες: online για τα online queries και offline για τα offline queries.

query: Εδώ γράφετε το select το οποίο θέλετε να εκτελεστεί.

ΣΗΜΕΙΩΣΕΙΣ: Απαραίτητα πεδία σε κάθε περίπτωση: cusid, leename, addriddest

+ ότι άλλο έχουν απαραίτητο τα modules (field service)

 <rows>: Κάθε row απεικονίζει μία γραμμή που θα περιλαμβάνεται στην κάθε εγγραφή στην λίστα των αποτελεσμάτων.

<row>:

datamember: απεικονίζει το field του πεδίου που έχει έρθει από το select και θα εμφανιστεί το αποτέλεσμα σαν λεκτικό.

textsize: το μέγεθος της γραμματοσειράς.

color: το χρώμα της γραμμής.

Παράδειγμα NewCustomersListXML

<AndroidLayout> <sql> <online query="" /> <offline query="SELECT cusid,leename,'ΑΦΜ: '|| tblSLMRequest.leeafm as leeafm, tblSLMRequest.requestid,adrid as adriddest, adrstreet as destadrstreet,adrnumber as destadrnumber, adrcity as destadrcity, IFNULL(adrstreet,) || ' ' || IFNULL(adrnumber,) || ' ' || IFNULL(adrzipcode,) || ' ' || IFNULL(adrdistrict,) AS destaddress,adrzipcode as destadrzipcode,adrdistrict as destadrdistrict, IFNULL(replid,) as replid, case when exists (select visitid from tblVisits where tblVisits.cusid=cusid and date(starttime)=$TODAY$ and tblVisits.requestid=tblSLMRequest.requestid) then 1 else 0 end as visited FROM tblSLMRequest WHERE requesttype = 2 and ifnull(status,0) not in(1,99)" /> </sql> <rows> <row datamember='leename' textsize='20' color='#0a4879' useInSearch='true'/> <row datamember='destaddress' textsize='14' color='#000000' useInSearch='true'/> <row datamember='leeafm' textsize='14' color='#000000' useInSearch='true'/> </rows> </AndroidLayout>

VatRegCheck

Ορίζει αν θα εκτελεστεί έλεγχος του ΑΦΜ και αν ναι με πιο αλγόριθμο

0: Δεν γίνεται έλεγχος

1: Γίνεται έλεγχος με ελληνικό αλγόριθμο (αυτό που κάνουμε τώρα) (Default)

2: Γίνεται έλεγχος με ελληνικό αλγόριθμο, αλλά ο έλεγχος δεν είναι απαγορευτικός

Σημείωση: Το πεδίο του ΑΦΜ στην παράμετρο NewCustomerXML πρέπει να είναι τύπου VATNUMBER ('VATNUMBER' AS fieldType)

NewCUSPattern

Ορίζει τα πεδία του πίνακα SLM και τη σειρά με την οποία θα χρησιμοποιηθούν για την δημιουργία του Κωδικού Νέου Πελάτη.

Π.χ. το $”9”$$slmcode$$newcuslastusedcounter$ δηλώνει ότι ο Κωδικός Νέου Πελάτη, αποτελείται από την συνένωση του χαρακτήρα 9 και των πεδίων slmcode και newcuslastusedcounter, του πίνακα SLM, με αυτή τη σειρά (για τον πωλητή που χρησιμοποιεί το τερματικό).

NewCUS_AFM_Unique

Η παράμετρος αυτή ελέγχει το ΑΦΜ του νέου πελάτη αν υπάρχει ή αν όχι.

Οι τιμές που μπορεί να πάρει είναι 0 ή 1.

0: Δεν γίνεται έλεγχος

1: Ελέγχει αν υπάρχει στη βάση μας την τοπική (πίνακες LEE & tblSLMRequest) το ΑΦΜ που θέλουμε να καταχωρήσουμε για τον νέο πελάτη.

Δυναμικές φόρμες Νέου πελάτη

Υπάρχει η δυνατότητα να εμφανίσουμε διαφορετικές φόρμες ανά τύπο νέου πελάτη, π.χ. για Πελάτες Direct, Πελάτες Indirect, Πελάτες Ανταγωνισμού.

Για αυτή την υλοποίηση, το select από τα online/offline query του NewCustomerXML διαβάζουν δυναμικά από πίνακα ο οποίος έχει σαν πεδία του, τα attributes που περιεγράφηκαν παραπάνω, με αντίστοιχες τιμές σε κάθε πεδίο για να δημιουργηθεί το select.

Έτσι η παράμετρος NewCustomerXML γίνεται

<NewCustomerXML><sql><online query="" /><offline query="SELECT datamember, title, storevalue, category, editable, mandatory, fieldtype, position , SQL,taxisfield FROM tblNEWCUSTOMERXML WHERE CUSID=$CUSID$ ORDER BY SortOrder " /></sql><cusid cusid="(1,2,3,4)" /><taxis username="menelaossss" password="asdfghjkl1" url="https://www1.gsis.gr/webtax2/wsgsis/RgWsPublic/RgWsPublicPort%22 /><gps streetNumberField="adrnumber" streetNameField="adrstreet" stateField="adrdistrict" cityField="adrcity" postalCodeField="adrzipcode" phoneField="adrphone1"/></NewCustomerXML>

Στο tag <cusid> βάζουμε τα ID από τον πίνακα CUS για να ανοίξει Pop Up για να επιλέξουμε τον τύπο πελάτη και να αντικαταστήσει το $CUSID$ στο select της παραμέτρου για να έρθουν τα αντίστοιχα πεδία που θέλουμε ανά τύπο πελάτη.

Φιλτράρισμα τιμών των πεδίων κατά τη δημιουργία νέου πελάτη

Σε περιπτώσεις που έχουμε κάποιο πεδίο στον νέο πελάτη και θέλουμε οι τιμές του να φιλτράρονται βάσει ενός άλλου πεδίου (π.χ. το πεδίο 1 έχει τιμές από το 1 εώς το 10 και το πεδίο 2 έχει τιμές από το 1 εως το 100 και επιθυμούμε οι τιμές του πεδίου 2 να περιορίζονται ανάλογα με το τι έχουμε επιλέξει στο πεδίο 1, το επιτυγχάνουμε με τον παρακάτω τρόπο.

Αρχικά πρέπει το πεδίο το οποίο θέλουμε να φιλτράρουμε να είναι ‘SQL’ As field type.

Παρακάτω παραθέτω δύο unions από το offline query του NewCustomerXML για να γίνει η επεξήγηση του τρόπου:

SELECT 'dayofweek7' AS datamember

,'Κανάλι Διανομής' AS title

, AS storevalue

,'Πληροφορίες' AS category

,'1' AS editable

,'1' AS mandatory

,'SQL' AS fieldtype

,'1' AS position

,'SELECT DistributionChannelCode AS storevalue, DistributionChannelDescr AS displayvalue FROM CustomDistributionChannel' AS SQL

, AS TaxisField

UNION ALL

SELECT 'dayofweek4' AS datamember

,'Τύπος' AS title

, AS storevalue

,'Πληροφορίες' AS category

,'1' AS editable

,'1' AS mandatory

,'SQL' AS fieldtype

,'2' AS position

,'SELECT StoreTypeCode AS storevalue, StoreTypeDesc AS displayvalue FROM CustomStoreTypes where substr(StoreTypeCode,1,2) = $dayofweek7$' AS SQL

, AS TaxisField

Στο παραπάνω παράδειγμα θέλουμε το datamember dayofweek4 να φέρει τιμές σύμφωνα με το datamember dayofweek7.

Επομένως στο query του datamember dayofweek4 χρησιμοποιούμε στο where σαν token τις τιμές που έχει λάβει το datamember dayofweek7 όπως φαίνεται στο παράδειγμα.

TroubleShooting

Η αίτηση καταχωρείται αλλά δεν αποθηκεύεται στη βάση

Πρέπει τα πεδία datamember που έχουν οριστεί στο NewCustomerXML να υπάρχουν στον πίνακα tblSLMRequest για να γίνεται η αντιστοιχία κατά την εισαγωγή.

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

Να γίνει έλεγχος στα πεδία έτσι ώστε να είναι συμπληρωμένο το position με σωστές τιμές ανά πεδίο Category

cusid position datamember title category
1 1 leeafm AΦΜ Πελάτη* Φορολογικά Στοιχεία Πελάτη
1 2 leename Επωνυμία Πελάτη* Φορολογικά Στοιχεία Πελάτη
1 3 txoname Δ.Ο.Υ.* Φορολογικά Στοιχεία Πελάτη
1 4 adrcity Πόλη* Φορολογικά Στοιχεία Πελάτη
1 5 adrdistrict Περιοχή* Φορολογικά Στοιχεία Πελάτη
1 6 adrstreet Διεύθυνση (+ αριθμός)* Φορολογικά Στοιχεία Πελάτη
1 7 adrnumber Αριθμός Φορολογικά Στοιχεία Πελάτη
1 1 adrphone1 Τηλέφωνο* Στοιχεία Επικοινωνίας
1 2 adrphone2 Κινητό Στοιχεία Επικοινωνίας
1 3 adremail Email Στοιχεία Επικοινωνίας
1 4 Contact Υπεύθυνος Επικοινωνίας Στοιχεία Επικοινωνίας
1 1 prfid Κατηγορία Καταστήματος* Τύπος Καταστήματος\ Αποκλειστικότητα
1 2 CompanyID Εταιρεία Συνεργασίας* Τύπος Καταστήματος\ Αποκλειστικότητα
1 3 PreviousCompanyID Νέος από: * Τύπος Καταστήματος\ Αποκλειστικότητα
1 4 RouteID Δρομολόγιο* Τύπος Καταστήματος\ Αποκλειστικότητα
1 5 dayofweek Οδηγός Τύπος Καταστήματος\ Αποκλειστικότητα
1 6 CustomerType Τύπος Καταστήματος Τύπος Καταστήματος\ Αποκλειστικότητα
1 1 adrzipcode T.K. Επιπλέον
1 2 comments Σχόλια Επιπλέον

Εικόνα 6: Σωστή υλοποίηση

cusid position datamember title category
1 1 leeafm AΦΜ Πελάτη* Φορολογικά Στοιχεία Πελάτη
1 2 leename Επωνυμία Πελάτη* Φορολογικά Στοιχεία Πελάτη
1 3 txoname Δ.Ο.Υ.* Φορολογικά Στοιχεία Πελάτη
1 3 adrcity Πόλη* Φορολογικά Στοιχεία Πελάτη
1 5 adrdistrict Περιοχή* Φορολογικά Στοιχεία Πελάτη
1 6 adrstreet Διεύθυνση (+ αριθμός)* Φορολογικά Στοιχεία Πελάτη
1 10 adrnumber Αριθμός Φορολογικά Στοιχεία Πελάτη
1 1 adrphone1 Τηλέφωνο* Στοιχεία Επικοινωνίας
1 2 adrphone2 Κινητό Στοιχεία Επικοινωνίας
1 3 adremail Email Στοιχεία Επικοινωνίας
1 4 Contact Υπεύθυνος Επικοινωνίας Στοιχεία Επικοινωνίας
1 1 prfid Κατηγορία Καταστήματος* Τύπος Καταστήματος\ Αποκλειστικότητα
1 2 CompanyID Εταιρεία Συνεργασίας* Τύπος Καταστήματος\ Αποκλειστικότητα
1 3 PreviousCompanyID Νέος από: * Τύπος Καταστήματος\ Αποκλειστικότητα
1 4 RouteID Δρομολόγιο* Τύπος Καταστήματος\ Αποκλειστικότητα
1 5 dayofweek Οδηγός Τύπος Καταστήματος\ Αποκλειστικότητα
1 6 CustomerType Τύπος Καταστήματος Τύπος Καταστήματος\ Αποκλειστικότητα
1 1 adrzipcode T.K. Επιπλέον
1 2 comments Σχόλια Επιπλέον

Εικόνα 7: Λάθος υλοποίηση


PDF Version