Products

Complete

The Products workspace is used to handle products.

Information

Complete

The Product Information screen is shown below. Note that this is a product selection screen - it displays limited information about the product(s) found by the selection - detailed information is displayed when you view or edit the product. When first used, it will be empty. The picture below shows it after a selection has been done.

This works as a standard select screen. 

Type - allows you to select the type of product.
Pricing Group - this is displayed if Pricing Groups have been configured and the current user is an adminstrator. It defaults to the Pricing Group of the current Practice Location. Only those prices that match the selected Pricing Group or have no Pricing Group will be displayed in the Fixed Price and Unit Price columns.

The column headings require no explanation except to note that:
Description - will be the same as Name except for Template products (where it will be blank)
Prices - are shown as 'tax included' - see Concepts|Pricing

 

The standard buttons have their standard meanings. In addition,
Copy lets you create a new product by cloning it from the selected one. Note that EVERYTHING is copied - including any current stock holdings. Hence after the copied product is created, you will need to edit it to zero the stock quanties and make any other required adjustments.
Export initiates the Price Export process by displaying the Export Prices window. See also Concepts|Pricing Updates.
Import initiates the Price Import process by displaying an upload window to let you select the file to be imported.

Note that the Edit, Delete, Copy, Export & Import buttons will not be present unless the user's categories include 'Administrator'. See also Concepts|Users.

Confirm Copy

Complete

When you press the Copy button on the Products|Information screen, a window like the following will be displayed.  Pres OK to proceed, Cancel to Abort.

Confirm New

Complete

This is the New Product confirmation window. Select the type of Product to be created and then use OK to continue or Cancel to abort. Note that if you have selected a type on the Product screen, then this will already be selected in this window - thus you can normally simply click OK to proceed.

Create/Edit/View Medication

Complete

This is the create/edit/view screen for Medication products, ie items which are sold (like merchandise) but which being medication, also need drug labels, dispensing notes, a drug schedule and list of active ingredients. 

The fields are as follows:
Id - the ID of the product
Name - its name
Printed Name - the name that will be displayed when the invoice etc is printed. If omitted, then the Name will be used.
Drug Schedule - the applicable drug schedule (None, or S1 through S8)
Active Ingredients - you can list the active ingredients here. The standard prescription print template will display this text with the label 'Strength'.
Selling Units - the units by which this is sold (eg Unit, Ampoule, Bottle, Box, etc). The available choices are set by the Administrator|Lookups|Units of Measure screen.
Dispensing Units - the units by which this is dispensed - the same choices as Selling Units
Dispensing Verb - the applicable dispending verb (None, Administer, Apply, Give, Inject). This and the Dispensing Units are commonly used in macros to generate dispensing labels.
Dispensing Label - check this box if a dispensing label should be printed for this product
Label Instructions - the preset text for the label - this can be added to prior to printing
Dispensing Notes - here you can add notes (eg Dose - Dogs: 2.5mls bid, Cats: 1ml bid). These will be displayed on the Create/Edit Medication screen
Pharmacy - this is only required if you use the HL7 facility where it is used the set a Pharmacy or Pharmacy Group for this product. Note that this can also be set via the Product Type and this may be more convenient if many products use the same pharmacy or pharmacy group.
Active - uncheck this box to deactivate the product

See Tabs for a description of the fields in the various tabs.

Create/Edit/View Merchandise

Complete

This is the create/edit/view screen for Merchandise products.  See Concepts|Products for background information.

The fields are as follows:
Id - the ID of the product
Name - its name
Printed Name - the name that will be displayed when the invoice etc is printed. If omitted, then the Name will be used.
Selling Units - the units by which this is sold (eg Unit, Ampoule, Bottle, Box, etc). The available choices are set by the Administrator|Lookups|Units of Measure screen.
Pharmacy - this is only required if you use the HL7 facility where it is used the set a Pharmacy or Pharmacy Group for this product. Note that this can also be set via the Product Type and this may be more convenient if many products use the same pharmacy or pharmacy group.
Active - uncheck this box to deactivate the product

See Tabs for a description of the fields in the various tabs.

Create/Edit/View Price Template

Complete

