export_all

This is an old revision of the document!


26.10. Currencies

Choosing Currencies from the Special menu opens a window with a list of currently entered currencies. The home (default) currency always has a rate of 1, and the entry in the rate column of additional currencies is the number of units of the default currency equivalent to 1 unit of the other currency. In the screenshot below, the home currency is the Australian dollar (AUD) and the Rate of the Euro is 1.3317, so, at the time of writing, 1.3317 Australian dollars (the default currency) was equivalent to 1 Euro, 0.7485 Australian dollars was equivalent to 1 New Zealand dollar, etc.

New: To add a new currency (you can select from the ISO4217 list of currencies).

Get internet rates: Providing you have an internet connection, clicking this button will update the rate of exchange from the Yahoo website.

Update mSupply rate: The refreshed rates will only become active when you click this button.

OK: Click OK to close the Currencies window when you have finished editing currencies.

Editing a currency entry

Double click a currency to edit it manually. Note that your “home” currency should be entered with a value of “1”, and all other currencies should be entered with a rate relative to your home currency. A window with the currency code and the current rate will appear.

You can edit the rate. Note that doing so will automatically update quotes that use that currency.

To change your default currency

  1. Double-click on your default currency in the list
  2. Click the padlock icon
  3. Choose a different home currency.

Note that all other currencies will have to have their rate entered relative to the new default currency

Buttons in the Edit currency window

Delete: Click to delete the currency. If the field is dimmed, the currency is in use by quotations, and cannot be deleted.

Cancel: Click to exit the window without saving changes.

OK: Click this button when you are finished editing currencies.

Using Foreign currencies in transactions

We discuss this very important topic right here

26.11. Using foreign currencies in transactions

The foreign currency feature enables you to receive stock from suppliers in the suppliers own foreign currency and also distribute goods to customers in their own currency.

You must have Foreign Currencies configured in mSupply if you are using this feature. You set them up using Currencies. Once this is done, follow the steps below.

- From the Navigator click drop down menu Special> Show Stores… double click to select the store in which you want foreign currencies to be used and in the window that appears hit tab Preferences. - Check Store mode: Able to issue in foreign currency. - Click OK and return to the mSupply Navigator.

- From the Navigator choose Customers > Show Customers. - Locate the Customer and double-click it. In the window that appears click the General tab and in Currency drop-down list (top-right) select the appropriate currency for that Customer. - Click OK to return to the Navigator and do the same for the Supplier if required.

Instructions in these section to be update

In this example, our store operates with Australian dollars (AUD) as the local currency, and is making a purchase from a European supplier which uses the Euro (EUR)

  1. From the Navigator choose Suppliers > New Supplier Invoice
  2. In the Supplier Invoice window that appears select your supplier and view its details by double-clicking.
  3. Click the Price tab and change the currency (as highlighted in box 1 below) to the currency in which the supplier provides the items to you.
  4. Return to the General tab and click button New line to add a new item line.
  5. In the window that appears type the details of the item you are receiving and hit button OK & Next to add further items.
  6. Once all items are added, again click the Price tab and review the item prices as highlighted in box 2 below:

    The columns headed Price FC and Extension FC in box 2 above show the cost price of goods to you in Euros - i.e. the Foreign currency which the supplier uses, while the figures in the columns on the right show the prices in Australian dollars - i.e. your local currency.

  7. Click OK to save the Supplier invoice and introduce the items to stock.
  • If you change the supplier on an invoice that has item lines, the following message will appear. Check the currency is correct for the new customer and adjust it if necessary.

In our example, the supplier uses Australian dollars (AUD), and is creating an invoice for Highland Health Centre which uses Solomon Islands dollars (SBD).

  1. Ensure Foreign Currencies are active as per the instructions at the top of this page.
  2. From the Navigator choose Customers > New Customer Invoice.
  3. In the Customer Invoice window that appears select your Customer in field Name and note the currently set currency and its rate as highlighted in box 1 below.
  4. Now click the New Line button to add a new item line.
  5. In the window that appears type the details of the item you are issuing and hit the OK button. Repeat as needed.
    • Box 1 shows the customer's currency, SBD, the Currency Rate, which shows the value of 1 Solomon Island dollar in the supplier's currency, Australian dollars, and the invoice value in the customer's currency.
    • Observe the item's foreign currency values (SBD) in the columns Price fc and Price fc ext on the Customer Invoice in box 2 below:
  6. Click OK to save the Customer invoice.
  • If you change the customer on an invoice that has item lines, the following message will appear. Check the currency is correct for the new customer and adjust it if necessary.

In our example, the supplier, International Dispensary, uses Euros (EUR), while we use Australian dollars (AUD).

  1. Ensure Foreign currencies are active as per the instructions at the top of this page.
  2. From the Navigator click drop down menu Supplier> New Supplier Credit.
  3. In the Supplier Credit window that appears select your Supplier in field Name and note the currently set currency and its rate as highlighted in box 1 below.
  4. Now click button New Line to add a new item line.
  5. In the window that appears type the details of the item you are receiving and hit OK. Repeat as needed.
  6. As this is a credit note, the value is shown as a negative amount
  7. Box 1 shows the supplier's currency, EUR, the Currency Rate, which shows the value of 1 Euro in our currency, Australian dollars, and the credit note value in the supplier's currency.
  8. Note the item's foreign currency values (SBD) in the columns Price fc and Price fc ext on the Supplier Credit in box 2 below:
  9. Click OK to save the Supplier credit.
  • If you change the supplier on an invoice that has item lines, the following message will appear. Check the currency is correct for the new customer and adjust it if necessary.

In our example, the supplier uses Australian dollars (AUD), and is creating a credit note for Highland Health Centre which uses Solomon Islands dollars (SBD).

  1. Ensure Foreign currencies are active as per the instructions at the top of this page.
  2. From the Navigator click drop down menu Customer> New credit…
  3. In the Customer Credit window that appears select your Customer in field Name and note the currently set currency and its rate as highlighted in box 1 below.
  4. Now click button New Line to add a new item line.
  5. In the window that appears type the details of the item you are crediting and hit button OK.
  6. Boxes 1 and 2 show details exactly the same as explained in the previous two examples
  7. Click OK to save the Customer credit.
  • If you change the customer on an invoice that has item lines, the following message will appear. Check the currency is correct for the new customer and adjust it if necessary.



26.14. Authorisation

Sometimes it is important that certain critical processes are not carried out until they have been authorised. mSupply allows authorisation to be set according to local needs for:

Response Requisitions can be authorised using the remote authurisation app. See the 26.15. Remote authorisation page for details about that.

Authorisation must be set up for each store independently. For each store, you can decide which transaction types require authorisation.

To do this, choose Special > Show stores from the menus, double-click on the store you are logged into and click on the Preferences tab. Now turn on the authorisation preferences for the transactions you want to be authorised. See the 26.08. Virtual stores page for details on which preferences do what. lick the Special tab, then click Stores.

Certain users must be designated as authorisers for each store by giving them permissions to authorise different transaction types.

To do this, File > Edit users from the menus and double-click on the user (or change the Show drop down list to Group and double-click on the group of users) you want to designate as an authoriser and give them the Authorise purchase orders, Authorise goods received, Authorise customer invoices or Authorise supplier invoices permissions in the appropriate stores.

See the 25.15. Managing users page for details on where to find these permissions.

