Vous êtes sur la page 1sur 6

ALGO ENTREE COMMANDE

LEXIQUE
CHOIX_PRODUIT(ENTIER,SAISI)
RECHERCHE_NOM(FONCTION) RETOURNE LE NOM DU PRODUIT A PARTIR DE SON ID
RECHERCHE_PRIX_U(FONCTION) RETOURNE LE PRIX DU PRODUIT A PARTIR DE SON ID
QUANTITE_PRODUIT(ENTIER,SAISI)
DESIGNATION(CHAINE,SAISI)
QUANTITE(ENTIER,SAISI)
PRIX_U(ENTIER,CALCULE)
PRIX_T(ENTIER, CALCULE)
MONTANT_T(ENTIER,CALCULER)

ALGORITHME ENTREE COMMANDE


DEBUT
SAISIR(CHOIX_PRODUIT)
AFFICHER(CHOIX_PRODUIT)
SAISIR(QUANTITE_PRODUIT)
AFFICHER(QUANTITE_PRODUIT)
RECHERCHE_NOM(TABLE_PRODUIT,REF_PROD,CHOIX_PRODUIT )
SI TROUVE ALORS
DESIGNATION
RECHERCHE_NOM(CHOIX_PRODUIT)
AFFICHER(DESIGNATION)
FIN
RECHERCHE_ IDPRIX (TABLE_PRODUIT,REF_PROD,CHOIX_PRODUIT )
SI TROUVE ALORS
IDPRIX
RECHERCHE_ID PRIX
(CHOIX_PRODUIT)
AFFICHER(IDPRIX)
FIN
RECHERCHE_ PRIX_U (TABLE_PRIX,IDPRIX,IDPRIX )
SI TROUVE ALORS
PRIX_U
RECHERCHE_ PRIX_U (CHOIX_PRODUIT)
AFFICHER(PRIX_U)
FIN
QUANTITE

QUANTITE_PRODUIT

AFFICHER(QUANTITE)
PRIX_U

RECHERCHE_PRIX_U( CHOIX_PRODUIT)

AFFICHER(PRIX_U)
PRIX_T
MONTANT_T

QUANTITE X PRIX_U
SOMME(PRIX_T)

// Rsum : Ajoute une ligne de commande


// Syntaxe :
//AjouteLigneCommande ()
//
// Paramtres :
//
Aucun
// Valeur de retour :
//
Aucune
//
PROCEDURE AjouteLigneCommande()
// Variables locales
RefProduit
IndiceProduit
SousTotal

est une chane


est un entier
est un rel

// Mmorise la rfrence produit


RefProduit = Produit..Valeur
// Cette rfrence est-elle dj prsente dans la table ?
IndiceProduit = TableCherche(LigneCde.Reference,RefProduit)
// Le produit n'est pas dans la table
SI IndiceProduit = -1 ALORS
// Calcule le sous-total
SousTotal = (AJOUT_Quantit*Produit.PrixHT)
// Ajoute une ligne pour ce produit
TableAjouteLigne(LigneCde, 0, Commande.NumCommande, AJOUT_Quantit, Produit.Reference,
Produit.LibProd, Produit.PrixHT,0, Produit.TauxTVA, SousTotal, LigneCde..Occurrence+1)
SINON // Le produit existe dj dans la table
//1 : Ajouter
//2 : Modifier
//3 : Annuler
SELON Dialogue("La rfrence du produit indique est dj prsente dans la commande.")
// Ajouter
CAS 1
// Modifie la quantit
LigneCde.Quantite[IndiceProduit] += AJOUT_Quantit
// Modifie le sous-total
LigneCde.SousTotal[IndiceProduit] = CalculeLigneCommande(IndiceProduit)
// Modifier
CAS 2
// Modifie la quantit
LigneCde.Quantite[IndiceProduit] = AJOUT_Quantit
// Modifie le sous-total
LigneCde.SousTotal[IndiceProduit] = CalculeLigneCommande(IndiceProduit)
// Annuler
CAS 3
// Ne rien faire
FIN

FIN

// Rsum : Calcule du total d'une ligne de commande


// Syntaxe :
//[ <Rsultat> = ] CalculeLigneCommande ( [<nIndice> est entier])
//
// Paramtres :
//
nIndice (entier) : Indice de la ligne
// Valeur de retour :
//
rel : sous total calcul
//
PROCEDURE CalculeLigneCommande(Indice est un entier = TableSelect(LigneCde))
// Variables locales
SousTotal

est un rel

// Calcule le sous total


SousTotal = (LigneCde.Quantite[Indice]*LigneCde.PrixVente[Indice])
// Remise ?
SousTotal = SousTotal-(SousTotal*LigneCde.Remise[Indice]/100)
// Renvoie le sous total calcul
RENVOYER SousTotal

// Rsum : Calcule des totaux


// Syntaxe :
//CalculeTotaux ()
//
// Paramtres :
//
Aucun
// Valeur de retour :
//
Aucune
//
PROCEDURE CalculeTotaux()
// Variables locales
TotalTVA
TotalHT
TotalTTC
TotalFraisPort

est un rel
est un rel
est un rel
est un rel

// Parcours des lignes de la table


POUR TOUTE LIGNE DE LigneCde
// Mmorise le total HT
TotalHT += LigneCde.SousTotal
// Mmorise le total TVA
TotalTVA +=(LigneCde.SousTotal*(LigneCde.TauxTVA/100))
// Lecture du produit
HLitRecherchePremier(Produit, Reference, LigneCde.Reference)
SI HTrouve(Produit) ALORS
HLitRecherchePremier(FraisPort, CodePort, Produit.CodePort)
SI HTrouve(FraisPort) ALORS
// Ajoute les frais de port pour la quantit de produit demande.
TotalFraisPort += (LigneCde.Quantite * FraisPort.Montant)
FIN
FIN

FIN
// Calcule le total TTC
TotalTTC = TotalHT + TotalTVA + TotalFraisPort

// Saisie des totaux dans les champs


TotalHT
= TotalHT
TotalTVA
= TotalTVA
TotalFraisDePort
= TotalFraisPort
TotalTTC
= TotalTTC

Table_Produit
ReferenceProd
LibelleProduit
Photo
PrixUnitaire
QteReappro
SaisiLe
Table_Employe
NumEmploye
NomEmploye
Prnom
Date dembauche
Telephone
Lieu residence
Table_Commande
NumCommande
DateCommande
EtatCommande
TotalTTC
EntreeStock
IDEntree
DateAppro
PrixAchat
QuantiteEnStock
Table_Categorie
CodeCategorie
Libell
Table_Facture
DateFacture

GESTIONNAIRE
idpseudo
PSEUDO
MOT DE PASSE

NumFacture
TotalTTC
Table_Fournisseur
NumFournisseur
Societe
Telephone
Adresse
Table_Ligne_Commande
IDLigneCde
PrixVente
Quantite
Table_Ligne_Facture
IDLigneFac
PrixVente
Quantite
Table_SortieStock
DateSortie
IDSORTIE
Quantite
Table_Stock
IDSTOCK
DateModif
QteEnStock

Table_Niveau_Acces
Idacces
libelleAcces