Log User Activity

Continuing from this post Is there a way to create User Login log? - V5 Question - SambaClub Forum (sambapos.com)

Is there a way we can log user activity, like to see which modules were accessed by a user and at what time. Who changed prices and at what time. Who changed recipes , what time? etc. This helps because a manager can lower prices so he can buy stuff that he wants and put back the prices to normal say maybe the following morning.

Theres nothing built in to do this, you can create some automation to log things, but what you really need to do is focus on management of staff, if you know you have a manager reducing prices for their own gain sack them!

There will always be people who want top steal and ultimately pos systems arent security systems and are designed for sales, inventory etc. I can see how it would help for investigations but theres a point where you need to trust staff and if you find them doing something like this say bye bye to them

1 Like

Maybe create a new Navigation button to product price list and log who used it together with orders they made you can see if someone is changing things to benefit themselves.

2 Likes

If the manager has no business changing prices you should put that user into a role that has no access to management.

Unfortunately, changing the price in management updates the db directly and no user information is passed.

Here’s what I’ve used to track price changes no matter where they happened:

Automation Script (Handler @@ShortSales):

SELECT o.TicketId         AS TicketNo,
       o.CreatedDateTime  AS OrderDate,
       o.MenuItemName     AS Name,
       o.Price            AS SalePrice,
       mip.Price          AS OriginalPrice,
       o.CreatingUserName AS UserName
    FROM dbo.Orders                      o
         INNER JOIN dbo.MenuItems        mi
                 ON mi.Id                = o.MenuItemId
         INNER JOIN dbo.MenuItemPortions mipor
                 ON mipor.Name           = o.PortionName
                    AND mipor.MenuItemId = o.MenuItemId
         INNER JOIN dbo.MenuItemPrices   mip
                 ON mipor.Id             = mip.MenuItemPortionId
    WHERE o.Price        < mip.Price
          AND o.PriceTag <> 'HH' --Exclude Happy Hour Prices
          AND o.PriceTag <> 'VIP' --Exclude VIP Prices
          AND o.CreatedDateTime
          BETWEEN '{Start}' AND '{End}'
    ORDER BY o.TicketId;

These lines I used to exclude order for which I know the price will be less - change to your own suiting if you have price-tag based discounts.

          AND o.PriceTag <> 'HH' --Exclude Happy Hour Prices
          AND o.PriceTag <> 'VIP' --Exclude VIP Prices

Report:

[Details:2,3,3,2,2,3]
>T No|Date|Product|Sale|Retail|User
@@ShortSales

As for tracking recipe changes, you’re looking at some custom triggers on certain tables in the db on update and even then you’ll only be able to see the time it happened and not the user. You could implement some login/logout tracking to narrow who was logged-in at the time and go from there.

1 Like