Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

need direction on how to enter order 1

Status
Not open for further replies.

DBServices

Programmer
Aug 19, 2010
54
US
Am building a restaurant db. I want to have the servers select the dish and then select the side(s) that come with the dish. My idea is to have a main form that will populate a listbox on it with the relevent items based on the category they selected, such as "Breakfast", "Lunch", etc...Once they select the dish, I want a form to pop up asking how they want their eggs cooked. Then another form asking what sides..Once they select all the info, I want a listbox on the main form populated with the results. I have tables with all the info such as tblMenuItems, tblSides, tblPrepareEggs, tblPrepareMeats, etc...they contain the names of the menu items, sides, how to cook the eggs, how to cook the meats, respectively. I need to be able to select more than one order and possibly make the listbox look like:

Bacon Platter, OE
Home Fries
Toast
Fish & Eggs, OM
Hash Browns
English Muffin

2 coffees


Putting the selected values from the forms in the listbox is where i need help.
I am just beginning this but have my table structure and relatioships complete. I am hoping to get some advice on the best way to go about this. I have been programming in VBA for a few years now; am still a beginner but will go where you tell me to go...Any and all help will be greatly appreciated...Thank you
 
It looks like your are trying to populate a list with data from two fields. I assume one field is the menu Item and the other field is a side or item.
There is three ways to do this

Build your query that has your data for populating the table.
Method 1:
Make a recordset from the query
Loop the recordset and build a string separating the values with a semicolon. Put a space before the sub items your final string looks like
strMenu = “Bacon Platter OE; Home Fries; Toast;Fish & Eggs, OM; Hash Browns; English Muffin"
set the recordsource of the listbox to strMenu the ; tell it where to break

Method 2:
Make a recordset from the query
Loop the recordset
Use the listbox additem method to add a line to the listbox
when adding sub items put in the spaces ex. lstbox.additem " Toast"

Method 3:
Again I assume you have data from two fields.
Make a Union query from the two fields to get the data in this format in a single field. This may be a little tricky to get it sorted in that manner.
If you can do it with a union then make that query your recordsource.

Bacon Platter, OE
Home Fries
Toast
Fish & Eggs, OM
Hash Browns
English Muffin

Would be helpful if you could provide the fields in your query that contains the final data.
 
If it was me, and you say you have vb skills then I would recommend method 2. Method 1 just creates the intermediate string. Method 2 has a little more flexibility. Once I see your query that will help to discuss how to loop the recordset. It may take two loops.
 
to be honest, I haven't even started making any forms yet. I was just wanting some advice before i began so i wouldn't start off in the wrong direction. My main form will have numerous buttons that will determine the category such as dinner, lunch, sides...then I want to make a listbox where they can select the item. Once they select the item, I want to have a couple pop-up forms for selecting the relevent sides and how they want their meats cooked. I want to put all this info into another listbox on the main form so they can view the whole order for accuracy. I will eventually want that order printed out on a ticket printer in the kitchen but that's later down the road...Here are a couple questions: the pop-up forms will have a listbox where they can select the sides, once they select, should i put all this into a temp table? because this info needs to be stored until the order is paid for. I can make a few temp tables for the main dish, sides, extras, drinks, and so on...and then make a recordset that will pull all that into the listbox....Thank you for all your help and I really appreciate it...BTW, I like number two in your response too...thanks.
 
I would recommend before you start,post your table structure and let us take a look at it. This design is not super hard, but what you are suggesting is probably a somewhat complex data structure. If you get your table structure correct, doing all of this will be far easier than if you get it wrong. This sounds like it will be a pretty good exercise in data normalization. You will likely have several Many-to-many relationships. If you get the many to many right then your data will be nice and succinct, otherwise it may be very difficult to work with. From first read it appears your table structure is not correct, and you actually have too many tables. If you look at faq700-6905 it provides a module for documenting your tables, or you can do it by hand.

Everyone wants to focus on forms first, but that is all easy if the data structure is correct.
 
Here is an example of method 2. It read from the Categories table and enters the category, then reads the related products and list them under their category. It provides the stepped affect. You will likely need something similar. Here is a demo

Code:
Private Sub Form_Load()
  Call loadList
End Sub

