AQL server

AQL server je jedan od modula App-a i koristi se za komunikaciju eksternih programa sa App-om (web serveri, WebAql, …). Komunikacija se obavlja preko upita koji se zadaju u obliku ASCII fajla, a rezultat je takođe ASCII file. Ako se upit zada kao file REQUEST.AQL, rezultat je RESULT.AQL. Ako se upiti zadaju kao REQ001.AQL, REQ002.AQL, … rezultati se redom upisuju u RES001.AQL, RES002.AQL, … Zahtevi se mogu upisivati bez obzira što prethodni nije izvršen.

Kada se zada upit (na primer, REQUEST.AQL) Aql izvršava upit i rezultat upisuje u RESULT.AQL. Kada se izvršenje završi, briše se REQUEST.AQL. Zato program koji zadaje upit treba da čeka na brisanje fajla sa upitom, jer to označava kraj obrade.

Eksterni program zadaje upit kreiranjem odgovarajućeg REQxxx.AQL fajla i čeka dok se ovaj file ne izbriše, što označava kraj obrade. Rezultat je u RESxxx.AQL. Kolone u okviru rezultata su razdvojene sa Chr(9) (Tab). Zbog preglednosti separator neće biti prikazivan. Na primer, umesto <id><tab><sifra> pisaće samo <id> <sifra>.

U osnovnoj varijanti podržani su sledeći upiti:

Artikli

Pregled artikala po željenim kolonama. Ovaj upit može prikazati željene kolone, ali se nešto sporije izvršava nego upit LAGER.

WITH Artikli
LIST Id, Naziv, Sifra, Kol, Jm, Cena, Vrsta
END

Pregled svih artikala koji imaju kolicinu > 0:

WITH Artikli
FOR Kol > 0
LIST Id, Naziv, Sifra, Kol, Jm, Cena, Vrsta
END

Za upisivanje novih artikala koristi se sledeći zahtev:

WITH Artikli
SetName Cokolada NENA
SetName2 Cokolada u komerc.pakovanju
SetSif A-002
SetVrs 5001
SetTA R
SetJM kom
SetNap Ovo je napomena
SetBK 9987123456789
SetPak 10
SetPakJM kut
SetPor P18
AddArt
END

Ovako se definišu elementi artikla i metod AddArt upisuje novi artikal u evidenciju. Vraća se ID broj novog artikla. NAPOMENA: za vrstu se upisuje ID broj.

Listanje svih atributa artikala:

WITH Artikli
AttrList
END

Dobija se sledeća tabela:

<id_attr> <naziv_attr> <id_vrste>

Upis atributa se obavlja sledecim pozivom:

WITH Artikli
AddAttr <art_id>, <attr_id>, <vrednost>
...
END
na primer:
WITH Artikli
AddAttr 1200, 34, Maticna ploca
AddAttr 1200, 35, Intel
END

Takođe se može dobiti tabela svih atributa:

WITH Artikli
ATTRALL
END

Brzi pregled lagera ima osnovni oblik:

WITH Lager
List [nMag], [nPar], [nVar]
END

nMag - ID magacin nPar - ID partnera nVar - Varijanta upita

Primeri:

LIST 5, 123, 0
<sifra>, <naziv>, <kol>, <rez>, <refn>, <refp>, <x-cena>

LIST 5, 123, 1
<sifra>, <naziv>, <kol>, <rez>, <ref>, <refn>, <refp>, <x-cena>

LIST 5, , 2
<memo>, <sifra>, <vrsta>, <kol>

LIST 5, 123, 3
LIST 5, 123
LIST
<id>, <sifra>, <naziv>, <jm>, <kol>, <rez>, <cena>, <por>, <pop>, <vrsta>, <bar-kod>, <proizvodjac>, <boja-kol>, <namena>, <pakovanje>, <pak_jm>
<id>	- N10
<sifra>	- C15
<naziv>	- C30
<jm>	- C3
<kol>	- N12,3
<rez>	- N12,3
<cena>	- N18,3
<por>	- C5
<pop>	- N6,2
<vrsta>	- C10
<bar_kod>	- C20
<proizvođač>	- C25
<boja>	- C5
<namena>	- C35
<pakovanje> - N12,3
<pak_jm> - C3