This is the create/edit/view screen for Product Price Templates.  These are used to set standard prices that can be used by actual products.

The fields are as follows:
Id - the ID of the template
Name - its name
Active - uncheck this box to deactivate the product

See Tabs for a description of the fields in the Price tab. Note that for Product Price Templates you can only set a Fixed price, and not the Unit price.  That is, you can only use standard pricing for the fixed component of a product's price.

Create/Edit/View Product Template

Complete

This is the create/edit/view screen for product Templates. These are used to group a number of products together so that time is saved when generating invoices and estimates.  

The fields are as follows:
Id - the ID of the template
Name - its name
Description - used to clarify the name if necessary
Active - uncheck this box to deactivate the product
Invoice Note - if present, this is added to the invoice note of the invoice. Note that it is added to any pre-existing text and does not replace it.
Visit Note - if present, this is added to the medical record as a note. You must be using the visit-charge editor (i.e. the integrated editor that is displayed during Check-In and Consult), for this to work.  If you simply use the Customer|Charges screen to create an invoice, then no visit note will be added to the patient's medical records.
Print Aggregate - if checked, the template will be printed as an aggregate in charges and estimates. If unchecked, the each line item produced by the template will be printed.

Includes are the items that the template includes. These can be either products or templates.

An included item may have a:

  • Low and High Quantity. These are used to specify the low and high quantities for the item when the template is used in a estimate. The High Quantity is used when the template is used in an invoice.
  • Weight, used to conditionally include the item based on patient's weight. There are 3 fields: the lower and upper limits and the units (which can be Kilograms, Grams, Pounds or None - if None is specified then any lower and upper limits will be ignored). To be included the patient weight must be greater than or equal to the lower limit and less than the upper limit. Note that the program will not detect over-lapping weight ranges as an error, but will use the first matching one. As indicated in the above screen shot, properly set weight data will include a set that has 0 as a lower limit, and 999 (ie large) as an upper limit. Note also that the system does not require that the weight units used here are the same as the weight units used for the patient's weight.
  • Zero Price indicator. When selected, the item will be given a zero fixed and unit price when the template is used. This can be used for items that aren't charged for, but are included for stock control purposes.
  • Print indicator. Determines if zero-priced items should be printed in charges and estimates. Only applies when Print Aggregate is unchecked.

If the template includes other templates, then when the template is used, any repeated product will have its quantities summed so that it only appears once in the invoice or estimate.

If the included template has a quantity other than 1, then this is used to multiply the quantities of the included products.  Hence if Template A includes 2 of Template B and Template B includes 3 of Product X, then the total quantity of Product X will be 2x3=6.

Note that a template cannot include itself - either directly or indirectly (ie A includes B which includes A). The first will cause an immediate error and you will not be able to save the template. The second will cause an error when the template is used.

 

See Tabs for a description of the fields in the other various tabs.

Create/Edit/View Service

Complete

This is the create/edit/view screen for products that are Services.

The fields are as follows:
Id - the ID of the product
Name - its name
Printed Name - the name that will be displayed when the invoice etc is printed. If omitted, then the Name will be used.
Active - uncheck this box to deactivate the product
Selling Units - the units by which this is sold (eg Unit, Hour, Day, etc). The available choices are set by the Administrator|Lookups|Units of Measure screen. Note that for most services, this can be left at the default (normally Unit), and it only needs to be set for services like Boarding and Theatre Time that will be sold in quantities other than one.

See Tabs for a description of the fields in the various tabs.

Export Prices

Complete

The Export Prices window is used to export OpenVPMS product prices to a CSV (comma separated values) file.

The exported prices can be manipulated in a spreadsheet program such as Microsoft Excel or OpenOffice Calc, and imported using Price Import.

 