Public Sub loadList()
  Dim rsCategory As DAO.Recordset
  Dim rsProduct As DAO.Recordset
  Dim lst As Access.ListBox
  Dim strSql As String
  Dim catID As Integer
  Dim catName As String
  Dim prodName As String
  Dim prodID As Integer
  
  strSql = "Select CategoryID, CategoryName from Categories"
  Set lst = Me.List0

  With lst
   .RowSourceType = "Value List"
   .ColumnCount = 2
   .ColumnWidths = "0;1440"
  End With

  Set rsCategory = CurrentDb.OpenRecordset(strSql, dbOpenForwardOnly)
  
  Do While Not rsCategory.EOF
    catID = rsCategory!CategoryID
    catName = rsCategory!categoryName
    lst.AddItem (catID & ";" & UCase(catName))
    strSql = "Select ProductId, ProductName from Products where CategoryID = " & catID
    Set rsProduct = CurrentDb.OpenRecordset(strSql, dbOpenForwardOnly)
    Do While Not rsProduct.EOF
      prodID = rsProduct!productID
      prodName = rsProduct!productName
      lst.AddItem (prodID & ";" & "---" & prodName)
      rsProduct.MoveNext
    Loop
    rsCategory.MoveNext
  Loop
End Sub
 
MajP;
Thank you very much for your input, I will definitely follow your advice and I appreciate your responses..I just joined this site but I can tell I will be here a lot! I am at work now but when I get home tonight I will post the db but I haven't done that before so I need to know how to get you the database...I assume its "step 3" below...Until then, thank you again.
 
You do not need to post you database, but describe the table structure and how they relate to other tables. Normally done something like

tableName
fieldOneName (Primary Key)
fieldTwoName (maybe some note here)
fieldThreeName (This is a foreign key relating to tableX)
.....

You can type this yourself or the FAQ I listed has some code to do this for all of your tables.
 
I copied your code and ran the functions...Here's what I have so far...Some tables are not going to be used but I made them just in case...

tblBreads
BreadID dbLong PrimaryKey
Bread dbText

tblBreakfastMeats
BreakfastMeatID dbLong PrimaryKey
BreakfastMeat dbText

tblBreakfastSides
BreakfastSideID dbLong PrimaryKey
BreakfastSide dbText
Price dbCurrency
Prompt dbBoolean

tblChooseFrenchToast_PancakeQty
ChooseID dbLong PrimaryKey
ChooseQty dbLong
QtyPrice dbCurrency

tblCustomers
CustomerID dbLong PrimaryKey
CustomerName dbText Required
CustomerNotes dbText
DeliveryAddress dbText
ZipCode dbText
DeliveryRemarks dbText
DeliveryCharge dbCurrency
PhoneNumber dbText Required
CompanyName dbText
EmailAddress dbText
CustomerSinceDate dbDate
TotalSpent dbSingle
AverageOrder dbSingle
LastOrderDate dbDate
LastOrderAmount dbSingle

tblDineInTableGroups
TableGroupID dbLong PrimaryKey
TableGroupText dbText Required

tblDineInTables
DineInTableID dbLong PrimaryKey
DineInTableText dbText Required
TableGroupID dbLong ForiegnKey Required
DineInTableActive dbBoolean Required
MaxGuests dbLong

tblEmployees
EmployeeID dbLong PrimaryKey
FirstName dbText Required
LastName dbText Required
SocialSecurityNumber dbText
MailingAddress dbText
MailingZipCode dbText
DateHired dbDate
DateReleased dbDate
EmployeeActive dbBoolean
JobTitleID dbLong ForiegnKey Required
SecurityLevelID dbLong Required
EmployeeNotes dbText
EmployeeIsDriver dbBoolean

tblExtras
ExtrasID dbLong PrimaryKey
Extra dbText
Price dbCurrency

tblInventoryGroups
InventoryGroupID dbLong PrimaryKey
InventoryGroupText dbText Required
InventoryGroupActive dbBoolean Required