LIST 5, , 4
<id>, <kol>, <rez>, <cena>, <boja-kol>, <rab>

LIST ,,5,<rec>
<id>, <sifra>, <naziv>, <jm>, <por>, <vrsta>, <bar-kod>, <proizvodjac>, <namena>

LIST ,,6,<rec>
<id>, <alt>

Listanje pojedinih artikala sa zadatim ID-om se izvodi sledecom varijantom upita:

WITH Lager
DEFART 5012
DEFART 1023
LIST 5, 123, 3
END

LIST ,,7,<rec>
##<id1>
<Napomena 1>
<Napomena 2>
...
<Napomena n>
##<id2>
<Napomena 1>
...

Vrste artikala

Pregled vrsta artikala:

WITH Vrste
LIST ID, Sifra, Naziv
END

Partneri

Šifarnik kupaca i dobavljača

WITH Partneri
LIST KD
END
rezultat:
<id> <sifra> <naziv> <adr1> <adr2> <tel1> <tel2> <status> <pib> <rabat> <id_komercijaliste> <kontakt> <mobilni> <mail> <radno_vreme> <mb> <limit> <račun>
<id>	- N10
<sifra>	- C15
<naziv>	- C35
<adr1>	- C35
<adr2>	- C35
<tel1>	- C35
<tel2>	- C35
<status>	- C10
<pib>	- C13
<rabat>	- N6,2
<id_komercijaliste> - N10
<kontakt>	- C35
<mobilni>	- C35
<mail>	- C35
<radno_vreme>	- c15
<mb> - C10
<limit> - N7
<račun> - C18

- Pregled podataka za kupca 00234:

WITH Kupci
Seek 00234
LIST Sifra, Naziv, Adresa1, Adresa2, Tel, Status, Pib, Rab
END

- Pregled kartice kupca, najvise 999 stavki:

WITH Kartica
SetPar 1234
SetLim 9999
List Datum, Valuta, Doc, Dug, Pot
Saldo
Dospelo
END

- Logovanje kupca. Unet user i pass mora da odgovara podacima na partneru.

WITH Partner
Login PERA, PP
END

Pregled objekata partnera na osnovu ID-a partnera:

WITH Partneri
QObjList 257
END
rezultat:
<id> <sifra> <naziv> <adr1> <adr2> <tel1> <tel2> <id_komercijaliste> <kontakt> <mobilni> <mail>
<id>	- N10
<sifra>	- C15
<naziv>	- C35
<adr1>	- C35
<adr2>	- C35
<tel1>	- C35
<tel2>	- C35
<id_komercijaliste> - N10
<kontakt>	- C35
<mobilni>	- C35
<mail>	- C35

Metoda QList podržava učitavanje tabele iz delova: ukoliko ima više od 5000 stavki, ispisuje se poruka CONTINUE <naredni_rec> <ukupno_rec>. Kasnije se zadavanjem

QLIST <status>, <naredni_rec>

dobija nastavak tabele.

Dodavanje novog kupca:

WITH Partneri
SetName XY KOMERC
SetSif KOMXY
SetAdr1 Bajeva BB
SetAdr2 Beograd
SetTel 123-456
SetKom 134
SetPib 123456789
SetKon Mika
SetFax 77766553
SetMob 063/2356789
SetMail mika@laza.com
SetRV 8-15
SetKD K
SetKla A1
SetKontakt Mika
AddPar
END

Kreiranje dokumenata

- Kreira se racun sa artiklima 001, 002 i 623. Moze se zadati samo kolicina, kolicina i cena, rabat. Mogu se upisivati i usluge. NUMBER opciono forsira broj fakture, KOMERC forsira komercijalistu, VALUTA zadaje datum valute.

WITH Invoice
AddArt 001, 1
AddArt 002, 2, 100
AddArt 623, 1, 100, 5
AddUsl "Usluga 001", 5, 10, [5]
Number 1200
Komerc 456
Valuta 22.12.05
LimKol YES -- da li se limitira kolicina
SetKD K -- forsira status kupca
Memo Ovo je napomena
Memo u dva reda.
Print 2 -- print u 2 kopije
AddInv f-, K-001, O-3, PDV, VP
END

