Table of Contents

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>