Prices can be selected for export using the following criteria:

  • Type - one of Medication, Merchandise, Product Price Template, Service, or All. Note that you cannot export Templates - if you want to do some editing of these, you have to do them one by one.
  • Search - enables the products to be queried by name or identity
  • Search Identities - if selected, products are queried by identity
  • Include Deactivated - if selected, inactive products are included in the search
  • Product Type - the type of the product. E.g "Desexing", "Euthanasia".
  • Species - queries products by species
  • Income Type - queries products by income type. E.g. "Medication", "Professional"
  • Product Group - queries products by product group. E.g "Fees", "Grooming"
  • Prices - one of:
    • Current - exports the fixed and unit prices for a product that are active at the current time
    • All - exports all fixed and unit prices for a product. This may be used to export the price history
    • Range - exports all prices for a product active within the range specified by the From and To fields
  • Pricing Group - exports prices by Pricing Group. One of:
    • All - export all prices, regardless of Pricing Group
    • None - export prices with no Pricing Group
    • Group Name - export prices with the specified Pricing Group, or no Pricing Group
  • From - used to set the price From Date, when querying prices in a range
  • To - used to set the price To Date, when querying prices in a range
  • Include Linked Prices - if selected, prices linked from Product Price Templates will be included in the exported data

Export File Format

The exported data is a comma-separated-values file, containing the following columns:

Column Required Type Description
Product Id Yes Integer The product identifier.
Product Name Yes String The product name.
Product Printed Name No String The product printed name. If different to that stored, updates the product's Printed Name.
Fixed Price Id No Integer The fixed price identifier, used when updating an existing fixed price.
Fixed Price No Decimal The tax-inclusive fixed price. If unspecified, no fixed price will be created/updated.
Fixed Cost No Decimal The fixed cost. Only used if a fixed price is specified. Defaults to 0.0 if unset.
Fixed Price Max Discount No Decimal The fixed price maximum discount, expressed as a percentage. Required if a fixed price is specified, optional otherwise.
Fixed Price Start Date No Date The date the fixed price starts on. Required if a fixed price is specified, optional otherwise.
Fixed Price End Date No Date The date the fixed price ends on. If unspecified, the fixed price will have no end date.
Default Fixed Price No Boolean (true/false) Indicates if a Fixed Price is the default price for the date range. Only applicable if there are multiple fixed prices.
Fixed Price Groups No String A space separated list of Pricing Group codes that are associated with the fixed price.
Unit Price Id No Integer The unit price identifier, used when updating an existing unit price.
Unit Price No Decimal The tax-inclusive unit price. If unspecified, no unit price will be created/updated.
Unit Cost No Decimal The unit cost. Only used if a unit price is specified. Defaults to 0.0 if unset.
Unit Price Max Discount No Decimal The unit price maximum discount, expressed as a percentage. Required if a unit price is specified, optional otherwise.
Unit Price Start Date No Date The date the unit price starts on. Required if a unit price is specified, optional otherwise.
Unit Price End Date No Date The date the unit price ends on. If unspecified, the unit price will have no end date.
Unit Price Groups No String A space separated list of Pricing Group codes that are associated with the unit price.
Tax Rate No Decimal The sum of tax rates for the product, expressed as a percentage. This must be valid on import, but is otherwise ignored.
Notes No String Price notes. At present, this is used to report if a price is linked from another product.

Note that the Markup is not exported as it can be derived using the cost and price columns. To calculate the markup from the exported columns use:

Unit Price Markup = ((Unit Price / (Unit Cost * ( 1 + Tax Rate/100))) - 1) * 100

Fixed Price Markup = ((Fixed Price / (Fixed Cost * ( 1 + Tax Rate/100))) - 1) * 100

 

See Pricing Updates for instructions on manipulating the exported data.

Import Prices

Complete

The Import Prices window is used to import product prices from a CSV (comma separated values) file in the format produced by Export Prices.

Only those prices that have changed will be displayed. Where a value has changed, both the old (as strike-through text) and new value will be displayed. In the example below, the fixed prices have been increased by 20% and their start dates set.

Click OK to save the price changes.

Click Cancel to cancel importing the prices.

Price Import Date Formats

Complete

When importing prices, a Price Import Date Format window may be displayed:

This is displayed if the dates in the import document can be interpreted in different ways.

Select the appropriate date format and click:

  • OK to import the document
  • Cancel to cancel the import

Price Import Errors

Complete

Imported prices are validated for correctness prior to being saved. If errors are detected, these are displayed. E.g.:

 