When the Supplier invoices must be authorised store preference is set, new supplier invoices will show an Authorised checkbox:

An authoriser must check the Authorised checkbox before the supplier invoice can be confirmed (it will be disabled for users who do not have the Authorise supplier invoices permission).

If the OK button is clicked while the Authorised box is unchecked, a warning message will appear telling you that unauthorised invoices cannot be confirmed and nothing will happen.

If you have permission to authorise a supplier invoice, you can also unauthorise it:

  • If the invoice has a new (nw) status then it has not been entered into stock. If you unauthorise it, users can edit it and and you will still control the process of authorisation before the goods are entered into stock.
  • If the invoice is confirmed (cn), the goods have already been entered into stock. If you unauthorise it, users will be able to edit it again and any changes users make will affect stock levels immediately. It is good practice, therefore, to only unauthorise a confirmed invoice to make changes immediately and the reauthorise it straightaway.

When supplier invoices have to be authorised, they cannot be confirmed until they are authorised. Until then:

  • Unauthorised invoices are held at suggested (sg) status.
  • The official invoice cannot be printed.
  • Goods are not received into stock.

When the Customer invoices must be authorised store preference is set, new customer invoices will show an Authorised checkbox:

An authoriser must check the Authorised checkbox before the customer invoice can be confirmed. The Authorised checkbox will be disabled for users without permission to authorise.

If the OK button is clicked while the Authorised checkbox is unchecked, a warning message will appear stating that unauthorised invoices cannot be confirmed and nothing will happen.

When customer invoices have to be authorised, they cannot be confirmed until they are authorised. Until then:

  • Unauthorised invoices are held at suggested (sg) status.
  • The official invoice cannot be printed.
  • Goods are not removed from stock.

When the Goods received lines must be authorised store preference is set, a new Authorised column will be displayed and will contain a checkbox for each goods receipt line. It looks like this:

Users who have the Authorise goods received permission turned on can check the Authorised checkbox for each line that is authorised. When the goods received note is finalised, only lines that are authorised will be added to the supplier invoice to be received into stock. The unauthorised lines will remain on the finalised goods received note as a permanent record of what was actually received but not authorised.

Any unauthorised goods received note lines do not count towards stock received against purchase orders or on goods received notes so they can be received again at a later date if they are resent by your supplier.

Users who have the Authorise goods received permission turned on may also leave a comment in the Authorisation comment field to record anything that needs to be noted.

Invoices can be edited after authorisation but goods receipt lines cannot be unauthorised to fix mistakes! Any authorising errors can only be fixed using stock adjustments.

When the Purchase orders must be authorised store preference is set, new purchase orders will show an Authorised checkbox:

  • An unauthorised purchase order can still be confirmed and have goods receipted against it so it is not as restrictive as authorisation on customer or supplier invoices.
  • However, an unauthorised purchase order will print with an Unauthorised watermark across it. An authorised purchase order will print without the watermark.

Printing unauthorised invoices

When an invoice is not authorised, it will print with a clear Unauthorised watermark. Authorised invoices will print without the watermark.

Viewing authorisation logs

mSupply records the authorisation and unauthorisation of invoices and creates a record every time the authorisation status of an invoice changes.

To view the records, click the Log tab of an invoice.

Advanced users can also view all logs by going to Special > View log...



26.16. Misc labels

This function allows you to create and save labels that you can print at any time from a label printer. Before you can print labels using this function, you must setup the printer must be set up and configured in mSupply - see the 25.18. Label printer hardware setup and 10.08. Label printing preferences sections of this user guide for information about this.

The labels list

To open this list, choose the Special > Misc labels menu item. This window will open displaying a list of all the currently saved labels:

Double-click a label in the list to edit/print that label. If there is a long list and it is hard to find the one you want, you can type something in the Search labels field and the list will be restricted to labels that have a description that contains what you have typed.

Click the New button to add a new label.

The window for editing or adding a label look the same, the only difference is that the existing label will be populated with the current settings saved for that label.

The labels are designed to print to plain 90mm x 40mm (w x h) labels from a Zebra label printer. Please contact us if you require support of other printers and other label formats.


Normal tab

This is for normal layout of printing. This will occur once per label. You can use the quantity to print field to specify how many time to print this same label.

Label name
This field will not print on the label, this name is shown in the list of available labels when the Special > Misc labels menu item is chosen.

Label details
These fields will print on the label in roughly the position that they are on the screen.
Note that if you enter a very long left and right footer they may overlap in the middle of the label.
Print a single test label to check first.

Line spacing
The spacing you want between each line of text.

Size
The font size you wish to use for each part of the label.

Quantity to print
Specify how many copies of this label you wish to print.
Note that the quantity to print is not saved - it is reset to 1 each time you open the label.

Print button
Clicking this button will print to your default mSupply label printer. It will print then number of labels specified in the Quantity to print field.

Cancel button
Clicking Cancel will close the window without saving any changes you have made.

OK Button
Clicking OK will save any changes you have made and close the window.



Multiple tab

This allows you to print the same thing multiple times on the same label.

Layout:
Select “2” for the same thing printed twice on the label, side by side.
Select “4” for the same thing to be printed 4 times on the label in a 2×2 grid layout.

Body
The text you want printed on the label. This label will have no headers and footers.
















26.17. Keyboard shortcuts

These are the keyboard shortcuts you can use in mSupply. They can really speed up your work because using them is much quicker than using a mouse once you get used to them. Try it and see!

The Windows operating system uses the Control key and the Mac operating system uses the Command key to activate keyboard shortcuts. For clarity's sake we've used the control key in the table below. If you're using a Mac just substitute Command for Control.

Shortcut What it does
General useful computer shortcuts / Navigation keys - work in most applications
Ctrl + A Select All text in a field / cell
Control + X Cut
Control + C Copy
Control + V Paste
Control + Z Undo
Control + Shift + Z Redo
Control + Q Quit the application
Tab moves focus to next field / cell. Also used after typing in a selection textbox (e.g. item name) to bring up a window showing selections which match what was typed. But this isn't technically a shortcut, just the way the fields work!
Shift Tab moves focus to previous field / cell
Spacebar toggles between two options (with a checkbox or radio button), e.g. Male / Female in Patient details entry window
Almost Everywhere in mSupply
Enter Activates the default button (which is highlighted) on the active window. Default button is usually OK.
Control + . (full stop) Cancel/Delete
Control + Shift + N OK & Next
Control + Shift + P OK & Previous
Navigator
Control + F Show customer invoices
Control + I Show items
Control + N New customer invoice
Control + R Show prescriptions
Control + D New prescription
Control + J Show supplier invoices
Control + H New supplier invoice
Control + 1 Show log in window
Control + 2 Show switch stores window (same as log-in but no need to enter user/pass)
Control + 0 (zero) Show purchase orders
Control + Y Show customers
Control + U Show suppliers
Invoice entry
Control + N Add a new line to the invoice
Control + Shift + N OK & Next to save, print (if printing checked) and open a new prescription entry window
Invoice line entry
Control + K Same as clicking OK (Enter key is the default OK & Next button)
Stocktake list
Control + N Add a new stocktake
Control + Shift + N Add a new blank stocktake
Stocktake entry
Control + N Add a new line to the stocktake



26.01. Miscellaneous topics