tblInventoryItems
InventoryItemID dbLong PrimaryKey
InventoryItemText dbText Required
InventoryItemUnitSpecs dbText Required
InventoryItemDescription dbText
InventoryItemGroupID dbLong ForiegnKey Required
InventoryItemLocationID dbLong ForiegnKey Required
ItemDisplaySeqNumber dbLong Required
InventoryItemActive dbBoolean Required
CurrentQtyOnHand dbSingle Required
CurrentValueOnHand dbSingle Required
CurrentUnitCost dbSingle Required
LastUpdateDateTime dbDate
InventoryVendorID dbLong Required
ReOrderLevel dbSingle Required
TotalItemsPerPackSize dbLong

tblInventoryLocations
InventoryLocationID dbLong PrimaryKey
InventoryLocationText dbText Required
InventoryLocationActive dbBoolean Required

tblJobTitles
JobTitleID dbLong PrimaryKey
JobTitleText dbText
SecurityLevel dbLong
PayBasis dbCurrency

tblMenuCategories
MenuCategoryID dbLong PrimaryKey
MenuCategoryText dbText

tblMenuGroups
MenuGroupID dbLong PrimaryKey
MenuGroupText dbText
MenuCategoryID dbLong

tblMenuItems
MenuItemID dbLong PrimaryKey
MenuItemName dbText
MenuItemDescription dbText
HasEggs dbBoolean
HasBreakfastMeat dbBoolean
MeatSpeciallyCooked dbBoolean
HasBreakfastSides dbBoolean
MenuCategoryID dbLong ForiegnKey
MenuGroupID dbLong ForiegnKey
InStock dbBoolean
Taxable dbBoolean
MenuItemCost dbCurrency
MenuItemPrice dbCurrency
DoubleMeatPrice dbCurrency

tblOrders
OrderID dbLong PrimaryKey
EmployeeNumber dbLong ForiegnKey
TableNumber dbLong ForiegnKey
Guests dbLong
Amount dbCurrency
AmountPaid dbBoolean
TheDate dbDate
CustomerID dbLong ForiegnKey
TakeOut dbBoolean
DineIn dbBoolean
Delivery dbBoolean
Comments dbText

tblPrepareEggs
BreakfastPreparedID dbLong PrimaryKey
PreparedName dbText

tblPrepareMeats
PrepareMeatID dbLong PrimaryKey
PrepareMeat dbText



xxxxxxxxxxxxx Relationships xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Name: tblCustomerstblOrders
Table: tblCustomers
Foreign Table: tblOrders
PK: CustomerID FK:CustomerID

Name: tblDineInTableGroupstblDineInTables
Table: tblDineInTableGroups
Foreign Table: tblDineInTables
PK: TableGroupID FK:TableGroupID

Name: tblDineInTablestblOrders
Table: tblDineInTables
Foreign Table: tblOrders
PK: DineInTableID FK:TableNumber

Name: tblEmployeestblOrders
Table: tblEmployees
Foreign Table: tblOrders
PK: EmployeeID FK:EmployeeNumber

Name: tblInventoryGroupstblInventoryItems
Table: tblInventoryGroups
Foreign Table: tblInventoryItems
PK: InventoryGroupID FK:InventoryItemGroupID

Name: tblInventoryLocationstblInventoryItems
Table: tblInventoryLocations
Foreign Table: tblInventoryItems
PK: InventoryLocationID FK:InventoryItemLocationID

Name: tblJobTitlestblEmployees
Table: tblJobTitles
Foreign Table: tblEmployees
PK: JobTitleID FK:JobTitleID

Name: tblMenuCategoriestblMenuGroups
Table: tblMenuCategories
Foreign Table: tblMenuGroups
PK: MenuCategoryID FK:MenuCategoryID

Name: tblMenuCategoriestblMenuItems
Table: tblMenuCategories
Foreign Table: tblMenuItems
PK: MenuCategoryID FK:MenuCategoryID

Name: tblMenuGroupstblMenuItems
Table: tblMenuGroups
Foreign Table: tblMenuItems
PK: MenuGroupID FK:MenuGroupID


 
the inventory tables are only there in case I want to track inv later on...product levels aren't an issue either for now...that said, should i make a tblOrderLines to hold individual orders on a one to many relationship between the tblOrders and tblOrderLines? because once the order is submitted, I will need to store the order until it is paid for and maybe a few reports down the road to track how many of certain items have been sold for statistical analysis...Like I said, I want to start off in the right direction, I don't want to stumble my way along so i thank you for all your help...
 