The possible errors and their causes are outlined below:

 

Error Cause
A Value for <column name> is required A mandatory value is missing. Values for Product Id and Product Name must always be provided. The Fixed Price Start Date and Unit Price Start Date need only be provided if a corresponding price is specified.
'<some value>' is not a valid value for <column name> An invalid value has been specified for an Id, Price, Cost or Date column
Expected name: <product name> The specified Product Name differs from that stored. Both the Product Id and Product Name must match that of an existing Product.
Product not found The product with the specified identifier cannot be found
Unit price dates overlap an existing unit price

A unit price has been specified that has a date range that intersects another unit price.

Price with identifier <price Id> not found A price with the specified Fixed Price Id or Unit Price Id cannot be found.
Cannot update linked price

An attempt has been made to update a fixed price linked from a Price Template.

These prices can be updated via the Price Template.

Cannot determine which end date to use to close existing price.

Multiple Fixed and/or Unit Prices have been specified for a product, and an existing price needs to have its To Date set to avoid price overlaps.

This can be corrected by specifying a To Date for the existing price.

Cannot close existing price. Its start date would be greater than its end date.

A new price has been provided that has a From Date that overlaps an existing price that has no To Date. and the calculated To Date for the existing price would be greater than its From Date.

This can be corrected by specifying a later From Date for the new price.

Duplicate fixed price Duplicate Fixed Price Id values have been specified, with different details for the other columns.
Duplicate unit price Duplicate Unit Price Id values have been specified, with different details for the other columns.

Tabs

Complete

This page documents all the possible tabs on the create/edit/view windows for the various type of product.

Use the following links to jump to the required tab:

Prices Linked Type Investigation Types Suppliers Stock Locations Reminders Documents Discounts Species Updates Classifications Identities Equivalents Taxes

Note that in many cases, the tabs have a Hide Inactive xxxxx checkbox. This is present when the item being attached to the product (ie the linked-to product, the reminder, the supplier, etc) can be deactivated. In this case the item will remain attached to the product, but the item will not be displayed and the product will act as though the item was not attached. You can have these inactive items displayed by unchecking the Hide Inactive xxxxx box.

 

Prices tab
This tab is used to set the product's price. See also Concepts|Pricing.

The price type selector is used to select Fixed (as shown below) or Unit when adding a new price. A product can have multiple current fixed prices, but only one unit price. As shown below, the fixed prices can be named. When entering an invoice, if the product has multiple prices, there will be a pull-down to let the appropriate one be selected. This facility is normally used for service products so that you can have one product, say Surgery, with three prices, Simple, Standard, and Complicated. The item will be shown on the invoice as 'Surgery' and with the selected price. Alternatively, if you want the invoice to show 'Surgery - Simple', 'Surgery - Standard', or 'Surgery - Complicated', then you need to have three separate products.

The Fixed Price fields are as follows:
Name - the name of the price that will be displayed in the pull-down on the invoice entry screen
Cost - the ex-tax cost of the product. It defaults to 0.
Markup - the markup (as a percentage). It defaults to 100.
Price - the 'tax-included' price. You can either enter the price, or set the cost and markup and the system will calculate the price.
Max Discount - the maximum discount allowed - see Concepts|Discounts - Calculation
Default - check the box to make this the default price. If multiple prices are set, the default is the one initially selected.
From & To Date - these set the applicable dates. An unspecified To Date means 'forever'. If/when you adjust a price, it is sensible, not to just simply edit the price, but to do as follows. Edit the entry to set its To Date, then add a new price using the same date as the From Date.  In the above, you can the that the 'Small' price was increased from $14.30 to $14.96 on 24 June 2012. Note that if you add a new price without 'closing off' the old one, then for Fixed prices, both will be available; for Unit prices, the oldest one will be used. Hence you should always 'close off' the old price.
Pricing Group tab - this is used to set or unset the pricing group(s) - see below.

As you can see below, for Unit Prices the fields are the same except that there is no Name field and a Selling Units and a Quantity are added. You can choose from Ampoule, Bottle, Box, etc as set by Administration|Lookups|Units of Measure. Note however that these two are reserved for future use if and when a quantity discount facility is implemented.

