Home › Forums › Knowledge Base › Other Modules › Basic Inventory Technical Document
- This topic has 0 replies, 1 voice, and was last updated 19 years ago by
Rob.
-
AuthorPosts
-
April 14, 2006 at 1:16 pm #1495
Rob
MemberBasic Inventory Technical Document
Last edited: January 04, 2004 07:58 AM
This is a basic inventory program. It is designed to provide an easy to use interface for collecting the data necessary for calculating food cost.
Download Basic Inventory
Installation
There are two files to distribute for this program. They are: BasicInv.EXE and BasicInv.RES. An executable and resource file. The executable is the core program and the resource file contains screen input/output information as well as other required information.
Required files:
* Basicinv.EXE – executable program file
* Basicinv.RES – resource file
Required subdirectories:
* CHECKS
* DATA
* INV
* INVRECIPE
* REPORTS
1. Place the required files in the TOUCHNET directory
2. Create a subdirectory called INV off the application subdirectory.
3. Create a subdirectory called INVRECIPE off the application subdirectory.
4. Make a method of launching the program. To launch the program use the executable file name (BASICINV) and run the executable from the application subdirectory.
Running the Program
Setup
It will require some setup steps in order to start using the program for regular inventory use. The steps will be:
* DEFINE COST GROUPS
The cost groups are used to seperate the cost of sales report into groups best suited to your application. Each inventory item’s usage will be allocated to a specific cost group. For example a simple restaurant might only have two cost groups -> Food and Liquor. There are a maximum of 100 cost groups already defined. The default description is blank. Enter the description for each cost group to be used.
* DEFINE LOCATIONS
The locations are a physical location of inventory. Each inventory item will be assigned a location. The purpose of locations is ease of taking inventory. You can print your count sheets in an organized manner, making counting the inventory easier. You can also enter the counts in the same order the count sheet was printed. There a maximum of 100 locations already defined. The default description is blank. Enter the descriptions for each location to be used.
* DEFINE INVENTORY ITEMS
Inventory items are a product you purchase. You can enter all your inventory items for complete inventory cost analysis or just a few for less complex cost information. Each inventory item has the following information attached to it:
o a unique number
o a description
o a cost group
o a location
o a count unit
o a cost per count unit
* DEFINE STORES
The stores are used as destinations for transfers in/out.
* DEFINE THE PLU ASSIGNMENTS (RECIPES)
In order to ascertain theoretical usage, you must define how much product is used by what menu items. This is accomplished in BASIC INVENTORY through PLU Assignments rather than recipes. A Recipe is created by listing the inventory items used for a menu item. This same information is collected by creating lists of menu items which use a product and the amount used each time sold. This approach was taken so that it would be easier to adjust these lists after running variance reports
* ENTER A STARTING COUNT
Once you have setup your inventory items and other databases, you must take inventory of what you currently have on hand. Print a count sheet (by location is easiest) and count your products. Post your counts and begin regular maintenance and usage of BASIC INVENTORY.
Regular Use
After the setup steps have been completed, the program is now ready for regular use. Basic Inventory is set up to report cost of sales by period. A period is the length of time between counting inventory. The procedures used during a period are:
* RECEIVING
* TRANSFERS
* WASTES
* ENDING COUNTS
A period is considered closed when the ending counts are posted. To close a period, post all purchases, transfers and wastes that took place in the period, then post the ending inventory counts for the period.
* RECEIVING
Receiving describes the purchasing and actually receipt of products. Normally you purchase products from a vendor who will supply the goods with an accompanying invoice. You must enter all quantities received of each defined inventory item in order for the cost of sales report to be accurate. Select Purchases from the Main Menu to enter invoices. Each invoice stores the following information:
o Date
o Invoice Number
o Amount
o Up to 100 line item entries per invoice. Each line item is comprised of:
+ an inventory item
+ quantity received (in count units)
+ item cost at time of receipt
+ extended total of quantity received
All invoices listed on the Unposted Invoices dialog are just that, unposted. This means that the information contained in each one can be modified and is not included in the cost of sales report. The information is included in the Unposted Cost of Sales and Unposted Variance reports however. Invoices need to be posted at some point, to make room for new invoices and to permanently store the information. If you are sure that the information on the invoice(s) is correct, select the Post function from the Unposted Invoices dialog. This will transfer the information contained in each invoice to a permanent purchase journal file. There is a purchase journal file for each day a purchase has taken place. Once an invoice is posted, it can no longer be modified! An invoice can only be posted to a date that is not considered a closed period. A period is closed when the ending counts are posted. For example, if you post ending counts for 02/01/96, purchases can not be posted to a date prior to that. It is important to post all purchases for a period before posting ending counts.
* TRANSFERS
Transfers describes the movement of product between stores. Transfer In is receiving product from another store to yours, transfer out is moving some of your product to another store. You must enter all product movement in order to obtain accurate cost of goods and variance reports. Transfer transactions remain unposted and modifiable until posted. Like purchases, once posted these transactions can no longer be modified or deleted. Like purchases, these transactions must be posted before posting ending counts.
* WASTE
Waste is defined as product used, but not actually sold. Waste transactions remain unposted and modifiable until posted. Like purchases, once posted these transactions can no longer be modified or deleted. Like purchases, these transactions must be posted before posting ending counts.
* ENDING COUNTS
Ending counts are the physical inventory count at the end of a period. To take inventory of your products:
1. select Ending Counts from the Main Menu
2. select the Sort Priority to print the count sheet. It is recommended that you select Location. It is assumed that the inventory items have been assigned locations.
3. select Print Count Sheet
4. count the inventory items and write the count on the Count Sheet
5. enter the counts using the same sort priority used to print the Count Sheet
6. to view the cost of sales before posting the counts, select Unposted Cost of Sales Report from the Report Menu
7. when you are sure the counts are correct, select Post. You will be presented with a dialog to enter the date you wish to post the counts for. The date can not be prior to a previous count date. Keep in mind that once the counts are posted, the period of time from the first prior count date to the date you just posted will be closed. No further purchases,transfers, wastes or counts can be posted to this time period.
Available Reports
Purchasing Reports
* ITEM PURCHASES
This report can be run in summary or detail. The detail report shows the detailed purchase information for a selected range of dates for each item currently defined in the item database. The summary report summarizes all the purchase information for a selected range of dates for each item currently defined in the item database.
* PURCHASES BY INVOICE
This report can be run in summary or detail. The detail report shows the detailed purchase information for a selected range of dates for each invoice. The summary report summarizes the purchase information for a selected range of dates by invoice.
Transfer Reports
* TRANSFERS BY DESTINATION
This report shows the transfer transactions posted for the range of dates selected categorized by destination.
* TRANSFERS BY ITEM
This report shows the transfer transactions posted for the range of dates selected categorized by inventory item.
Waste Reports
* WASTE REPORT
This report shows the waste transactions posted for the range of dates selected.
* WASTE BY ITEM
This report shows the waste transactions posted for the range of dates selected categorized by inventory item.
Period Reports
* ENDING COUNTS
This report shows the posted counts for selected date(s). All information presented is the information that was current at the time of posting the count. At the end of each day in the report, a grand daily total amount of the extended dollar amounts is displayed.
* QUANTITY VARIANCE
This report shows the quantity variance between theoretical and actual usage and the detailed information used to compute the report.
* DOLLAR VARIANCE
This report shows the dollar variance between theoretical and actual usage and the detailed information used to compute the report. The theoretical dollar value is based on the inventory item’s current cost, all other dollar values are computed based on the cost of the item at the time of the specific transaction.
* COST OF SALES
This report can be run in summary or detail. The summary report summarizes the cost of sales for a selected range of dates by cost group. The detail report shows detailed cost of sales information for a selected range of dates for each cost group.
* UNPOSTED COST OF SALES
This report is looks exactly like the Cost of Sales report. The information is gathered in a different manner. All unposted purchases, transfers, waste and ending counts are included.
Sales Reports
* SALES REPORT
This report shows the total net sales for each day in a selected range of dates.
* STATISTICS REPORT
This report shows detailed PLU sales information categorized by sales group.
* THEORETICAL USAGE REPORT
This report show the theoretical usage of each inventory item in the range of dates selected.
* SINGLE ITEM THEORETICAL USAGE REPORT
This report show the theoretical usage for one inventory item in the range of dates selected.
Other Reports
* RECIPE DETAIL
This report shows the menu items (PLUs) and the inventory items used to produce it.
Technical
The following is a detailed explanation of the procedures and steps BASIC INVENTORY performs:
STARTING BASIC INVENTORY(running from command prompt)
1. Get HASP authorization to run.
BASIC INVENTORY utilizes TMAPHOST to get it’s HASP authorization. This means that the license is kind of non-transferable. If you run BASIC INVENTORY at one station, you will not be able to run it at another without rebooting the HASPSERV server. (assuming you only have one license)
2. Check for required subdirectories
BASIC INVENTORY requires that it is run from a directory with the following subdirectories: CHECKS DATA REPORTS INV INVRECIPE If any of the above is missing, BASIC INVENTORY will error out, displaying the reason.
3. Check for SHARE
This step will create Share.TST in the DATA directory. If it is deleted it will be recreated. It has no bytes and has further value. If SHARE is not present, Basic Inventory will error out, displaying the reason.
4. Load Global Options
This step will read the Global.DAT file in the application directory. This file is created by TOUCHMENUS Editnet program. Basic Inventory will get the version from this file. Basic Inventory is version specific. Version 1.xx will only operate with TouchNET Version 4.xx. Version 2.xx will only operate with TouchPRO Version 5.xx.
5. Load Report Options
This step will read the Manager.CFG file in the DATA directory. The information in this file is created by TOUCHMENUS Manager program. Basic Inventory will read the extra text, eject page, printer port, page length, condensed print code and normal print code options.
6. Check for the resource file
This step checks for the existence of the resource file (BasicInv.RES). This file should be located in the same directory as the executable. If this file is not found, Basic Inventory will error out and display the reason.
7. Load inventory item database
This step reads INVINVITEMS.DAT and loads the item database into XMS memory.
8. Build inventory item list
This step will build a user list of inventory items from the XMS database.
9. Run the Main program
Maintenance Menu Procedures
Inventory Items
* Read INVINVITEMS.DAT and load into XMS.
* Write INVINVITEMS.DAT upon exit if any editing action was taken.
Cost Groups
* Read 1600 bytes from INVCOSTGRPS.DAT to load cost groups.
* Write 1600 bytes to INVCOSTGRPS.DAT upon exit if any editing action was taken.
Locations
* Read 1600 bytes from INVLOCATION.DAT to load cost groups.
* Write 1600 bytes to INVLOCATION.DAT upon exit if any editing action was taken.
Store Names
* Read 1600 bytes from INVSTORES.DAT to load cost groups.
* Write 1600 bytes to INVSTORES.DAT upon exit if any editing action was taken.
Transfers
* Read 1400 bytes from INVTRANSFER.~MP to load unposted transfers.
* Write to INVTRANSFER.~MP upon exit if any editing action was taken.
* Write to INVYYMMDD.TNF files when posting transfers.
Waste
* Read 1200 bytes from INVWASTE.~MP to load unposted transfers.
* Write to INVWASTE.~MP upon exit if any editing action was taken.
* Write to INVYYMMDD.WST files when posting transfers.
Purchases
* Read INVINVOICES.~MP in 8k chunks to load unposted invoices.
* Write to specific byte location in INVINVOICES.~MP (Add,Edit,Del) when an invoice is deleted or modified.
* Read from a specific byte location in INVINVOICES.~MP when modifying an existing invoice. (Loads the line item information for the invoice.)
* Write to specific byte location in INVINVOICES.~MP when finished with line item entry. (Saves the line item information for the invoice.)
* Write to specific byte locations in INVINVITEMS.DAT when adding/editing line items to an invoice. (Updates prices when necessary and flags item as used)
* Write to INVYYMMDD.PRC files when posting invoices.
* Write to specific byte locations in INVINVOICES.~MP when posting invoices. (Flags the invoice as posted.)
* Erase INVINVOICES.~MP when all invoices have been posted.
Ending Counts
* Read INVINVITEMS.DAT in 8k chunks to load unposted counts.
* Write to INVYYMMDD.CNT files when posting counts.
* Write to specific byte locations in INVINVITEMS.DAT when posting invoices. (Resets item count and flags the item as being used.)
Reports Menu Procedures
Item Purchases and Purchases by Invoice
1. Read INV directory for all YYMMDD.PRC files.
2. Read each INVYYMMDD.PRC file in range of dates selected in 8k chunks for item purchase information.
Transfers by Destination and Transfers by Item
1. Read INVStore.DAT to load destinations.
2. Read INV directory for all YYMMDD.TNF files.
3. Read each INVYYMMDD.TNF file in range of dates selected in 8k chunks for item purchase information.
Waste Report and Waste by Item
1. Read INV directory for all YYMMDD.WST files.
2. Read each INVYYMMDD.WST file in range of dates selected in 8k chunks for item purchase information.
Ending Counts
1. Read INV directory for all YYMMDD.CNT files.
2. Read each INVYYMMDD.CNT file in range of dates selected in 8k chunks for counts information.
Quantity Variance and Dollar Variance
1. Blank out a chunk of XMS memory to build the report in.
2. Load necessary inventory information into XMS.
3. Load start counts from proper INVYYMMDD.CNT file and store in XMS.
4. Load purchases from proper INVYYMMDD.PRC files and store in XMS.
5. Load transfers from proper INVYYMMDD.TNF files and store in XMS.
6. Load wastes from proper INVYYMMDD.WST files and store in XMS.
7. Load ending counts from proper INVYYMMDD.CNT file and store in XMS.
8. Read proper sales journal files.
Cost of Sales
1. Load Cost Groups from INVCOSTGROUP.DAT.
2. Read INV directory for all YYMMDD.CNT files.
3. Read each REPORTSYYMMDD.JOU file in range of dates necessary for sales information.
4. Read a INVYYMMDD.CNT file in 8k chunks for starting count information.
5. Read a INVYYMMDD.CNT file in 8k chunks for ending count information.
6. Read each INVYYMMDD.TNF files range of dates selected necessary for transfer information.
7. Read each INVYYMMDD.WST files range of dates selected necessary for waste information.
8. Read each INVYYMMDD.PRC file in range of dates necessary for purchase information.
Unposted Quantity and Dollar Variance
1. Blank out a chunk of XMS memory to build the report in.
2. Load necessary inventory information into XMS.
3. Load start counts from proper INVYYMMDD.CNT file and store in XMS.
4. Load purchases from proper INVYYMMDD.PRC files and store in XMS.
5. Load unposted purchases from INVInvoices.~MP and store in XMS.
6. Load transfers from proper YYMMDD.TNF files and store in XMS.
7. Load unposted transfers from INVTransfer.~MP and store in XMS.
8. Load wastes from proper YYMMDD.WST files and store in XMS.
9. Load unposted wastes from INVWaste.~MP and store in XMS.
10. Load ending counts from INVInvItems.DAT file and store in XMS.
11. Read proper sales journal files.
Unposted Cost of Sales
1. Load Cost Groups from INVCOSTGROUP.DAT.
2. Load start counts from proper INVYYMMDD.CNT file.
3. Load ending counts from INVInvItems.~MP.
4. Read each INVYYMMDD.PRC file in range of dates necessary for purchase information.
5. Load unposted purchases from INVInvoices.~MP.
6. Read each INVYYMMDD.TNF file in range of dates necessary for transfer information.
7. Load unposted transfers from INVTransfer.~MP.
8. Read each INVYYMMDD.WST file in range of dates necessary for waste information.
9. Load unposted waste from INVWaste.~MP.
10. Read each REPORTSYYMMDD.JOU file in range of dates necessary for sales information.
Net Sales Report
1. Read each REPORTSYYMMDD.JOU file in range of dates selected in 8k chunks for sales information.
Statistics Report
1. Load sales groups from DATAGroups.DAT.
2. Load PLUs from Product.DAT.
3. Read each REPORTSYYMMDD.JOU file in range of dates selected in 8k chunks for sales information.
Theoretical Usage
1. Read each REPORTSYYMMDD.JOU in range of dates selected for PLU quantities sold. For each inventory item:
1. Load PLU assignments for the item from INVRECIPE####.RCP.
2. Compute theoretical usage based on quantities sold.
Single Item Theoretical Usage
1. Read each REPORTSYYMMDD.JOU in range of dates selected for PLU quantities sold. For the selected inventory item:
1. Load PLU assignments for the item from INVRECIPE####.RCP.
2. Compute theoretical usage based on quantities sold.
Recipe Detail
1. Load PLUs from Product.DAT.
2. Read INVRECIPE directory for all PLU####.RCP files. For each PLU####.RCP file:
1. Read the PLU###.RCP file.
File Formats
Name: COSTGRPS.DAT
Purpose: Storage of defined cost groups.
Location: INV subdirectory of application
Type: Binary
Size: 1600 bytes
Record size: 16
Description STRING * 16
Name: LOCATION.DAT
Purpose: Storage of defined cost groups.
Location: INV subdirectory of application
Type: Binary
Size: 1600 bytes
Record size: 16
Description STRING * 16
Name: STORES.DAT
Purpose: Storage of defined stores used for transfers
Location: INV subdirectory of application
Type: Binary
Size: 1600 bytes
Record size: 16
Description STRING * 16
Name: INVITEMS.DAT
Purpose: Storage of defined inventory items information
Location: INV subdirectory of application
Type: Binary
Size: Variable dependent on number of records
Record size: 52 bytes
Number 2 bytes INTEGER
Description 16 bytes STRING
Count Unit 12 bytes STRING
Cost Group 2 bytes INTEGER
Location 2 bytes INTEGER
Cost 4 bytes LONG
Count 4 bytes LONG
UsedFlag 2 bytes INTEGER
Extra1 4 bytes LONG
Extra2 4 bytes LONG
NOTE:UsedFlag will indicate if item has been used for a purchase or a count. If UsedFlag is > 0 and the user tries to delete the item BASICINV will warn that the deletion of that item will ruin any historical reports. Most reports are based on the item database, except for the receiving by invoice report.
Name: #####.RCP (where ##### is the number of an Inventory Item)
Location: INVRECIPE subdirectory of application
Purpose: storage of PLU assignments and corresponding usage quantities
Size: variable dependent on number of records
Type: Binary
Record size: 9 bytes
Record fields:
Delimeter – “|” – 1 byte (STRING)
Item Number – 4 bytes (STRING)
Quantity – 4 bytes (LONG)
Name: PLU####.RCP (where #### is the PLU number)
Location: INVRECIPE
Type: Binary
Size: dependent on number of 9 byte records
Record size: 9 bytes
Record fields:
Delimeter – “|” – 1 byte (STRING)
Item Number – 4 bytes (STRING)
Quantity – 4 bytes (LONG)
Name: Invoices.~MP
Purpose: Temporary storage of unposted invoices
Location : INV subdirectory of application
Type: Binary
Size: Variable dependent on number of records
Record size: 41 bytes
Code 1 byte BYTE
Data1 16 bytes STRING
Data2 12 bytes STRING
Amt1 4 bytes LONG
Amt2 4 bytes LONG
Amt3 4 bytes LONG
Code Data1 Data2 Amount 1 Amount 2 Amount 31 Invoice # Invoice Date Total Bad Flag Null
2 Description Count Unit Item Number Cost Qty
Name: YYMMDD.CNT
Purpose: Permanent storage of ending counts
Location: INV subdirectory of application
Type: Binary
Size: Variable dependent on number of records
Record size: 40 bytes
Item Number LONG
Description STRING * 16
Count Unit STRING * 12
Cost LONG
Count LONG
Name: YYMMDD.TNF
Purpose: Permanent storage of transfers
Location: INV subdirectory of application
Type: Binary
Size: Variable dependent on number of records
Record size: 42 bytes
Item Number LONG
Description STRING * 16
Count Unit STRING * 12
Cost LONG
Count LONG
Destination INTEGER (tied to stores database)
Name: YYMMDD.WST
Purpose: Permanent storage of waste transactions
Location: INV subdirectory of application
Type: Binary
Size: Variable dependent on number of records
Record size: 40 bytes
Item Number LONG
Description STRING * 16
Count Unit STRING * 12
Cost LONG
Count LONG
Name: YYMMDD.PRC
Purpose: Permanent storage of purchases
Location : INV subdirectory of application
Type: Binary
Size: Variable dependent on number of records
Record size: 41 bytes
Code 1 byte BYTE
Data1 16 bytes STRING
Data2 12 bytes STRING
Amt1 4 bytes LONG
Amt2 4 bytes LONG
Amt3 4 bytes LONG
CODE DATA 1 DATA 2 AMOUNT 1 AMOUNT 2 AMOUNT 31 Invoice # Invoice Date Total
2 Item Desc. Count Unit Item # Cost Quantity
Revisions
04/02/96 Version 1.01 Beta Release
1. Fixed a bug relating to unposted cost of sales report. The report was not picking up the sales from the last count date forward. The problem was with the FUNCTION fTomorrow$ in Library.BAS. Was incorrectly incrementing the month. Fixed!
05/16/96 Version 1.02 (Official Release!)
1. Compiled a release version.
08/05/96 Version 1.03
1. Fixed bug related to deleting unposted invoices. Was seeking to the wrong byte position. Had updated file format at some time and not updated this procedure.
2. Added SUB StartReport to call from all report procedures to save some code. Instead of repeating the lines of code in each report procedure.
08/07/96 Version 1.04
1. Fixed bug related to editing existing unposted invoices. When reading the unposted invoice temporary file, was incorrectly logging the record location of the invoice.
08/09/96 Version 1.05
1. Fixed bug related to selecting a new inventory item number. Was auto- selecting existing numbers when adding new inventory items.
2. Fixed bug related to saving items and unposted counts. Was saving the database sorted however it was last sorted by user, then not paying attention to it when saving unposted counts. Forced save of item database to be numeric, then forced a numeric sort on unposted counts list before saving.
3. Upped %MaxLineItemsperInvoice from 100 to 200
11/07/96 Version 2.00 (V5.xx compatible Beta Release)
1. Compatability with TouchPRO version 5.xx!
2. Updated the loading of the Product database and sales groups to accomodate file format changes in TouchPRO version 5.xx
3. Updated the way PLUs are read from the journal files. FROM: Case 1 to 999 TO: Case -1999 to 999
4. INCR %MaxPLUs from 999 to 1999
5. Added theoretical usage capability
6. Added additional reports related to #5
7. Converted GUI to pulldowns
8. Incorporated overring detection (for computing theoretical usage)
9. Re-wrote all major purchases loading routines, gained much speed in several reports.
10. Added Tip of the Day.
11. Updated on-line help.
12. Re-wrote cost of sales reports both posted and unposted to include more information.
03/10/97 Version 6.00
1. Only change was version dependency.
03/17/97 Version 6.01
1. Fixed a bug related to recipe file handling.
02/02/98 Version 6.02
1. Fixed a bug related to recipe file handling. This was a follow to item #1 in v6.01.
05/26/98 Version 6.03
1. Fixed overflow bug in Theoretical Usage report.
2. Fixed condensed print bug.
3. Fixed bug in the Statistics Report to allows 4 digits for PLU numbers, instead of 3.
06/10/98 Version 6.04
1. Added Year 2000 support.
07/29/98 Version 6.05
1. Added support for virtual HASP (standalone)
12/08/98 Version 6.06
1. Y2K compliant
2. Fixed bug in Dollar Variance report. Was not calculating Transfers Out.
3. Fixed bug in Summary and Detail Cost of Sales reports where the Grand total waste, transfer in and transfer out figures were not computing.
4. Fixed bug in Theoretical Usage Reports where they incorrectly included overrung PLUs.
-
AuthorPosts
- You must be logged in to reply to this topic.