Most of your design looks good and thought out. Good naming convenstions. However, for the original discussion you are not showing the hard part. How do all these reference tables get related into an order Detail.
Table design is an art as much as a science, and it is sometimes hard to make decisions without knowing the end state of how everything will come together. With that in mind, here are some initial thoughts. They may not be correct based on how everything comes together. I will only focus on the things that will go into making the orderdetails (The table that relates and individual order to the order and the menu item choices to the menu item).

First I would be combine these into a single table (I assume this is over easy, poached, or rare, medium)

tblPrepareEggs
tblPrepareMeats

into

tblPrepareFood
PrepId
prepName (poached,...rare, boiled, steamed, etc)
foodType (meat, egg, fish)
On a form you can query by type to get the correct set of pulldown choices based on item ordered.

However, when you start putting your order details what gets related to a food preparation? Is it a menu item or the sub elements in the menu item. So if I order the surf and turf. Do I relate food preparation of Broiled, and Rare to the menu item, does it simply become a single note, or do you plan to have some relation to the subitems in the menu item. If it is the sub items then I see no table that supports that. In other words (level of detail):

surf and Turf Broiled,Rare
or
surf and Turf Broiled
Rare
or
surf and Turf Lobster Broiled
Steak Rare

I think menu choices relate to a menu Item.
so if I order the surf and turf my choices for that menu item are
potato baked
hushpuppies
salad

So I think you can combine

Should be able to combine all of these
tblBreads
tblBreakfastMeats
tblBreakfastSides
tblExtras
into

tblMenuChoices
menuChoiceID
MenuChoicDescription
menuChoiceType (breakfeastMeat,Extra, Bread, breakfeastSide)
Price

Ok then you could relate menu choices to menu items and food preparation to menuChoices. But that may mean that you you would also have to put lobster and steak in here so you can relate a food preparation to it.

Now it gets a little tricky.
You have extras with a price. I would think the menu choices are the things that make up a menuItem and should have a price (additional) if they add to the cost of the menu item.

However I would think tblExtras just becomes a menu item of category "extra" versus category "seafood,breakfeast..."

So you Pull up and order and add generic personID (P1,P2,P3...pN) that way you know which menu items go to which person.
Then you add the menu item. Then pop open the menu item details and assign the choices and preparation types. The tblOrder_Details could have other additional fields that are unique to that selection.

tblOrder_Details
order_SelectionID (PK autonumber)
orderID_fk (fk)
personID
menuItemID_fk (fk)
... other fields unique to this person ordering a menu item

tblMenu_ItemDetails
OrderSelectionID_fk
menuChoiceID_FK
foodPrepID_FK
 
I like the idea of combining the tables and classifying them by type...Am working on that now...However, I have a couple questions: there are a few variables pertaining to each menu item. Let me type a few menu items so you can see....

Breakfast Platters
All served with 2 lg eggs; Choice Of: grits, or hash browns, or home fries, or sliced tomatoes AND toast, or biscuit or english muffin..

Sliced Pork Tenderloin
grilled or fried 6.25

New York Strip & Eggs
9.95


Sausage OR Bacon & Cheese Omelet
sausage or bacon 6.50
double the meat 7.50
(not platter, but same choices as above)

Sourdough French Toast
One 1.50 Two 2.75 Three 3.95


1.) "New York Strip & Eggs" is the breakfast item. Once user selects this item, how can i make this a certain type so a form will pop up and FIRST ask how they want the steak cooked, and then SECOND, how to cook the eggs, and then THIRD, what sides they want? And how to differ this item and it's type to another that doesn't have as many choices like the french toast that only needs to select how many they want???? Are the boolean fields in the MenuItem table that say "HaveEggs" and "HasBreakfastMeats" good enough for this? If so, I can loop through a rs once an item is selected and have forms pop up according to which field has a value of true...

2.) Why would tblMenuItemDetails be related to OrderSelectionID and menuChoiceID and foodPrepID and not tblMenuItems? Is it because it is basically a "consolodation" of the other three???


























 
One thing, do not try to digitize your paper menu, but automate your process.

In regards to these examples
Sausage OR Bacon & Cheese Omelet
sausage or bacon 6.50
double the meat 7.50
(not platter, but same choices as above)