Pricing Groups

If Pricing Groups have been configured, a Pricing Group filter is displayed. This has options:

  • All - display all prices, regardless of Pricing Group
  • None - display prices with no Pricing Groups. These are available to all Practice Locations
  • Group - display prices with the specified Pricing Group, or that have no group

Selecting a particular Pricing Group will display the prices that are available to a Practice Location configured with that Pricing Group.

Note that the Pricing Group column will be suppressed in the None case, otherwise it displays the Pricing Group(s) or blank if there is no Pricing Group set for that price.

Pricing Groups may be assigned using the Pricing Groups tab.

 

Linked tab
This allows standard pricing to be used for the Fixed component of the price. One very common use is for dispensing fees.

First you need to set up the standard prices using Product Price Templates, then you can link 'real' products to the templates. Just as you can set multiple fixed prices for a product, you can link to multiple price templates.

Note that the linked prices do not override any fixed prices set for the product, they just add to them. Thus when invoicing, the Fixed price pull-down will show both the linked and product prices.

The fields are:
Price Template - used to select the required Product Price Template
From & To Date - these are the same as used in the Prices tab

Type tab
This is used to set the Product Type - see Concepts|Products. A product can have no more than one Product Type.  If you are using product types, then you really need to set the type for every product.

Product types can be arbitrarily created by your administrator. These product types are distinct from product classes (Merchandise, Service, Medication). Instead, these can be used to group products according to discounts and tax types for instance. See Administration|Types|Product Type.
 

Investigation Type
This is used to set Investigation Types for the product - see Concepts|Investigations. A product can have zero, one, or multiple investigation types linked to it.


 

Suppliers tab
This is used to define the Supplier(s) for the product, and is only needed if you use the Stock Control facility.

The fields are as follows:

Supplier - the supplier  - this can be either a supplier organisation or a supplier person. See Concepts|Suppliers.
Start Date - the date from which this supplier can be used
Active End Time - the date after which the supplier should not be used to create orders
Preferred - check this box if this is the preferred supplier for this product.
Reorder Code - the part number/product code by which the supplier knows this item - if this is omitted no part number/product code will be shown on the order
Reorder Description - the description by which the supplier knows this item - if this is omitted then the Product Name will be shown on the order. Note that in the above screen snippet, the Reorder Description is indeed different from the Product Name - in this case we sell individual cans of pet food but buy them from the supplier in packs of 24.
Reorder Bar Code - the supplier's bar code for the item - remember that if two suppliers both sell widgets then their bar codes will be different
Package Size - this field is not shown on the order.  The system uses the Package Size field to do things like "need to order 37 cans, but the package size is 24 so I will order 2".  
Package Units - this field is shown on the order to describe the quantity being ordered.  
Minimum Order Qty - the minimum order quantity that the supplier will accept. Note that this field is not currently used by the system, it is for documentation only.
Order Qty increments - the increment in order quantity. Again, this field is not currently used by the system, it is for documentation only.
Lead Time & Units - the lead time, ie the time from order until delivery. These fields are not currently used by the system, they are for documentation only.
List Price - this is your 'tax excluded' price for the item from the supplier - it is not displayed on the order.  Note that both this and the Nett price are the prices for the item being ordered - in the above example the pack of 24 cans (and not the individual can price).  
Nett Price - this is the 'tax excluded' price from the supplier, and will be displayed on the order. Note that the Nett Price is the price that the practice pays for the product. It will either be the same as the List Price, or will be lower because the practice receives a discount from the supplier. 
Auto Price Update - check this box to automatically update product Cost and Sell prices when:

  • editing a product to change the supplier's List Price or Package Size
  • a delivery containing the product is Finalised which has a modified List Price or Package Size

In order for prices to update, the product must have:

  • a Product Supplier relationship linked to an active supplier
  • Auto Price Update set true
  • a non-zero List Price
  • a non-zero Package Size

The product's prices are updated as follows:

  • Cost Price = List Price / Package Size
  • Unit Price = (Cost Price * (1 + Markup/100) ) * (1 + Tax/100)

