The Products workspace is used to handle products.
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.
|
Allows you to select the type of product i.e. all products, or one of Medication, Merchandise, Service, Product Price Template or Template. |
|
Allows you to select the product type. |
|
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:
|
Will be the same as Name except for Template products (where it will be blank). |
|
Are shown as tax-inclusive or tax-exclusive based on the practice Show Prices Tax Inclusive setting. |
The standard buttons have their standard meanings. In addition:
|
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. |
|
Initiates the Price Export process by displaying the Export Prices window. See also Concepts|Pricing Updates. |
|
Initiates the Price Import process by displaying an upload window to let you select the file to be imported. Synchronise with Smart Flow Sheet sends product changes to Smart Flow Sheet. See Synchronising products for more details. |
Note that the Edit, Delete, Copy, Export, Import and Synchronise with Smart Flow Sheet buttons will not be present unless the user's categories include 'Administrator'. See also Concepts|Users.
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.
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.
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:
|
The ID of the product. |
|
The product name. |
|
An optional description. |
|
The name that will be displayed when the invoice etc is printed. If omitted, then Name will be used. |
|
An optional description to provide additional information to customers about products they are purchasing. Where present, these will be included in printed Invoices, Counter Sales, Credits, and Estimates. |
|
The applicable drug schedule (None, or S1 through S8). |
|
Active ingredients can be listed here. The standard prescription print template will display this text with the label 'Strength'. |
|
The medication concentration. This is:
|
|
The units by which this is sold (eg Unit, Ampoule, Bottle, Box, etc). The available choices are set by the Administration|Lookups|Units of Measure screen. |
|
The units by which this is dispensed - the same choices as Selling Units. |
|
The applicable dispending verb (None, Administer, Apply, Give, Inject). This and the Dispensing Units are commonly used in macros to generate dispensing labels. |
|
Check this box if a dispensing label should be printed for this product. |
|
The preset text for the label. Macros in these instructions will be expanded when the medication is dispensed. |
|
This is used to set the Product Type - see Concepts|Products. 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. |
|
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. |
|
If ticked, indicates that the product can only be use in charges and estimates via a Product Template. |
|
Used to indicate that a Microchip, Pet Tag, or Rabies tag should be added to the patient when the product is charged. |
|
Uncheck this box to deactivate the product. |
|
Here you can add notes (eg Dose - Dogs: 2.5mls bid, Cats: 1ml bid). These will be displayed on the Create/Edit Medication screen |
See Tabs for a description of the fields in the various tabs.
This is the create/edit/view screen for Merchandise products. See Concepts|Products for background information.
The fields are:
|
The ID of the product. |
|
The product name. |
|
An optional description. |
|
The name that will be displayed when the invoice etc is printed. If omitted, then Name will be used. |
|
An optional description to provide additional information to customers about products they are purchasing. Where present, these will be included in printed Invoices, Counter Sales, Credits, and Estimates. |
|
The units by which this is sold (eg Unit, Ampoule, Bottle, Box, etc). The available choices are set by the Administration|Lookups|Units of Measure screen. |
|
This is used to set the Product Type - see Concepts|Products. 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. |
|
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. |
|
If ticked, indicates that the product can only be use in charges and estimates via a Product Template. |
|
Used to indicate that a Microchip, Pet Tag, or Rabies tag should be added to the patient when the product is charged. |
|
Uncheck this box to deactivate the product. |
See Tabs for a description of the fields in the various tabs.
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.
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:
|
The ID of the template. |
|
The product name. |
|
An optional description. |
|
The name that will be displayed when the invoice etc is printed. If omitted, then Name will be used. |
|
An optional description to provide additional information to customers about products they are purchasing. Where present, these will be included in printed Invoices, Counter Sales, Credits, and Estimates. |
|
If checked, the template will be printed as an aggregate in charges and estimates. If unchecked, each line item produced by the template will be printed. |
|
This is used to set the Product Type - see Concepts|Products. These aren't required for Templates but may be used for classification and reporting. |
|
If ticked, indicates that the product can only be used in charges and estimates via another Product Template. |
|
Uncheck this box to deactivate the product. |
|
If present, this is added to the invoice note of the invoice. It is added to any pre-existing text and does not replace it. If a template is used in an Estimate, the Invoice Note will be included when the Estimate is invoiced. |
|
if present, this is added to the medical record as a note. |
|
The items that the template includes. These can be either products or other templates. |
An included item may have a:
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.
If a template includes a Medication with doses, the calculated dose will override the Low and High Quantity, except when the Low Quantity is zero.
See Tabs for a description of the fields in the other various tabs.
This is the create/edit/view screen for products that are Services.
The fields are:
|
The ID of the product. |
|
The product name. |
|
An optional description. |
|
The name that will be displayed when the invoice etc is printed. If omitted, then Name will be used. |
|
An optional description to provide additional information to customers about products they are purchasing. Where present, these will be included in printed Invoices, Counter Sales, Credits, and Estimates. |
|
The units by which this is sold (eg Unit, Hour, Day, etc). The available choices are set by the Administration|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. |
|
This is used to set the Product Type - see Concepts|Products. 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. |
|
If ticked, indicates that the product can only be used in charges and estimates via a Product Template. |
|
Used to indicate that a Microchip, Pet Tag, or Rabies tag should be added to the patient when the product is charged. |
|
Uncheck this box to deactivate the product. |
See Tabs for a description of the fields in the various tabs.
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.
Note that prior to OpenVPMS 1.9, exported and imported prices were tax-inclusive. Now all prices are tax-exclusive.
Prices can be selected for export using the following criteria:
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-exclusive 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-exclusive 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 and tax-inclusive prices are not exported as they can be derived.
To calculate the markup from the exported columns use:
To calculate tax-inclusive prices, use:
See Pricing Updates for instructions on manipulating the exported data.
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.
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:
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. |
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:
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.
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 buttons are as follows:
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 price, exclusive of tax. You can either enter the price, or set the cost and markup and the system will calculate the price.
Tax-inclusive Price - the price, inclusive of tax, and rounded according to the price rounding convention. This is calculated from the price, and any tax rates associated with the product, product type, or practice.
If the Tax-inclusive Price is entered, the tax-exclusive Price will be calculated.
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 see 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.
Although you enter only the date, the system keeps full date/time. Hence, if you enter a new price at 3.15pm with its From date set tomorrow (and also set the old price's To date to tomorrow), then the price will change at 3.15pm tomorrow.
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.
If Pricing Groups have been configured, a Pricing Group filter is displayed. This has options:
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.
The doses tab is used during charging and estimating to automatically calculate the quantity of a product from the patient weight, drug concentration and rate for the patient species.
Quantities calculated from doses:
The fields are:
Species - the species that the dose applies to. If unset, it applies to all species
Weight - the patient weight range the dose applies to. The lower end of the range is inclusive, the upper end, exclusive
Rate - the dose rate
Round To - the number of decimal places to round the calculated quantity to. For injections, rounding to 1 or 2 decimal places can be used. For tablets, 0 decimal places may more appropriate.
Doses are selected on the basis of a patient's weight and species.
If a product has a dose for a species and weight range that matches that of the patient, this will be selected over a dose for all species and the same weight range.
For medications with doses for the patient species and weight range, the quantity is calculated as:
quantity = (weight * rate / concentration) * doses
where:
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
This is used to set Laboratory Tests for the product - see Concepts - Investigations. A product can have zero, one, or tests linked to it.
Tests will be ordered when the product is charged.
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:
In order for prices to update, the product must have:
but see also Ignore Price Decreases in the Practice record.
The product's prices are updated as follows:
Notes:
Generating Orders
Note that the system's 'Generate Orders' function will only generate orders for a product that has low stock if:
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.
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.
This tab is used to set the types of patient alerts to be created when the product is invoiced. i.e. each Patient Alert Type will be used to create a corresponding Patient Alert when the product is charged.
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. The Type set for the templates should be 'Patient Form' or 'Patient Letter'. Patient Letter templates may have parameters; these will be prompted for when the product is invoiced.
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
This tab is used to create Tasks when the product is invoiced.
In the above:
This displays as follows when the product is invoiced:
Alternatively, the task can be configured for a specific work list:
In this case, the work list cannot be changed when the product is invoiced:
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.
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.
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.
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)'.
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.
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.
This tab is displayed for Service and Template products when the Practice Use Location Products option is selected, and allows the selection of the products to be restricted to particular practice locations.
This is useful in multi-location practices, where not all products are available at all locations.
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.
The Export and Import options are only available to users with authorities to create and save Stock Adjustments. This includes administrators, and users with the Stock Manager role.
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
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. A user can transfer from any stock location associated with their Practice Locations.
To - the stock location to which stock is to be transferred. A user can transfer to any stock location. This allows stock to be transferred to another location without giving a user full access to that location.
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
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.
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.
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.
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:
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. |
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.
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. |
Product Batches are used to associate a batch number, expiry date, and manufacturer with a particular product.
The Batches screen supports:
When first used, the screen will be empty. The picture below shows it after a selection has been done.
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.
If a batch has run out at all locations, then the Active flag can also be unticked.
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).