Sourdough French Toast
One 1.50 Two 2.75 Three 3.9

It is only written like that to save space in a paper menu. But in a database the space (as long as you have good filtering) is meaningless. Just turn these options into menu items. So instead of picking french toast and then some other field descriptor for 2 pieces, just pick the 2 piece french toast option.

Thus with these fields in mind
MenuItems
MenuItemID dbLong PrimaryKey
MenuItemName dbText
MenuItemDescription dbText
MenuCategoryID dbLong ForiegnKey
MenuGroupID dbLong ForiegnKey
MenuItemPrice dbCurrency

Category: Sausage Or Bacon & Cheese Omelet
1 Sausuage & Cheese Omelet 6.50
2 Bacon & Cheese Omelet 6.50
3 Double Sausage & Cheese Omelet 7.50
4 Double Bacon & Cheese Omelet 7.50
Category: Sourdough French Toast
5 1 Piece French Toast 1.50
6 2 Piece French Toast 2.75
...
Bottom line, I would turn a lot of choices into specific menu items.

Now when picking a menu item I still need to define choices. How the item is prepared and the sides. Hopefully if it is a quantity issue (1,2,3 french toast) I can handle that be just making more specific menu items.

To prompt the user for choices remove the boolean fields from the menu item table, and instead make a required choices table. This is not totally normalized, but should work.

tblRequiredChoices
menuItemID_FK
Choicedesc
choiceType
menuChoiceID_FK

So for New York Strip & Eggs (NYS&E), you need to determine food prep for New York Strip (NYS), and food Prep for Eggs, and pick two sides. The data is

NYS&E SteakPrep FoodPrep NewYorkStrip
NYS&E EggPrep FoodPrep Egg
NYS&E Side1 PickSide
NYS&E Side2 PickSide

So you pick an NYS&E, it goes to the required choices table and loops the records. The first record prompts you for the Food Preparation of the New York Strip. You select Rare and it runs an insert query into the table
tblMenuItem_Details
1234 NewYorkStrip Rare

Then reads the next record and prompts for egg prep and inserts
1234 Egg OverEasy
Then Reads the next record and prompt for first side and inserts
1234 Bacon
Then reads the next record and prompts for second side, and then inserts
1234 EnglishMuffin
 
Thank you MajP...You have helped me so much. I like the way you have laid this out and the flow of the order entry is right on time...You have given me enough to chew on for a few days but I am not understanding one thing... The required choices table is a great idea and I have deleted the boolean fields out of the menuItem table. Since some items have choices and some don't, I am going to make one boolean field in the menuItem table for "required choices"...Once user selects the item, if "required choices" is true then that will start process of looping the requiredChoices table and selecting the way it's prepared and the relevent sides...But I am not fully understanding

"So for New York Strip & Eggs (NYS&E), you need to determine food prep for New York Strip (NYS), and food Prep for Eggs, and pick two sides. The data is

