Items - Jan 99 - by Sebastien DENEUX
-----------

This module must be connected to a database through ODBC.

It allows :
- for a client, to edit his inventory. 
  the inventory of a client is composed of items.
  an item is composed of the following fields :
	- a reference 	: refItem : type S
	- a name 	: nameItem : type S
	- a quantity 	: countItem : type I positive
	- a date 	: dateItem (not used in this module)

- for an administrator, to edit the inventory of all clients.
- to fill the inventory of a client at startup with the informations contained in a database.


Actions :
 - start 	: start the client

 - destroy 	: destroy the client

 - getItems 	: must be connected to a login module that provides a user name
	      	  fill the inventory of the CLIENT with the information in the database
		  example : [login] loginChanged -> [item] getItems

 - editUser 	: must be connected after a login module so that a user name has been set
    	          shows the CLIENT his inventory and allow him to edit it

 - editAdmin 	: allow the administor to edit the inventory of others CLIENTS

 - add 		: allow the administrator to add an item if not exists 
		        or add a "count" to "countItem" field of data base  

 - sub 		: allow the administrator to delete a recordset if (countItem - count) is negative
		        or sub "count" from "countItem" field of data base 

Events :
 - in 		: the client has been started 

 - destroyed 	: the client has been destroyed

Editor parameters :
 - DataBase Name : name of the database

 - DataBase Login : access login

 - DataBase Password : login password

 - SQLRequest : the SQL request executed to load items (example : SELECT refItem, nameItem, countItem FROM tableItems WHERE login = ?)

Zones :
 - the 'editAdmin' and 'edituser' actions need a zone (zoneEdition)


---------------------------------------------------------------------------------------------

Ce module doit être connecté à une base de données au travers une liaison ODBC.

Il permet :
- pour un client, d'éditer son inventaire.
  l'inventaire d'un client est composé d'items.
  un item est composé des champs suivant :
  	- une référence : refItem : type S
  	- un nom : nameItem : type S
  	- une quantité : countItem : type I positif
  	- une date : dateItem (non utilisés dans ce module)
  	
- pour un administrateur, d'éditer l'inventaire des autres clients.
- de remplir l'inventaire d'un client à sa connexion avec les informations contenues dans une base de données.

Actions :
 - start : active le client

 - destroy : détruit le client

 - getItems : doit être connecté à un module de login qui défini un nom d'utilisateur 
	      rempli l'inventaire du CLIENT avec les informations contenues dans la base de données	      
		exemple : [login] loginChanged -> [item] getItems

 - editUser : doit être connecté après un module de login afin qu'un nom d'utilisateur soit défini.
 	      affiche l'inventaire du client et lui permet de l'éditer               

 - editAdmin : permet à l'administrateur d'éditer l'inventaires des autres CLIENTS.

 - add : permet à l'administrateur d'ajouter un item s'il n'existe pas
 	 ou d'ajouter "count" au champs "countItem" de la base de données  

 - sub : permet à l'administrateur de détruire un enregistrement si la différence (countItem-count) est négative
	 ou de soustraire "count" du champs "countItem" de la base de données 

Evènements :
 - in : le client est démarré

 - destroyed : le client a été détruit


Paramètres de l'éditeur :
 - DataBase Name : nom de la base de données

 - DataBase Login : login d'accès
 
 - DataBase Password : mot de base pour le login

 - SQLRequest : la requête SQL exécutée pour charger les items (exemple : SELECT refItem, nameItem, countItem FROM tableItems WHERE login = ?)


Zones :
 - les actions 'editAdmin' et 'edituser' nécessitent une zone (zoneEdition)
