Fruit Stand: TinyDb Namespace sample

Fruit Stand

May 2020

Fruit Stand

Motivation

Sample Run

Purchasing screenshots

Designer

Price and Sales Storage

Setting Prices

when lpkFruitPrices BeforePicking

when lpkFruitPrices AfterPicking

when btnSave Click

Starting a Sale

when lpkFruit BeforePicking

when lpkFruit AfterPicking

Quantity

when btnAdd Click

Show_sales

Describe

Quantity

Price

Cost

when lpkSale AfterPicking

Gallery Link

More Projects

Motivation

This sample app is designed to show how to use multiple TinyDB Namespaces in a simple application. It also shows how to add up a list of costs to get a total cost.

The app was developed for https://groups.google.com/d/msg/mitappinventortest/NF6j--NJc-E/hPfG8JDwFQAJ

Sample Run

A List Picker menu lets you set up your price list or jump into setting up a sale.

The Fruit Prices Arrangement lets you set up fruits (i.e. Cackle Fruit, sold by the dozen) and their prices ($3.49 per dozen).

Purchasing screenshots

The Purchases Arrangement lets you build a sales list for the current customer, telling which items they are buying and how many (or how much) of each item they want.

For convenience, there is a +1 button to increase the quantity requested on the current item. Here the customer decided he needs an extra dozen Cackle Fruit, so his total cost went up from $8.01 to $11.51. (Extra items in his purchase are not shown in this screen shot. They are in the scrollable label at the bottom.)

Designer

At the top of Screen1 is the list picker lpkMenu, which lets you pick which of the two vertical arrangements you want to work in, varPrices or varSales. Only one of them is visible at a time.

Price and Sales Storage

Two TinyDBs are used for this app,

  • TinyDB_Prices keeps the price per item type, indexed by item type. It stays relatively stable (assuming low inflation.)
  • TinyDB_Purchases keeps the quantity of each item type bought for the current purchase in progress. It is cleared after each purchase for the next customer.

Notice the different Namespace attributes for the two TinyDBs. That’s critical to keep the tag values apart, since all the tags (item types) in TinyDB_Purchases are copied from the tags in TinyDB_Prices.

Setting Prices

(see Sample Run for screen shots)

when lpkFruitPrices BeforePicking

The list of fruit types in the price list comes from the tags in TinyDB_Prices, and is used to load the Elements list of lpkFruitPrices, which is used to select the fruit type for which we want to set a unit price. An extra element “(+)” is added to the front of the list to offer the option of adding a new item to the price list.

when lpkFruitPrices AfterPicking

The list picker lpkFruitPrices is used to prime two text boxes with their initial values:

  • txbFruit.Text contains the selected fruit name (or blank if new)
  • txbUnitPrice.Text contains the lookup value for the selected fruit, or whatever entered value if new.

when btnSave Click

The Save button adds or replaces a unit price into TinyDB_Prices. To signal completion, it clears the txbUnitPrice text box and hides the keyboard.

It does a little bit of data cleaning to make sure the price is a number, or 0.

Starting a Sale

The sales process uses two List Pickers,

  • lpkFruit for selecting a fruit type from the price list and adding it to the current sale
  • lpkSale for displaying the current running subtotals of this sale and giving the opportunity to go back and change item quantities before sale completion.

when lpkFruit BeforePicking

The options to buy fruit come from the price list in TinyDB_Prices’ tag list.

when lpkFruit AfterPicking

When a fruit type is selected, the quantity for that fruit type in the current sale is retrieved by procedure quantity based on lpkFruit.Text, the current Selection.

Quantity

when btnAdd Click

Button btnAdd is used to store the new quantity for the Selected fruit type to TinyDB_Purchases. Afterwards, we update the display and ListPicker lpkSales via routine show_sales.

Show_sales

The list picker lpkSale is serving double duty here. Its .Text value is built up to show all the purchases in TinyDB_Purchases, with price and cost, separated by ------- and new lines (\n).

Procedure describe is used to build each Element in lpkSale and procedure cost is used to calculate the cost of each purchase in TinyDB_Purchases. (See Purchasing screenshots)

Describe

The description of an item on the simulated cash register tape is built up from the purchased item type, the quantity of that item, its unit price, and the cost for that quantity of that item type.

Quantity

Price

Cost

when lpkSale AfterPicking

Picking an item off the simulated cash register tape in lpkSale sets it up in lpkFruit.Text for the item type and txbQuantity for the current quantity of that purchase, should the customer decide to change it via btnAdd.

Gallery Link

More Projects

3 Likes
Would anyone be willing to assist me in developing a bookkeeping app?
Set next table arrangment to visible to true
How do we manage multiple virtual screens without getting confused?
Im trying to make a store app in App inventor using dynamic components nothing works HELP AS SOON AS POSSIBLE
I have 4 checkbox that user will need to check two and in next screen it will appear the picture, Do I have manually put that one checkbox and two checkbox then add to list item and to all possible user answer? or is there any shorcut for it
I want to create a checkout system
How can I resolve these list errors?
How do you make a store with inventory?
Add to Cart System
How do I Save Multiple Items plain in TinyDB (Without Using a List)? I am working with the given code, but it only works for the first item. Please help me fix it
How do I Save Multiple Items plain in TinyDB (Without Using a List)? I am working with the given code, but it only works for the first item. Please help me fix it
Price calculator
How can I save items along with their quantity and total amount from one screen to the checkout screen? I have shared the screenshots of both screens. Please help me fix this issue.
Hey everyone! I've been making a store in app inventor for awhile now. But when I click on one of the product, it brings up another product. Any ideas on how to fix this?
Creating a Shop screen in my project. How would I use the spreadsheet component
Food ordering app like grab
Zugriff auf myDB in mehreren Screens
“Select list item” Error in Proceeds Report (List Length Issue)
How do I do this shopping cart exercise?
Hi, I have few text boxes for getting user inputs like TextBox1,TextBox2 etc
Getting started

A post was merged into an existing topic: How do I Save Multiple Items plain in TinyDB (Without Using a List)? I am working with the given code, but it only works for the first item. Please help me fix it