- Predracun:

WITH ProInvoice
AddArt 001, 1
AddArt 002, 2, 100
AddArt 623, 1, 100, 5
Number 1200
Komerc 456
Valuta 22.12.05
DPR 27.12.05
SetKD K -- forsira status kupca
Datum 22.12.05
Memo Ovo je napomena!
Print 1 -- stampa
AddPro pf-, K-001, O-3, PDV18, VP
END

Kreiranje internog prenosa:

WITH IntDoc
AddArt <art>, <kol>, <nab_cen>, <pro_cen>
Datum <datum>
Memo <napomena>
Print <broj_kopija>
AddDoc <reg>, <mag1>, <mag2>
END

Razno

- Logovanje korisnika:

WITH User
LogUser PERA,12345
END

- Sinhronizacija sa PocketPC

WITH PocketPC
Receive
Send
END

- Ucitavanje tekuce kursne liste.

WITH Valute
GetVal
GetVal EUR
END

- Pregled svih komercijalista:

WITH Komerc
LIST Id, Ime, Sifra, Jmbg
END

- Pregled svih nacina placanja:

WITH NacinPlacanja
LIST Id, Naziv
END

Kreiranje racuna za KU kasu:

WITH KuRacun
Art 001,2,100
Art 003,1,120
Art 004,1,45
Placanje 2, 1000
Placanje 3, 500
AddKu 2,101
END

- Sistemske informacije: Quit gasi Aql server, Version vraća verziju Aql-a, a Parameters vraća sve parametre iz App-a.

WITH System
Quit
Version
Parameters
END

Magacinski nalozi

Nalozi za prijem

WITH MagCmd
LIST DOS, <reg>
END

rezultat - dobija se lista svih naloga u registratoru <reg>:

D<id> <idu> <lock> <datum> <dobavljac> <br_stavki> <napomena> id - id naloga za prijem N10 idu - user id naloga C10 lock - da li je nalog lokovan C1 datum - D dobavljac - C35 br_stavki - N5 napomena - C35

WITH MagCmd
LIST_ART D<id>
END

rezultat - lista stavki na izabranom dokumentu <id>: <art_id> <art_sifra> <art_naziv> <bar_kod> <kolicina> <cena>

WITH MagCmd
LIST_MAG [ALL]
END

rezultat - lista magacina sa ID, šifrom i nazivom. Uzimaju se samo magacini koji su selektovani za prikaz u AQL, a ako se stavi opcija ALL, listaju se svi magacini.

<mag_id> <mag_sifra> <mag_naziv>

WITH MagCmd
LOCK D<id>
END

rezultat - lokuje se dokument <id>. Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela.

WITH MagCmd
UNLOCK D<id>
END

rezultat - unlokuje se dokument <id>. Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela.

WITH MagCmd
AddART <art1_id>, <kol1>
AddART <art2_id>, <kol2>
AddART <art3_id>, <kol3>
...
DONE D<id>
END

rezultat - potvrđuje se realizacija dokumenta <id>. Ukoliko su zadate AddART stavke, menja se originalni dokument u skladu sa ovim stavkama.

Nalozi za izdavanje (fakture)

WITH MagCmd
LIST FAK, <reg>
END

rezultat - dobija se lista svih naloga u registratoru <reg>: F<id> <idu> <lock> <datum> <kupac> <br_stavki> <napomena> <id-komercijaliste> id - id naloga za prijem idu - user id naloga lock - da li je nalog lokovan datum - kupac - br_stavki - napomena - id-komercijaliste -

WITH MagCmd
LIST_ART F<id>
END

rezultat - lista stavki na izabranom dokumentu <id>: <art_id> <art_sifra> <art_naziv> <bar_kod> <kolicina> <cena>

WITH MagCmd
LOCK F<id>
END

rezultat - lokuje se dokument <id>. Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela.

WITH MagCmd
UNLOCK F<id>
END

rezultat - unlokuje se dokument <id>. Vraća se tekst True ili False u zavisnosti od toga da li je operacija uspela.

WITH MagCmd
AddART <art1_id>, <kol1>
AddART <art2_id>, <kol2>
AddART <art3_id>, <kol3>
...
DONE F<id>
END

