with Ada.Text_IO; with Ada.Command_Line; with Ada.Strings.Fixed; use Ada.Strings.Fixed; with Ada.Strings.Maps.Constants; with Ada_Store.Trading; use Ada_Store.Trading; with Ada_Store.Trading.Department; with Ada_Store.Trading.Item; with Ada_Store.Trading.Tender; with Ada_Store.User; use Ada_Store; procedure Create_Database is procedure Create_Tenders is begin Ada.Text_IO.Put_Line("creating tender data"); Ada.Text_IO.Put_Line("Tender 1"); Tender.Create_New(Tender_ID => 1, Description => "Cash ", Min_Amount => 0.00, Max_Amount => 99_999.00); Ada.Text_IO.Put_Line("Tender 2"); Tender.Create_New(Tender_ID => 2, Description => "Visa Card ", Min_Amount => 5.00, Max_Amount => 1_000.00); Ada.Text_IO.Put_Line("Tender 3"); Tender.Create_New(Tender_ID => 3, Description => "Cheque ", Min_Amount => 6.00, Max_Amount => 150.00); Ada.Text_IO.Flush; end Create_Tenders; procedure Create_Departments is begin Ada.Text_IO.Put_Line("creating department data"); Ada.Text_IO.Put_Line("Department 1"); Department.Create_New(Department_Number => 1, Description => "Grocery ", Min_Price => 0.0, Max_Price => 50.0); Ada.Text_IO.Put_Line("Department 2"); Department.Create_New(Department_Number => 2, Description => "Produce ", Min_Price => 0.0, Max_Price => 50.0); Ada.Text_IO.Put_Line("Department 3"); Department.Create_New(Department_Number => 3, Description => "Deli ", Min_Price => 0.0, Max_Price => 50.0); Ada.Text_IO.Put_Line("Department 4"); Department.Create_New(Department_Number => 4, Description => "Bakery ", Min_Price => 0.0, Max_Price => 20.0); Ada.Text_IO.Put_Line("Department 5"); Department.Create_New(Department_Number => 5, Description => "Pharmacy ", Min_Price => 1.0, Max_Price => 20.0); Ada.Text_IO.Put_Line("Department 6"); Department.Create_New(Department_Number => 6, Description => "Wines ", Min_Price => 2.0, Max_Price => 100.0, Tax_Rate => 12.5); Ada.Text_IO.Flush; end Create_Departments; procedure Create_Items is begin Ada.Text_IO.Put_Line("creating item data"); Ada.Text_IO.Put_Line("Item 1000101"); Item.Create_New(Item_Number => 1000101, In_Department => 1, Display_Descr => "H. Baked Beans ", Price => 0.20); Ada.Text_IO.Put_Line("Item 1000102"); Item.Create_New(Item_Number => 1000102, In_Department => 5, Display_Descr => "Paracetamol 100x ", Price => 2.49); Ada.Text_IO.Put_Line("Item 1000103"); Item.Create_New(Item_Number => 1000103, In_Department => 3, Display_Descr => "Farmhouse Pate ", Price => 0.99); Ada.Text_IO.Put_Line("Item 1000104"); Item.Create_New(Item_Number => 1000104, In_Department => 6, Display_Descr => "J.Smith Bitter 4x ", Price => 2.38); Ada.Text_IO.Flush; end Create_Items; procedure Create_Users is begin Ada.Text_IO.Put_Line("creating user data"); User.Create_New(User_ID => 1, Name => "Simon Johnston ", In_Department => 1, Level => User.Cashier); User.Create_New(User_ID => 100, Name => "Simon Johnston ", In_Department => 1, Level => User.Manager); Ada.Text_IO.Flush; end Create_Users; procedure Create_Config is Config_File : Ada.Text_IO.File_Type; Config_Name : String := "Ada_Store.Cnf"; begin Ada.Text_IO.Put_Line("creating store config"); begin Ada.Text_IO.Open(Config_File, Ada.Text_IO.Out_File, Config_Name); exception when Ada.Text_IO.Name_Error => Ada.Text_IO.Create(Config_File, Ada.Text_IO.Out_File, Config_Name); end ; Ada.Text_IO.Put_Line(Config_File, "STORENAME=Example Store Ltd."); Ada.Text_IO.Put_Line(Config_File, "ADDRESS-1=100 A Road"); Ada.Text_IO.Put_Line(Config_File, "ADDRESS-2=Bracknell"); Ada.Text_IO.Put_Line(Config_File, "ADDRESS-3=Berkshire"); Ada.Text_IO.Put_Line(Config_File, "Telephone="); Ada.Text_IO.Put_Line(Config_File, "STATION=1"); Ada.Text_IO.Put_Line(Config_File, "RECEIPTHEAD-1=Welcome to Example Store"); Ada.Text_IO.Put_Line(Config_File, "RECEIPTHEAD-2=************************"); Ada.Text_IO.Put_Line(Config_File, "RECEIPTFOOT-1=Thank You"); Ada.Text_IO.Put_Line(Config_File, "RECEIPTFOOT-2=VAT 2=349857-258"); Ada.Text_IO.Close(Config_File); Ada.Text_IO.Flush; end Create_Config; Tenders : Boolean := False; Departments : Boolean := False; Items : Boolean := False; Users : Boolean := False; Config : Boolean := False; begin for Argument in 1 .. Ada.Command_Line.Argument_Count loop declare Arg_String : String := Translate(Ada.Command_Line.Argument(Argument), Ada.Strings.Maps.Constants.Lower_Case_Map); begin if Arg_String = "all" then Tenders := True; Departments := True; Items := True; Users := True; Config := True; exit; elsif Arg_String = "tenders" then Tenders := True; elsif Arg_String = "departments" then Departments := True; elsif Arg_String = "items" then Items := True; elsif Arg_String = "users" then users := True; elsif Arg_String = "config" then Config := True; else Ada.Text_IO.Put_Line("Error: argument " & Ada.Command_Line.Argument(Argument) & " is invalid"); end if; end ; end loop; if Tenders then Create_Tenders; end if; if Departments then Create_Departments; end if; if Items then Create_Items; end if; if Users then Create_Users; end if; if Config then Create_Config; end if; end Create_Database;
Copyright ©
1996 Simon Johnston &
Addison Wesley Longman