(don't understand this; where is this data?)

NYS&E SteakPrep FoodPrep NewYorkStrip
NYS&E EggPrep FoodPrep Egg
NYS&E Side1 PickSide
NYS&E Side2 PickSide

So you pick a NYS&E, it goes to the required choices table and loops the records. The first record prompts you for the Food Preparation of the New York Strip."

Once I pick NYS&E; it goes into the required table and loops. What values are the fields holding? I saw the field names but don't understand what the criteria of the loop is that runs the insert query... and i am not understanding the "data"...If you could go into a little more detail for me I'd really appreciate it because I like the way this is going. It's going to make my forms much easier..
Thank you again...
 
For every menu item that has choices (food preparation type, sides, maybe amount), I would populate a table with the things to prompt the user. This table basically holds what needs to be prompted and additional data.

tblRequiredChoices
menuItemID_FK
Choicedesc
choiceType
menuChoiceID_F

For NYS&E you first need to prompt the user for how they want their steak cooked. So you can have the following record in the required choices table.

NYS&E SteakPrep FoodPrep NYStrip

With a little code this would tell me to present the user with a form to choose a food preparation for their NYStrip and then apply an insert query to add a record to the tblMenu_ItemDetails assigning a food prep FK to the nystrip. Here is the menu details table (as you mentioned I do not need a menu item ID FK, because each record in the orderdetails is uniquely defined by the orderSelectionID_FK. Also I should have had menuChoiceID_fk)

tblMenu_ItemDetails
OrderSelectionID_fk
menuChoiceID_FK
foodPrepID_FK

and once inserted the record would look like
OSid123 NYStrip Rare
Then prompt for the eggs based on this record
NYS&E EggPrep FoodPrep Egg
and insert into tblMenuItem_Details and you would have
OSid123 NyStrip Rare
OSid123 Eggs OverEasy

Then prompt for your sides based on
NYS&E Side1 PickSide
NYS&E Side2 PickSide

Then Prompt for side 1,then side 2...
OSid123 NyStrip Rare
OSid123 Eggs OverEasy
OSid123 Hbrown
OSid123 Bacon

Not sure if this explains better. It is a little complicated to talk through. If I get some time I will try to demo some code.
 
Really appreciate what you wrote...Thank you! I will work on this for a while but if you do get time, that code would be very helpful...I understand what you are doing now, you are making the requiredChoices table hold all the menu items that have choices. Once the user selects the menu item, it loops through and sees if the item they selected is in the table and then triggers the necessary forms to prompt for the info needed to complete the order...Very good idea, I will make it do that...If you're ever in Dahlonega, Ga., dinner is on me! Thanks again...I'll keep you up to date.
 
There are pretty many ways to tackle this, so do not get too sold on one approach. This is one of those projects where you have to put in some real data and see if it is useable.

Another thing you may want to consider. This may be a case where you do want to denormalize your db. In your order details table, you may want to to run insert queries to populate the table data instead of linking to your reference tables. This is more a gut feeling, from seeing these types of databases. The reason is you have a lot of reference tables/defaults. However when building an order_details, there can be so many exceptions. If you link to the defaults then you are stuck, but if you actually insert the data then it is editable. A simple example could be Price. You get that through the MenuItem. If you want to sum up the order cost you sum up the related menu items cost. But if I want to comp the cost, I can not do it without some other field. If I inserted this value instead of linking to it it is editable.
Take a look at that concept, it could simplify a lot of things. It may even allow you to get rid of the menuItem_details.

 
I would expect in this type of DB you want to be able to click and select choices. Access does not provide and easy way to do this natively. I find one of the best controls for this is a vb listview. It is a more flexible listbox with checkboxes. It is a little bit of a bear to load, and it is not the best documented control. But it provides a lot of formatting options not available in a listbox. Here is a demo.
That is a way off, but you may find it interesting.
 
Yea, I am glad you said that. I already thought a little about that because everyday we have specials that change and I want to be able to insert my values into the details table...Thanks again for all your help...I will keep you posted on my progress..
 
I have two things I can't seem to figure out... Once the user selects the menu item it inserts a rec in the OrderDetails table. (There is a one-to-many relationship here based on OrderID, one order to many lines depending on how many guests there are). Then I have a couple forms that pop up and ask how they want their meat cooked, eggs cooked, and what two sides they want, one after the other. Now, once the user selects the "rare" option, I run an update query to update the MeatCooked field in the OrderDetails table (the record was created when they selected the MenuItem) but I can't figure out how to get to the correct line.
tblOrders
OrderID_PK
TableNumber
Guests
DineIn
TakeOut
Delivery
* and a few more fields

tblOrderDetails
OrderSelectID_PK
OrderID_FK
PersonID
MenuItemID_FK
MeatPrep
EggPrep
Side1
Side2

So each rec in this table represents what one person ordered:

LineX OrderX PersonX NYS&E Rare OE HashBrowns Toast

When "Rare" is selected in my pop up form, How can I make a where statement that will update the right line? I can't figure out how to get it like, UPDATE tblOrderDetails (MeatPrep) VALUES a variable name WHERE OrderSelectID = a variable name AND PersonID = a variable name??

My second prob is I have a ChooseSides form for choosing the sides that go with the menu item selected. It has a list box, multi-select, and I want them to select both sides. How do I get the first selection into the Side1 field and the second into the Side2 field of the tblOrderDetails?

Other than this stuff, everything is coming along fine. I didn't use the tblMenuItemDetails because the OrderDetails table will hold the lines pertaining to each order.
Thank you for all your help...:)

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top