Notes:

  • This updates the existing Unit Price rather than creating a new Unit Price.
  • If there are multiple prices for different pricing groups, all are updated.
  • When a delivery is finalised, any line items with updated Package Size or Units, or List or Nett Prices, will update the Product Supplier information, irrespective of the Auto Price Update setting.

 

Generating Orders
Note that the system's 'Generate Orders' function will only generate orders for a product that has low stock if:

 

  • the product has a supplier specified and the supplier's Preferred box is checked, or the stock location indicates a preferred supplier
  • the Package Size set for the preferred supplier is greater than zero
  • the Ideal and Critical quantities must be greater than zero

 

Stock Location tab
This tab lets you examine the stock at a stock location and to set ordering parameters.

The fields are:
Stock Location - the applicable stock location
Quantity - the current quantity in stock at this location. Note that you not normally edit this value. If you do need to adjust the stock holding, then you should use the Products|Stock Management|Adjust transaction.
Ideal Qty - the ideal stock level - the ordering system can reorder stock to get back to this level
Critical Qty - the critical stock level - the ordering system can reorder if the in-stock quantity drops below this level
Always Order - check this box if stock is to be reordered if the in-stock quantity is below the ideal level
Never Order - check this box if stock is never to be ordered
Preferred Supplier - specifies the supplier for the product, at this stock location only. Used by Generate Orders to override the default preferred supplier, specified on the Suppliers tab.

 

The algorithm used by the system to to calculate the order quantities (when the Generate button on the Suppliers|Orders screen is pressed) is as follows:

 

 Calculate predicted stock P = current stock + qty on order and not yet delivered or cancelled
Let I = ideal quantity, C = critical quantity
If P <= C, then order (I - P) 

Note that the above algorithm does not use the Always & Never order check boxes (but this is planned for a future enhancement). Also the algorithm is more complex than the above because it also takes into account the supplier's package size.

 

Reminders tab
This tab is used to set the reminder(s) to be created when the product is invoiced. See also Concepts|Reminders.

The fields are as follows:
Reminder - the required reminder type
Interactive - check this box if, when the product is added to the invoice, a window is to be displayed to allow the reminder to be skipped (ie not created) or to enable the editing of the reminder parameters. If the box is not ticked then the reminder will be created without further intervention. Note that when a reminder is added to the product, the initial setting of this flag is taken from the Reminder Type definition - see Administration|Types|Reminder Types.
Period & Period Units - these set the period of the reminder, ie the time from when it was created until it becomes due. Note that these settings override the interval set for the reminder type. Also, if Interactive is set, then these can changed when the reminder is created.

 