rezultat - potvrđuje se realizacija dokumenta <id>. Ukoliko su zadate AddART stavke, menja se originalni dokument u skladu sa ovim stavkama.

Primeri: Bar-kod terminal komunicira sa Aql-om prilikom izdavanja robe. Prvo se traži spisak naloga koje treba isporučiti:

WITH MagCmd
LIST FAK, if-
END

dobija se lista: F105 265 22.05.10 XY Trade 3 Hitna isporuka F106 266 L 26.05.10 Pera komerc 10 F107 268 29.05.10 BB trade 5

Zaključava se nalog id=105, pa ostali korisnici ne mogu da mu pristupe.

WITH MagCmd
LOCK F105
END

Traže se stavke ovog naloga:

WITH MagCmd
LIST_ART F105
END

Dobija se:

1205 00045 Cokolada MILKA 9012345678910 5 120.00
2056 02035 Keks XY 6782999908910 1 230.00
1102 01125 Mleko 5567775678910 2 66.00

Posle pakovanja šalje se poruka da je nalog spakovan:

WITH MagCmd
DONE F105
END

Ako je bilo izmena u količinama:

WITH MagCmd
ART 1205, 6
ART 2056, 2
ART 1102, 2
DONE F105
END

Nalog se na kraju otključava:

WITH MagCmd
UNLOCK F105
END

Podrška za OS

Lista svih OS:

WITH MagCmd
TAB_OS
END

rezultat - dobija se lista svih OS: <id> <šifra> <inv.broj> <naziv> <bar-kod> <mesto>

Lista svih mesta na kojima su OS:

WITH MagCmd
TAB_MOS
END

rezultat - dobija se lista svih mesta OS: <id> <šifra> <naziv> <bar-kod>

Upis bar-koda određenog OS:

WITH MagCmd
SET_OS <id>, <bar-kod>
END

Upis popisanih količina OS:

WITH MagCmd
POP_OS <id>, <kol>, <mesto>
POP_OS <id>, <kol>, <mesto>
POP_OS <id>, <kol>, <mesto>
...
DONE_OS
END

Svaki red sadrži ID OS, popisanu količinu i opciono mesto na kome je zatečeno OS. Rezultat komande je kreiranje popisa u App-u, odakle se može učitati u popis OS.

Stavke dokumenata - artikli

Preko ovih komandi se mogu definisati stavke dokumenata i preneti u bilo koji dokument. Stavke se upisuju u clipboard odakle se mogu učitavati. Standardna primena je kod skeniranja artikala za popis i sl.

Tabela svih artikala:

WITH MagCmd
TAB_ART
END

Rezultat je lista svih artikala:

<Id> <sifra> <naziv> <bar-kod> <jm> <kol> <lokacija>

Na primer:

123 0034 Cokolada 1234567890345 kom 1 B-03

Svaki artikal ima šifru i bar-kod. Količina u normalnim uslovima je 1. Ako postoje alternativne šifre, one se ispisuju ispod glavnog artikla, sa istim ID-om, nazivom, jedino što je šifra uvek ”-” i za količinu se uzima količina u pakovanju:

123 - Cokolada 333444553432423423 pak 20 A-02

Upis stavki u clipboard:

WITH MagCmd
POP_ART <id>, <kol>
POP_ART <id>, <kol>
...
DONE_ART

Ovakva komanda upisuje skenirane artikle u sistemski clipboard.

Transport

Lista svih vozila:

WITH Vozila
QLIST
END

Rezultat:

<id> <naziv> <reg.br> <šasija> <br.motora>

Lista vozača:

WITH Vozaci
QLIST
END

Rezultat:

<id> <ime.prezime> <adresa> <LK>

Narudžbenice

Kreiranje nove narudžbenice:

WITH Order
AddArt <art_id>, <kol>
AddArt <art_id>, <kol>
...
AddOrd <dob_id>
END

Zadaju se redom artikli i količine, a na kraju se kreira narudžbenica prema dobavljaču <dob_id>.

Cenovnik

Listanje cenovnika (za id se koristi NAZIV cenovnika iz programa) :

WITH Cenovnik
LIST <cen_id>
END

Rezultat:

<id> <šifra> <naziv> <cena>