begin process at 2010 02 09 22:18:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Turbo Pascal

 > GESTION D'UN RESTAURANT

GESTION D'UN RESTAURANT


 Information sur la source

Note :
Aucune note
Catégorie :Turbo Pascal Classé sous :gestion, restaurant, commerces Niveau :Initié Date de création :29/06/2005 Date de mise à jour :30/06/2005 03:58:56 Vu / téléchargé :13 965 / 2 081

Auteur : julesouley

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Mon logiciel s'adapte à tous commerces. specialement dans la restauration rapide. (pizzaria,kebab...)
il vous permet de :
- saisir de commandes
- rechercher des commandes
- éditer le chiffre d'affaire journalié
- créer des produits
- savoir commbien chaque vendeur a encaissé
- les produits à faire
- initiatialiser les fichiers nécessaires

Source

  • unit U_pizzaria;
  • interface
  • uses SysUtils,
  • crt,
  • mes_outils;
  • const nb_max_pizza = 30;
  • nb_max_de_commande = 250;
  • nb_max_de_clients = 100;
  • tva = 0.055;
  • file_commande = 'mina.jul';
  • file_commande_annulee= 'cmd_annulee_modifiee.jul';
  • file_client = 'nos_clients.jul';
  • file_produit = 'nos_produits.jul';
  • type type_prix = real;
  • T_pizza = record
  • code : string[4];
  • libelle : string[15];
  • quantite : BYTE;
  • prix : type_prix;
  • end{record};
  • T_tab_pizza = array[1..nb_max_pizza] of T_pizza;
  • T_les_pizzas = record
  • nb_pizza : byte;
  • les_pizzas : T_tab_pizza;
  • end {record};
  • la_commande = record
  • les_pizzas : T_tab_pizza;
  • nb_de_pizza : byte;
  • end {record};
  • T_client = record
  • num_tel : string[10];
  • nom : string[10];
  • adresse : string[26];
  • nb_cmd_effectuer: byte;
  • commande_client : la_commande;
  • end{record};
  • T_tab_client = array[0..nb_max_de_clients] of T_client;
  • T_les_clients = record
  • nb_client : byte;
  • les_clients : T_tab_client;
  • end{record};
  • T_commande = record
  • code_vendeur : string[4];
  • le_client : T_client;
  • prix_total : type_prix;
  • date_commande : STRING[12];
  • heure_commande : tdatetime;
  • end{record};
  • T_tab_commande = array[0..nb_max_de_commande] of t_commande;
  • T_les_commandes = record
  • nb_commande : byte;
  • les_commandes : T_tab_commande;
  • end {record};
  • fichier_client = file of T_client;
  • fichier_commande = file of T_commande;
  • fichier_produit = file of T_pizza;
  • ////////////------ LES VARIABLES GLOBALES ----------////////////
  • //
  • var objet : fichier_commande; //
  • objet_client : fichier_client; //
  • objet_produit : fichier_produit; //
  • com : T_commande; //
  • client : T_client; //
  • ////////////////////////////////////////////////////////////////
  • procedure initialiser_fichier(file_name: string);
  • procedure initialisation;
  • procedure ajouter_produit;
  • procedure fiche_vide(num_commande : SMALLINT);
  • procedure fiche_vide0;
  • procedure afficher_prix(out piz : T_pizza;i: byte);
  • procedure a_faire(phrase : string);
  • procedure efface_ecran;
  • procedure fiche_encaissement;
  • procedure rechercher_commande;
  • procedure recherche_par_date;
  • procedure saisir_commande(out comm : T_commande);
  • procedure afficher_commande(num_cmd: cardinal);
  • procedure decaisser_vendeur;
  • procedure pizza_a_faire;
  • procedure menu;
  • procedure ecrir_fichier (commande : T_commande);
  • procedure fermer_fichier(file_name : string);
  • procedure ouvrir_fichier(file_name : string);
  • procedure ajouter_client (client : T_client);
  • procedure modifier_client(num_tel : string) ;
  • procedure afficher_les_clients;
  • procedure journal;
  • procedure sous_menuR;
  • procedure sous_menuS;
  • procedure annuler_commande(num_cmd: cardinal);
  • procedure modifier_commande(num_cmd: cardinal);
  • procedure commande_precedente(var num_cmd: cardinal);
  • procedure commande_suivante(var num_cmd: cardinal);
  • function est_pizza(const code : string) : boolean;
  • function est_valable(const s : string): boolean;
  • function est_client (numero_tel : string) : boolean;
  • function lire_nos_pizzas(file_produit: string) : T_les_pizzas;
  • function lire_une_commande (num_commande : integer) :T_commande;
  • function lire_les_commandes_du_jour (la_date : string):T_les_commandes;
  • function lire_les_clients(file_client: string) : T_les_clients;
  • function lire_un_client (numero_tel: string) : T_client;
  • function formatage_fichier (file_name : string):T_les_commandes;
  • function nb_total_commande(file_commande : string): byte;
  • implementation
  • procedure initialiser_fichier(file_name: string);
  • begin
  • assign(objet,file_name);
  • rewrite(objet);
  • close(objet);
  • a_faire('Fichiers initialises "Enter" pour retourner au Menu principal !');
  • end{initaliser_fichiers};
  • procedure initialisation;
  • Var reponse : char;
  • label la;
  • procedure fiche;
  • begin
  • efface_ecran;
  • un_rectangle(5,5,58,20);
  • un_rectangle(5,7,58,20);
  • gotoxy(8,6);write('INITIALISATIONS DES FICHIERS');
  • gotoxy(7,9);write('1 - TOUS LES FICHIERS');
  • gotoxy(7,11);write('2 - FICHIER DES CLIENTS ');
  • gotoxy(7,13);write('3 - FICHIER DES PRODUITS ');
  • gotoxy(7,15);write('4 - FICHIERS DES COMMANDES');
  • gotoxy(7,17);write('5 - FICHIERS DES COMMANDES ANNULEES OU MODIFIEES');
  • gotoxy(7,19);write('6 - MENU PRINCIPAL');
  • a_faire('Appuyer sur un numero pour initialiser le fichier correspondant !');
  • end{fiche_produit};
  • begin
  • fiche;
  • la: reponse:=readkey;
  • case reponse of
  • '1' : BEGIN
  • initialiser_fichier(file_client);
  • initialiser_fichier(file_produit);
  • initialiser_fichier(file_commande);
  • initialiser_fichier(file_commande_annulee);
  • a_faire('Fichiers initialises');
  • READLN;
  • menu;
  • END;
  • '2' : BEGIN
  • initialiser_fichier(file_client);
  • readln;
  • end;
  • '3' : begin
  • initialiser_fichier(file_produit);
  • readln;
  • end;
  • '4' : begin
  • initialiser_fichier(file_commande);
  • readln;
  • end;
  • '5' : begin
  • initialiser_fichier(file_commande_annulee);
  • readln;
  • end;
  • '6' : menu;
  • else goto la ;
  • end {case};
  • end{initialisation};
  • procedure ajouter_produit;
  • var
  • reponse : char;
  • label ici, labas;
  • Procedure fiche_produit;
  • begin
  • efface_ecran;
  • un_rectangle(5,5,40,20);
  • un_rectangle(5,7,40,20);
  • gotoxy(8,6);write('A J O U T E R P R O D U I T');
  • gotoxy(6,9);write('CODE PRODUIT :');
  • gotoxy(6,11);write('NOM PRODUIT :');
  • gotoxy(6,13);write('PRIX PRODUIT :');
  • end{fiche_produit};
  • procedure saisir_produit;
  • var pizz: T_pizza;
  • begin
  • fiche_produit;
  • assign(objet_produit,file_produit);
  • reset(objet_produit);
  • repeat
  • a_faire('Entrer le code du Produit ou Q pour Quitter ');
  • gotoxy(21,9);readln(pizz.code);
  • if (pizz.code ='Q') or (pizz.code ='q') then begin
  • exit;
  • end;
  • until pizz.code<>'';
  • repeat
  • a_faire('Entrer le libelle du Produit ou Q pour Quitter ');
  • gotoxy(21,11);readln(pizz.libelle);
  • if (pizz.libelle='Q') or (pizz.libelle='q') then begin
  • exit;
  • end;
  • until pizz.libelle<>'';
  • a_faire('Entrer le Prix du Produit ou Q pour Quitter ');
  • gotoxy(21,13);readln(pizz.prix);
  • seek(objet_produit,filesize(objet_produit));
  • write(objet_produit,pizz);
  • close(objet_produit);
  • ajouter_produit;
  • end{saisir_produit};
  • procedure rechercher_produit;
  • var pizz: T_pizza;
  • code :string;
  • begin
  • fiche_produit;
  • repeat
  • a_faire('Entrer le code du Produit ou Q pour Quitter ');
  • gotoxy(21,9);readln(code);
  • if (code ='Q') or (code ='q') then begin
  • ajouter_produit;
  • end;
  • until pizz.code<>'';
  • if est_pizza(code) then begin
  • assign(objet_produit,file_produit);
  • reset(objet_produit);
  • while not eof(objet_produit) do begin
  • read(objet_produit,pizz);
  • if code=pizz.code then begin
  • gotoxy(21,11);write(pizz.libelle);
  • gotoxy(21,13);write(pizz.prix:0:2);
  • end{if};
  • end{while};
  • close(objet_produit);
  • end else begin
  • a_faire('Ce produit n''existe pas ! ');
  • end;
  • readln;
  • a_faire('Appuyer sue " Enter " pour continuer...');
  • ajouter_produit;
  • end{saisir_produit};
  • begin
  • labas:
  • efface_ecran;
  • fiche_produit;
  • a_faire(' ');
  • gotoxy(8,18);write('1- Creer 2- Recherche 3-Menu');
  • reponse:=readkey;
  • case upcase(reponse) of
  • 'C','1',#13 : saisir_produit;
  • 'R','2' : rechercher_produit;
  • 'M','3' : menu;
  • else goto labas;
  • end{case};
  • end{ajouter_produit};
  • function lire_nos_pizzas(file_produit: string) : T_les_pizzas;
  • var i : integer;
  • nos_pizzas : T_les_pizzas;
  • pizza : T_pizza;
  • begin
  • assign(objet_produit,file_produit);
  • reset(objet_produit);
  • i:=0;
  • nos_pizzas.nb_pizza :=0;
  • while not (eof(objet_produit)) do begin
  • inc(nos_pizzas.nb_pizza);
  • seek(objet_produit,i);
  • read(objet_produit,pizza);
  • nos_pizzas.les_pizzas[nos_pizzas.nb_pizza]:=pizza;
  • inc(i);
  • end{while};
  • lire_nos_pizzas := nos_pizzas;
  • close(objet_produit);
  • end {lire_nos_pizzas};
  • function est_pizza(const code : string) : boolean;
  • var
  • pizza : T_pizza;
  • resultat : boolean;
  • begin
  • assign(objet_produit,file_produit);
  • reset(objet_produit);
  • resultat:=false;
  • while not (eof(objet_produit)) do begin
  • read(objet_produit,pizza);
  • resultat:= resultat or (code=pizza.code);
  • end{while};
  • close(objet_produit);
  • est_pizza:= resultat;
  • end {est_pizza};
  • procedure annuler_commande(num_cmd: cardinal);
  • var cmd : T_commande;
  • reponse : char;
  • begin
  • a_faire('Confirmer l''annulation de la Commande (O) ou (N)');
  • reponse:=readkey;
  • case upcase(reponse) of
  • 'O',#13 : begin
  • cmd:= lire_une_commande(num_cmd);
  • cmd.prix_total:=0;
  • cmd.le_client.commande_client.nb_de_pizza:=0;
  • ouvrir_fichier(file_commande);
  • seek(objet,num_cmd-1);
  • write(objet,cmd);
  • fermer_fichier(file_commande);
  • menu;
  • end;
  • 'N' : saisir_commande(com);
  • else saisir_commande(com);
  • end{case};
  • end{annuler_commande};
  • procedure modifier_commande(num_cmd: cardinal);
  • var cmd : T_commande;
  • reponse : char;
  • label labas,la,ici;
  • begin
  • gotoXY(11,13);write('Appuyer sur ''ENTREE'' pour modifier la commande');
  • gotoXY(11,14);write('Appuyer sur une touche pour aller au Menu principal');
  • reponse := readkey;
  • case reponse of
  • #13 : goto ici;
  • else BEGIN
  • gotoXY(11,13);write(' ');
  • gotoXY(11,14);write(' ');
  • GOTO labas;
  • END;
  • end{case};
  • ici:
  • gotoXY(11,13);write(' ');
  • gotoXY(11,14);write(' ');
  • afficher_commande(num_cmd);
  • cmd := lire_une_commande(num_cmd);
  • with cmd do begin
  • with le_client do begin
  • prix_total:=0;
  • commande_client.nb_de_pizza:=1;
  • la:
  • a_faire('Entrer le code du produit ou ''V'' pour Valider ''Q'' pour Quitter');
  • gotoxy(7,20+commande_client.nb_de_pizza);
  • readln(commande_client.les_pizzas[commande_client.nb_de_pizza].code);
  • if (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('q'))
  • or (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('Q'))
  • then
  • begin
  • sous_menuS;
  • exit;
  • end;
  • while (commande_client.les_pizzas[commande_client.nb_de_pizza].code<>'V')
  • or
  • (commande_client.nb_de_pizza=nb_max_pizza) do begin
  • if not est_pizza(commande_client.les_pizzas[commande_client.nb_de_pizza].code) then begin
  • gotoxy(7,20+commande_client.nb_de_pizza);
  • write(' ');
  • gotoxy(7,20+commande_client.nb_de_pizza);
  • goto la;
  • end else begin
  • afficher_prix(commande_client.les_pizzas[commande_client.nb_de_pizza],commande_client.nb_de_pizza);
  • prix_total := prix_total +
  • (commande_client.les_pizzas[commande_client.nb_de_pizza].prix *
  • commande_client.les_pizzas[commande_client.nb_de_pizza].quantite);
  • inc(commande_client.nb_de_pizza);
  • gotoxy(60,40);writeln(prix_total:0:2);
  • a_faire('Entrer le code du produit ou ''V'' pour Valider ''Q'' pour Quitter');
  • gotoxy(7,20+commande_client.nb_de_pizza);
  • readln(commande_client.les_pizzas[commande_client.nb_de_pizza].code);
  • if (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('q'))
  • or (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('Q'))
  • then
  • begin
  • sous_menuS;
  • exit;
  • end;
  • end{if};
  • end{while};
  • ouvrir_fichier(file_commande);
  • seek(objet,num_cmd-1);
  • write(objet,cmd);
  • fermer_fichier(file_commande);
  • labas:
  • a_faire('1-Creer 2-Modifier 3-Annuler 4-Precedente 5-Suivante 6-mEnu');
  • reponse := readkey;
  • case upcase(reponse) of
  • '1','C',#13 : saisir_commande(cmd);
  • '2','M' : modifier_commande(num_cmd);
  • '3','A' : annuler_commande(num_cmd);
  • '4','P' : commande_precedente(num_cmd);
  • '5','S' : commande_suivante(num_cmd);
  • '6','E' : menu;
  • else goto labas;
  • end;
  • end {with le_client};
  • end {with cmd};
  • end{modifier_commande};
  • procedure commande_precedente(var num_cmd: cardinal);
  • label
  • labas;
  • var
  • reponse : char;
  • begin
  • efface_ecran;
  • case num_cmd of
  • 1 : begin
  • num_cmd:=nb_total_commande(file_commande)-1;
  • afficher_commande(num_cmd);
  • end;
  • else begin
  • dec(num_cmd);
  • afficher_commande(num_cmd);
  • end;
  • end{case};
  • labas:
  • a_faire('1-Creer 2-Modifier 3-Annuler 4-Precedente 5-Suivante 6-mEnu');
  • reponse := readkey;
  • case upcase(reponse) of
  • '1','C',#13 : saisir_commande(com);
  • '2','M' : modifier_commande(num_cmd);
  • '3','A' : annuler_commande(num_cmd);
  • '4','P' : commande_precedente(num_cmd);
  • '5','S' : commande_suivante(num_cmd);
  • '6','E' : menu;
  • else goto labas;
  • end{case};
  • end{commande_precedente};
  • procedure commande_suivante(var num_cmd: cardinal);
  • label
  • labas;
  • var
  • reponse : char;
  • n : byte;
  • begin
  • efface_ecran;
  • n :=nb_total_commande(file_commande)-1;
  • if num_cmd = n then begin
  • num_cmd:=1;
  • afficher_commande(num_cmd);
  • end else begin
  • inc(num_cmd);
  • afficher_commande(num_cmd);
  • end{if};
  • labas :
  • a_faire('1-Creer 2-Modifier 3-Annuler 4-Precedente 5-Suivante 6-mEnu');
  • reponse := readkey;
  • case upcase(reponse) of
  • '1','C',#13 : saisir_commande(com);
  • '2','M' : modifier_commande(num_cmd);
  • '3','A' : annuler_commande(num_cmd);
  • '4','P' : commande_precedente(num_cmd);
  • '5','S' : commande_suivante(num_cmd);
  • '6','E' : menu;
  • else goto labas;
  • end{case};
  • end{commande_suivante};
  • procedure ecrir_fichier (commande : T_commande);
  • begin
  • assign(objet,file_commande);
  • reset(objet);
  • seek(objet,filesize(objet));
  • write(objet,commande);
  • close(objet);
  • end{ecrir_fichier };
  • procedure ouvrir_fichier ;
  • begin
  • assign(objet,file_name);
  • reset(objet);
  • end{ouvrir_fichier};
  • function nb_total_commande(file_commande : string): byte;
  • var
  • n : byte;
  • begin
  • assign(objet,file_commande);
  • reset(objet);
  • n := filesize(objet)+1;
  • close(objet);
  • nb_total_commande := n;
  • end{num_commande};
  • procedure fermer_fichier ;
  • begin
  • assign(objet,file_name);
  • reset(objet);
  • close(objet);
  • end{fermer_fichier };
  • function lire_une_commande(num_commande : integer) : T_commande;
  • var
  • commande: T_commande;
  • begin
  • assign(objet,file_commande);
  • reset(objet);
  • seek(objet,num_commande-1);
  • read(objet,commande);
  • lire_une_commande := commande;
  • close(objet);
  • end{lire_une_commande };
  • function formatage_fichier (file_name : string):T_les_commandes;
  • var
  • une_com : T_les_commandes;
  • com : T_commande;
  • i : integer;
  • begin
  • assign(objet,file_name);
  • reset(objet);
  • i:=0;
  • while not(eof(objet)) do begin
  • seek(objet,i);
  • read(objet,com);
  • une_com.les_commandes[i]:=com;
  • inc(i);
  • end{while};
  • une_com.nb_commande:=filesize(objet)+1;
  • formatage_fichier := une_com;
  • close(objet);
  • end{formatage_fichier};
  • function lire_les_clients(file_client: string) : T_les_clients;
  • var
  • clients : T_les_clients;
  • i : integer;
  • un_client : T_client;
  • begin
  • assign(objet_client,file_client);
  • reset(objet_client);
  • clients.nb_client := filesize(objet_client);
  • i:=0;
  • while not(eof(objet_client)) do begin
  • seek(objet_client,i);
  • read(objet_client,un_client) ;
  • clients.les_clients[i]:=un_client;
  • inc(i);
  • end{while};
  • lire_les_clients := clients;
  • close(objet_client);
  • end{lire_les_clients};
  • function est_client (numero_tel: string) : boolean;
  • var
  • resultat: boolean;
  • clients : T_les_clients;
  • i : integer;
  • begin
  • resultat := false;
  • clients := lire_les_clients(file_client);
  • for i:=0 to clients.nb_client do begin
  • if numero_tel = clients.les_clients[i].num_tel then begin
  • resultat := true;
  • end{if};
  • end{for};
  • est_client :=resultat;
  • end{est_client};
  • function lire_un_client (numero_tel: string) : T_client;
  • var
  • clients : T_les_clients;
  • i : integer;
  • begin
  • clients := lire_les_clients(file_client);
  • for i:=0 to clients.nb_client do begin
  • if numero_tel = clients.les_clients[i].num_tel then begin
  • client:=clients.les_clients[i];
  • end{if};
  • end{for};
  • lire_un_client := client;
  • end{est_client};
  • procedure modifier_client(num_tel : string) ;
  • var
  • i : integer;
  • client : T_client;
  • begin
  • assign(objet_client,file_client);
  • reset(objet_client);
  • i:=0;
  • while not(eof(objet_client)) do begin
  • seek(objet_client,i);
  • read(objet_client,client) ;
  • if client.num_tel=num_tel then begin
  • writeln('numeror telephone : ',num_tel);
  • writeln('nom: ',client.nom);
  • writeln('adresse: ',client.adresse);
  • writeln('+++++++++++++++++++++++++++++++++++++++++++++');
  • writeln('numeror telephone : ',num_tel);
  • write('nom: ');readln(client.nom);
  • write('adresse: ');readln(client.adresse);
  • seek(objet_client,i);
  • write(objet_client,client);
  • exit;
  • end{if};
  • inc(i);
  • end{while};
  • close(objet_client);
  • end{modifier_client};
  • procedure modifier_nb_cmd_effectue(num_tel:string;n:smallint) ;
  • var
  • i : integer;
  • client : T_client;
  • begin
  • assign(objet_client,file_client);
  • reset(objet_client);
  • i:=0;
  • while not(eof(objet_client)) do begin
  • seek(objet_client,i);
  • read(objet_client,client) ;
  • if client.num_tel=num_tel then begin
  • client.nb_cmd_effectuer:=n;
  • seek(objet_client,i);
  • write(objet_client,client);
  • exit;
  • end{if};
  • inc(i);
  • end{while};
  • close(objet_client);
  • end{modifier_nb_cmd_effectue};
  • procedure afficher_les_clients ;
  • var
  • i : integer;
  • client : T_client;
  • begin
  • assign(objet_client,file_client);
  • reset(objet_client);
  • i:=0;
  • while not(eof(objet_client)) do begin
  • seek(objet_client,i);
  • read(objet_client,client) ;
  • writeln('numeror telephone : ',client.num_tel);
  • writeln('nom: ',client.nom);
  • writeln('adresse: ',client.adresse);
  • writeln('+++++++++++++++++++++++++++++++++++++++++++++');
  • inc(i);
  • end{while};
  • READLN;
  • close(objet_client);
  • end{afficher_les_clients};
  • procedure ajouter_client (client : T_client);
  • begin
  • assign(objet_client,file_client);
  • reset(objet_client);
  • seek(objet_client,filesize(objet_client));
  • write(objet_client,client);
  • close(objet_client);
  • end{ajouter_client};
  • function lire_les_commandes_du_jour (la_date : string):T_les_commandes;
  • var resultat: T_les_commandes;
  • objet : fichier_commande;
  • commande : T_commande;
  • begin
  • assign(objet,file_commande);
  • reset(objet);
  • resultat.nb_commande:=0;
  • while not eof(objet) do begin
  • read(objet,commande);
  • if commande.date_commande=la_date then begin
  • inc(resultat.nb_commande);
  • resultat.les_commandes[resultat.nb_commande]:=commande;
  • end{if};
  • end{for};
  • lire_les_commandes_du_jour := resultat;
  • end{lire_les_commandes_du_jour};
  • procedure journal;
  • type
  • T_chiffre_daffaire = record
  • nb_commandes : byte;
  • montant : real;
  • end{record};
  • var
  • toutes_les_commandes : T_les_commandes;
  • i : byte;
  • ca_emporter,ca_livraison : T_chiffre_daffaire;
  • chiffre_daffaire_ttc,chiffre_daffaire_ht: real;
  • reponse : char;
  • label
  • ici,labas;
  • procedure trace_du_journal;
  • begin
  • un_rectangle(11,5,70,45);
  • un_rectangle(11,10,70,30);
  • un_rectangle(11,10,70,12);
  • un_rectangle(40,10,55,30);
  • gotoXY(20,7);write('J O U R N A L');
  • gotoXY(14,17);write('CHIFFRE D''AFFAIRE V.A.E');
  • gotoXY(14,22);write('CHIFFRE D''AFFAIRE L.A.D');
  • gotoXY(17,35);write('CHIFFRE D''AFFAIRE H.T');
  • gotoXY(17,39);write('CHIFFRE D''AFFAIRE T.T.C');
  • un_rectangle(50,34,68,36);
  • un_rectangle(50,38,68,40);
  • gotoXY(41,11);write('Nbre Commandes');
  • gotoXY(56,11);write('Montant total');
  • gotoXY(52,42);write('T.V.A = ',tva*100:0:2,' %');
  • end{trace_du_journal};
  • var la_date : string[10];
  • begin
  • ici:
  • efface_ecran;
  • trace_du_journal;
  • ca_emporter.nb_commandes:=0;
  • ca_emporter.montant:=0;
  • ca_livraison.nb_commandes:=0;
  • ca_livraison.montant:=0;
  • un_rectangle(48,6,68,8);
  • gotoXY(13,11);write('HEURE :');
  • gotoXY(21,11);WRITE(timetostr(time));
  • gotoXY(50,7);write('DATE :',datetostr(date));
  • a_faire('Entrer une date pour afficher le Journal ');
  • gotoXY(56,7);readln(la_date);
  • if la_date ='' then begin
  • toutes_les_commandes:=lire_les_commandes_du_jour(datetostr(date));
  • end else begin
  • toutes_les_commandes:=lire_les_commandes_du_jour(la_date);
  • end{if};
  • a_faire(' ');
  • for i:=1 to toutes_les_commandes.nb_commande do begin
  • with toutes_les_commandes.les_commandes[i] do begin
  • if (le_client.num_tel ='1') or (le_client.num_tel ='2') then begin
  • ca_emporter.montant := ca_emporter.montant + prix_total;
  • inc(ca_emporter.nb_commandes)
  • end else begin
  • ca_livraison.montant := ca_livraison.montant + prix_total;
  • inc(ca_livraison.nb_commandes)
  • end{if};
  • end{with};
  • end{for};
  • chiffre_daffaire_ttc := ca_emporter.montant + ca_livraison.montant;
  • chiffre_daffaire_ht := chiffre_daffaire_ttc - (chiffre_daffaire_ttc*tva);
  • gotoxy(45,17);write(ca_emporter.nb_commandes);
  • gotoxy(58,17);write(ca_emporter.montant:0:2);
  • gotoxy(45,22);write(ca_livraison.nb_commandes);
  • gotoxy(58,22);write(ca_livraison.montant:0:2);
  • gotoxy(52,35);write(chiffre_daffaire_ht:0:2);
  • gotoxy(52,39);write(chiffre_daffaire_ttc:0:2);
  • labas:
  • gotoxy(30,47);write('1-Journal 2-Menu');
  • reponse := readkey;
  • case upcase(reponse) of
  • '1','J',#13 : goto ici;
  • '2','M' : menu;
  • else goto labas;
  • end{case};
  • end{journal};
  • procedure efface_ecran;
  • var
  • j : byte;
  • begin
  • for j:= 0 to 80 do begin
  • gotoxy(0,j);writeln(' ');
  • gotoxy(1,1);
  • end {for};
  • end{efface_ecran};
  • procedure fiche_vide(num_commande : smallint);
  • begin
  • un_rectangle(5,5,70,20);
  • un_rectangle(5,20,70,41);
  • un_rectangle(5,41,70,45);
  • un_rectangle(5,20,15,41);
  • un_rectangle(25,20,55,41);
  • un_rectangle(57,42,68,44);
  • un_rectangle(5,18,70,20);
  • un_rectangle(5,18,15,20 );
  • un_rectangle(25,18,55,20);
  • gotoXY(20,3);write ('S A I S I E D E C O M M A N D E');
  • gotoXY(6,6);write ('CODE VENDEUR :');
  • gotoXY(45,6);write('NUM COMMANDE: ');
  • gotoXY(60,6);write(num_commande);
  • gotoXY(6,8);write ('NUM TEL :');
  • gotoXY(45,8);write('NOM CLIENT : ');
  • gotoXY(6,10);write('ADRESSE CLIENT:');
  • gotoXY(28,16);write('C O M M A N D E');
  • gotoXY(6,19);write('Code Prod');
  • gotoXY(17,19);write('Quantite') ;
  • gotoXY(34,19);write('Nom Produit');
  • gotoXY(60,19);write('Prix');
  • gotoXY(45,43);write('PRIX TOTAL');
  • gotoXY(5,18);write(#204);
  • gotoXY(5,20);write(#204);
  • gotoXY(5,41);write(#204);
  • gotoXY(70,18);write(#185);
  • gotoXY(70,20);write(#185);
  • gotoXY(70,41);write(#185);
  • gotoXY(15,18);write(#203);
  • gotoXY(25,18);write(#203);
  • gotoXY(55,18);write(#203);
  • gotoXY(15,20);write(#206);
  • gotoXY(25,20);write(#206);
  • gotoXY(55,20);write(#206);
  • gotoXY(15,41);write(#202);
  • gotoXY(25,41);write(#202);
  • gotoXY(55,41);write(#202);
  • end {fiche_vide};
  • procedure fiche_vide0;
  • begin
  • un_rectangle(5,5,70,20);
  • un_rectangle(5,20,70,41);
  • un_rectangle(5,41,70,45);
  • un_rectangle(5,20,15,41);
  • un_rectangle(25,20,55,41);
  • un_rectangle(57,42,68,44);
  • un_rectangle(5,18,70,20);
  • un_rectangle(5,18,15,20 );
  • un_rectangle(25,18,55,20);
  • gotoXY(6,6);write ('CODE VENDEUR :');
  • gotoXY(45,6);write('NUM COMMANDE: ');
  • gotoXY(6,8);write ('NUM TEL :');
  • gotoXY(45,8);write('NOM CLIENT : ');
  • gotoXY(6,10);write('ADRESSE CLIENT:');
  • gotoXY(28,16);write('C O M M A N D E');
  • gotoXY(6,19);write('Code Prod');
  • gotoXY(17,19);write('Quantite') ;
  • gotoXY(34,19);write('Nom Produit');
  • gotoXY(60,19);write('Prix');
  • gotoXY(45,43);write('PRIX TOTAL');
  • gotoXY(5,18);write(#204);
  • gotoXY(5,20);write(#204);
  • gotoXY(5,41);write(#204);
  • gotoXY(70,18);write(#185);
  • gotoXY(70,20);write(#185);
  • gotoXY(70,41);write(#185);
  • gotoXY(15,18);write(#203);
  • gotoXY(25,18);write(#203);
  • gotoXY(55,18);write(#203);
  • gotoXY(15,20);write(#206);
  • gotoXY(25,20);write(#206);
  • gotoXY(55,20);write(#206);
  • gotoXY(15,41);write(#202);
  • gotoXY(25,41);write(#202);
  • gotoXY(55,41);write(#202);
  • end {fiche_vide};
  • procedure fiche_encaissement;
  • begin
  • efface_ecran;
  • un_rectangle(5,18,70,60);
  • un_rectangle(5,20,79,57);
  • un_rectangle(12,18,24,57);
  • un_rectangle(35,18,60,57);
  • un_rectangle(60,57,70,60);
  • un_rectangle(70,18,79,60);
  • //gotoxy(2,10);write('DATE : ',datetostr(date));
  • //gotoxy(45,10);write('HEURE : ',timetostr(time));
  • gotoXY(12,16);write('E N C A I S S E M E N T V E N D E U R');
  • gotoXY(6,19);write('NumCom');
  • gotoXY(15,19);write('Numtel') ;
  • gotoXY(25,19);write('NomClient');
  • gotoXY(40,19);write('Adresse Client');
  • gotoXY(63,19);write('Prix');
  • gotoXY(72,19);write('Heure');
  • end{fiche_encaissement} ;
  • function est_valable(const s : string): boolean;
  • var
  • ss : string;
  • const intervalle =[48..57];
  • begin
  • ss:=s;
  • if (ss='') then est_valable:=true
  • else if not(integer(ss[length(ss)]) in intervalle) then
  • est_valable:=false
  • else begin
  • delete(ss,length(ss),length(ss)+1);
  • est_valable:=est_valable(ss);
  • end{if};
  • end{est_valable};
  • procedure afficher_prix(out piz : T_pizza; i: byte);
  • var qte : string[3] ;
  • pizza : T_pizza;
  • begin
  • assign(objet_produit,file_produit);
  • reset(objet_produit);
  • while not (eof(objet_produit)) do begin
  • read(objet_produit,pizza);
  • if piz.code = pizza.code then begin
  • repeat
  • a_faire('Entrer la quantite');
  • gotoxy(19,20+i);write(' ');
  • gotoxy(19,20+i);readln(qte);
  • until est_valable(qte);
  • if qte='' then begin
  • piz.quantite:=1;
  • gotoxy(19,20+i);write(1);
  • end else piz.quantite:=strtoint(qte);
  • gotoxy(35,20+i);write(pizza.libelle);
  • gotoxy(61,20+i);write(pizza.prix:0:2);
  • piz.prix:=pizza.prix;
  • piz.libelle:=pizza.libelle;
  • end{if};
  • end{while};
  • close(objet_produit);
  • end {afficher_prix};
  • procedure a_faire(phrase : string);
  • begin
  • gotoXY(6,47);write(' ');
  • gotoXY(6,47);write(phrase);
  • end{a_faire};
  • procedure saisir_commande(out comm : T_commande);
  • label
  • ici,labas,la;
  • var
  • reponse : char;
  • last_commande : cardinal;
  • n : integer;
  • les_commandes : T_les_commandes;
  • procedure saisir_client(out le_client : T_client);
  • begin
  • le_client.nb_cmd_effectuer:=1;
  • repeat
  • a_faire('Entrer le nom du client');
  • gotoxy(60,8);readln(le_client.nom);
  • until (le_client.nom<>'');
  • repeat
  • a_faire('Entrer l''adresse du client');
  • gotoxy(21,10);readln(le_client.adresse);
  • until le_client.adresse<>'';
  • end{saisir_client};
  • procedure afficher_client(numero_tel: string);
  • var
  • client : T_client;
  • begin
  • client := lire_un_client(numero_tel);
  • inc(client.nb_cmd_effectuer);
  • gotoxy(60,8);write(client.nom);
  • gotoxy(21,10);write(client.adresse);
  • modifier_nb_cmd_effectue(numero_tel,client.nb_cmd_effectuer);
  • if ((numero_tel<>'1') and (numero_tel<>'2')) then begin
  • gotoxy(10,16);
  • write(client.nom,' a commande ',client.nb_cmd_effectuer,' fois chez nous !!');
  • end{if};
  • comm.le_client:=client;
  • end{afficher_client};
  • begin
  • ici:last_commande := nb_total_commande(file_commande);
  • les_commandes :=lire_les_commandes_du_jour(datetostr(date));
  • n:=les_commandes.nb_commande;
  • efface_ecran;
  • fiche_vide(n);
  • gotoXY(60,6);write(n,'-00',last_commande);
  • //fiche_vide(last_commande);
  • gotoXY(6,12);write ('DATE :');write(datetostr(date));
  • gotoXY(50,12);write ('HEURE :');;write(timetostr(time));
  • with comm do begin
  • repeat
  • a_faire('Entrer le code du Vendeur');
  • gotoxy(21,6);readln(code_vendeur);
  • if (code_vendeur=('q')) or (code_vendeur=('Q')) then
  • BEGIN
  • sous_menuS;
  • exit ;
  • end;
  • until code_vendeur<>'';
  • repeat
  • a_faire('Entrer le numero de telephone du client');
  • gotoxy(21,8);readln(le_client.num_tel);
  • if (le_client.num_tel=('q')) or (le_client.num_tel=('Q')) then
  • begin
  • sous_menuS;
  • exit;
  • end;
  • until le_client.num_tel<>'';
  • with le_client do begin
  • if not(est_client(num_tel)) then begin
  • saisir_client(le_client)
  • end else begin
  • afficher_client(num_tel);
  • end{if};
  • commande_client.nb_de_pizza:=1;
  • prix_total:=0;
  • la:
  • a_faire('Entrer le code du produit ou ''V'' pour Valider ''Q'' pour Quitter');
  • gotoxy(7,20+commande_client.nb_de_pizza);
  • readln(commande_client.les_pizzas[commande_client.nb_de_pizza].code);
  • if (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('q'))
  • or (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('Q'))
  • then
  • begin
  • sous_menuS;
  • exit;
  • end;
  • while (commande_client.les_pizzas[commande_client.nb_de_pizza].code<>'V') or (commande_client.nb_de_pizza=nb_max_pizza) do begin
  • if not est_pizza(commande_client.les_pizzas[commande_client.nb_de_pizza].code) then begin
  • gotoxy(7,20+commande_client.nb_de_pizza);
  • write(' ');
  • gotoxy(7,20+commande_client.nb_de_pizza);
  • goto la;
  • end else begin
  • afficher_prix(commande_client.les_pizzas[commande_client.nb_de_pizza],commande_client.nb_de_pizza);
  • prix_total := prix_total +
  • (commande_client.les_pizzas[commande_client.nb_de_pizza].prix *
  • commande_client.les_pizzas[commande_client.nb_de_pizza].quantite);
  • inc(commande_client.nb_de_pizza);
  • gotoxy(60,43);writeln(prix_total:0:2);
  • a_faire('Entrer le code du produit ou ''V'' pour Valider ''Q'' pour Quitter');
  • gotoxy(7,20+commande_client.nb_de_pizza);
  • readln(commande_client.les_pizzas[commande_client.nb_de_pizza].code);
  • end{if};
  • end{while};
  • end {with le_client};
  • date_commande:=datetostr(date);
  • heure_commande:=(time);
  • ecrir_fichier(comm);
  • if not(est_client(le_client.num_tel)) then begin
  • ajouter_client(le_client);
  • end{if};
  • labas:
  • a_faire('1-Creer 2-Modifier 3-Annuler 4-Precedente 5-Suivante 6-mEnu');
  • reponse := readkey;
  • case upcase(reponse) of
  • '1','C',#13 : goto ici;
  • '2','M' : modifier_commande(last_commande);
  • '3','A' : annuler_commande(last_commande);
  • '4','P' : commande_precedente(last_commande);
  • '5','S' : commande_suivante(last_commande);
  • '6','E' : menu;
  • else goto labas;
  • end{case};
  • end{with};
  • end{saisir_commande};
  • procedure afficher_commande(num_cmd: cardinal);
  • VAR i : byte;
  • n : integer;
  • commande:T_commande;
  • begin
  • efface_ecran;
  • n:=nb_total_commande(file_commande);
  • commande:=lire_une_commande(num_cmd);
  • fiche_vide(num_cmd);
  • gotoXY(6,12);write ('DATE :');write(Commande.date_commande);
  • gotoXY(50,12);write ('HEURE :');;write(timetostr(commande.heure_commande));
  • gotoXY(65,6);WRITE('/',n-1);
  • with commande do begin
  • gotoxy(21,6);write(code_vendeur);
  • with le_client do begin
  • gotoxy(21,8);write(num_tel);
  • gotoxy(60,8);write(nom);
  • gotoxy(21,10);write(adresse);
  • for i := 1 to commande_client.nb_de_pizza-1 do begin
  • gotoxy(7,20+i);
  • write(commande_client.les_pizzas[i].code);
  • gotoxy(19,20+i);
  • write(commande_client.les_pizzas[i].quantite);
  • gotoxy(35,20+i);
  • write(commande_client.les_pizzas[i].libelle);
  • gotoxy(61,20+i);
  • write(commande_client.les_pizzas[i].prix:0:2);
  • gotoxy( 60,43);writeln(prix_total:0:2);
  • end{for};
  • end {with le_client};
  • end{with commande};
  • end{afficher_commande};
  • procedure sous_menuR;
  • var rep : char;
  • label labas;
  • begin
  • labas:
  • a_faire('1-Recherche 2- 3- 4- 5- 6-mEnu');
  • rep := readkey;
  • case upcase(rep) of
  • '1','R',#13 : rechercher_commande;
  • '6','E' : menu;
  • else goto labas;
  • end;
  • end{sous_menu};
  • procedure sous_menuS;
  • var rep : char;
  • label labas;
  • begin
  • labas:
  • a_faire('1-Creer 2- 3- 4- 5- 6-mEnu');
  • rep := readkey;
  • case upcase(rep) of
  • '1','C',#13 : saisir_commande(com);
  • '6','E' : menu;
  • else goto labas;
  • end;
  • end{sous_menuS};
  • procedure rechercher_commande;
  • var
  • num,n : cardinal;
  • reponse : char;
  • numero : string;
  • label ici, labas;
  • begin
  • ici: efface_ecran;
  • n:=nb_total_commande(file_commande);
  • fiche_vide0;
  • repeat
  • gotoXY(60,6);write(' ');
  • gotoXY(60,6);readln(numero);
  • if (numero=('q')) or (numero=('Q')) then
  • BEGIN
  • sous_menuR;
  • exit ;
  • end;
  • until est_valable(numero);
  • charger(50,10,13);
  • if numero='' then
  • num:=1
  • else
  • num:=strtoint(numero);
  • if (num < n) AND (num>0) then begin
  • afficher_commande(num);
  • end else begin
  • gotoxy(10,12);write(' ');
  • gotoxy(10,13);write(' ');
  • gotoxy(10,14);write(' ');
  • gotoxy(10,15);write(' ');
  • gotoxy(10,13);write('Ce numero de commande n''existe pas !!!');
  • BEGIN
  • sous_menuR;
  • exit;
  • end;
  • end {if};
  • labas:
  • a_faire('1-Recherche 2-Modifier 3-Annuler 4-Precedente 5-Suivante 6-mEnu');
  • reponse := readkey;
  • case upcase(reponse) of
  • '1','R',#13 : goto ici;
  • '2','M' : modifier_commande(num);
  • '3','A' : annuler_commande(num);
  • '4','P' : commande_precedente(num);
  • '5','S' : commande_suivante(num);
  • '6','E' : menu;
  • else goto labas;
  • end;
  • end {rechercher_commande};
  • procedure recherche_par_date;
  • type recherche = record
  • date : string;
  • debut:integer;
  • fin :integer;
  • end{record};
  • type T_recherche = array of recherche;
  • var commande : T_commande;
  • search : recherche;
  • tab_rech: T_recherche;
  • i,j : integer;
  • begin
  • i:=0;
  • j:=0;
  • assign(objet,file_commande);
  • reset(objet);
  • if filesize(objet)<>0 then
  • begin
  • seek(objet,0);
  • read(objet,commande);
  • search.date:=commande.date_commande;
  • search.debut:=i+1;
  • while not eof(objet) do begin
  • if commande.date_commande=search.date then begin
  • read(objet,commande);
  • inc(i);
  • end else begin
  • search.fin:=i;
  • setlength(tab_rech,j+1);
  • tab_rech[high(tab_rech)]:=search;
  • inc(i);
  • inc(j);
  • search.debut:=i;
  • read(objet,commande);
  • search.date:=commande.date_commande;
  • end;
  • end{while};
  • close(objet);
  • end;
  • for j:=low(tab_rech) to high(tab_rech) do begin
  • if (j+1) mod 10 = 0 then
  • begin
  • write('Appuyer sur Enter pour voir la suite....');
  • readln;
  • end{if};
  • with tab_rech[j] do begin
  • writeln('Pour la date du ',date,' les commandes sont comprises entre');
  • writeln('le N° ',debut,' et N° ',fin);
  • writeln;
  • writeln('-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+');
  • End {with};
  • end{for};
  • end{recherche_par_date};
  • procedure menu ;
  • var
  • choix : char;
  • label ici;
  • begin
  • ici:
  • efface_ecran;
  • un_rectangle(1,1,50,27);
  • un_rectangle(1,1,50,7);
  • gotoxy(1,7);write(#204);
  • gotoxy(50,7);write(#185);
  • gotoxy(22,4);write('M E N U');
  • gotoxy(2,2);write('DATE : ',datetostr(date));
  • gotoxy(34,2);write('HEURE : ',timetostr(time));
  • gotoxy(3,9);write('1 - (S)AISIR COMMANDE');
  • gotoxy(3,11);write('2 - (R)ECHERCHER UNE COMMANDE');
  • gotoxy(3,13);write('3 - (D)ECAISSER VENDEUR');
  • gotoxy(3,15);write('4 - (J)OURNAL');
  • gotoxy(3,17);write('5 - (I)NITIALISATION FICHIER');
  • gotoxy(3,19);write('6 - (C)REER PRODUIT');
  • gotoxy(3,21);write('7 - (P)IZZAS A FAIRE');
  • gotoxy(3,23);write('8 - (Q)UITTER');
  • gotoxy(10,26);write('VOTRE CHOIX ? [1,2,3,4,5,6,7,8]');
  • choix := readkey;
  • case upcase(choix) of
  • '1','S',#13 : saisir_commande(com);
  • '2','R' : rechercher_commande ;
  • '3','D' : decaisser_vendeur;
  • '4','J' : journal;
  • '5','I' : initialisation;
  • '6','C' : ajouter_produit;
  • '7','P' : pizza_a_faire;
  • '8','Q' : exit;
  • else
  • begin
  • efface_ecran;
  • gotoxy(5,21);write('Choisir entre [1,2,3,4,5,6,7,8] !');
  • sleep(2000);
  • goto ici;
  • end;
  • end;{case}
  • end {menu};
  • procedure decaisser_vendeur;
  • var i,j : byte;
  • montant_du : real;
  • reponse : char;
  • com : T_les_commandes;
  • num : string[4];
  • label ici, labas;
  • begin
  • com := lire_les_commandes_du_jour(datetostr(date));
  • ici: efface_ecran;
  • fiche_encaissement;
  • j:=0;
  • montant_du :=0;
  • gotoXY(22,13);write('Entrer le code du vendeur : ');
  • repeat
  • gotoXY(50,13);readln(num);
  • until num<>'';
  • for i:=0 to com.nb_commande do begin
  • if num = com.les_commandes[i].code_vendeur then begin
  • gotoxy(8,21+j);write(i);
  • gotoxy(13,21+j);write(com.les_commandes[i].le_client.num_tel);
  • gotoxy(26,21+j);write(com.les_commandes[i].le_client.nom);
  • gotoxy(36,21+j);write(com.les_commandes[i].le_client.adresse);
  • gotoxy(62,21+j);write(com.les_commandes[i].prix_total:0:2);
  • gotoXY(71,21+j);write(TIMEtostr(com.les_commandes[i].heure_commande));
  • montant_du:=montant_du+com.les_commandes[i].prix_total;
  • inc(j);
  • end{if};
  • end {for};
  • gotoXY(12,58);write('Montant total encaisse par le vendeur ',num,' est : ');
  • gotoXY(62,58);write(montant_du:0:2);
  • labas:
  • gotoxy(30,61);write('1-Decaisser 2-Menu');
  • reponse := readkey;
  • case upcase(reponse) of
  • '1','D',#13 : goto ici;
  • '2','M' : menu;
  • else goto labas;
  • end{case};
  • end{decaisser_vendeurs};
  • procedure pizza_a_faire;
  • VAR
  • t : T_les_commandes;
  • i,j,k : integer;
  • begin
  • repeat
  • k:=0;
  • efface_ecran;
  • un_rectangle(5,18,50,60);
  • un_rectangle(5,20,50,60);
  • un_rectangle(12,18,24,60);
  • un_rectangle(35,18,50,60);
  • gotoXY(6,19);write('Qte');
  • gotoXY(15,19);write('Code') ;
  • gotoXY(25,19);write('Num Commande');
  • gotoXY(40,19);write('Duree');
  • t:=lire_les_commandes_du_jour(datetostr(date));
  • for j:=0 to t.nb_commande do begin
  • for i:=1 to t.les_commandes[j].le_client.commande_client.nb_de_pizza-1 do begin
  • t := lire_les_commandes_du_jour(datetostr(date));
  • gotoXY(8,21+k);write(t.les_commandes[j].le_client.commande_client.les_pizzas[i].quantite);
  • gotoXY(17,21+k);write(t.les_commandes[j].le_client.commande_client.les_pizzas[i].code);
  • gotoXY(38,21+k);write(timetostr(time-t.les_commandes[j].heure_commande));
  • inc(k);
  • end{for};
  • end{for};
  • gotoXY(50,60);write('1-Actualiser 2-Menu');
  • until (readkey='M') OR (readkey='m') OR (readkey='2');
  • menu;
  • end{pizza_a_faire};
  • end.
unit  U_pizzaria;

interface

uses  SysUtils,
      crt,
      mes_outils;

const nb_max_pizza         = 30;
      nb_max_de_commande   = 250;
      nb_max_de_clients    = 100;
      tva                  = 0.055;
      file_commande        = 'mina.jul';
      file_commande_annulee= 'cmd_annulee_modifiee.jul';
      file_client          = 'nos_clients.jul';
      file_produit         = 'nos_produits.jul';
type  type_prix            = real;
      T_pizza = record
           code            : string[4];
           libelle         : string[15];
           quantite        : BYTE;
           prix            : type_prix;
           end{record};
      T_tab_pizza          = array[1..nb_max_pizza] of T_pizza;
      T_les_pizzas         = record
           nb_pizza        : byte;
           les_pizzas      : T_tab_pizza;
      end {record};

      la_commande = record
           les_pizzas      : T_tab_pizza;
           nb_de_pizza     : byte;
      end {record};

      T_client = record
           num_tel         : string[10];
           nom             : string[10];
           adresse         : string[26];
           nb_cmd_effectuer: byte;
           commande_client : la_commande;
      end{record};

      T_tab_client         = array[0..nb_max_de_clients] of T_client;
      T_les_clients        = record
           nb_client       : byte;
           les_clients     : T_tab_client;
      end{record};

      T_commande = record
           code_vendeur    : string[4];
           le_client       : T_client;
           prix_total      : type_prix;
           date_commande   : STRING[12];
           heure_commande  : tdatetime;
      end{record};

      T_tab_commande       = array[0..nb_max_de_commande] of t_commande;
      T_les_commandes      = record
           nb_commande     : byte;
           les_commandes   : T_tab_commande;
      end {record};
      fichier_client       = file of T_client;
      fichier_commande     = file of T_commande;
      fichier_produit      = file of T_pizza;

////////////------ LES VARIABLES GLOBALES ----------////////////
                                                              //
var   objet                : fichier_commande;                //
      objet_client         : fichier_client;                  //
      objet_produit        : fichier_produit;                 //
      com                  : T_commande;                      //
      client               : T_client;                        //
////////////////////////////////////////////////////////////////

procedure initialiser_fichier(file_name: string);
procedure initialisation;
procedure ajouter_produit;
procedure fiche_vide(num_commande : SMALLINT);
procedure fiche_vide0;
procedure afficher_prix(out piz : T_pizza;i: byte);
procedure a_faire(phrase : string);
procedure efface_ecran;
procedure fiche_encaissement;
procedure rechercher_commande;
procedure recherche_par_date;
procedure saisir_commande(out comm : T_commande);
procedure afficher_commande(num_cmd: cardinal);
procedure decaisser_vendeur;
procedure pizza_a_faire;
procedure menu;
procedure ecrir_fichier (commande : T_commande);
procedure fermer_fichier(file_name : string);
procedure ouvrir_fichier(file_name : string);
procedure ajouter_client (client : T_client);
procedure modifier_client(num_tel : string) ;
procedure afficher_les_clients;
procedure journal;
procedure sous_menuR;
procedure sous_menuS;
procedure annuler_commande(num_cmd: cardinal);
procedure modifier_commande(num_cmd: cardinal);
procedure commande_precedente(var num_cmd: cardinal);
procedure commande_suivante(var num_cmd: cardinal);



function  est_pizza(const code : string) : boolean;
function  est_valable(const s : string): boolean;
function  est_client (numero_tel : string) : boolean;
function  lire_nos_pizzas(file_produit: string) : T_les_pizzas;
function  lire_une_commande (num_commande : integer) :T_commande;
function  lire_les_commandes_du_jour (la_date : string):T_les_commandes;
function  lire_les_clients(file_client: string) : T_les_clients;
function  lire_un_client (numero_tel: string) : T_client;
function  formatage_fichier (file_name : string):T_les_commandes;
function  nb_total_commande(file_commande : string): byte;



implementation


procedure initialiser_fichier(file_name: string);
begin
        assign(objet,file_name);
        rewrite(objet);
        close(objet);
        a_faire('Fichiers initialises "Enter" pour retourner au Menu principal !');

end{initaliser_fichiers};

procedure initialisation;

Var     reponse : char;
label   la;
procedure fiche;
begin
        efface_ecran;
        un_rectangle(5,5,58,20);
        un_rectangle(5,7,58,20);
        gotoxy(8,6);write('INITIALISATIONS DES FICHIERS');
        gotoxy(7,9);write('1 - TOUS LES FICHIERS');
        gotoxy(7,11);write('2 - FICHIER DES CLIENTS ');
        gotoxy(7,13);write('3 - FICHIER DES PRODUITS ');
        gotoxy(7,15);write('4 - FICHIERS DES COMMANDES');
        gotoxy(7,17);write('5 - FICHIERS DES COMMANDES ANNULEES OU MODIFIEES');
        gotoxy(7,19);write('6 - MENU PRINCIPAL');
        a_faire('Appuyer sur un numero pour initialiser le fichier correspondant !');

end{fiche_produit};

begin
        fiche;
        la:  reponse:=readkey;
        case reponse of
                '1' :   BEGIN
                          initialiser_fichier(file_client);
                          initialiser_fichier(file_produit);
                          initialiser_fichier(file_commande);
                          initialiser_fichier(file_commande_annulee);
                          a_faire('Fichiers initialises');
                          READLN;
                          menu;
                        END;

                '2' :   BEGIN
                        initialiser_fichier(file_client);
                        readln;
                        end;
                '3' :   begin
                        initialiser_fichier(file_produit);
                        readln;
                        end;
                '4' :   begin
                        initialiser_fichier(file_commande);
                        readln;
                        end;

                '5' :   begin
                        initialiser_fichier(file_commande_annulee);
                        readln;
                        end;
                '6' : menu;
                else goto la ;
        end {case};

end{initialisation};

procedure ajouter_produit;

var
        reponse : char;
label   ici, labas;

        Procedure fiche_produit;
        begin
                efface_ecran;
                un_rectangle(5,5,40,20);
                un_rectangle(5,7,40,20);
                gotoxy(8,6);write('A J O U T E R    P R O D U I T');
                gotoxy(6,9);write('CODE PRODUIT :');
                gotoxy(6,11);write('NOM  PRODUIT :');
                gotoxy(6,13);write('PRIX PRODUIT :');
        end{fiche_produit};

        procedure saisir_produit;
        var pizz: T_pizza;
        begin
                fiche_produit;
                assign(objet_produit,file_produit);
                reset(objet_produit);
                repeat
                  a_faire('Entrer le code du Produit ou Q pour Quitter ');
                  gotoxy(21,9);readln(pizz.code);
                  if  (pizz.code ='Q') or (pizz.code ='q')  then begin
                     exit;
                  end;
                until pizz.code<>'';
                repeat
                  a_faire('Entrer le libelle du Produit ou Q pour Quitter ');
                  gotoxy(21,11);readln(pizz.libelle);
                  if  (pizz.libelle='Q') or (pizz.libelle='q') then begin
                     exit;
                  end;
                until pizz.libelle<>'';
                a_faire('Entrer le Prix du Produit ou Q pour Quitter ');
                gotoxy(21,13);readln(pizz.prix);
                seek(objet_produit,filesize(objet_produit));
                write(objet_produit,pizz);
                close(objet_produit);
                ajouter_produit;
        end{saisir_produit};

        procedure rechercher_produit;
        var pizz: T_pizza;
            code :string;

        begin
                fiche_produit;
                repeat
                  a_faire('Entrer le code du Produit ou Q pour Quitter ');
                  gotoxy(21,9);readln(code);
                  if  (code ='Q') or (code ='q')  then begin
                     ajouter_produit;
                  end;
                  until pizz.code<>'';
                  if est_pizza(code) then begin
                     assign(objet_produit,file_produit);
                     reset(objet_produit);
                     while not eof(objet_produit) do begin
                        read(objet_produit,pizz);
                        if code=pizz.code then begin
                            gotoxy(21,11);write(pizz.libelle);
                            gotoxy(21,13);write(pizz.prix:0:2);

                        end{if};
                     end{while};
                     close(objet_produit);
                  end else begin
                  a_faire('Ce produit n''existe pas ! ');

                  end;

                 readln;
                 a_faire('Appuyer sue " Enter " pour continuer...');
                 ajouter_produit;
        end{saisir_produit};


begin


        labas:
        efface_ecran;
        fiche_produit;
        a_faire(' ');
        gotoxy(8,18);write('1- Creer  2- Recherche 3-Menu');
        reponse:=readkey;
        case upcase(reponse) of
                'C','1',#13 : saisir_produit;
                'R','2' : rechercher_produit;
                'M','3' : menu;
                else goto labas;
        end{case};

end{ajouter_produit};

function lire_nos_pizzas(file_produit: string) : T_les_pizzas;
var     i               : integer;
        nos_pizzas      : T_les_pizzas;
        pizza           : T_pizza;

begin
        assign(objet_produit,file_produit);
        reset(objet_produit);
        i:=0;
        nos_pizzas.nb_pizza :=0;
        while not (eof(objet_produit)) do begin
                inc(nos_pizzas.nb_pizza);
                seek(objet_produit,i);
                read(objet_produit,pizza);
                nos_pizzas.les_pizzas[nos_pizzas.nb_pizza]:=pizza;
                inc(i);

        end{while};
        lire_nos_pizzas := nos_pizzas;
        close(objet_produit);


end {lire_nos_pizzas};

function est_pizza(const code : string) : boolean;
var
        pizza           : T_pizza;
        resultat        : boolean;

begin
        assign(objet_produit,file_produit);
        reset(objet_produit);
        resultat:=false;

        while not (eof(objet_produit)) do begin
                read(objet_produit,pizza);
                resultat:= resultat or (code=pizza.code);
        end{while};
        close(objet_produit);
        est_pizza:= resultat;


end {est_pizza};

procedure annuler_commande(num_cmd: cardinal);
var cmd         : T_commande;
     reponse    : char;
begin

        a_faire('Confirmer l''annulation de la Commande (O) ou (N)');
        reponse:=readkey;
        case upcase(reponse) of
        'O',#13 : begin
               cmd:= lire_une_commande(num_cmd);
               cmd.prix_total:=0;
               cmd.le_client.commande_client.nb_de_pizza:=0;
               ouvrir_fichier(file_commande);
               seek(objet,num_cmd-1);
               write(objet,cmd);
               fermer_fichier(file_commande);
               menu;
              end;
        'N' : saisir_commande(com);
        else  saisir_commande(com);
        end{case};
end{annuler_commande};

procedure modifier_commande(num_cmd: cardinal);
var     cmd     : T_commande;
        reponse : char;
label   labas,la,ici;
begin

        gotoXY(11,13);write('Appuyer sur ''ENTREE'' pour modifier la commande');
        gotoXY(11,14);write('Appuyer sur une touche pour aller au Menu principal');
        reponse := readkey;
        case reponse of
                #13 : goto ici;
                else  BEGIN
                                gotoXY(11,13);write('                                                ');
                                gotoXY(11,14);write('                                                   ');
                                GOTO labas;
                      END;
        end{case};
        ici:
        gotoXY(11,13);write('                                                ');
        gotoXY(11,14);write('                                                   ');
        afficher_commande(num_cmd);
        cmd := lire_une_commande(num_cmd);
        with cmd do begin
                with le_client do begin

                        prix_total:=0;
                        commande_client.nb_de_pizza:=1;
                        la:
                        a_faire('Entrer le code du produit ou ''V'' pour Valider ''Q'' pour Quitter');
                        gotoxy(7,20+commande_client.nb_de_pizza);

                        readln(commande_client.les_pizzas[commande_client.nb_de_pizza].code);
                        if (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('q'))
                         or (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('Q'))
                         then
                         begin
                           sous_menuS;
                           exit;
                         end;
                        while (commande_client.les_pizzas[commande_client.nb_de_pizza].code<>'V')
                                or
                                (commande_client.nb_de_pizza=nb_max_pizza) do begin
                                if not est_pizza(commande_client.les_pizzas[commande_client.nb_de_pizza].code) then begin
                                        gotoxy(7,20+commande_client.nb_de_pizza);
                                        write('    ');
                                        gotoxy(7,20+commande_client.nb_de_pizza);
                                        goto la;
                                        end else begin
                                                afficher_prix(commande_client.les_pizzas[commande_client.nb_de_pizza],commande_client.nb_de_pizza);
                                                prix_total := prix_total +
                                                (commande_client.les_pizzas[commande_client.nb_de_pizza].prix *
                                                commande_client.les_pizzas[commande_client.nb_de_pizza].quantite);
                                                inc(commande_client.nb_de_pizza);
                                                gotoxy(60,40);writeln(prix_total:0:2);
                                                a_faire('Entrer le code du produit ou ''V'' pour Valider ''Q'' pour Quitter');
                                                gotoxy(7,20+commande_client.nb_de_pizza);
                                                readln(commande_client.les_pizzas[commande_client.nb_de_pizza].code);
                                                if (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('q'))
                                                    or (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('Q'))
                                                then
                                                begin
                                                   sous_menuS;
                                                   exit;
                                                end;
                                end{if};
                        end{while};
                        ouvrir_fichier(file_commande);
                        seek(objet,num_cmd-1);
                        write(objet,cmd);
                        fermer_fichier(file_commande);
                        labas:
                        a_faire('1-Creer  2-Modifier   3-Annuler  4-Precedente   5-Suivante  6-mEnu');
                        reponse := readkey;
                        case upcase(reponse) of
                                '1','C',#13 : saisir_commande(cmd);
                                '2','M' : modifier_commande(num_cmd);
                                '3','A' : annuler_commande(num_cmd);
                                '4','P' : commande_precedente(num_cmd);
                                '5','S' : commande_suivante(num_cmd);
                                '6','E' : menu;
                                else goto labas;
                        end;

                end {with le_client};
        end {with cmd};


end{modifier_commande};

procedure commande_precedente(var num_cmd: cardinal);
label
        labas;
var
        reponse : char;
begin
        efface_ecran;
        case num_cmd of
                1 :     begin
                                num_cmd:=nb_total_commande(file_commande)-1;
                                afficher_commande(num_cmd);
                        end;
                        else  begin
                                dec(num_cmd);
                                afficher_commande(num_cmd);
                        end;
        end{case};
        labas:
        a_faire('1-Creer   2-Modifier   3-Annuler  4-Precedente   5-Suivante  6-mEnu');
        reponse := readkey;
        case upcase(reponse) of
                '1','C',#13 : saisir_commande(com);
                '2','M' : modifier_commande(num_cmd);
                '3','A' : annuler_commande(num_cmd);
                '4','P' : commande_precedente(num_cmd);
                '5','S' : commande_suivante(num_cmd);
                '6','E' : menu;
                else goto labas;
        end{case};



 end{commande_precedente};

procedure commande_suivante(var num_cmd: cardinal);
label
        labas;
var
        reponse : char;
        n       : byte;
begin
        efface_ecran;
        n :=nb_total_commande(file_commande)-1;
        if num_cmd = n then begin
                num_cmd:=1;
                afficher_commande(num_cmd);
                end else begin
                inc(num_cmd);
                afficher_commande(num_cmd);
        end{if};

        labas   :
        a_faire('1-Creer   2-Modifier   3-Annuler  4-Precedente   5-Suivante  6-mEnu');
        reponse := readkey;
        case upcase(reponse) of
                '1','C',#13 : saisir_commande(com);
                '2','M' : modifier_commande(num_cmd);
                '3','A' : annuler_commande(num_cmd);
                '4','P' : commande_precedente(num_cmd);
                '5','S' : commande_suivante(num_cmd);
                '6','E' : menu;
                else goto labas;
        end{case};

end{commande_suivante};


procedure ecrir_fichier (commande : T_commande);

begin
        assign(objet,file_commande);
        reset(objet);
        seek(objet,filesize(objet));
        write(objet,commande);
        close(objet);
end{ecrir_fichier };

procedure ouvrir_fichier ;

begin
        assign(objet,file_name);
        reset(objet);

end{ouvrir_fichier};

function nb_total_commande(file_commande : string): byte;
var
        n       : byte;
begin
        assign(objet,file_commande);
        reset(objet);
        n := filesize(objet)+1;
        close(objet);
        nb_total_commande := n;
end{num_commande};


procedure fermer_fichier ;
begin
        assign(objet,file_name);
        reset(objet);
        close(objet);
end{fermer_fichier };



function lire_une_commande(num_commande : integer) : T_commande;

var
        commande: T_commande;
begin

        assign(objet,file_commande);
        reset(objet);
        seek(objet,num_commande-1);
        read(objet,commande);
        lire_une_commande := commande;
        close(objet);

end{lire_une_commande };

function formatage_fichier (file_name : string):T_les_commandes;

var
        une_com : T_les_commandes;
        com     : T_commande;
        i       : integer;
begin
        assign(objet,file_name);
        reset(objet);
        i:=0;
        while not(eof(objet)) do begin
                seek(objet,i);
                read(objet,com);
                une_com.les_commandes[i]:=com;
                inc(i);
        end{while};
        une_com.nb_commande:=filesize(objet)+1;
        formatage_fichier := une_com;
        close(objet);
end{formatage_fichier};

function lire_les_clients(file_client: string) : T_les_clients;
var
        clients         : T_les_clients;
        i               : integer;
        un_client       : T_client;

begin
        assign(objet_client,file_client);
        reset(objet_client);
        clients.nb_client := filesize(objet_client);
        i:=0;
        while not(eof(objet_client)) do begin
                seek(objet_client,i);
                read(objet_client,un_client)  ;
                clients.les_clients[i]:=un_client;
                inc(i);
        end{while};
        lire_les_clients := clients;
        close(objet_client);
end{lire_les_clients};

function est_client (numero_tel: string) : boolean;
var
        resultat: boolean;
        clients : T_les_clients;
        i       : integer;
begin
        resultat := false;
        clients := lire_les_clients(file_client);
        for i:=0 to clients.nb_client do begin
                if numero_tel = clients.les_clients[i].num_tel then begin
                        resultat := true;
                end{if};
        end{for};
        est_client :=resultat;
end{est_client};

function lire_un_client (numero_tel: string) : T_client;
var
        clients : T_les_clients;
        i       : integer;
begin
        clients := lire_les_clients(file_client);
        for i:=0 to clients.nb_client do begin
                if numero_tel = clients.les_clients[i].num_tel then begin
                        client:=clients.les_clients[i];
                end{if};
        end{for};
        lire_un_client := client;
end{est_client};

procedure modifier_client(num_tel : string) ;
var
        i       : integer;
        client  : T_client;

begin
        assign(objet_client,file_client);
        reset(objet_client);
        i:=0;
        while not(eof(objet_client)) do begin
                seek(objet_client,i);
                read(objet_client,client)  ;
                if client.num_tel=num_tel then begin
                        writeln('numeror telephone : ',num_tel);
                        writeln('nom: ',client.nom);
                        writeln('adresse: ',client.adresse);
                        writeln('+++++++++++++++++++++++++++++++++++++++++++++');
                        writeln('numeror telephone : ',num_tel);
                        write('nom: ');readln(client.nom);
                        write('adresse: ');readln(client.adresse);
                        seek(objet_client,i);
                        write(objet_client,client);
                        exit;
                end{if};
                inc(i);
        end{while};
        close(objet_client);

end{modifier_client};

procedure modifier_nb_cmd_effectue(num_tel:string;n:smallint) ;
var
        i       : integer;
        client  : T_client;

begin
        assign(objet_client,file_client);
        reset(objet_client);
        i:=0;
        while not(eof(objet_client)) do begin
                seek(objet_client,i);
                read(objet_client,client)  ;
                if client.num_tel=num_tel then begin
                        client.nb_cmd_effectuer:=n;
                        seek(objet_client,i);
                        write(objet_client,client);
                        exit;
                end{if};
                inc(i);
        end{while};
        close(objet_client);

end{modifier_nb_cmd_effectue};

procedure afficher_les_clients ;
var
        i       : integer;
        client  : T_client;

begin
        assign(objet_client,file_client);
        reset(objet_client);
        i:=0;
        while not(eof(objet_client)) do begin
                seek(objet_client,i);
                read(objet_client,client)  ;
                writeln('numeror telephone : ',client.num_tel);
                writeln('nom: ',client.nom);
                writeln('adresse: ',client.adresse);
                writeln('+++++++++++++++++++++++++++++++++++++++++++++');
                inc(i);
        end{while};
        READLN;
        close(objet_client);

end{afficher_les_clients};



procedure ajouter_client (client : T_client);
begin
        assign(objet_client,file_client);
        reset(objet_client);
        seek(objet_client,filesize(objet_client));
        write(objet_client,client);
        close(objet_client);
end{ajouter_client};

function lire_les_commandes_du_jour (la_date : string):T_les_commandes;

var     resultat: T_les_commandes;

        objet           : fichier_commande;
        commande        : T_commande;
begin

        assign(objet,file_commande);
        reset(objet);
        resultat.nb_commande:=0;
        while not eof(objet) do begin
         read(objet,commande);
         if commande.date_commande=la_date then  begin
            inc(resultat.nb_commande);
            resultat.les_commandes[resultat.nb_commande]:=commande;
         end{if};
        end{for};
        lire_les_commandes_du_jour := resultat;

end{lire_les_commandes_du_jour};





procedure journal;

type
        T_chiffre_daffaire = record
                nb_commandes : byte;
                montant      : real;
        end{record};


var
        toutes_les_commandes                    : T_les_commandes;
        i                                       : byte;
        ca_emporter,ca_livraison                : T_chiffre_daffaire;
        chiffre_daffaire_ttc,chiffre_daffaire_ht: real;
        reponse                                 : char;
label
        ici,labas;
procedure trace_du_journal;
begin
        un_rectangle(11,5,70,45);
        un_rectangle(11,10,70,30);
        un_rectangle(11,10,70,12);
        un_rectangle(40,10,55,30);
        gotoXY(20,7);write('J O U R N A L');
        gotoXY(14,17);write('CHIFFRE D''AFFAIRE V.A.E');
        gotoXY(14,22);write('CHIFFRE D''AFFAIRE L.A.D');
        gotoXY(17,35);write('CHIFFRE D''AFFAIRE H.T');
        gotoXY(17,39);write('CHIFFRE D''AFFAIRE T.T.C');
        un_rectangle(50,34,68,36);
        un_rectangle(50,38,68,40);
        gotoXY(41,11);write('Nbre Commandes');
        gotoXY(56,11);write('Montant total');
        gotoXY(52,42);write('T.V.A = ',tva*100:0:2,' %');
end{trace_du_journal};

var     la_date : string[10];
begin
        ici:
        efface_ecran;
        trace_du_journal;
        ca_emporter.nb_commandes:=0;
        ca_emporter.montant:=0;
        ca_livraison.nb_commandes:=0;
        ca_livraison.montant:=0;
        un_rectangle(48,6,68,8);
        gotoXY(13,11);write('HEURE :');
        gotoXY(21,11);WRITE(timetostr(time));
        gotoXY(50,7);write('DATE :',datetostr(date));
        a_faire('Entrer une date pour afficher le Journal ');
        gotoXY(56,7);readln(la_date);
        if la_date ='' then begin
                toutes_les_commandes:=lire_les_commandes_du_jour(datetostr(date));
                end else  begin
                toutes_les_commandes:=lire_les_commandes_du_jour(la_date);
        end{if};
        a_faire(' ');
        for i:=1 to toutes_les_commandes.nb_commande do begin
                with toutes_les_commandes.les_commandes[i] do begin
                        if  (le_client.num_tel ='1') or (le_client.num_tel ='2') then begin
                                ca_emporter.montant := ca_emporter.montant + prix_total;
                                inc(ca_emporter.nb_commandes)
                                end else begin
                                ca_livraison.montant := ca_livraison.montant + prix_total;
                                inc(ca_livraison.nb_commandes)
                        end{if};


                end{with};
        end{for};
        chiffre_daffaire_ttc := ca_emporter.montant + ca_livraison.montant;
        chiffre_daffaire_ht := chiffre_daffaire_ttc - (chiffre_daffaire_ttc*tva);
        gotoxy(45,17);write(ca_emporter.nb_commandes);
        gotoxy(58,17);write(ca_emporter.montant:0:2);
        gotoxy(45,22);write(ca_livraison.nb_commandes);
        gotoxy(58,22);write(ca_livraison.montant:0:2);
        gotoxy(52,35);write(chiffre_daffaire_ht:0:2);
        gotoxy(52,39);write(chiffre_daffaire_ttc:0:2);

        labas:

        gotoxy(30,47);write('1-Journal  2-Menu');
        reponse := readkey;
        case upcase(reponse) of
                '1','J',#13 : goto ici;
                '2','M'     : menu;
                else goto labas;
        end{case};

end{journal};



procedure efface_ecran;
var
        j : byte;
begin

        for j:= 0 to 80 do begin
                gotoxy(0,j);writeln('                                                                                 ');
                gotoxy(1,1);
        end {for};
end{efface_ecran};

procedure fiche_vide(num_commande : smallint);

begin


        un_rectangle(5,5,70,20);
        un_rectangle(5,20,70,41);
        un_rectangle(5,41,70,45);
        un_rectangle(5,20,15,41);
        un_rectangle(25,20,55,41);
        un_rectangle(57,42,68,44);
        un_rectangle(5,18,70,20);
        un_rectangle(5,18,15,20 );
        un_rectangle(25,18,55,20);
        gotoXY(20,3);write ('S A I S I E    D E   C O M M A N D E');
        gotoXY(6,6);write ('CODE VENDEUR  :');
        gotoXY(45,6);write('NUM COMMANDE: ');
        gotoXY(60,6);write(num_commande);
        gotoXY(6,8);write ('NUM TEL       :');
        gotoXY(45,8);write('NOM CLIENT  : ');
        gotoXY(6,10);write('ADRESSE CLIENT:');
        gotoXY(28,16);write('C O M M A N D E');
        gotoXY(6,19);write('Code Prod');
        gotoXY(17,19);write('Quantite') ;
        gotoXY(34,19);write('Nom Produit');
        gotoXY(60,19);write('Prix');
        gotoXY(45,43);write('PRIX TOTAL');

        gotoXY(5,18);write(#204);
        gotoXY(5,20);write(#204);
        gotoXY(5,41);write(#204);
        gotoXY(70,18);write(#185);
        gotoXY(70,20);write(#185);
        gotoXY(70,41);write(#185);
        gotoXY(15,18);write(#203);
        gotoXY(25,18);write(#203);
        gotoXY(55,18);write(#203);
        gotoXY(15,20);write(#206);
        gotoXY(25,20);write(#206);
        gotoXY(55,20);write(#206);
        gotoXY(15,41);write(#202);
        gotoXY(25,41);write(#202);
        gotoXY(55,41);write(#202);


end {fiche_vide};

procedure fiche_vide0;

begin

        un_rectangle(5,5,70,20);
        un_rectangle(5,20,70,41);
        un_rectangle(5,41,70,45);
        un_rectangle(5,20,15,41);
        un_rectangle(25,20,55,41);
        un_rectangle(57,42,68,44);
        un_rectangle(5,18,70,20);
        un_rectangle(5,18,15,20 );
        un_rectangle(25,18,55,20);
        gotoXY(6,6);write ('CODE VENDEUR  :');
        gotoXY(45,6);write('NUM COMMANDE: ');
        gotoXY(6,8);write ('NUM TEL       :');
        gotoXY(45,8);write('NOM CLIENT  : ');
        gotoXY(6,10);write('ADRESSE CLIENT:');
        gotoXY(28,16);write('C O M M A N D E');
        gotoXY(6,19);write('Code Prod');
        gotoXY(17,19);write('Quantite') ;
        gotoXY(34,19);write('Nom Produit');
        gotoXY(60,19);write('Prix');
        gotoXY(45,43);write('PRIX TOTAL');

        gotoXY(5,18);write(#204);
        gotoXY(5,20);write(#204);
        gotoXY(5,41);write(#204);
        gotoXY(70,18);write(#185);
        gotoXY(70,20);write(#185);
        gotoXY(70,41);write(#185);
        gotoXY(15,18);write(#203);
        gotoXY(25,18);write(#203);
        gotoXY(55,18);write(#203);
        gotoXY(15,20);write(#206);
        gotoXY(25,20);write(#206);
        gotoXY(55,20);write(#206);
        gotoXY(15,41);write(#202);
        gotoXY(25,41);write(#202);
        gotoXY(55,41);write(#202);



end {fiche_vide};

procedure fiche_encaissement;
begin
        efface_ecran;
        un_rectangle(5,18,70,60);
        un_rectangle(5,20,79,57);
        un_rectangle(12,18,24,57);
        un_rectangle(35,18,60,57);
        un_rectangle(60,57,70,60);
        un_rectangle(70,18,79,60);
        //gotoxy(2,10);write('DATE : ',datetostr(date));
        //gotoxy(45,10);write('HEURE : ',timetostr(time));
        gotoXY(12,16);write('E N C A I S S E M E N T    V E N D E U R');
        gotoXY(6,19);write('NumCom');
        gotoXY(15,19);write('Numtel') ;
        gotoXY(25,19);write('NomClient');
        gotoXY(40,19);write('Adresse Client');
        gotoXY(63,19);write('Prix');
        gotoXY(72,19);write('Heure');

end{fiche_encaissement} ;

function est_valable(const s : string): boolean;
var

   ss : string;
const intervalle =[48..57];

begin
  ss:=s;
  if (ss='') then est_valable:=true
   else if not(integer(ss[length(ss)]) in intervalle) then
        est_valable:=false

  else begin
        delete(ss,length(ss),length(ss)+1);
        est_valable:=est_valable(ss);
  end{if};

end{est_valable};


procedure afficher_prix(out piz : T_pizza; i: byte);


var     qte     : string[3] ;
        pizza   : T_pizza;

begin

        assign(objet_produit,file_produit);
        reset(objet_produit);
        while not (eof(objet_produit)) do begin
                read(objet_produit,pizza);
                if  piz.code = pizza.code then begin
                        repeat
                        a_faire('Entrer la quantite');
                        gotoxy(19,20+i);write('    ');
                        gotoxy(19,20+i);readln(qte);
                        until  est_valable(qte);
                        if qte='' then begin
                         piz.quantite:=1;
                         gotoxy(19,20+i);write(1);

                         end else piz.quantite:=strtoint(qte);
                        gotoxy(35,20+i);write(pizza.libelle);
                        gotoxy(61,20+i);write(pizza.prix:0:2);
                        piz.prix:=pizza.prix;
                        piz.libelle:=pizza.libelle;

                end{if};


        end{while};
        close(objet_produit);




end {afficher_prix};

procedure a_faire(phrase : string);
begin
  gotoXY(6,47);write('                                                                              ');
  gotoXY(6,47);write(phrase);
end{a_faire};

procedure saisir_commande(out comm : T_commande);
label
        ici,labas,la;
var
        reponse         : char;
        last_commande   : cardinal;
        n               : integer;
        les_commandes   : T_les_commandes;
        procedure saisir_client(out le_client : T_client);
        begin

                le_client.nb_cmd_effectuer:=1;
                repeat
                        a_faire('Entrer le nom du client');
                        gotoxy(60,8);readln(le_client.nom);
                until (le_client.nom<>'');
                repeat
                        a_faire('Entrer l''adresse du client');
                        gotoxy(21,10);readln(le_client.adresse);
                until le_client.adresse<>'';
        end{saisir_client};

        procedure afficher_client(numero_tel: string);
        var
                client : T_client;
        begin
                client := lire_un_client(numero_tel);
                inc(client.nb_cmd_effectuer);
                gotoxy(60,8);write(client.nom);
                gotoxy(21,10);write(client.adresse);
                modifier_nb_cmd_effectue(numero_tel,client.nb_cmd_effectuer);
                if ((numero_tel<>'1') and (numero_tel<>'2')) then begin
                        gotoxy(10,16);
                        write(client.nom,' a commande ',client.nb_cmd_effectuer,' fois chez nous !!');
                end{if};
                comm.le_client:=client;

        end{afficher_client};



begin
        ici:last_commande := nb_total_commande(file_commande);
        les_commandes :=lire_les_commandes_du_jour(datetostr(date));
        n:=les_commandes.nb_commande;
        efface_ecran;
        fiche_vide(n);
        gotoXY(60,6);write(n,'-00',last_commande);
        //fiche_vide(last_commande);
        gotoXY(6,12);write ('DATE :');write(datetostr(date));
        gotoXY(50,12);write ('HEURE :');;write(timetostr(time));
        with comm do begin
                repeat
                        a_faire('Entrer le code du Vendeur');
                        gotoxy(21,6);readln(code_vendeur);
                        if (code_vendeur=('q')) or (code_vendeur=('Q'))  then
                           BEGIN
                              sous_menuS;
                              exit   ;
                           end;
                until code_vendeur<>'';

                repeat
                        a_faire('Entrer le numero de telephone du client');
                        gotoxy(21,8);readln(le_client.num_tel);
                        if (le_client.num_tel=('q')) or (le_client.num_tel=('Q'))  then
                           begin
                              sous_menuS;
                              exit;
                           end;
                until le_client.num_tel<>'';
                with le_client do begin
                        if not(est_client(num_tel)) then begin
                                saisir_client(le_client)
                                end else begin
                                afficher_client(num_tel);
                        end{if};
                        commande_client.nb_de_pizza:=1;
                        prix_total:=0;
                        la:
                        a_faire('Entrer le code du produit ou ''V'' pour Valider ''Q'' pour Quitter');
                        gotoxy(7,20+commande_client.nb_de_pizza);
                        readln(commande_client.les_pizzas[commande_client.nb_de_pizza].code);
                        if (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('q'))
                         or (commande_client.les_pizzas[commande_client.nb_de_pizza].code=('Q'))
                         then
                           begin
                              sous_menuS;
                              exit;
                           end;
                        while (commande_client.les_pizzas[commande_client.nb_de_pizza].code<>'V') or (commande_client.nb_de_pizza=nb_max_pizza) do begin
                                if not est_pizza(commande_client.les_pizzas[commande_client.nb_de_pizza].code) then begin
                                        gotoxy(7,20+commande_client.nb_de_pizza);
                                        write('     ');
                                        gotoxy(7,20+commande_client.nb_de_pizza);
                                        goto la;
                                        end else begin
                                        afficher_prix(commande_client.les_pizzas[commande_client.nb_de_pizza],commande_client.nb_de_pizza);
                                        prix_total := prix_total +
                                        (commande_client.les_pizzas[commande_client.nb_de_pizza].prix *
                                        commande_client.les_pizzas[commande_client.nb_de_pizza].quantite);
                                        inc(commande_client.nb_de_pizza);
                                        gotoxy(60,43);writeln(prix_total:0:2);
                                        a_faire('Entrer le code du produit ou ''V'' pour Valider ''Q'' pour Quitter');
                                        gotoxy(7,20+commande_client.nb_de_pizza);
                                        readln(commande_client.les_pizzas[commande_client.nb_de_pizza].code);
                                end{if};
                        end{while};
                end {with le_client};
                date_commande:=datetostr(date);
                heure_commande:=(time);
                ecrir_fichier(comm);
                if not(est_client(le_client.num_tel)) then begin
                        ajouter_client(le_client);
                end{if};
                labas:
                a_faire('1-Creer   2-Modifier   3-Annuler  4-Precedente   5-Suivante  6-mEnu');
                reponse := readkey;
                case upcase(reponse) of
                        '1','C',#13 : goto ici;
                        '2','M' : modifier_commande(last_commande);
                        '3','A' : annuler_commande(last_commande);
                        '4','P' : commande_precedente(last_commande);
                        '5','S' : commande_suivante(last_commande);
                        '6','E' : menu;
                        else goto labas;
                end{case};
        end{with};

end{saisir_commande};

procedure afficher_commande(num_cmd: cardinal);

VAR     i       : byte;
        n : integer;
        commande:T_commande;
begin
        efface_ecran;
        n:=nb_total_commande(file_commande);
        commande:=lire_une_commande(num_cmd);
        fiche_vide(num_cmd);
        gotoXY(6,12);write ('DATE :');write(Commande.date_commande);
        gotoXY(50,12);write ('HEURE :');;write(timetostr(commande.heure_commande));
        gotoXY(65,6);WRITE('/',n-1);
        with commande do begin
                gotoxy(21,6);write(code_vendeur);
                with le_client do begin
                        gotoxy(21,8);write(num_tel);
                        gotoxy(60,8);write(nom);
                        gotoxy(21,10);write(adresse);
                         for i := 1 to commande_client.nb_de_pizza-1 do begin
                                gotoxy(7,20+i);
                                write(commande_client.les_pizzas[i].code);
                                gotoxy(19,20+i);
                                write(commande_client.les_pizzas[i].quantite);
                                gotoxy(35,20+i);
                                write(commande_client.les_pizzas[i].libelle);
                                gotoxy(61,20+i);
                                write(commande_client.les_pizzas[i].prix:0:2);
                                gotoxy( 60,43);writeln(prix_total:0:2);

                        end{for};
                end {with le_client};
        end{with commande};

end{afficher_commande};

procedure sous_menuR;
var rep : char;
label labas;

begin
labas:
        a_faire('1-Recherche 2-          3-         4-            5-         6-mEnu');
        rep := readkey;
        case upcase(rep) of
                '1','R',#13 : rechercher_commande;
                '6','E' : menu;
                else goto labas;
        end;
end{sous_menu};
procedure sous_menuS;
var rep : char;
label labas;

begin
labas:
        a_faire('1-Creer     2-          3-         4-            5-         6-mEnu');
        rep := readkey;
        case upcase(rep) of
                '1','C',#13 : saisir_commande(com);
                '6','E' : menu;
                else goto labas;
        end;
end{sous_menuS};


procedure rechercher_commande;
var
        num,n   : cardinal;
        reponse : char;
        numero  : string;
label ici, labas;
begin

        ici: efface_ecran;
        n:=nb_total_commande(file_commande);
        fiche_vide0;
        repeat
        gotoXY(60,6);write('          ');
        gotoXY(60,6);readln(numero);
        if (numero=('q')) or (numero=('Q'))  then
                           BEGIN
                              sous_menuR;
                              exit   ;
                           end;
        until est_valable(numero);
        charger(50,10,13);
        if numero='' then
                num:=1
                else
                num:=strtoint(numero);
        if (num < n) AND (num>0) then begin
                afficher_commande(num);

                end else begin
                gotoxy(10,12);write('                                           ');
                gotoxy(10,13);write('                                           ');
                gotoxy(10,14);write('                                           ');
                gotoxy(10,15);write('                                           ');
                gotoxy(10,13);write('Ce numero de commande n''existe pas  !!!');
                BEGIN
                    sous_menuR;
                    exit;
                end;
        end {if};
        labas:
        a_faire('1-Recherche 2-Modifier  3-Annuler  4-Precedente  5-Suivante 6-mEnu');
        reponse := readkey;
        case upcase(reponse) of
                '1','R',#13 : goto ici;
                '2','M' : modifier_commande(num);
                '3','A' : annuler_commande(num);
                '4','P' : commande_precedente(num);
                '5','S' : commande_suivante(num);
                '6','E' : menu;
                else goto labas;
        end;

end {rechercher_commande};

procedure recherche_par_date;
type recherche = record
         date : string;
         debut:integer;
         fin  :integer;
      end{record};
type T_recherche = array of recherche;
var  commande : T_commande;
  search : recherche;
  tab_rech: T_recherche;
  i,j : integer;

begin
  i:=0;
  j:=0;
  assign(objet,file_commande);
  reset(objet);
  if filesize(objet)<>0 then
  begin
  seek(objet,0);
  read(objet,commande);
  search.date:=commande.date_commande;
  search.debut:=i+1;
  while not eof(objet) do begin

    if commande.date_commande=search.date then begin
      read(objet,commande);
      inc(i);
   end else begin
      search.fin:=i;
      setlength(tab_rech,j+1);
      tab_rech[high(tab_rech)]:=search;
      inc(i);
      inc(j);
      search.debut:=i;
      read(objet,commande);
      search.date:=commande.date_commande;
    end;
  end{while};
  close(objet);
  end;
  for j:=low(tab_rech) to high(tab_rech) do begin
  if (j+1) mod 10 = 0 then
      begin
       write('Appuyer sur Enter pour voir la suite....');
       readln;
  end{if};
  with tab_rech[j] do begin
   writeln('Pour la date du ',date,' les commandes sont comprises entre');
   writeln('le N° ',debut,' et N° ',fin);
   writeln;
   writeln('-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+');
  End {with};

  end{for};

end{recherche_par_date};

procedure menu ;
var
        choix : char;
label ici;
begin
        ici:
        efface_ecran;
        un_rectangle(1,1,50,27);
        un_rectangle(1,1,50,7);
        gotoxy(1,7);write(#204);
        gotoxy(50,7);write(#185);
        gotoxy(22,4);write('M E N U');
        gotoxy(2,2);write('DATE : ',datetostr(date));
        gotoxy(34,2);write('HEURE : ',timetostr(time));
        gotoxy(3,9);write('1 - (S)AISIR COMMANDE');
        gotoxy(3,11);write('2 - (R)ECHERCHER UNE COMMANDE');
        gotoxy(3,13);write('3 - (D)ECAISSER VENDEUR');
        gotoxy(3,15);write('4 - (J)OURNAL');
        gotoxy(3,17);write('5 - (I)NITIALISATION FICHIER');
        gotoxy(3,19);write('6 - (C)REER PRODUIT');
        gotoxy(3,21);write('7 - (P)IZZAS A FAIRE');
        gotoxy(3,23);write('8 - (Q)UITTER');
        gotoxy(10,26);write('VOTRE CHOIX ? [1,2,3,4,5,6,7,8]');
        choix := readkey;
        case upcase(choix) of
                '1','S',#13 : saisir_commande(com);
                '2','R' : rechercher_commande ;
                '3','D' : decaisser_vendeur;
                '4','J' : journal;
                '5','I' : initialisation;
                '6','C' : ajouter_produit;
                '7','P' : pizza_a_faire;
                '8','Q' : exit;
                else
                begin
                        efface_ecran;
                        gotoxy(5,21);write('Choisir entre [1,2,3,4,5,6,7,8] !');
                        sleep(2000);
                        goto ici;
                end;
        end;{case}
end {menu};

procedure decaisser_vendeur;

var     i,j             : byte;
        montant_du      : real;
        reponse         : char;
        com             : T_les_commandes;
        num             : string[4];
label ici, labas;
begin
        com := lire_les_commandes_du_jour(datetostr(date));
        ici: efface_ecran;
        fiche_encaissement;
        j:=0;
        montant_du :=0;
        gotoXY(22,13);write('Entrer le code du vendeur : ');
        repeat
                gotoXY(50,13);readln(num);
        until num<>'';
        for i:=0 to com.nb_commande do begin
                if num = com.les_commandes[i].code_vendeur then begin
                        gotoxy(8,21+j);write(i);
                        gotoxy(13,21+j);write(com.les_commandes[i].le_client.num_tel);
                        gotoxy(26,21+j);write(com.les_commandes[i].le_client.nom);
                        gotoxy(36,21+j);write(com.les_commandes[i].le_client.adresse);
                        gotoxy(62,21+j);write(com.les_commandes[i].prix_total:0:2);
                        gotoXY(71,21+j);write(TIMEtostr(com.les_commandes[i].heure_commande));
                        montant_du:=montant_du+com.les_commandes[i].prix_total;
                        inc(j);
                end{if};

        end {for};
        gotoXY(12,58);write('Montant total encaisse  par le vendeur ',num,' est : ');
        gotoXY(62,58);write(montant_du:0:2);
        labas:
        gotoxy(30,61);write('1-Decaisser 2-Menu');
        reponse := readkey;
        case upcase(reponse) of
                '1','D',#13 : goto ici;
                '2','M'     : menu;
                else goto labas;
        end{case};


end{decaisser_vendeurs};
procedure pizza_a_faire;
VAR
        t       : T_les_commandes;
        i,j,k   : integer;
begin
        repeat
                k:=0;
                efface_ecran;
                un_rectangle(5,18,50,60);
                un_rectangle(5,20,50,60);
                un_rectangle(12,18,24,60);
                un_rectangle(35,18,50,60);
                gotoXY(6,19);write('Qte');
                gotoXY(15,19);write('Code') ;
                gotoXY(25,19);write('Num Commande');
                gotoXY(40,19);write('Duree');
                t:=lire_les_commandes_du_jour(datetostr(date));
                for j:=0 to t.nb_commande do begin
                        for i:=1 to t.les_commandes[j].le_client.commande_client.nb_de_pizza-1 do begin
                                t := lire_les_commandes_du_jour(datetostr(date));
                                gotoXY(8,21+k);write(t.les_commandes[j].le_client.commande_client.les_pizzas[i].quantite);
                                gotoXY(17,21+k);write(t.les_commandes[j].le_client.commande_client.les_pizzas[i].code);
                                gotoXY(38,21+k);write(timetostr(time-t.les_commandes[j].heure_commande));
                                inc(k);
                        end{for};

                end{for};
                gotoXY(50,60);write('1-Actualiser  2-Menu');

        until (readkey='M') OR (readkey='m') OR (readkey='2');
        menu;

end{pizza_a_faire};

end.

 Conclusion

merci à Mina Diarra qui m'a aidé à créer ce logiciel.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

29 juin 2005 04:57:15 :
correction d'un bug
29 juin 2005 15:30:30 :
j'ai ajouté le fichier crt.dcu
30 juin 2005 03:58:56 :
rajouter un code source.

 Sources du même auteur

Source avec Zip Source avec une capture CHAT DISCUTER EN RESEAU LOCAL ENTRE AMIS
Source avec Zip Source avec une capture DICTIONNAIRE DE MOTS OSD (WOLOF)
Source avec Zip Source avec une capture DICTIONNAIRE DE MOTS OSD (FRANCAIS)

 Sources de la même categorie

CONVERSION D'UN NOMBRE COMPRIS 0 ET 999999999999999999 (18 C... par Hror
JEU DE BOULE par abdellahsaida
Source avec Zip ALGORITHME DU JEU TETRIS par darrylsite
Source avec Zip LE JEU NGRI-NGRAN par darrylsite
Source avec Zip CONVERSION D' UN NOMBRE EN TOUTES LETTRES par darrylsite

 Sources en rapport avec celle ci

Source avec Zip SCOREUTILS GERER LES SCORES DANS VOS JEUX par f0xi
Source avec Zip Source avec une capture GCONTACT GESTION DE CONTACT AVANCÉE par adelpro
Source avec Zip GESTION DE STOCK DUNE USINE par tlemcen86
Source avec Zip Source avec une capture CYBERCOMPTEUR par HAFTARIFOUAD
Source avec Zip Source avec une capture GFACT - GESTION DE FACTURATION par adelpro

Commentaires et avis

Commentaire de tigrou19 le 29/06/2005 10:45:43

Bonjour,
Il manque crt.dcu ?
Dommage qu'il n'y est pas l'executable
@+Didier

Commentaire de grandvizir le 29/06/2005 10:52:48

Pour CRT, c'est tout à fait normal étant donné que ce prog est classé dans la catégorie "TURBO PASCAL". C'est pas du Delphi... à moins de faire qq adaptations !

Commentaire de julesouley le 29/06/2005 15:29:12

j'ai rajouté le fichier crt.dcu. faite en sorte qu'il y est des erreures et surtout avertissez moi en me les decrivant.

eventuellement si vous avez des suggestions sur la façon dont je l'ai programmé faite moi signe.

il me reste a faire un procédure qui imprime tout ce qui s'affiche à l'écran. aidez moi sur cela.
merci  
                   JuluXP

Commentaire de MAURICIO le 29/06/2005 18:53:08

Franchement je suis tombé sur le c... lorsque j' ai vu la capture d' écran.
Dommage que je ne puisse compiler, t' aurai dû filer l' exe!
Mais la source est très bien écrite, bravo.
A+

Commentaire de Blacknight66 le 30/06/2005 11:28:32

Mes amis je vous propose l'unité CRT que j'ai bidouillée pour le faire fonctionner sous D6/7.

unit crt;

interface
         uses sysutils,windows;

procedure GotoXY(X,Y : byte);
function ReadKey : Char;
function Keypressed : boolean;

implementation

var
   ConHandle,KeyHandle : THandle;
   ConScreenPos        : COORD;

procedure TextColor(X : word);
begin
     SetConsoleTextAttribute(ConHandle,X);
end;

procedure GotoXY(X,Y : byte);
begin
     ConScreenPos.X:= X;
     ConScreenPos.Y:= Y;
     SetConsoleCursorPosition(ConHandle,ConScreenPos);
end;

function ReadKey : Char;
var
   Buf    : TInputRecord;
   Dw     : dword;

begin
     Dw:= 0;
     repeat
           FlushConsoleInputBuffer(KeyHandle);
           ReadConsoleInput(KeyHandle, Buf, 1, Dw);
     until (Buf.EventType = KEY_EVENT);
     Result:= Buf.Event.KeyEvent.AsciiChar;
end;

function Keypressed : boolean;
begin
     Result:= (ReadKey <> #0);
end;

begin
     ConHandle:= GetStdHandle(STD_OUTPUT_HANDLE);
     KeyHandle:= GetStdHandle(STD_INPUT_HANDLE);
end.

Excellent ton code, un peu fouillit (identation !!!), tu pourrais aussi mettre un peut de couleur.

@+

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Connection et gestion de MySQL [ par SMoG ] comment connecter mon executable a ma base de données mysql de chez free, en récupérant des informations ?SMoGhttp://ploofgames.free.fr/ Proprietes de gestion d'alimentation [ par Gysmo ] Existe t'il une commande permettant de modifié les temps de mise en veille de l'ecran?Si oui lakel?!Merci Un prog de gestion de vidéohtèque [ par biose ] Et voilà un super soft pour gérer sa colleciton de DVD, DivX, VHS etc ... un programme de base de donnée écrit avec l'édition personnel !!! Son point gestion d'erreur [ par Stephane ] saluj'ai encor besoin de vos lumieres !voila, je suis en train de faire un client ftp avec nmftp, mais lorsque j'envoi une commande a celui-ci, si il Gestion des espaces dans un nom de fichier ? [ par Fredelphi ] Bonjour,Comment gère-t-on les espaces dans un nom de fichier ?Par exemple je veux créer ou renommer un fichier qui contient des espaces, ca ne marche gestion des champs incrementé (help) [ par okeefe ] voir mon topicça doit pas être trop dureAide Création dynamique d'objet - Gestion des evenements [ par fram ] Bonjour,Quelqu'un peut il me dire comment associer une procédure à un evenement d'un objet créé dynamiquement?Merci Gestion l'heure et date en client et serverur [ par scorpion103 ] Salut!!J?aimerais savoir comment travailler avec NMTime NMDayTime pour connaître l?heure et la date sur mon serveur et pour synchronisé (heure, da Création de composant [ par Chong ] Tout d'abord Merci beaucoup pour ceux qui m'ont répondu...je ne les nommerai pas discrétion.Voilà les mecs (frapading!), j'ai un autre soucciDans le b logiciel de gestion [ par hanenlem ] comment fait-on pour imprimer à l'aide d'un seul bouton une page ? càd le code derrière ?


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales