Ballou R.H. Basic business logistics: Transportation, materials management, physical distribution. - New York: Prentice Hall, 1987.
Bichler K., Loersch W. Optimale Bestandsplanung im Handel. - Stuttgart: Kohlhammer, 1985.
Garbe E. u.a. Materiell-technische Versorgung des Betriebes. Berlin: Wirtschaftsverlag, 1977.
Heinritz S.F. a.o. Purchasing: Principles and applications. - Englewood Clifs: Prentice Hall, 1986.
Kompiuterininkų dienos '95. Renginio medžiaga. - Vilnius: Žara, 1995.
Lietuvos Statistikos departamento darbai. 1996 Nr. 2. - Vilnius: Metodinis leidybinis centras, 1996.
Lietuvos Statistikos departamento darbai. 1997 Nr. 1. - Vilnius: Metodinis leidybinis centras, 1997.
Mackevičius V., Vengrauskas V. Komercijos pagrindai. - Vilnius: Leidybos centras, 1992.
Olle W. T. The CODASYL approach to data base management. - Chichester: John Wiley & Sons, 1978.
Pupkis A. ir kt. Kalbos praktikos patarimai. - Vilnius: Mokslas, 1976.
Schulte Ch. Logistik: Wege zur Optimierung des Material- und Informationsflusses. Muenchen: Vahlen, 1991.
Simanauskas L. Kompiuterizuotos informacinės sistemos. - Vilnius: VU leidykla, 1994.
Simanauskas L., Tamošiūnas V. Automatizuotų informacijos apdorojimo sistemų pagrindai. - Vilnius: VU, 1988.
Simanauskas L., Tamošiūnas V. Ekonominės informacijos mašininis apdorojimas. - Vilnius: Mintis, 1978.
Pašto kompiuterizuota informacinė sistema skirta laisvos formos informacijos (t.y. laiškų) tarp Mokomosios firmos padalinių ir išorinių subjektų perdavimui. Ši sistema vykdo tik 2 funkcijas: laiškų išsiuntimo ir laiškų gavimo, kadangi būtent šie veiksmai svarbūs Mokomajai firmai.
Norėdamas išsiųsti arba gauti laišką, vartotojas turi iškviesti pašto informacinės sistemos KDV (atidaryti Access bazę Pastas.mdb) ir nurodyti savo kodą. Kadangi su Mokomaja firma dirbs daug vartotojų, įvesti slaptažodžius būtų netikslinga, kadangi tas pats vartotojas gali norėti dirbti ir kaip sandėlininkas, ir kaip buhalteris ir t.t., tuo tarpu su viena Mokomosios firmos posisteme vienu metu irgi gali dirbti daug vartotojų. Todėl pašto KDV realizuota taip, kad bet kuris vartotojas gali laisvai pasirinkti subjektą, kurio vardu nori siųsti ir gauti laiškus: pašto sistema į ekraną išveda visų užregistruotų adresatų sąrašą, kuriame reikia pasirinkti, kieno vardu norima dirbti. Tada galima vykdyti du veiksmus: siųsti laiškus ir gauti laiškus.
1 pav. Laiškų siuntimo forma (dalis)
Laiškai siunčiami specialioje formoje (jos dalis parodyta 1 pav.), kurioje surašyti visi anksčiau išsiųsti laiškai. Ekrane rodomi laiškų gavėjų pavadinimai, antraštės (angl. subject), išsiuntimo datos ir gavimo datos (jei laiškas jau gautas). Taip pat, pasirinkus konkretų laišką, formos apatinėje dalyje parodomas laiško turinys (tekstas). Kol laiškas dar negautas, galima pakeisti laiško adresatą, antraštę ir patį laiško tekstą. Jei laiškas jau gautas, jį galima nebent ištrinti. Laišką pašalinti taip pat gali ir laiško gavėjas. Nesvarbu, ar laišką pašalina siuntėjas, ar gavėjas, nei vienas iš jų po to šio laiško nebemato (faktiškai įrašas išmetamas iš duomenų bazės). Norint išsiųsti naują laišką, reikia laiškų sąrašo pabaigoje esančioje tuščioje eilutėje pasirinkti adresatą ir nurodyti laiško antraštę. Pats laiško tekstas nėra būtinas (kartais užtenka nusiųsti vieną žodį ir laiško gavėjas jau žino, ką siuntėjas norėjo pranešti, pvz. grįžęs iš atostogų sandėlininkas gali visiems išsiųsti vieną žodį "GRĮŽAU!" ir visi žinos, kad jau galima eiti į sandėlį pasiimti prekių). Tačiau, esant poreikiui, galima parašyti neriboto ilgio laišką (bazėje laiško tekstas saugomas Memo tipo lauke). Laiško išsiuntimo data uždedama automatiškai ir jos pakeisti vartotojui neleidžiama.
Peržiūrėti gautus laiškus galima formoje, panašioje į laiškų siuntimo formą: ekrane parodomas laiškų sąrašas, o apatinėje formos dalyje rodomas pasirinkto laiško tekstas. Vienintelis skirtumas tas, kad prie laiško rodomas ne jo gavėjas, o siuntėjas, kadangi šioje formoje rodomi tik pasirinktajam vartotojui adresuoti laiškai. Taigi ekrane matomas laiško siuntėjas, laiško išsiuntimo data bei laiško gavimo data. Laiško gavimo data į bazę įrašoma automatiškai, kai vartotojas pereina prie laiško. Adresatui neleidžiama keisti jokių laiško duomenų. Laiško gavėjui laiškus leidžiama tik peržiūrėti bei ištrinti.
Aptartoji laiškų perdavimo sistema jokiais kompiuteriniais ryšiais nesusieta su pačios Mokomosios firmos informacine sistema, todėl programos laikymo fizinė vieta nėra griežtai nustatyta. Tačiau gali būti, kad ateityje vartotojai pageidaus pašto paslaugas tiesiogiai integruoti į Mokomąją firmą. Tada visų firmos posistemių informacines sistemas reikės susieti ir su pašto duomenų baze. Tai padaryti neturėtų būti sudėtinga, kadangi pašto duomenų bazę sudaro tik dvi duomenų lentelės: adresatai ir laiškai. Adresatų lentelėje saugomi adresatų pavadinimai, o laiškų lentelėje surašyti laiškų rekvizitai: siuntėjas, gavėjas, parengimo data, išsiuntimo data, antraštė ir tekstas. Integruojant pašto sistemą į firmos padalinio informacinę sistemą reikia žinoti tiktai to padalinio kodą adresatų lentelėje. Pagal šį kodą galima atrinkti iš šio firmos padalinio išsiųstus, bei jam adresuotus laiškus.
Taip pat ir pati pašto informacinė sistema dar gali būti tobulinama. Kaip ir kitose elektroninio pašto programose, galima būtų realizuoti atsakymų į laiškus, laiškų citavimo, peradresavimo ir kitas funkcijas. Kadangi šioje sistemoje laiškai adresatą pasiekia tuoj pat po jų išsiuntimo, techniškai įmanoma sistemą patobulinti iki tiesioginio ryšio (angl. online) modelio, kai siuntėjas ir gavėjas gali vienu metu bendrauti (tai realizuota "Internet" priemonėje IRC (Internet Relay Chat)). Taigi pateiktoji pašto sistema yra tik įvadas į elektroninių ryšių sistemą.
4 PRIEDAS: UŽKLAUSOS (SQL)
Šiame priede pateikiami tiekimų padalinio informacinėje sistemoje realizuotų užklausų tekstai standartizuota SQL kalba.
ATVEŽIMAI:
SELECT DISTINCTROW [Prekiu judejimas].[Uzsakymo kodas], prekes.[prekės pavadinimas], [Prekiu judejimas].[Prekės kodas], [Prekiu judejimas].Data, [Prekiu judejimas].Kiekis FROM [Prekiu judejimas] INNER JOIN prekes ON [Prekiu judejimas].[Prekės kodas] = prekes.[prekės kodas] WHERE ((([Prekiu judejimas].[Operacijos kodas])=101));
ATVEŽTI KIEKIAI:
SELECT DISTINCTROW [Prekiu judejimas].[Uzsakymo kodas], Sum([Prekiu judejimas].Kiekis) AS kiekis FROM [Prekiu judejimas] GROUP BY [Prekiu judejimas].[Uzsakymo kodas], [Prekiu judejimas].[Operacijos kodas] HAVING ((([Prekiu judejimas].[Operacijos kodas])=101));
DARBUOTOJAI:
SELECT DISTINCTROW [asmens kortele].[tabelinis nr], [asmens kortele].[vardas pavarde], Padalinys.[Padalinio kodas], Padalinys.Padalinys, Pareigos.[Pareigu kodas], Pareigos.Pareigos FROM Pareigos INNER JOIN (Padalinys INNER JOIN ([asmens kortele] INNER JOIN priemimas ON [asmens kortele].[tabelinis nr] = priemimas.[tabelinis nr]) ON Padalinys.[Padalinio kodas] = priemimas.padalinys) ON Pareigos.[Pareigu kodas] = priemimas.pareigos WHERE (((priemimas.[atleidimo data]) Is Null));
MOKĖJIMAI:
SELECT DISTINCTROW [atsiskaitymu zurnalas].* FROM [atsiskaitymu zurnalas] WHERE ((([atsiskaitymu zurnalas].dokumentas)="201" Or ([atsiskaitymu zurnalas].dokumentas)="208"));
MOKĖJIMŲ SUMOS:
SELECT DISTINCTROW mokejimai.[pagal numeri] AS [uzsakymo kodas], Sum(mokejimai.kreditas) AS [suma su pvm] FROM mokejimai GROUP BY mokejimai.[pagal numeri];
OPERACIJA 301:
INSERT INTO Operacijos ( OperKodas, Data, Suma ) SELECT DISTINCTROW 301 AS Expr1, uzsakymai.[PVM sąskaitos gavimo data], Sum(([prekės kiekis]*[vieneto kaina])) AS Expr2 FROM uzsakymai INNER JOIN [uzsakymo irasai] ON uzsakymai.[užsakymo kodas] = [uzsakymo irasai].[užsakymo kodas] GROUP BY 301, uzsakymai.[PVM sąskaitos gavimo data], uzsakymai.[užsakymo kodas] HAVING (((uzsakymai.[užsakymo kodas])=[forms]![uzsakymas].[užsakymo kodas]));
OPERACIJA 302:
INSERT INTO Operacijos ( OperKodas, Data, Suma ) SELECT DISTINCTROW 302 AS Expr1, uzsakymai.[PVM sąskaitos gavimo data], Sum(([prekės kiekis]*[vieneto kaina]))*0.18 AS Expr2 FROM uzsakymai INNER JOIN [uzsakymo irasai] ON uzsakymai.[užsakymo kodas] = [uzsakymo irasai].[užsakymo kodas] GROUP BY 302, uzsakymai.[PVM sąskaitos gavimo data], uzsakymai.[užsakymo kodas] HAVING (((uzsakymai.[užsakymo kodas])=[forms]![uzsakymas].[užsakymo kodas]));
PARDAVIMAI:
SELECT DISTINCTROW prekes.[prekės pavadinimas] AS pavadinimas, Sum([uzsitems].[kiekis]*([vntkaina]-[savikaina])) AS pelnas, Sum(UzsItems.Kiekis) AS parduota, Val(nz([likuciai].[Kiekis],0)) AS likutis, [parduota]/([likutis]+[parduota]) AS pard_proc FROM (prekes INNER JOIN UzsItems ON prekes.[prekės kodas] = UzsItems.PrekesKodas) LEFT JOIN likuciai ON prekes.[prekės kodas] = likuciai.[Prekės kodas] GROUP BY prekes.[prekės pavadinimas], Val(nz([likuciai].[Kiekis],0)) HAVING (((Sum(UzsItems.Kiekis))>0)) ORDER BY Sum([uzsitems].[kiekis]*([vntkaina]-[savikaina])) DESC;
PARDAVIMAI NEGRUPUOTI:
PARAMETERS [Nuo kokios datos?] DateTime; SELECT DISTINCTROW UzsTurinys.Data, prekes.[prekės pavadinimas] AS pavadinimas, Sum([kiekis]*([vntkaina]-[savikaina])) AS pelnas FROM UzsTurinys INNER JOIN (prekes INNER JOIN UzsItems ON prekes.[prekės kodas] = UzsItems.PrekesKodas) ON UzsTurinys.UzsKodas = UzsItems.UzsKodas WHERE (((UzsTurinys.Data)>nz([Nuo kokios datos?],Year(Date()) & ".1.1"))) GROUP BY UzsTurinys.Data, prekes.[prekės pavadinimas] HAVING (((prekes.[prekės pavadinimas]) In (select top 3 pavadinimas from pardavimai order by pelnas desc)));
PERDAVIMAS APMOKĖJIMUI:
INSERT INTO [saskaitos apmokejimui] ( [operacijos kodas], Data, suma, delspinigiai, [sąskaitos kodas] ) SELECT DISTINCTROW "201" AS Expr1, uzsakymai.[apmokejimo data], Sum(([prekės kiekis]*[vieneto kaina]))*1.18 AS Expr2, nz([delspinigiai],0) AS Expr3, uzsakymai.[užsakymo kodas] FROM uzsakymai INNER JOIN [uzsakymo irasai] ON uzsakymai.[užsakymo kodas] = [uzsakymo irasai].[užsakymo kodas] GROUP BY "201", uzsakymai.[apmokejimo data], nz([delspinigiai],0), uzsakymai.[užsakymo kodas] HAVING (((uzsakymai.[užsakymo kodas])=[forms]![uzsakymas].[užsakymo kodas]));
PREKIŲ SĄRAŠAS:
SELECT DISTINCTROW prekes.*, Klas.c AS nomenklatūra, firmos.[firmos pavadinimas], firmos.[kontaktinis asmuo], firmos.tel, firmos.adresas, [vietoviu kodai].[vietovės pavadinimas], likuciai.Kiekis AS likutis FROM ([vietoviu kodai] RIGHT JOIN firmos ON [vietoviu kodai].[vietovės kodas] = firmos.[vietovės kodas]) INNER JOIN ((Klas RIGHT JOIN prekes ON Klas.b = prekes.[nomenklatūros kodas]) LEFT JOIN likuciai ON prekes.[prekės kodas] = likuciai.[Prekės kodas]) ON firmos.[firmos kodas] = prekes.[tiekėjo kodas];
TRINTI UŽSAKYMO 1 ĮRAŠĄ:
DELETE DISTINCTROW [uzsakymo irasai].*, [uzsakymo irasai].[įrašo kodas] FROM [uzsakymo irasai] WHERE ((([uzsakymo irasai].[įrašo kodas])=[forms]![uzsakymo prekes].[įrašo kodas]));
TRINTI UŽSAKYMO ĮRAŠUS:
DELETE DISTINCTROW [uzsakymo irasai].*, [uzsakymo irasai].[užsakymo kodas] FROM [uzsakymo irasai] WHERE ((([uzsakymo irasai].[užsakymo kodas])=[forms]![uzsakymas].[užsakymo kodas]));
UŽSAKYMAI SĄRAŠO SPAUSDINIMUI:
SELECT DISTINCTROW firmos.*, uzsakymai.* FROM firmos INNER JOIN uzsakymai ON firmos.[firmos kodas] = uzsakymai.[tiekėjo kodas];
UŽSAKYMO REKVIZITAI:
SELECT DISTINCTROW firmos.[firmos kodas], firmos.[įmonės rejestro kodas], firmos.[PVM mokėtojo kodas], firmos.[firmos pavadinimas], firmos.adresas, firmos.tel, firmos.fax, firmos.[kontaktinis asmuo], firmos.pareigos, uzsakymai.[užsakymo kodas], uzsakymai.pastabos, uzsakymai.[atspausdinimo data], [asmens kortele].[vardas pavarde], Pareigos.Pareigos AS [musu pareigos], [vietoviu kodai].[vietovės pavadinimas] FROM ([vietoviu kodai] INNER JOIN firmos ON [vietoviu kodai].[vietovės kodas] = firmos.[vietovės kodas]) INNER JOIN (Pareigos INNER JOIN ([asmens kortele] INNER JOIN uzsakymai ON [asmens kortele].[tabelinis nr] = uzsakymai.[darbuotojo tab nr]) ON Pareigos.[Pareigu kodas] = uzsakymai.[pareigu kodas]) ON firmos.[firmos kodas] = uzsakymai.[tiekėjo kodas];
UŽSAKYMO TURINYS:
SELECT DISTINCTROW [uzsakymo irasai].[užsakymo kodas], prekes.[prekės pavadinimas], prekes.[tiekėjo prekės kodas], prekes.[prekės kodas], [uzsakymo irasai].[prekės kiekis], Klas.e AS [matavimo vienetas], [uzsakymo irasai].[vieneto kaina], [vieneto kaina]*[prekės kiekis] AS viso FROM (Klas RIGHT JOIN prekes ON Klas.b = prekes.[nomenklatūros kodas]) INNER JOIN [uzsakymo irasai] ON prekes.[prekės kodas] = [uzsakymo irasai].[prekės kodas];
UŽSAKYMŲ SUMOS:
SELECT DISTINCTROW [uzsakymo irasai].[užsakymo kodas], Sum([vieneto kaina]*[prekės kiekis]) AS suma, [suma]*1.18 AS [suma su pvm], Sum([uzsakymo irasai].[prekės kiekis]) AS kiekis FROM [uzsakymo irasai] GROUP BY [uzsakymo irasai].[užsakymo kodas];
1 Arnolds H. Materialwirtschaft und Einkauf: praktische Einfuerung. - Wiesbaden: Gabler, 1990. P.57
2 Mackevičius V., Vengrauskas V. Komercijos pagrindai. - Vilnius: Leidybos centras, 1992. P.23
3 Arnolds H. Materialwirtschaft und Einkauf: praktische Einfuerung. - Wiesbaden: Gabler, 1990. P.57
4 Arnolds H. Materialwirtschaft und Einkauf: praktische Einfuerung. - Wiesbaden: Gabler, 1990. P.295
5 Aprašant informacinę sistemą objektams identifikuoti naudojami ne sutrumpinti kodai, o pilni ir išsamūs pavadinimai. Tokiu pačiu principu duomenų bazių sistemoje vadinami ir duomenų laukai
6 Kaip gavėjas nurodytas tiekimų padalinys kartu gali reikšti ir administraciją (firmos vadovybę), kuri bendrame mokomosios informacinės sistemos projekte neišskiriama
7 Aprašant informacinę sistemą objektams identifikuoti naudojami ne sutrumpinti kodai, o pilni ir išsamūs pavadinimai. Tokiu pačiu principu duomenų bazių sistemoje vadinami ir duomenų laukai
8 Duomenys apie tiekėjus bei prekes gaunami įvairiu iš anksto neapibrėžtu pavidalu iš nenustatytų šaltinių
9 Aprašant informacinę sistemą objektams identifikuoti naudojami ne sutrumpinti kodai, o pilni ir išsamūs pavadinimai. Tokiu pačiu principu duomenų bazių sistemoje vadinami ir duomenų laukai
10 Darbuotojų rinkmena (lentelė) gali būti priskirtina ir prie pirminių duomenų, tačiau tiekimų padalinio požiūriu tai yra klasifikatorius
11 Raktinis laukas - bet kurios duomenų lentelės laukas, unikaliai identifikuojantis tos lentelės įrašą
12 Terminas 'lentelė' aukštesnio lygio duomenų bazių valdymo sistemose (Access, Oracle, Informix ir kt.) apibrėžia vienarūšių duomenų aibę ir atitinka žemesnės klasės senesnėse DBVS (dBase, FoxPro ir pan.) vartojamą terminą 'failas'