Documents tab
This tab defines what documents, if any, are to be printed when the product is used (ie invoiced). The documents are defined by their Document Templates - see Administration|Templates. (Note that the Type set for the templates need to be 'Patient Form' otherwise things won't work.) A product can have multiple documents associated with it.

 

Discounts tab
This tab sets the discounts that apply to this product.  See Concepts|Discounts. Note that although discounts have been set for the product in the picture below, it is far more usual to set the discounts via the Product Type, rather than against the product itself.

The fields are:
Discount - select the required discount
From & To Date - set the dates for which the discount applies - a blank To Date means forever

 

Species tab
This tab is used to set the species to which the product applies. If none are set then it applies to all, else if one are more are set, then it applies to just those. This facility ensures that we don't sell fish food to a dog.  The available species are set via Administration|Lookups|Species.

 

Updates tab
This tab is used to set what updates will occur if the product is used (ie invoiced). For example if a cat is spayed, then we want to automatically set its desexed status. Similarly if there is a burial charge, then the animal can be automatically deactivated and its Date Deceased set.  The available updates are set via Administration|Lookups|Demographic Updates.

Classifications tab
The classification tab is used to indicate the product group(s) and/or product income type(s) to which this product belongs.  See Concepts|Classifications.

 

Identities tab
This tab is used to set the identities for a product. See Concepts|Identities and Concepts|Barcodes.

The pull-down is used to select the type of identity, Code or Bar Code.

The Description field is used simply to document the code or barcode if desired.

Note that if you purchase the same widget from two suppliers, then each will have its own bar code, and both bar codes should be entered here so that the system can recognise both brand A and brand B widgets.

One further possible used of identities is as follows: say you want to have a product name in a second language (to support sales of this product on a web site). Then you could set the Code to 'Cantonese' and the description to ADVANTIX小狗小型犬(0-4KG) for the product whose (English) name is 'Advantix Pup & Small Dog (0-4Kg)'.

 

Equivalents tab
This tab allows you specify any products that are functionally equivalent to this one. Note that this simply a way of documenting any equivalent products.  ie when you enter the product on an invoice, the system does not inform you that there is an equivalent.

 

Taxes tab
This tab allows you to set the applicable taxes for the product if this is necessary. Normally it is not because taxes are normally set at the Product Group or Practice level. See Concepts|Taxes.

Stock Management

Complete

The Stock Management screen enables you to search for and display stock management transations, i.e. stock adjustments (where you are increasing or decreasing the stock of one or more items in a given stock location) and stock transfers (where you are transferring quantities of one or more items from one stock location to another).

You can also export and import stock quantity information - this is useful for stocktaking. You export the data for the Stock Location and products to be counted, then count the stock and update the New Quantities in the CSV file and then import it to generate a Stock Adjustment transaction which you can then Finalise to adjust the stock quantities.

A typical screen is as follows:

The top half of the screen is a standard select screen. The bottom half shows the details of the selected transaction. If you need clarification of the field contents, see Stock Adjustment and Stock Transfer

Buttons: For an 'In Progress' transaction the available buttons are shown above. For a 'Posted' transaction, only the New and Print buttons are shown (because one cannot Edit, Delete or Finalise a posted tranaction).

The Finalise button applies the stock changes and sets the status to 'Finalised'.

Note that there are no reversal transactions to correct incorrect transfers and adjustments. To reverse a transfer you just use another transfer with the To and From locations swapped.  To reverse an adjustment, you just use another adjustment with negative quantities.

Export - initiates the Export Stock process.

Import - initiates the Import Stock process.

Stock Adjustment Create/Edit

Complete

This is the screen used to create or edit a Stock Adjustment transaction.

The fields are:
Date - the date of the adjustment
Stock Location - the stock location at which the adjustment is to be done
Status - this can be 'In Progress' or 'Finalised'.
Reason - an optional reason describing the adjustment.
Items tab - this shows the line items in the adjustment, and the details of the selected item. The details fields are:
Product - the name of the product
Adjust Quantity By - the amount by which the quantity is to be adjusted. This number can be negative to reduce the stock or positive to increase it.  It is NOT the new stock in-hand (which will be the Current Quantity + Adjust Quantity By entered when the transaction is finalised).
Current Quantity - this shows the current quantity

Stock Transfer Create/Edit

Complete

This is the screen used to create or edit a Stock Transfer transaction.

The fields are:
Date - the date of the transfer
From - the stock location from which stock is to be transferred
To - the stock location to which stock is to be transferred
Reason - an optional reason describing the transfer.
Status - this can be 'In Progress' or 'Finalised'.

Items tab - this shows the line items in the adjustment, and the details of the selected item. The details fields are:
Product - the name of the product
Quantity - the quantity to be transferred. It must be greater than or equal to 1.
Current From Quantity - this shows the current quantity in the From location
Current To Quantity - this shows the current quantity in the To location

Confirm Delete

Complete

When you press the Delete button on the Products|Stock Management screen, a confirmation window will appear. Press OK to confirm or Cancel to abort.

Confirm Finalise

Complete

When you press the Finalise button on the Products|Stock Management screen, a confirmation window will appear. Press OK to confirm or Cancel to abort.

Confirm New

Complete

This is the New Stock Management Act confirmation window. Select the type of act to be created and then use OK to continue or Cancel to abort. Note that if you have selected an act on the Stock Management screen, then this will already be selected in this window - thus you can normally simply click OK to proceed.

Confirm Print

Complete

This is a standard Print window - see Introduction|Common Screens|Print

Export Stock

Complete

The Export Stock window is used to export OpenVPMS stock quantities to a CSV (comma separated values) file.

The exported data can be manipulated in a spreadsheet program such as Microsoft Excel or OpenOffice Calc, and imported using the Import button.

 

 

Stock can be selected for export using the following criteria:

  • Type - one of Medication, Merchandise or All
  • Search - enables the products to be queried by name or identity
  • Search Identities - if selected, products are queried by identity
  • Include Deactivated - if selected, inactive products are included in the search
  • Product Type - the type of the product. E.g "Desexing", "Euthanasia".
  • Stock Location - the stock location to export stock for. Defaults to that for the current Practice Location
  • Income Type - queries products by income type. E.g. "Medication", "Professional"
  • Product Group - queries products by product group. E.g "Fees", "Grooming"
  • Zero negative quantities - if selected, any stock that has a negative quantity will have its New Quantity set to zero.

Export File Format

The exported data is a comma-separated-values file, containing the following columns:

Column Required Type Description
Stock Location Id Yes Integer The stock location identifier.
Stock Location Name Yes String The stock location name.
Product Id Yes Integer The product identifier.
Product Name Yes String The product name.
Selling Units No String The product selling units.
Quantity Yes Decimal The current stock quantity
New Quantity Yes Decimal

The new stock quantity. This will be the same as Quantity, unless the Quantity is negative and Zero negative quantities is selected. In this case, New Quantity will be 0.

 

 

Import Stock

Complete

The Import button initiates the Import Stock process by displaying an upload window to let you select the file to be imported.

The file must have the same format as that exported via Export Stock. However, you can add extra columns on the right (such as Remarks, Counted By, etc) to help with the stocktake process and these will be ignored. You cannot have extra rows containing stocktake instructions etc - the only rows allowed are the header and stock data rows.

If the file can be imported, a new Stock Adjustment will be created, containing a adjustment for each line of the imported file where the New Quantity is different to Quantity. The Adjust Quantity By is calculated as New Quantity - Quantity.

The Stock Adjustment status is set to In Progress, allowing it to be edited. To apply the changes, it must be Finalised.

Import Errors

If there are errors detected in the import file, these will be displayed and the file not imported.

The possible errors and their causes are outlined below:

Error Cause
A value for <column name> is required

A mandatory value is missing. Values for Stock Location Id, Stock Location Name, Product Id, Product Name, Quantity and New Quantity must always be provided.

'<some value>' is not a valid value for <column name> An invalid value has been specified for Stock Location Id, Product Id, Quantity or New Quantity.

Expected '<name 1>' but got '<name 2>'

A Stock Location Name or Product Name has been provided that is different to that stored.
Stock location not found The stock location with the specified identifier cannot be found.
Product not found The product with the specified identifier cannot be found
Expected <value 1> for Stock Location Identifier but got <value 2> A different Stock Location Identifier has been entered to that already present. An import file can only have data for a single Stock Location.

Batches

Complete

Product Batches are used to associate a batch number, expiry date, and manufacturer with a particular product.

The Batches screen supports:

  • querying Batches by batch number, expiry date, product, stock location, active status and manufacturer
  • creating new batches
  • viewing and editing batches
  • deleting batches

When first used, the screen will be empty. The picture below shows it after a selection has been done.

 

 

Create/Edit/View

Complete

This is the Create/Edit/View screen for product Batches.

The fields are:

Id - the internal identifier for the batch.
Batch Number - the manufacturer's identifier for the batch.
Product - the product the batch is for.
Expiry Date - the batch expiry date.
Description - batch description.
Active - uncheck this box to deactive the batch.
Manufacturer - the batch manufacturer.

Stock Locations

The Stock Locations tab is used to track the locations where a batch is located. Each Batch Stock Location identifies the location, and the date range that the batch is active for at that location.

If a batch has run out at Location A, but not Location B, set the To Date for Location A to today's date. It will no longer be displayed in queries at Location A.

Product Select

Complete

The Product Select screen is displayed whenever you are looking for a product.  Sometimes, you will not be able to look for all types of products because it does not make sense to do so (eg when doing a stock transfer, you can only transfer types where stock is held, ie medication and merchandise).

It works like a standard select screen (and in fact you will find that the example used to explain how select screens work is in fact the Product Select screen).