This page is a collection of miscellaneous topics that may be useful but don't easily sit anywhere else in our online documentation. They are included here so that they can be found when you search this wiki for the relevant key words.

You can set mSupply to log an inactive client out after a customisable length of time. See the 15.01. General preferences page for details.

We are presuming that you will finalise and export your invoice data once a month. If you choose a different frequency, you should still follow the same procedure.

Tasks to perform:

  • Check your invoices are correct. Once you have finalised an invoice, it can not be edited.
  • Finalize and export supplier invoices. See the file menu chapter.
  • Finalize and export customer invoices. See the file menu chapter.
  • Record the stock on hand value (this is only necessary if your accounting system requires the information). See the special menu chapter.

Hints:

  • Each month, take your finalised invoices and file them. We suggest you file invoices in order of their invoice number (a separate file for supplier and customer invoices).
  • Keep a file with the summary printout from each month produced when you finalize invoices.

It is usual to run according to a financial year. mSupply does not require you to delete records or perform special operations for the end of the financial year. If you want to, you can just carry on using mSupply as usual.

However, there are certain procedures that will improve operation, and make an audit of your operation easier.

  1. Perform a stocktake.
    1. Finalize all outstanding invoices. Use the Finalize Customer invoices … and Finalize Supplier invoices… commands to do this. (Note that any customer invoices with a status of “sg” (“suggested”) must be confirmed before they can be finalised or exported.)
    2. Create stocktake sheets to record differences easily between actual stock and stock according to mSupply. See the stocktake sheets section of the “Report menu” chapter.
    3. Use inventory adjustment transactions to correct errors. See the Inventory adjustment- add stock and the Inventory adjustment- reduce stock sections of the “Item menu” chapter.
    4. Finalize inventory adjustments. Use the Finalize inventory adjustments command to do this.
  2. Make a backup copy of mSupply as it stands at year-end. It is a good idea to keep this backup in a secure place for long term storage.
  3. Print a ledger for each item. Choose “print item ledger” from the “report” menu. You can use your backup copy of mSupply to print this ledger at a later date.
  4. Choose “set start of year stock” from the “special” menu. This simply records the date and next transaction number, and records the total opening stock quantity for each item to allow a ledger calculation for the coming year.
  5. You are now ready to begin entering transactions for the next year.

If you are using your data file regularly, it is a good idea occasionally to check that no problems have developed. Problems can develop due, for example, to faulty hardware and other reasons outside our control.

For technically competent users or professional IT staff

In the case of a serious hardware failure, the first option should always be to revert to the last known good backup of your data.

If for some reason you must repair a damaged data file, please contact Sustainable Solutions for advice.

To check your data, download a product called 4D Tools . (4D Tools and a manual is included on the CD) from ftp://ftp.4d.com.

4D Tools can simply check your data file for errors, or repair your file. Please contact Sustainable Solutions if you believe your data file has a problem, before repairing it.

Always use 4D Tools on a backup copy of your data first.

If 4D Tools is unable to repair your data, Sustainable Solutions is able to use specialist tools to examine your data, and even export your data and re-import into a new data file. We have not had to do this for a customer yet, but the option is available as a near-last resort.

On Windows:

  • Method 1: Press Ctrl and both mouse buttons, and drag the window to the new location.
  • Method 2: Press Alt-Ctrl-right mouse button, while dragging the window to the new location.

On Mac OS

  • Press Control-Command-mouse button, and drag the window to the new location

If you maintain the mSupply password system carefully, your data is quite secure.

Note, however, that if a person has access to the original copy of mSupply, they will easily be able to open the data file, as the “user 1” password is clearly shown in the password entry screen until it is overwritten the first time you click “OK”. It is your responsibility to keep copies of your mSupply software and data in a safe place.

As of version 1.4, passwords stored in the data file are encrypted with strong (512 bit) RSA encryption, so there is little danger of someone finding your password.

mSupply was initially designed to maintain data relating to a single store in each data file, and for many users, this is how mSupply continues to be used.

Since version 2 users have been able to operate with multiple stores. Normally you will log into a particular store when starting mSupply, and only see stock and transactions relating to that store. However, users can be given the permission to login as Supervisor - All stores. In this mode, users may now access data relating to more than one store - either selectively or cumulatively.

Any user in 'Supervisor - All stores' mode will have access to all data in all stores, not just those that they are allowed to log into. So you should only really give this permission to … a suitably authorised Supervisor ;-).

In this mode, nearly all of the report filter windows will display an additional panel to allow you to select which stores' data will be included in the report. Here is an example from the expiring items report:

All the currently active stores in your datafile appear in the Include records form these stores list. The stores to be included in the report should be selected in the normal way by clicking with the mouse; to select more than one store, hold down Ctrl (Windows) or Cmd (Mac) while clicking on the desired store(s). Ctrl/Cmd + A also works for selecting all stores.

Note also that when you search for items, the filter window has the same store selection:

The item search filters will be applied to items visible in the stores selected only. If there are a lot of stores in the datafile you can click on the Bigger List button (or Magnifier button on some windows) to select the required store(s) in a separate window.

Filtering of stores by Tags and / or Custom data

Some mSupply datafiles can contain hundreds of stores. It cna become problematic to them select the exact stores to include in a particular report. To help with this, on some reports, there is an additional magnifying glass button near the top of the store list. See this example on the Current stock report window:

