Procedure Convertir(O : Nul Ou Objet);
	 
	Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
	 
	Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
	 
	Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
	 
	Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
	 
	Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
	 
	Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
	 
	Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
	 
	Procedure SupprimerPropriete(NomPropriete : Caractere);
	 
	Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
	 
	Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
 
	Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
	 
   Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
 
   VersionMetier : Caractere Lecture Public;
	 
   CreePar : Nul Ou IUtilisateur Lecture Public;
	 
   CreeLe : Date Lecture Public;
	 
   ModifiePar : Nul Ou IUtilisateur Lecture Public;
	 
   ModifieLe : Date Lecture Public;
 	 
  Etat : EtatObjetMetier NonVirtuel Lecture Public;
 
   Fonction ListerCategories(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou ICategorie;
	 
   Fonction ListerRelations(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou IRelation;
	 
   Procedure Inserer();
	 
   Procedure Modifier();
	 
   Procedure Verrouiller();
	 
   Fonction EstVerrouille() Retourner Booleen;
	 
   Procedure Deverrouiller();
	 
   Procedure Supprimer();
 
   VersionDocument : Nul Ou Caractere;
	 
   DateModification : Nul Ou Date;
	 
   DateValidation : Nul Ou Date;
	 
   Monnaie : Nul Ou IMonnaie;
	 
   MontantTotal : Nul Ou Reel;
	 
   Redacteur : Nul Ou IUtilisateur;
	 
   URIDocument : Nul Ou Caractere;
	 
   Sorte : SorteDocument; 
   Fonction ListerReferences(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou IDocument;
	 
   Fonction ListerDetailDocument(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou IDetailDocument;
 
         Fonction ListerContactsFournisseurs(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou IPersonnelFournisseur; 
      Cas Vente Pour SorteTransactionAchat Faire
       
         Fonction ListerContactsFournisseurs(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou IPersonnelClient; 
   Fonction ListerSocietesPartenaires(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou ISocietePartenaire;
	 
   Fonction ListerContactsPartenaires(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou IPersonnelPartenaire;
 
   DateApplication : Nul Ou Date;
	 
   DateResiliation : Nul Ou Date;
	 
   Signataire : Nul Ou IPersonnelEmployee;
	 
   SorteDuContrat : SorteContrat;
	 
   Constructeur();
/****************************************************************/
Interface IContrat HeriteDe IDocument, ITransaction Metier Defaut
/* Objet : Definition d'un contrat.                             */
/****************************************************************/
/*--------------------------------------------------------------*/
/* Heritage de Objet.                                           */
/*--------------------------------------------------------------*/
Prive :
	EstInstanceDe : Type Lecture Public;
Public :
	Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
	
Prive :
	Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
	
/*--------------------------------------------------------------*/
/* Heritage de IObjetMetier.                                    */
/*--------------------------------------------------------------*/
Prive :
   URIObjet : Nul Ou Caractere Lecture Public;
	
Public :
   Commentaire : Nul Ou Caractere;
	
/*--------------------------------------------------------------*/
/* Heritage de IDocument.                                       */
/*--------------------------------------------------------------*/
Public :
   NumeroChronologie : Nul Ou Caractere;
	
/*--------------------------------------------------------------*/
   Fonction ListerVersionsAnterieures(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou IDocument;
	
/* Heritage de ITransaction.                                    */
/*--------------------------------------------------------------*/
Public :
   Selon SorteDeLaTransaction : SorteTransaction Faire
   
/*--------------------------------------------------------------*/
      Cas Achat Pour SorteTransactionAchat Faire
      
Fin Selon
         Fonction ListerSocietesFournisseurs(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou ISocieteFournisseur;
			
Fin Cas
      
		
         Fonction ListerSocietesFournisseurs(CritereFiltre : Nul Ou Caractere=Nul, CritereTri : Nul Ou Caractere=Nul) Retourner Nul Ou IResultatRequeteDe Nul Ou ISocieteClient;
			
Fin Cas
      
   
	
/* Definitions propres.                                         */
/*--------------------------------------------------------------*/
Public :
   DateSignature : Nul Ou Date;
	
Fin Interface
= pour l'affectation d'un contrat dans un autre contrat.
	== pour l'égalité entre deux contrats. Le résultat est un booléen. 
	!= pour l'inégalité entre deux contrats. Le résultat est un booléen. 
Variable
/******/
 
   MonContrat : Nul Ou IContrat;
   MonUtilisateur : Nul Ou IUtilisateur;
   MonProgiciel : Nul Ou Module;
Principal
/********/
Variable
/******/
	C1 : Nul Ou IContrat;
	C2 : Nul Ou IContrat;
Debut
...
/* ------------------------------------------------ */
/* Creation d'un contrat.                           */
/* ------------------------------------------------ */
MonContrat=MonProgiciel.NouvelObjet(IContrat);
...
MonContrat.DateSignature=DateSysteme();
MonContrat.DateApplication=DateSysteme().AjouterJours(1);
MonContrat.DateResiliation=Nul;
MonContrat.Signataire=MonUtilisateur;
...
Si C1==C2 Alors
/* Egalité entre deux contrats. */ 
	...
Fin Si
Si C1!=C2 Alors
/* Inégalité entre deux contrats. */ 
	...
Fin Si
Fin Principal
| - | - | - | - | - | - | - | - | - |