When you click on the button, this window opens and it allows you to select the stores to include based on store tag and custom data values:

  • Match tags: enter the tags that a store must have to be included in the selection. You can enter multiple tags separated by commas; if there are multiple tags then a store which has any one of them will be included in the search (the store does not have to have all of them to be included). Tags are ignored if this field is left empty. See the 25.08 Virtual stores page for details on setting store tags.
  • Custom data: enter the name of the custom data values that a store must have to be included in the search in the format field name:value where field name is the custom field name and value is the value the field must have for the store to be included. You can enter multiple field name:value pairs separated by commas; any store that has any of the custom fields with that value will be included in the search (a store does not have to have all of the field name:value pairs to be included. If the Custom data field is left blank then custom data values are ignored. See the 25.08 Virtual stores page for details on setting store cusatom data fields.
  • and/or drop down list: determines whether the Tags filter results and the Custom data field searches are ANDed or ORed together i.e. whether a store must have a matching tag AND a matching custom data field to be included or whether it can have either a matching tag OR a matching custom data field to be incuded.
  • Find button: when you click this, only the stores which match the tag and custom data filters will be shown in the store list.
  • Show all: removes all filtering and show all stores in the store list.
  • X/Y Stores shown text: X is the number of stores shown in the list, Y is the total number of stores in the datafile.

When the stores list shows the list of stores you want to include in the report, click on the Select button. This will close this filter window and highlight all the stores shown in this list in the stores list on the report filter window.

Click on the Cancel button if you want to return to the report filter page without selecting any stores.

In Supervisor - All stores mode you can also create Purchase Orders that will be based on data for all stores, and can specify delivery destinations for different lines within the order. See the 6.05. Multi-store Purchase Orders page for details.

If you have need to change item codes in bulk, refer to Import new item codes

If you have need to change the On Price List for items in bulk, refer to Update On Price List in bulk



Previous: 26. Other Topics | | Next: 26.02. Reminders

26.02. Reminders

Updated: version 3.1

From the Special menu, choose Reminders; this feature of mSupply allows you to create notes of tasks that users may need to be reminded about. In the Reminders window of the Preferences , you can check the box which will, if the particular user has been issued with one or more Reminders, display them whenever the user logs in.

The Reminders command shows reminders for tasks that are not yet completed.

The window defaults to reminders which are Incomplete and Assigned to me, but other options are available:

To add a new reminder, click the New reminder button.

To edit a reminder, double-click it in the list.

To delete a reminder, click on the reminder to delete, then click the Delete button.

You can sort the list by clicking on the column headers. Click a second time to sort in the opposite direction.

Filtering the list

You can change the reminders displayed according to the status and whether the reminder is for you to complete or was created by you.

To show only complete or in-complete reminders, choose from the status drop-down list.

Reminder details window

Date: The due date of the task

Assigned to: By default you create reminders for yourself, but you can also create them for other users. If you're the micro-managing type, you could put everyone else's work plans in for each day or week!

Message: The text of the reminder message. Reminders may be shown in any one of eight colours, according to the colour selected when you click on the box in the upper right corner of the New Reminder or Edit Reminder window

Completed: Check this box if the reminder is completed (but note that it won't usually show in the list once is is checked)

Repeats automatically: Once this box is checked, you will be shown options for the reminder to repeat daily, weekly or monthly.

Options for repeating reminders:

  • Start date: the first date after which the reminder will repeat. For example, if you want an event to repeat every Wednesday, you'd set this date to the first Wednesday you want the reminder to repeat on
  • Every X days/weeks/months: For example, if you want a reminder to be created every three months to do a stocktake, you'd enter 3 and choose months
  • Preview button: clicking this button shows a window with a list of dates that the reminder will recur on.

Colour: Use the Drop-down list of colours to set a reminder colour. This colour will be used to colour the reminder in the list. For example, you might want to choose Red for all tasks you intend to do today.



26.03. Transaction Status & Type Codes

mSupply uses a series of two letter codes to denote the different types of transactions it can handle.

Code Meaning
ci customer invoice (goods supplied to a customer)
cc customer credit (goods returned by a customer)
si supplier invoice (goods received from a supplier)
sc supplier credit (goods returned by you to a supplier)
sr repack (changing the pack size of a stock line)
bu build (manufacturing (building) items from other items in stock)
rc receipt (cash receipt) from a customer (a customer pays for invoices issued)
ps payment (cash payment) to a supplier

Inventory adjustments have a type of “si” if stock is being increased and “sc” if stock is being reduced. They have a reserved name whose name[type] field has a value of “invad”

mSupply uses a set of two letter codes to keep track of the status of each transaction:

Code Meaning
nw new invoice
sg Suggested
cn Confirmed
fn Finalised
wp The order has been received over the internet (a “web” order), and it is currently being processed
wf The order has been received over the internet (a “web” order), and it is finalised
Code Meaning
sg The order has been created, but the “stock on order” value for each item has not yet been updated. If another order for the same item is processed, mSupply will not take account of suggested orders. Suggested orders can be deleted.
cn The “stock on order value” for each item has been updated. Confirmed orders can also be “unconfirmed” if you cancel an order. Items & quantities can still be edited.
fn The order has been received, Goods Receipts and Supplier Invoices have been created for all stock received.
The order is now completed and all stock not delivered is no longer considered “on order”.
No more stock can be received.
Code Meaning
nw The “new supplier invoice” menu item has been chosen, but the OK button on the invoice has not yet been pressed, or confirming the invoice has been postponed. (This option is only available if “confirm supplier invoices automatically” is unchecked in the Preferences). Note: quitting mSupply by choosing the “quit” command from the file menu or click the application close box (Windows only) while you are entering a new supplier invoice will result in the invoice being saved with status “nw”. To confirm the invoice, open it then click the OK button
sg This status is not used for supplier invoices- invoices of status “nw” become status “cn” when the OK button on the form is pressed
cn The invoice has been entered, but can still be edited.
fn The invoice has been finalised , and can no longer be edited.
Code Meaning
nw The “customer new invoice…” menu item has been chosen, but the OK or “confirm” button has not yet been pressed.
sg The invoice has been created. An order from a customer has been received, and the items put against the invoice are still in your store, but are no longer “available” to issue to other customers. (i.e., the “available” amount for each item line has been reduced, but the “quantity” amount has not). Note that if “one step confirm” is checked in the Preferences, then customer invoices move straight from being status “nw” to status “cn”
cn The invoice has been confirmed by clicking the “confirm” button, which is done when the stock leaves the store. Lines that couldn't be supplied are added to the “backorder” file. The invoice can still be edited.
fn The invoice has been finalised, and can no longer be edited. If the Customer invoice is to another store in your system, then finalisation of the Customer Invoice also triggers generation in the receiving store of the Supplier Invoice or Goods Receipt (if the Customer Invoice is the result of a Purchase Order / Requisition from the receiving store)
Code Meaning
nw The build is being entered for the first time.
sg Suggested - the raw materials are taken out of stock, but the finished product (the item to build) is not yet entered into stock.“
cn Confirmed - the raw materials are taken out of stock and the finished product is entered into stock
fn Finalised - the build can no longer be edited



Previous: 26.02. Reminders | | Next: 26.04. Budgets

26.07. Virtual stores

From the Special menu, choose Show stores

In mSupply a virtual store is a way of segregating particular stock so that some users only see that stock and the transactions associated with it. When a user logs into mSupply, they choose a particular store to login to - this we call the current store. mSupply then operates as if:

  1. The stock in that store is the only stock available.
  2. Only stock from the current store will be available for issuing,
  3. Reports will relate to stock in that store
  4. Issues from and receipts to that store only use the stock in that store
  5. Only suppliers and customers sets as “visible” for that store will be able to be chosen for receiving and issuing goods
  6. Only items set as “visible” in that store will be usable (So for example if you have a store that handles only vaccines you can make vaccines visible in that store (and invisible in all stores that don't handle vaccines)

Many users of mSupply will only have a single store, and so will have no need of this functionality.

The following examples illustrate situations where you might want to run more than one store.

  • A hospital pharmacy where you have two dispensing locations: an inpatient pharmacy and an outpatient pharmacy.
  • A pharmaceutical warehouse where stock from a particular donor is received, issued and accounted for separately to stock in the rest of the warehouse.
  • A hospital pharmacy where the pharmacy store stock is treated separately to the dispensary stock. You would set up mSupply with a store called “Pharmacy store” and a store called “Dispensary”. You would use the function covered in section 8.05. Transferring goods to another store to move stock from the pharmacy store to the dispensary.
  • A pharmaceutical warehouse where you have 2 or more actual warehouses. These may be adjacent or several hundred kilometres apart. (Of course you need network connectivity between sites to run mSupply at each site).
  • You're using mSupply mobile- each mobile site will synchronise data with a virtual store on the mSupply server.

Note: In the above examples, when you log on, you would select the appropriate mode - see table:

Examples Stores Log on mode
Hospital Pharmacy In-patient Dispensary Dispensary
Out-patient Dispensary Dispensary
Hospital Pharmacy Pharmacy store Store
Dispensary Dispensary
Warehouse Adjacent Store Store
Remote store Store

From the Special drop down menu click Show stores… The Stores list window (shown below) appears and displays a list of all the stores which currently exist including their sync type:

Double-click on any store in the list in the View stores window described above to view or edit its details. You will see the same window as in the Creating new stores section below but the various fields will be filled in with the store's current settings. You can click into the fields and edit them as desired. Note that in the top left of the window, the name of the store you are editing is always displayed, regardless of which tab you are on, so that you always have a reminder of which store you are editing!

This new store will inherit the same user and group permissions (but not login permissions!) as the store which you are logged in to when you execute it. It is therefore worth logging in to a store that has similar user and group permissions to those that you want to have in the new store. Often the supplying store will be a suitable store for this purpose.

To create a new store click the New store button in the Store list window shown above. This will display the Store details window shown below, which allows you to enter the details of the new store:

If you want to create the store for an existing customer, don't follow the rest of the instructions here. Refer to Transition a customer to a virtual store.

Name

The name used to identify the store throughout mSupply. It must be unique and mSupply will tell you if another store has the same name; you will need to change it before you can save. Any non-printable characters entered before or after the name will be removed. Any entered in the name will be replaced with an underscore (_).

Store code

The code used to identify the store. If you have a lot of stores it would be helpful if you decide on a good pattern to use for the codes. The code must be unique too; mSupply will tell you if the code is already in use and you will need to change it before you can save it. Any non-printable characters entered before or after the code will be removed. Any entered in the code (and spaces) will be replaced with an underscore (_).

Store type

Set in the drop down list to the right of the Store code field. Can be one of:

  • Store: a normal store used for managing inventory and issuing to customers
  • Dispensary: a store used for managing inventory and dispensing to patients

Organisation name

The name of the organisation running the store. Defaults to the organisation name entered in File > Preferences.

Address details

Enter the address and contact details for the store in here if there are any. These details can be used in reports

Disable this store

Check the Disable this store checkbox to stop the store from being used. You might want to use this feature if the store is not ready for use yet or is no longer to be used and can't be deleted. You will be asked to confirm the disabling after clicking on the OK button on this window.

Responsible officer

Select the officer responsible for the store in this drop down list. A helpful reminder for others and can be used in reports.

Store credentials

These are used when the store needs to be identified securely over electronic communications. An example of this is when using the cold chain app for monitoring temperature in cold storage and freezers.

To tell mSupply to use the credentials, check the Use store credentials checkbox (unchecking it deletes the store's credentials so please be careful before doing so).

This will enable the Username and Password text fields and you can enter the appropriate details.

  • The Username will be set to the first three letters of the store's code by default.
  • The Password must be at least 4 symbols but not more than 30 symbols, and can contain letters and numbers.

If you need to view the password you have entered to check it is correct, click on the button.

Tags

Tags are used in several ways:

  • for determining which programs a store can use.
  • for contronlling some customisation features.
  • for reporting to group stores together.

This area shows the tags that the store currently has. To add a tag, simply click into the area and type the tag's name. When you have finished typing the tag's name then press the Tab or Space keys on the keyboard (not Enter or return, that will close the window!). You know when you have done it right because the tag will appear in its own little box with an 'x'. If you want to remove any tag from the store, simply click on that 'x'. In this way you can add or delete as many tags from a store as you like.

When you click on the OK, OK & Next or OK & Previous buttons, any new tags you have created here will be added to the list of name tags in your system. See the 5.05. Name tags page for details.

After having created a new store, the Stores list window will display the new list of all stores and you may double-click an entry to edit that store's details. A number of things that will need to be attended to are:

To do a number of the following steps, you will need to log in to the new store. To do this, you will need to give yourself access to the new store as shown in section 25.15. Managing users. Any other users who need to access the store will also need their permission altered accordingly. After giving yourself permission to log in to the new store, log in to it and carry out these steps.

  • Set the preferences for the store.
  • Set the store's logo so that it can appear in print-outs and reports.
  • Set the visibility of items in the store. All items in the system will be set to invisible in the new store when it is created. You will need to modify visibility of items in order to be able to handle stock of those items.
  • Setup Synchronisation if you are going to use a synced system. See remote_sync.
  • Setup any custom store data (used for reporting).
  • Set the master lists used by the store (a convenient method for controlling item visibility). See 4.04. Item master lists

If this newly created store will be 'Active' on a satellite server on a synced mSupply system (refer to remote_sync, then user access to the store will need to be defined on that satellite server.

  • The preferences tab is only visible if you are looking at the details of the store you are logged into.
  • The preferences described here are set 'per store' and can be different for each store in an mSupply datafile.
  • In a synced system there will be multiple 'sync satellites' and store preferences will need to be set for each store on each mSupply sync satellite. See remote_sync.
  • Other preferences (accessed through File > Preferences…) apply to all stores in an mSupply datafile.
  • If you have to set the same preferences for lots of stores you might like to try the 26.08. Bulk Store Preferences Editor. It just might save you some time and your sanity :-)

This tab contains the preferences that can be set for a store. Each store has its own settings for these preferences: this is different for the settings in File > Preferences which apply to all stores in an mSupply datafile.

This is what the tab looks like:

The Search store preferences search bar at the top is used to find a particular preference. If you type something in here, preferences which contain the text you have typed only are displayed, all others are hidden. There are a lot of preferences so this should help if you just can't find the one you want!

This is what each preference does:

Sort available batches by VVM status rather than Expiry When issuing stock, this will sort the list of available batches by vaccine status first, then by expiry date rather than by expiry date first (e.g. 8.01. Issuing goods to a customer (customer invoices)).
Patients created in other stores not visible in this store If this is checked, patients that are created in other stores across all sites will not be visible in this store. If it is off, all patients from all stores from all sites will be visible to this store. It is set to true by default when a store is created. USE CAUTION: Turning this OFF for many stores does not scale well and can overload the sync system. See the 10.03. Patients page for more details.
Names created in other stores not visible in this store If this is checked, names (customers, suppliers, manufacturers, donors etc.) created in other stores in the same site will not be visible in this store. It is set to true by default when a store is created.
Allow users to enter total quantities to distribute to appropriate packs On a customer invoice an additional Total field is displayed so that users can enter the total quantity of units that they wish to distribute or the number of packs.
Round up the distributed quantity The value for distributed quantities will be rounded upwards.
Able to pack items into multiple boxes Checking this enables the functionality for packaging goods into boxes on the Transport tab of a customer invoice. See 8.06. Box management for details.
Store: Able to issue in foreign currency Foreign currencies can be used on supplier invoices for overseas suppliers.
Allow editing selling price on customer invoice lines Individual selling prices can be edited on customer invoice lines. Please note that the Price editable when issuing checkbox on the General tab of an item's details page must also be checked for each item that the price is to be editable for.
Purchase order must be authorised Turns on purchase order authorisation. See Ordering Items From Suppliers.
Finalise customer invoice automatically Automatically finalise customer invoices with confirmed status, which is normally when the goods are dispatched.
Customer invoices must be authorised Turns on customer invoice authorisation (i.e. goods can only be sent to a customer after the action has been authorised). See 26.14. Authorisation for details.
Authorisation needed only if over budget This additional option is enabled when customer invoice authorisation is turned on.
Confirm customer invoices automatically Set a New Customer Invoice status to confirmed when the OK button is clicked. This means that it is not possible to print a picking slip for the issued goods.
Supplier invoices must be authorised Turns on supplier invoice authorisation (i.e. goods can only be brought into stock when the action has been authorised). See 26.14. Authorisation for details.
Confirm supplier invoices without asking Set a New Supplier Invoice status to confirmed when the OK button is clicked. The goods are made available in stock without informing the user.
Goods received lines must be authorised: Turns on goods receipt authorisation (i.e. only authorised goods receipts can be processed for the goods to be made available in stock). See 26.14. Authorisation for details.
Locations must be entered for goods received A shelf location must be entered on the goods receipt item line form when receiving goods into stock.
Able to specify manufacturer when receiving, ordering or quoting for items Gives users the option to record the manufacturer of goods when making purchase orders, goods receipts or entering a quotation from a supplier.
Show item unit column when issuing If checked, when goods are issued on a customer invoice or prescription, an Item unit column is included in the window used for selecting items to add.
Log transaction edit
Set pack to one for all visible items in this store
Use remote authorisation for response requisitions Turns on remote authorisation for response requisitions. See 26.15. Remote authorisation for details.
Include requisitions from this store in suppliers' remote authorisation processes If checked then requisitions from this store will appear in the requisition approval processes of the suppying store. See 26.15. Remote authorisation for details.
Can manually link requisition to supplier invoice When receiving stock, users can match the supplier invoice to the initial requisition. They can then add items from the linked requisition, speeding up the process of creating the supplier invoice. This is useful for stores requesting and receiving stock from suppliers that do not use mSupply. See the 7.01. Supplier invoices page for details.
Automatically populate supply quantities with requested quantities On requisitions, automatically populate supply quantities with requested quantities, instead of 0. Supply quantities can still be edited.
Show extra fields on requisitions When a line is selected on a response requisition, an extra box is displayed under the table of requisition lines to show the calculations behind the suggested quantity. The extra field is currently only populated for Côte d'Ivoire users.
Keep requisition lines with zero requested quantity on finalise If this is checkled, lines on requisitions that have zero requested quantity are kept when the requisition is finalised. Otherwise they are deleted (normal behaviour).
Show comment field when entering supplier invoice lines Allows users to type a comment for individual items received on a supplier invoice.
Use EDD placeholder lines in supplier invoices from this store If turned on, any placeholder lines on a customer invoice that is a stock transfer are duplicated on the supplier invoice in the receiving store when the customer invoice is finalised. The placeholder lines in the supplier invoice appear on an Unsupplied items tab (see the 7.01. Supplier invoices page for details). Note: the placeholder lines are not duplicated on the supplier invoice if the receiving store is an mSupply mobile store (placeholder lines are not used in mobile stores).
Consolidate batches Items with the same batch, expiry date, pack size, location, donor, cost and sell price will automatically consolidate when bringing goods into stock from a supplier invoice or doing a stocktake.
Edit prescribed quantity on prescriptions When checked an additional Prescribed quantity field is available when entering a prescription line. See 10.02. Prescription entry for details.
Allow users to choose diagnosis on prescriptions When checked an additional Diagnosis drop down list is available on a prescription. See 10.07. Diagnoses for details.
Use consumption and stock from customers for internal orders If checked, when calculating the current stock and consumption figures (to calculate the suggested order quantity), the stock issued to all customers and the total stock of all customers will be used instead of the current stock and consumption of the current store. Note that customer stores are all those stores that have this store set as their supplying store. See the 6.04. Ordering from one store to another page for details about internal orders.
mobile: Alert if a patient is dispensed the same vaccine multiple times in a week This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup for details.
mobile: Enforce lookback period This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup for details.
mobile: Uses vaccine module This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup and also 20.01. Vaccine Vial Monitoring (VVM) for details.
mobile: Uses dispensary module This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup for details.
mobile: Uses dashboard module This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup for details.
mobile: Uses cash register module This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup for details.
mobile: Uses payment module This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup for details.
mobile: Uses patient types This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup for details.
mobile: Uses Hide Shapshot column This preference only has an effect if this is an mSupply mobile store. See mSupply mobile setup for details.
Pickface replenishments must be authorised If checked, pickface replenishments in this store must be authorised by a user who has permission to authorise them before they can be finalised. See the 4.21. Pickfaces and Replenishments setup and 4.22. Pickfaces and Replenishments pages for details.
Able to specify VVM status when receiving items If checked then a new VVM status field will be available on a supplier invoice for the user to select the current VVM status of the batch when it is received on a supplier invoice or inventory adjustment. See the 7.01. Supplier invoices and 4.18. Inventory adjustments pages for details. Also, if checked then an additional Doses column is displayed on a customer invoice. See the 8.01. Issuing goods to a customer (customer invoices) page for details.

Notification preferences

These are used by the notification/alert functionality described on the 14.01. Notifications (Alerts) page. The notifications inform users of situations that need their attention. The thresholds that give rise to some of the notifications can be set here.

Threshold for overstock

The minimum months of stock an item must have to be considered as overstocked. i.e. in danger of expiring on the shelf before it is used. An alert is triggered for an item if the total quantity in stock (including all batches) divided by the average monthly consumption of the item (calculated using the last 12 months' usage in the current store) is greater than or equal to this threshold number. The default is 6 months.

This value should be set no lower than the maximum amount of stock that you would expect to regularly have in stock. Based on the formula developed in Calculating the required stock quantity, this would be Ordering cycle + (months of) buffer stock. The default value of 6 is suitable for a store with a 2-monthly order cycle. For a central store with an annual order cycle, then this figure should be set to 36

Threshold for understock

Also called Buffer stock, this is the number of months of stock that an item must have less of, to be considered understocked i.e. in danger of not having enough to meet demand. An alert is triggered for an item is the total quantity in stock(including all batches) divided by the average monthly consumption of the item (calculated using the last 12 months' usage in the current store) is less than or equal to this threshold number. The default is 3 months.

This alert should only be triggered when your stock levels fall below your buffer stock levels. Based on the formula developed in Calculating the required stock quantity, Buffer stock (months) = 2 x Ordering cycle. The default value of 3 is suitable for a store with a 6-weekly order cycle. For a central store with an annual order cycle, then this figure should be set to 24. That is a lot of space for a national store with several thousand items :-/

Expiring items period

An alert will be triggered for an item if a batch is due to expire in less than this number of months. The default is 3 months.

This alert should be triggered if there is a reasonable risk that your store, or your store's customers will need to dispose of stock due to expiry. However, this is only a real concern if there are significant quantities of the item with short expiry. So, in isolation, Expiring items period is a bit arbitrary. As a rule of thumb, the Expiring items period can be set to equal the ordering cycle. On that basis, the default value of 3 is suitable for a store with a 3-monthly order cycle. For a central store with an annual order cycle, then this figure should be set to 12

Custom data

This section is for store specific custom data fields that must always be present. User definable custom fields are handled on the Custom fields tab (see the Custom fields tab section below for details).

Monthly consumption lookback period: The number of months of consumption information to use when calculating average monthly consumption for this store. Currently only used when the Côte d'Ivoire customisation is enabled.

Months lead time: The number of months before ordered goods normally arrive. Used to calculate how much stock to order for the suggested quantity in requisitions, for example. Currently only used when the Côte d'Ivoire customisation is enabled.

Suggested packing in boxes

These preferences affect the suggested pack functionality described on the 8.06. Box management page.

  • Prefix for generated boxes: Defaults ot no prefix. Each box created in a suggested pack has a number which starts at 1 and increments by 1 for each new box created. Whatever you enter in this text field will be added before these numbers to give you the box names. For example, if you enter “Box-” then the boxes will be created with names “Box-1”, “Box-2”, “Box-3” etc.
  • Percentage space to leave empty: Defaults to 0. Boxes will be packed as close to 100% of their volume minus the value entered in here. This is helpful to account for situations where the size, shape and possible orientation of packs make it hard to pack them all into the actual volume expected.

When finalising a goods receipt

There are three options:

  • Don't receive goods into stock until supplier invoice is taken off hold - for goods to enter stock you must finalise the goods receipt and then take the automatically generated supplier invoice off hold
  • Receive goods into stock, and leave supplier invoice confirmed - goods enter stock as soon as the goods receipt is finalised. The automatically generated supplier invoice is created with confirmed status.
  • Receive goods into stock, and finalise supplier invoice immediately - goods enter stock as soon as the goods receipt is finalised. The automatically generated supplier invoice is created with finalised status.

How you set this preference is determined by how separate your goods receiving and finance sections are. If they are not in the same building, you might want to use the “Receive into stock and leave confirmed” option, as this will allow you to proceed with issuing goods without waiting for the finance department's approval.

For stock transfers, the supplier invoice in the receiving store should be...

This option applies to all stores that this store transfers stock to.

This option is used to determine whether stock transferred from one store to another is received to a destination store and automatically introduced to stock or not. The On hold option prevents stock from being introduced, while the Finalised option automatically makes the stock available for use in the destination store - without the receiving store having the opportunity to amend the Goods Receipt.

  • Choose Finalised if there is no need to check / alter the quantity received compared to what was sent.
  • Choose On hold if the store is being used by mSupply mobile, and the goods receipt needs to be confirmed before receiving.

Location code pattern

This is used with phased stocktakes (see the 4.18. Phased stocktakes page for details) to tell msupply which parts of your shelf location codes (see the 4.06. Stock locations and location types page for details) represent the aisle, level and position of the location.

An aisle is a whole row of racking like this:

A level is a horizontal level of the racking like this:

And a position is a vertical column of the racking like this:

Use the letters A, L and P to represent the aisle, level and position parts of the location code.

Let's use an example to show how it works. Let's say that the shelf location codes are in the format B01.C.01 where B01 represents the aisle, C represents the position and 01 represents the level. Then in the Location code pattern text box you would enter the text AAA.P.LL

It doesn't matter what characters you use as separators, mSupply only looks for the positions of the letters A, P and L. If more than one character is used to define any of the three parts of the location then they must appear together in the location code pattern.

Here you can set the store logo by pasting in a logo you have copied to the clipboard - you must copy the contents of a file to the clipboard, not the file itself. The file can be in .jpg, .png, .bmp, .gif, or .tiff format. This logo will be displayed at the bottom right of the mSupply navigator screen when you login to this store only.

This store logo will override the logo saved in the Settings > Preferences > Logo tab.

To print this store logo on standard customer and supplier invoices etc. you will need to go to the Settings > Preferences > Logo tab in mSupply and tick the Display logo on invoice checkbox. When a store logo is set it will print the store logo instead of the logo set on that preferences tab.

Note that after saving the store logo you must login to mSupply again or use the switch function to reload this store to see it.

This tab shows the custom fields that have been set up for stores (see the Custom fields section for details). You can also add or edit custom fields directly from this screen.

Adding a custom field

To add a new field, click on the New line button; a new line with default values of “Field label” and “Field value” in the two columns is added to the table and highlighted. Click on the value in each column and type the real label and value for the piece of information.

Editing an existing custom field

To edit the label or value of any custom field, simply click on the cell in the table and edit the entry.

Deleting a custom field

To delete any custom field simply select its row in the table and click on the Delete line(s) button. You can use Shift+click, Control+click, Control A (or Cmd instead of Ctrl if you're using a Mac!) to select multiple lines and delete them all at once if you like.

Controlling the visibility of items in different stores is important because you can only order, distribute, receive goods for and report on items that are visible in your store. It's also important that stores don't have items visible that they don't use so that they don't accidentally order them etc.

If you have lots of stores in your data file, managing item visibility can turn into a difficult task. Thankfully, mSupply has some helpful tools to make it simple! There are 2 ways to manage item visibility and you use one or the other, not both:

  1. automatically using the Master lists tab or
  2. manually using the Visibility tab

Each are useful in different situations and are described below.

Master lists tab

If you have a lot of stores in mSupply, we recommend that you use master lists to control item visibility. Especially in a syncing system because it means that the visibility of newly created items will be automatically handled correctly. The visibility of items in a store whose visibility is controlled by master lists is immediately updated if any changes are made to any of the master lists. For instance, if a new item is added to a master list controlling visibility then that new item is made visible in all stores that use the master list. And any items deleted from the master list are made invisible in any store using that list.

The first thing to do is to turn on the preference to make master lists control item visibility in stores. Do that in File > Preferences… on the Item tab - see General preferences, the item tab for details.

The next thing to do is to create the master list(s) that will control item visibility. See Item master lists for details on how to do that. Giving your master lists helpful names will help you remember what they're for e.g. “Store xxx visibility list”.

Now edit the store to tell mSupply which master list(s) will be used to define which items are visible in the store:

  1. Click on Special > Show stores… (or click on the Stores icon on the Special tab of the navigator)
  2. Double-click the store who's visibility you would like to manage:
  3. Click on the Master lists tab:
  4. Select which master list(s) you would like to control the visibility of items in your chosen store by checking their checkbox in the Use master list column: In this example, the All items: General warehouse master list has been selected to control the visibility of the General warehouse store. Please note: If there are a lot of master lists, you can type in the Search master lists field and the list will show only those master lists which contain what you type.
  5. Click the OK button to finish. As soon as you do that the items on the selected master list(s) are made visible in the store and any items not on the selected master list(s) are made invisible. Any new items added to the selected master list(s) will be made visible in the store and any items removed form the master list(s) will be made invisible in the store.

Visibility tab

If your system is a Sync system (with Primary and Satellite servers) and your store is hosted on a Sync Satellite server, then you will not see the Visibility tab. These settings need to be made while logged in to the Sync Primary Server.

You will also only see this tab if you are editing the store you are logged in to.
To log into a store you may need to first give yourself permission to do so under File > Edit Users > Double-click your user name > the Log in rights tab. Phew!

The Visibility tab contains tools for manually setting the visibility of items and names in a store.

The item visibility tools are good to use if you do not have many stores in mSupply and only need to make occasional changes to visibility for a number of items. If you want to make a change to a single item's visibility in a single store then you can do that by going to the item's details window and using the store tab (see Item basics, the stores tab).

If you have turned on the preference to control item visibility by master list then you will not be able to use the visibility tab or the visibility settings on the store tab of an individual item's details window.

Here's what the tab looks like:

The buttons provide you with different ways to hide and show items and names in the store (Note: be careful showing names in databases that have a lot of names records. For example if you have 20 virtual stores and 200,000 names in your database, showing all names in all stores will create 4 million (20×200,000) records to map the visibility of each name in each store):

  • The Show stats button shows how many items and names are currently hidden and visible
  • The Set item visibility to match master lists for this store button matches the item visibility to the master lists that are selected on the Master lists tab. (Note: this is a one-off operation, no changes will be made to item visibility if the master lists are changed after you click this button. See the section above if you want that to happen!) If there are some items that can't be set to invisible (because they have stock, for example) a temporary master list will be created containing the items which could not have their visibility removed. Use the list to decide what to do with each item.
  • The Make all items in this store visible and Make all items in this store invisible both do just as they say.
  • The Set pack to one for all visible items in this store will check the Allow pack to 1 conversion and Convert pack to 1 when receiving checkboxes for all items in the store so that all stock received into the store will automatically be received in packs of 1. This is useful in a dispensary store, for example.
  • The Set to match button requires you to choose a master list. Clicking the button makes the items that are on the master list selected in the drop down list next to it visible in the current store. Note that it does not hide items that are already visible but not on the master list.
  • The Make all names in this store visible button does exactly what it says and makes all names in the datafile visible in the current store.
  • The Make all names in this store invisible button does the opposite and makes all names in the datafile invisible in this store. Be careful using this - you won't be able to receive or distribute stock from/to anyone until you make some names visible in the store!
  • The Query names button enables you to search for names (customers, suppliers, manufacturers, donors etc.) in the datafile. Every search you run creates a selection which is then operated on by the Make found names visible in this store button.
  • The Make found names visible in this store will make all names in the last selection made with the Query names button visible in this store. Ask Sustainable Solutions for help if you're not sure about getting the right selection of names, as the consequences of making a mistake can be time consuming to fix!

The users tab shows which users have permission to log into this store.

The table shows a list of all the users in alphabetical order. If a user can login to this store then their corresponding Can login checkbox will be checked. If the store is the user's default store then the checkbox in the Default store column will be checked.

You can add or remove permission for a user to login to this store by checking or unchecking their Can login checkbox (only if you have permission to edit store details though).

mSupply has a synchronisation system designed to cope with environments which have weak or intermittent internet. The system passes information between a server and remote site (or tablet running mSupply mobile) when there is an internet connection, and stores information to be sent when there is not.

See the 29.01. Introduction to synchronisation page for more details.

This tab displays some of the synchronisation settings for this store:

The Resync patient records when store is saved checkbox forces all patient records to be re-synchrionised with the server when the OK button is clicked. This is useful if there appears to be something wrong with one or more patient records.

This tab shows a list of all the names (customers, suppliers, stores, donors, manufacturers etc.) in the datafile and which are visible in this store. You are also able to edit the visibility of names:

The table shows whether the name is a customer or supplier (or both). The checkboxes in the Visible in this store column are editable. If checked then the name is visible in this store, if unchecked then the name is not visible in this store. Click on one of the checkboxes to change its state.

  • Store checkbox: If checked then names thast are stores are shown in the table
  • Facility checkbox: If checked then names that are not stores are shown in the table
  • Search names field: If you type in here then only names that contain what you type will be displayed in the list. Useful if you want to find a particular name or group of names in a long list.
  • All off button: Clicking this will uncheck all the checkboxes in the Visible in this store column (so making all names invisible in this store) and the button will change to All on. Clicking it then will check all the checkboxes in the column (and therefore make all names visible in this store).
  • Copy button: Copies the current state of all the checkboxes in the Visible in this store column.
  • Paste button: Pastes the states of checkboxes saved using the Copy button to the names in the table. Doesn't do anything if you haven't previously clicked the Copy button.

Clicking on the OK, OK & Next or OK & Previous buttons will save any changes you make on this tab.

To delete a store, click on the Delete button in the View stores window. Note: deletion of a store is a serious thing to do and is only possible when that store contains zero stock and there have been no transactions recorded. mSupply will check and tell you that deletion is not possible if these criteria are not met. If you can't meet these criteria and you still want to stop people using the store then you can Disable it - see above.

If the store is Active on a sync satellite site, then this process will not delete the sync satellite site.

You may have a customer that is about to start using mSupply. That customer needs to become a store in mSupply. There are two ways to do this.

Whichever method is used, this is difficult to reverse. Only do this once you are sure. You have been warned!

Create new store and then merge with the existing customer name

Until version v5.02 (see below), the procedure was:

  1. Create the new store with a similar name
  2. Use mSupply's Merge names functionality to merge the two names into one
  • You must choose the newly created store's Name as the “Name to keep” and the older Customer's name as the “Name to delete”. However, doing this means that you will lose the original name properties. Therefore you should also take a note or a screenshot of name properties that you want to keep (e.g. address, categories etc.) and then re-apply them to the new store name.
  • mSupply may prevent the merge due to unfinalised CIs from other stores in the system. You will need to finalise these CIs on the corresponding stores before the merge is successful.
  • These can be hard to find on a multi-store system where the transactions could have come from a number of places. Suggested approach: Use Supervisor mode, view CIs, and customise the list view to show Store name.
  • If these transactions are on a number of stores on satellite sites on dodgy internet connections, it can take days to log in to the satellite sites, finalise the CIs, and sync the finalised CIs back to the Primary. Meanwhile, there is a danger that new transactions will be created! :-\
  • These inconveniences are why the Turn an existing customer into a store feature was developed ;-).

Turn an existing customer into a store

Due to the limitations of the method described above, from mSupply v5.02 onwards, you can choose to convert an existing customer into a store, and thereby retain all of its properties.

If the name is not visible to the store that you are logged in to, this method will not work! First make the name visible, then start this process…

  1. Log into a store that will have the same or similar user and group permissions as the new store.
  2. Customer > Show customers… to find the customer that you want to convert into a store and copy the Name. This will ensure that you are converting the correct name into a store - see warning below!
  3. Special > Show stores… > New Store You will see an alert like that shown below. If you are logged in to a suitable store (see Alert above), then you can continue:
  4. Click on the Turn an existing customer into a store checkbox
  5. Enter the existing customer name into the Name field. You can search for existing customers by typing the first few letters of the customer's name, and then press Tab. To ensure that you are converting the correct name into a store, paste the Name that you copied in step 2 above. This should result in at least the store code field getting populated. If this does not happen, then the existing customer has not been recognised - try again.
  6. Populate the Responsible officer, Store credentials and Tags fields if required.
  7. Click OK



26.09. Custom data

Custom data allows you to add data to mSupply that doesn't naturally fit into one of the existing fields.

  • Choose Special > Show custom data… to show the list of custom data sets.

  • Click New
  • This window is shown:

  • For our example, we're going to record population in several regions each year, so we need
    • A real number field to store the population number
    • A text field to store the region name
    • A date field to store the year
  • We've labelled the data set RegionalPopulations
  • To change the field names, click once on the name, and then wait a second or two and click again- now it is editable:

  • Click the data tab then click New

  • You can extract data by using the following method in a pagepro report
  • custom_value_get(“data_set”;“field_to_query”;“search_value”;“field_to_return”;→“variable_to_return”)
    • “data_set” is the name of the data set. e.g. "RegionalPopulations"
    • field_to_query is the internal name of the field “text_1” , “Text_2”, “real_2”, “date_7”
    • “search_value” is the value you're looking for in “field_to_query”
    • “field_to_return” is the field name of the value to return
    • “variable_to_return” is a pointer to the variable that will contain the data returned.
  • Sound too complicated? We usually build these reports for clients, but this documentation is for the technically minded who want to build their own.



  • Last modified: 2016/03/30 22:30
  • by fergus