LS Central

 24.0 Release Notes

About This Release

Released - April 8, 2024

This version is built on Microsoft Dynamics 365 Business Central 2024, release wave 1, build 24.0.16410.18056.

LS Central version 24.0 is a major release in our new release plan. Previously, we included new features in monthly releases, which also included new events and hotfixes.
Based on feedback from our partners and customers, we decided, however, to align our product development with the release timeline used by Microsoft for Business Central.

Quick links:

Important Notices! 

New or Enhanced Features

Fixed Issues

Hotfixes

Important Notices! 

The LS Central release plan

The new release plan means that

  • we will release new features for LS Central in two major release waves every year – scheduled for April and October, coinciding with the general availability of Business Central Release Wave 1 & 2. Our partners will be granted access to a feature-complete release candidate five to six weeks ahead of time.
  • we will continue to release new events and hotfixes on a weekly basis and cumulative updates as needed.

  • minor versions will be made available depending on the availability of the minor update from Microsoft.

We expect to follow this process for the 2024 wave 1 version, with an official release coinciding with the release of Business Central 2024 wave 1 from Microsoft.

Known issue in 24.0

When upgrading Business Central to version 24.0, an issue may arise if a report from a third-party app has been customized.

In previous versions, the LS Central demo database includes a customized report that can cause the upgrade of the demo database to fail.

To resolve this issue, the customization must be deleted before upgrading. This can be done either through the Business Central web client or directly from the SQL.

delete from dbo.[Custom Report Layout$437dbf0e-84ff-417a-965d-ed2bb9650972] where [Report ID] = 10015801

LS Central SaaS test environment scripts no longer released

As of version 23.0, LS Retail no longer releases the LS Central SaaS test environment scripts to the LS Retail Portal. These scripts set up a local Docker container with the same version as used in SaaS and were used for testing. Instead, partners can now use sandboxes in SaaS, add LS Central to a sandbox, and test their extensions.

New or Enhanced Features

Links to quickly navigate this section:

LS Central Shopify Pharmacies
Fashion Aggregated Inventory Forecourt
POS Bookings Hardware Station
Replenishment eCommerce POS Commands
Restaurants Hotels  

LS Central

LS Central

Compressed Customer Order Lines

This version introduces Compressed Customer Order Lines (CCO), which means that a CCO can handle multiple quantities. In previous versions all Customer Order Lines (CO) entered quantities were split into lines with Quantity = 1.

  • A CCO line can have multiple statuses, for example we can have a line with Quantity = 200, Picked = 100, Collected = 50, Shortage = 25 and Canceled = 25.
  • POS panels have been adjusted to make it possible to enter multiple quantities. BackOffice pages have been adjusted to show status of a CCO in a clear way.
  • Multiple quantities are supported in CCO lines linked to Purchase Orders, Transfer Orders, and Sales Orders. CCO lines are linked directly to corresponding lines in the respective Document Lines.

The CCO functionality is activated in the Customer Order Setup page by enabling the Compressed Lines Active check box. This activation is only done on the Head Office (HO) or main database (not on each POS).

Note: You should not perform the activation unless all POSs have been upgraded. A POS can be upgraded to the new version before you activate the functionality in HO, and the POS will function as before as a non-CCO POS. After activation, the same POS will function as a CCO POS without any alteration.

Note: This activation migrates all Customer Orders and Posted Customer Orders to the new structure, and this cannot be reverted.

It is possible to skip the migration, but it is recommended to not do so to be able to continue working with the orders and viewing them properly.

The migration does not compress lines in Customer Order lines, but adjusts them to the new functionality. Retail Sales Order lines are split and linked to individual lines in the respective Customer Orders.

New POS panels are needed for the CCO functionality to work on the POSs. Those panels are available in the LS Central Demo Database and are the following:

  • #CO_LIST_VIEW
  • #COCOLLECTINGLINES
  • #COPICKINGLINES
  • #COPUTBACKCCOITEMS
  • #COVIEWLINES

Use the LS Import Export WS page to export the panels from the Demo Database and to import the file on each POS. Finally, make sure that Notify Marked Count is set to True in 'POS Data Grid Control' #DEFAULT, #COLINESELECT.

For more information see How to: Activate the Compressed Customer Order Lines (CCO) Functionality in the LS Central Help.

Customer Order modifications enabled

  • It is now possible to edit or change Customer Orders on the POS. Users can now update receiver name and address, or pull the order into the POS and add or void Items in the journal. A new POS command, CO_EDIT, has been added to support this.
  • A new functionality, Bank Transfer, has been added to enable users to pay for Customer Orders with bank transfers. The order is marked as waiting for payment. A manual process in Back Office - Customer Order has been added to apply financial entries to the Customer Order. POS command TENDER_K is used with a new Tender Type marked as Bank Transfer in Back Office.

Email Sales Slip Attachment improved

Email Sales Slip Attachment can now be customized by using reports, when using POSTerminal.SalesSlip::E-mail or Print and E-mail.

In the POS Functionality Profile Card, set the Sales Slip Report ID field to a report that is based on the Transaction Header table.

The HTML body of the email can be modified as before by using event OnBeforeAssignEmailItemOfSendEmail.

Gift cards

PIN code for POS Data Entry Types (gift cards and vouchers)

A new security feature has been added to the POS Data Entry Types (gift cards, vouchers, and soon). Now a PIN code can be required when creating a new Data Entry.

If a Data Entry Type is set up to require a PIN, the POS staff must enter the PIN code to validate the Data Entry when using it as payment on the POS.

To make a PIN a requirement for a POS Data Entry Type, the user activates the Use PIN option on the POS Data Entry Type Card and enters the preferred length of the PIN (4-6 characters).

The PIN is created automatically when a POS Data Entry is created. The PIN is printed on the slip and is not visible in the system, except to Managers in the POS Data Entries page. If you are a manager, you select the entry that you want to look up, and press the PIN action.

Printing PIN on slips

You can add a PIN code to Extra Print slips for POS Data Entry Types. The variable %PN has been added to the POS Print Variables table. The PIN can be added automatically by inserting the POS Print Variables in the Insert Default Data page which is accessible from the Retail Setup page.

Selling online

You can now send gift cards by email, if the POS terminal is set up to send sales receipts via email.

License Manager

  • License Manager files have been moved to their own folder.
  • To force a connection to License Manager when running in SaaS, validations and notifications for critical tables for On SaaS environments have been added.

Base Units

BASE unit validations have been added.
When modifying or inserting records in critical LS Central tables and the user is a Full User, we check if the user has a BASE unit assigned. This only applies to SaaS.

This first version will display a NOTIFICATION but not block the use of LS Central.

A new page, License Manager Base Units, has been added, This page is accessed from the License Manager Setup page. On this page you can assign and unassign LS Base Units to BC Users.

The page displays:

  • the quantity of available LS Base Units.
  • the list of BC Users assigned to a LS Base unit.

This page requires a connection to License Manager API. If there is no connection, a warning message is displayed.

If there is no connection, it is not possible to assign or unassign users. But whatever was set up at the time of the last successful call to the API will remain valid.

For more information see How to: Set Up License Manager in the LS Central Help.

Check to validate eCommerce licenses

When posting a Customer Order, a check now validates if the customer has an eCommmerce license when creating ecom orders. The function checks if the order is from eCommerce, and if there is a unit for the order.

eCommerce demo license enabled

It is now possible to create an eCommerce demo license.

New field in Retail Setup page

A new field, HO Distribution Location, has been added to the Retail Setup page. After being populated, this field can no longer be empty. Notifications were added to some pages, and are displayed if the new field is not populated.

Depending on the value in the new field, the License Manager Call Home functionality will call the License Manager API or the HO web services.

Make infocode visible on a posted invoice generated from the POS

A new field, Transfer POS Free Text Lines Into Cust. Order/Sales Orders, has been added to the General FastTab on the POS Functionality Profile Card. When you activate this field, the Free Text lines are transferred from the POS to the respective Customer and Sales Orders.

Posting Retry Phase II

This is a new functionality to allow posting retries on the POS. Parameters for this functionality are part of the POS Functionality Profile.

ScanPayGo: new web service

A new web service has been added to validate if a customer basket has been checked in the ScanPayGo process.

SCO Service becomes Self-Checkout Connector

The name Self-Checkout Service (SCO Service) has been changed to Self-Checkout Connector in LS Central visible pages.

Visibility to tokens on Member Contact card

It is now possible to view available Member Tokens from Token Storage through the Member Contact card.

Web replication enhancements

Web replication has been enhanced to support parallel OData replication. With this functionality, activated data packets can be sent to up to 50 locations simultaneously in background sessions. If there are more than 50 delivery locations, the process is broken up into batches of up to 50 locations in each.

Fashion

Season Management Improvements

We have introduced various enhancements to improve the usability of the Season Management functionality in LS Central.

New Setup Fields

You can now specify the Year and Period to which a Season belongs, for use with Analytics for LS Central. These two fields also provide you with more options to group and sort the Seasons.

Moreover, you can now specify the initial season when the item was introduced to the assortment, by using the Season Code (First Purch.) field on the Retail Item Card.

Mass Data Handling

We have introduced the Assign Items to Season report, which lets you easily assign a collection of items to a Season, reassign the items from one Season to another Season, and to remove items from a Season. You can also use the Copy to Special Group and Copy from Special Group actions available on the Seasons page to synchronize the item setup between Seasons and Special Groups. The Copy to Special Group functionality adds all the items from a Season to the specified Special Group, whereas the Copy from Special Group functionality assigns all the items defined in a Special Group to the specified Season.

For more information see How to: Set Up Seasons and Assign Items to a Season in the LS Central Help.

Seasonal Items Analysis

We have added four Analysis Views to the Seasons page, to provide you with insights into the inventory status, as well as sales and purchase information of seasonal items. The Analysis Views utilize the Analyse feature in Business Central, where Pivot Mode can be activated to look at the data as an aggregated information on the item group level. The four Analysis Views available are: Season - Items, Season - Items without Code, Season - Item Groups, and Season - Special Groups.

The Inventory Chart, Item Sales Chart, Lifecycle Curve Chart, and Lifecycle Curve (Aggregated) Chart have been added to the FactBox area in the Season Items page, to provide you with graphical overviews of the item's inventory and sales development. You can also easily open the Replen. Sales Chart from the Season Items page to look at the sales pattern of the selected item.

For more information see Seasonal Items Analysis in the LS Central Help.

Improved Page Accessibility

We have added multiple actions to the Seasons and Season Items pages, to let you easily navigate to various pages. These include the Lifecycle Worksheets, Redistribution Templates, Stock Recalls, Periodic Discounts, Sales Prices and Discounts, Purchase Prices and Discounts, Availability, and Item Status related pages.

Variant Description for Items created from Item Import Journal

When importing items with variants using the Item Import Journal, the items' variant descriptions are now constructed based on the Value Description field from the Variant Framework. The Value Description in the corresponding Item Variant Framework is also populated with the same descriptions.

POS 

Configuration "Weight Conversion Factor" added to POS Scale Card

The default value is 1000. This configuration is for the calculation for the weight coming from the scale. Usually, the scales return the weight in a multiple of 1000, but in some cases it is a multiple of 100 or 10.

Functionality to use GetToken functionality in LS Pay added to POS

When a new "Card on file" (or Token) is created, more information is attached to the token, such as Initiator (Cardholder, Merchant), InitiatorReason (Purchase, Installments, and so on). The POS now calls a new function within the Hardware Station and LS Pay called CreateToken. When paying with a "Card on file" and if the Member contact has more than one Card on File attached, a panel is now displayed with information about the tokens where they can be selected. If the Member contact only has one token, no panel is displayed and the token is used directly.

New events were added around the Card on File operations (AddCardToFile, CardOnFile) for partners to manipulate the Token information before it is sent to LS Pay through the Hardware Station.

Information in "InfoTextDescription" displayed during weighing

The Scale dialog window now displays the item while it is being weighed.

MSR enable/disable functionality added

MSR enable and disable functionality has been added in POS Command setup.

POS Font letter case option

It is now possible to set a Letter Case for POS Fonts.

POS interactive Dual Display

  • Users can now show panels on Dual Display by going to Button Properties and selecting Show on Dual Disp.
  • Infocode pop-up can now be shown on Dual Display by setting Display Option on Infocode to Pop-up Dual Display.
  • When a panel is shown on Dual Display, the customer can interact with the panel.

Shipments on POS adjusted to compression

Customer Order lines can now have Quantity greater than one. As before, these orders can be partly picked, shipped, and collected.

Unused internal and local procedures removed from POS Transaction Impl. and POS Print Utility Impl.

Unused methods and variables have been removed from POS Transaction and POS Print Utility.

Replenishment

Consider Purchase Return Order for Effective Inventory Calculation in Replenishment

The Effective Inv. Purch. Return Order field is now available on the Replen. Setup, Replenishment Control Data, Item Store Record, Replenishment Data Profile, and Locations pages.

You can specify if the quantities in the Purchase Return Orders will be considered as part of the effective inventory for the item in Replenishment. When the Coverage option is used, you can define how far back into the history and how far into the future the Purchase Return Orders will be considered for the effective inventory calculation, by using the Purchase Return Ord. Historical Days and Purchase Return Ord. Coverage Days settings available in the Replen. Setup.

The Effective Inv. Purch. Ret. Order (exclude in Transfer Journal) and Effective Inv. Purch. Ret. Order (exclude in Redist. Journal) settings allow you to exclude Purchase Return Orders from the effective inventory for the Replenishment calculation in Transfer and Redistribution Journal.

For more information see Common Replenishment Data Fields in the LS Central Help.

Exclude Item Groups from Out-of-Stock and Replenishment Calculation

We have added functionality which enables you to exclude items from Out-of-Stock and Replenishment calculation, from the Division, Item Category, and Retail Product Group level.

Exclude from OOS Calculation

The Exclude from OOS Calc. field is now available on the Item, Retail Product Group, Item Category, and Division pages. If this field is enabled for an Item, it is excluded from the Out-of-Stock calculation. Enabling this field on the Retail Product Group, Item Category, and Division pages propagates the setting down to the items under the relevant Item Group.

Exclude from Replenishment

The Exclude from Replenishment field is now available on the Retail Product Group, Item Category, and Division pages. Enabling this field on the Retail Product Group, Item Category, and Division pages propagates the setting down to the items and Item Store Records of the items under the relevant Item Group.

For more information see Common Replenishment Data Fields in the LS Central Help.

Expected Receipt Date Handling in Purchase Orders

The Expected Receipt Date for the Purchase Orders created from Replenishment Journal, Replen. Stock Demand Worksheet, and Allocation Plan can now be automatically populated based on the Purchase Lines' Expected Receipt Date by configuring the new setup fields under the Integration FastTab, Purchase Order (Expected Receipt Date) group in Replen. Setup.

For more information, see Create Purchase and Transfer Orders, Planned Stock Demand, How to: Create Purchase, Transfer, and Sales Orders from Allocation Plan Defined, and How to: Create Purchase, Transfer, and Sales Orders from Allocation Plan Distribute in the LS Central Help.

Handling of Negative Effective Inventory in Replenishment Journal Calculation

You now have the option to manage the negative effective inventory within Replenishment Journal calculation. You can enable this feature by using the Set Negative Eff. Inventory to Zero, Set Negative Warehouse Eff. Inventory to Zero, and Allow Negative Projected Eff. Inventory settings on the Replenishment Template page.

Set Negative Eff. Inventory to Zero

When this option is enabled, the system will adjust the calculated effective inventory of the store from negative to zero during Replenishment Journal calculation.

Set Negative Warehouse Eff. Inventory to Zero

When this option is enabled, the system adjusts the calculated effective inventory of the warehouse from negative to zero during Replenishment Journal calculation. This option is only applicable for Purchase Replenishment Journals that replenish the warehouse.

Allow Negative Projected Eff. Inventory

When Replenishment calculation is done with lead time enabled, the lead time sales quantity is deducted from the item's effective inventory to get the projected effective inventory. In the event that the projected effective inventory becomes negative after the deduction, enabling the Allow Negative Projected Eff. Inventory option allows the value to remain negative, so that you can order the full expected demand quantity during the lead time period.

For more information see Replenishment Templates in the LS Central Help.

Improved Cross Docking Calculation for Purchase Replenishment Journal

We have improved the calculation workflow and introduced new setup fields to enhance the usability of Purchase Replenishment Journal with Cross Docking.

Order Quantity Driven by Quantity to Cross Dock and Store Stock Coverage

The calculation workflow for Cross Docking in the Purchase Replenishment Journal has been streamlined where it is now driven by Quantity to Cross Dock, which is in turn based on the Store Stock Coverage related parameters. The Quantity to Cross Dock will be rounded by the Transfer Multiple for each store, while the total Order Quantity will be rounded by the Order Multiple. After rounding, if the total Order Quantity is less than the total Quantity to Cross Dock, the Quantity to Cross Dock will be brought down and redistributed to match the Order Quantity, either using the default proportional distribution method, or using the Replen. Transfer Rules.

Replen. Transfer Rules for Cross Docking Calculation

You can now use Replen. Transfer Rules in Purchase Replenishment Journal with Cross Docking. During the calculation, the Transfer Rule is applied when the rounded total Order Quantity is less than the rounded total Quantity to Cross Dock, where the Quantity to Cross Dock can be redistributed via Auto-Single or Auto-Full method, according to the priority order of the store locations.

For more information see Replenishment Transfer Rule in the LS Central Help.

Warehouse Effective Inventory Handling in Cross Docking Calculation

You can now decide if the warehouse effective inventory should be deducted from the order quantity or if it should be ignored so that the full demand quantity will be ordered for Cross Docking. This can be set up using the Warehouse Effective Inv. Handling setting under the Effective Inventory FastTab in Replen. Setup.

Inbound Warehouse Handling Time for Cross Docking

You can now define the Inbound Whse. Cross Dock Handling Time for the warehouse in the Location Card to specify its cross docking handling time, which could be different from the standard Inbound Whse. Handling Time. When Lead Time is enabled and Replenishment Coverage Days Profile is used with Consider Inb. Loc. Handl. Time enabled for an item, the Inbound Whse. Cross Dock Handling Time will be used as part of the lead time calculation.

For more information see Lead Time Calculation in the LS Central Help.

Consideration of Forward Sales Forecast Factor

The Forward Sales Forecast Factor is now applicable for the Quantity to Cross Dock in Purchase Replenishment Journal, when an item's Replen. Calculation Type is set to Average Usage and the Store Forward Sales Profile is used.

For more information see Forward Sales Profile (Store/Warehouse) in the LS Central Help.

Item Distribution Update Optimization in Hierarchy Relation

The Update Item Distribution function in Hierarchy Relation has been optimized where instead of deleting all Item Distribution records related to the item hierarchy and reinserting the updated Item Distribution records, it now performs delta updates with Insert, Update, or Delete transactions only when necessary.

New Mass Data Maintenance Functionality in Replenishment Control Data List

From the Replenishment Control Data List, you can now create Item Store Records for multiple items, and copy the Item Distribution records from a source item to multiple destination items, by using the Create Item Store Record action and the Copy Item Distribution action, respectively.

For more information see How to: Create Item Store Records for Multiple Items and How to: Copy Item Distribution to Multiple Items in the LS Central Help.

Reorder Point and Maximum Inventory for Warehouse

You can now specify the Warehouse Reorder Point and Warehouse Maximum Inventory for an item in Replenishment. You can set them up by using the Reorder Point - Whse. field and Maximum Inventory - Whse. field in the Replenishment Control Data page, or the Replenishment Data Profile page. These parameters are used in Replenishment Journal calculation and when defined, the system will order up to the minimum or maximum warehouse inventory of the item when purchasing the item to the warehouse. The settings are only applicable for replenishment journal calculation that replenishes the warehouse, and without cross docking.

For more information see Common Replenishment Data Fields in the LS Central Help.

Replen. Item Quantities Page is now more accessible

The Replen. Item Quantities page is now searchable from the LS Central client and is accessible from the Assortment group menu in Replenishment Role Center.

Replenishment Parallel Calculation Job Balancing

You can now use the new Balancing Optimization Enabled option in the Replenishment Parallel Jobs page, to optimize the balancing of the work load between the parallel jobs for Replenishment Item Quantity and Out-of-Stock calculation. Enabling this option excludes blocked items from the balancing, allowing the system to split the work load more evenly between each parallel job.

With the option enabled, you can also enable the Consider Excluded from Replenishment option, if you wish to further exclude items that are set to Excluded from Replenishment, from the balancing. However, note that this option does not consider Item Store Records with different setup.

Sales History Adjustment Calculation Rules Improvements

We have enhanced the Sales History Adjustment Calculation Rules with new options and filtering capabilities.

Filtering on Items Based on Replenishment Calculation Type

A new Replenishm. Calc. Type Filter field has been added to the Sales History Adjustment Calculation Rules of type Item Ledger Entries and Outlier Detection, which allows the filtering of the sales history calculation based on the Replenishment Calculation Type of the items.

Considering Item Ledger Entries of All Source Types

A new Consider all Source Types field option has been added to the Sales History Adjustment Calculation Rules of type Item Ledger Entries. By default, only Item Ledger Entries having the Source Type of Customer are considered during the sales history calculation, but when this option is enabled, Item Ledger Entries of all Source Types will be considered.

For more information see Sales History Adjustment Calculation Rules in the LS Central Help.

Skip Zero Lines for Scheduler-based Replenishment calculation

The Skip 0 Lines functionality in Replenishment Journals is now available to be used with the scheduler job. You can specify this setting in the Replen. Template page. The Skip 0 Lines function has also been extended to skip the Replen. Jrnl. Detail Lines with zero quantity.

For more information, see Replenishment Templates in the LS Central Help.

Stock Recall Improvements

Adding Items without Quantity on Hand

When adding item lines to the Stock Recall page with the Allocation Plan - Insert Items report, you now have the option to choose, if only items having available stock to recall should be added, by using the Add lines where Quantity on Hand is 0 option on the report.

Adding Only Items Not in Item Distribution

The Only Items not in Item Distribution option in the Stock Recall page is used to specify, if the system should recall items only from store locations that are not defined in Item Distribution. We have improved this functionality so that only Item Distribution records with Status = Active, Ordered by = Central, and Ordering Method = Calculate are considered as valid setup. An Item Distribution with Ordering Method = By hand, for example, is considered as invalid and will be qualified for stock recall, if the Only Items not in Item Distribution option is enabled.

Transfer Unit of Measure for Replenishment

We have introduced a Transf. Unit of Measure (Replenishment) field in the Retail Item Card, for you to define a Transfer Unit of Measure to be used when creating Transfer Orders from the Replenishment Journal.

Automatically Convert to Transfer Unit of Measure in the Transfer Order

You can now specify a Transfer Unit of Measure to be used when creating Transfer Orders from the Transfer Replenishment Journal or Purchase Replenishment Journal with Cross Docking, by using the Transf. Unit of Measure (Replenishment) field in the Retail Item Card. By setting up the Replen. Journal UoM Handling field in the Replen. Setup, under the Transfer UoM group in the Integration FastTab, you can define if the Quantity or Quantity to Cross Dock, when it fulfills the Transfer Multiple, will be automatically converted to the specified Transfer Unit of Measure when creating Transfer Orders from the Replenishment Journal.

Transfer Multiple Fields Update

By using the Transf. UoM Updates Multiple Field setting added to the Replen. Setup, under the Transfer UoM group in the Integration FastTab, you can now define if the item's and the Item Store Rec's Transfer Multiple fields will be updated with the value set up for the Qty. per Unit of Measure when the Transf. Unit of Measure (Replenishment) of the item is changed. The multiple fields will also be updated when the Qty. per Unit of Measure field is changed, if the quantity changed belongs to the Transfer Unit of Measure currently assigned to the item.

You can also use the Lock Transfer Multiple field in the Replen. Item Store Rec page, to allow its relevant record to lock its Transfer Multiple from being updated when its item's Transf. Unit of Measure (Replenishment) is altered.

For more information see Order Multiple and Transfer Multiple Validation in the LS Central Help.

Restaurants

Deal pricing

You can set up additional deal pricing for deals by creating deal price lists. Deal price lists are valid for specific customer price groups or all registered customers. You can assign starting and ending dates to them and a validation schedule to control, down to time of day, when they are valid. You can use Min. Quantity and Max. Quantity settings to give offers on deals, such as 2 for 1. Once you have created a deal price list you assign deals to it. Then you activate the deal price list.

eCommerce orders now include delivery information

Address information and delivery comments can now be added to the web service request for eCommerce orders. The information is added to the food and beverage order and shown in the Order Host POS terminal, previously known as the Takeout Host. The Order Host panel shows orders for multiple sales types, such as takeaway and delivery, and the sales type is displayed in the list.

The POS command FAB-NEWORDER can now have the Sales type as a parameter to enable order creation for multiple sales types.

Self-Service Kiosk

Self-Service Kiosk order number

In the end of a sale, the Self-Service Kiosk shows the queue counter number given to the transaction. This is to prevent confusion, for example, if the receipt or order number is not printed at the end of the transaction. You can enable and disable this feature in the Self-Service Kiosk Profile.

Self-Service Kiosk profile

All settings for the Self-Service Kiosk have been gathered in one place, the Self-Service Profile.

The Self-Service Profile now contains the settings from the POS Web Template page that were only intended for the Self-Service Kiosk, such as the Web template images and Web Template texts, along with the translation setup.

All settings for the Self-Service Kiosks that were on the Restaurant card were also moved to this profile. These are the Language profile settings, currency setting for number format, enabling/disabling of member scanning, and showing the item HTML information.

The Self-Service Kiosk profile is then added to the Store or individual POS terminals.

Shopify

Shopify improvements

  • Currency support
    Shopify can now handle and display orders from stores that operate with currencies that are different from the default LSC currency.
  • Attributes to MetaData setup
    You can now pick which LSC attributes to send to Shopify as MetaData. Use MetaData mapping to map those attributes. If Include Attribute in MetaData is selected, all attributes are sent, regardless of the Mapping setup.

LS Central Modules

Aggregated Inventory for LS Central

Aggregated Inventory for LS Central is a module designed to tackle a significant challenge faced by businesses dealing with a high number of transactions. As transaction volumes increase, standard processes in Business Central, in particular adjust and post inventory costs, tend to become time-consuming bottlenecks.

With Aggregated Inventory, the system consolidates inventory transactions from multiple store locations into a single aggregated location. This consolidation decreases the number of Item Ledger Entries, leading to faster execution of critical processes.

For more information see Aggregated Inventory in the LS Central Help.

Bookings for LS Central

Activity Additional Item

It is now possible to use item variants when assigning Retail items as additional charges.

Activity Matrix date & time format

Date and time format has been added to the Activity Matrix.

Activity price updated when moved to another resource on matrix

We have changed how the rescheduling in the matrix handles pricing changes due to the reschedule side effects, that is new time or if resource based pricing might be affecting the price. Now by default, users are prompted if they want to keep the previous price or accept the new pricing for the rescheduled activity. As before, fully paid activities keep their pricing, and if pricing is not affected, the user is not prompted. Also, a different handling can be specified per reservation type, where the user can specify if pricing is always recalculated or always kept as prior to rescheduling, to eliminate the need for user prompting, if required.
Note: Rescheduling done at Point of Sale or via web API is always handled without prompting, where the default is to use the new price, if not otherwise specified in the related Reservation Type Card "Reschedule price handling" setup. In the availability matrix's drag and drop process (rescheduling), the user will get a notification if pricing was affected, regardless of the "Reschedule price handling" settings.

Allow booking in the past

The option to book activities to the past has been added. Now there is a new field on the Activity Type Setup card, Allow Past Bookings (Days), which when set, lets users book the related products into the past. Users must set up how many days into the past they are allowed to book or re-schedule bookings. Note that if this option is used, the Activity user booking flexibility (min) setup is not relevant. That setting is only relevant when it is not allowed to book into the past.

Color of past activities on the Matrix

Past activities displayed on the Matrix now have 70% opacity.

Consumption action renamed to Cost

The Consumption action on the group, event, reservation and activity cards has been renamed Cost. The cost view now shows the estimated cost regardless of the internal activity status, except that additional charges assigned to canceled activities are not included. The resource cost, which was previously missing, has also been included in this view.If no resources are assigned yet (that is a reservation or activity is in internal draft status), the cost is based on the average resource cost based on the required resource groups.
Note: For group reservations, the cost cannot be calculated unless the related reservations have been created.

Create invoice from Deposit Schedule

It is now possible to create an invoice for a deposit directly from the Deposit Schedule page.

Deal link added to product additional item BO and POS

Deal handling has been enhanced in the system. Now deals can be reserved as part of an activity without being set as allowances. This means that the deal content can be pre-selected by the user in BackOffice and not only be selected via allowances at the POS.

Deal support added to Additional item API

We have enhanced the handling of the Additional Item charges API to support variants, set allowance, set pricing, and support non-allowance deals.

Deals added to restriction mechanism

The charge restriction functionality now also supports setting up deals in the reservation charge restrictions. Previously, only items could be restricted.

Event Category field added to Product Additional Items

The Event Category field has been added to the Activity product additional item setup, and will be populated by default when the activity reservation is created. If the field is blank, the default setting based on the activity type or activity product will be used. The additional charge event category is also now populated by the default at entry, to make it more obvious to the user which category is being assigned automatically.

Event number added to reservation API

Event No. has been added as an update option in the related group and standard reservation insert and update APIs.

Expired Pricing added to archiving

A new feature has been added to the activity archiving process. Now any expired pricing and discounts are removed from the activity pricing table into a archiving table for history tracking purposes. All pricing and discounts (including promo code related pricing) with an ending date that has passed are moved to the archiving log. This way users can be assured that only active pricing is in the pricing setups and price views are not cluttered with outdated pricing. The pricing history log is accessible from the Booking (activity) role center.

Guest types added to Activity host

Guest types are now visible on the Group Reservation panel on the POS.

Improved performance in pricing/discount retrieval

Performance in the pricing search has been improved.

Item and deal restrictions on events and event types

Restriction setup has been added on the Event Types card and the Event Card.

Restriction settings which are applied on the above entities are included with the restrictions on the member, if a reservation is assigned to an event. Restriction on event level will overwrite restrictions on event type level. If the same items or deals are applied, the restrictions on member account level are the final decision on the restriction setting and overwrite both of the above.
Note: If a product is not allowed on event or event type level (that is limit amount is 0), that setting will not be overwritten on customer or account level. This means that events can have products that are not sold at the event and thus no customer can order them.

Main group member synchronized to Paymaster

When group reservations are created or modified, the main group member is now synchronized to the Client No. field in the Paymaster reservation. Reservation restrictions are then based on the client number in Paymaster.

Multiselect activity products in a reservation

It is now possible to multiselect activity products in the Reservation Card lines by using the Assist Edit button in the Product No. field, which now lists the activity products and the user can use the BC multiselection. There is also a new shortcut to enter an activity's starting time: the user can now enter the time value into the Availability field, which is editable and shows Set Time by default.

NEWGROUPRES and ADD2GROUPRES commands for activity host

The NEWGROUPRES and ADD2GROUPRES POS commands are now supported in the Activity Host with the ACT-FRONTDESK command. Add the ACT-FRONTDESK command with parameter NEWGROUPRES or ADD2GROUPRES to a POS button in the Host to run the commands.

New parameters and POS tags

New parameters and POS tags are now available for the #ACT-FRONTDESK POS command.

  • The parameters are: ARRIVALS, DEPARTURE, CURRENT (INHOUSE), NOSHOW, OPENBALANCE, and OPENPOSTRANS.
  • The POS tags are: <#ACT-Departures>, <#ACT-InHouse>, <#ACT-NoShows>, <#ACT-OpenBalance>, <#ACT-OpenPOStrans>.

New view: Item Summary

New summary view, Item Reservation Summary, has been added to the role center. The summary shows items reservations (additional charges) based on location/event and period. The user can select to filter based on item category, item product group, or item special groups. Also, the deals summary can be displayed. The result can either be quantities, cost amounts, or sales amounts.

Number of persons in a reservation and in added activities

If a reservation has No. of Persons specified, that value becomes the default for the activities that are added to the reservation. The default value of No. of Persons on the activity product itself, is always used, if assigned and declared on the product.
Note: This does not apply, if the product is set to not allow No. of Persons.

Obsoleted field "Primary Key" removed

Removed the use of obsoleted field Primary key in the POS menu header and the POS menu lines.

'Price per person' added to activity package offer

The Price per Person field has been added to the Package Offer card. If there are any activities included in the package, those activity products must have the same Price per Person setting. When activating a package offer, the system checks if all related activity offer components have the same setting, and if not, users are asked if they want to update the Price per Person on the related activity products. If the user does not confirm, the activation is aborted.

Restrictions on items and members when charging to a reservation in Bookings

On the Booking Client card, the user can set amount restrictions on additional charges assigned to a reservation, based on item, product group, item category, or special group, either as part of the reservation (additional charges) or as charged to the reservation from the POS (CHARGE2RES POS command).

Set up and manage Event Schedule

New functionality has been implemented to handle large events for stadiums and conference centers.

Token views and drill-down in BackOffice

A Member token counter is now displayed on Group reservation and reservation cards, as well as on the Member Client card.

eCommerce for LS Central

Fields added to OData Item Replication

The fields Tariff No. and Country of origin have been added to OData Item Replication.

OrderUpdate web service added to Omniwrapper

Missing OrderUpdate web service has been added to OmniWrapper CU.

Web request: SalesEntry Get functions for SaaS

A new web request, GetSalesInfoByOrderId, is now available.

LS Central for forecourt

LS Central for forecourt for is a separate app extending LS Central.

Settings added to control the UI for Forecourt Banner

The appearance of the Forecourt banner can now be controlled through POS styles.

LS Central for hotels

LS Central for hotels for is a separate app extending LS Central.

Balance Transfer page: drill-down enabled

Drill-down is now enabled in the Paying Reservation No. field in the Balance Transfer page.

Comments to Reservation Extras lines

You can now add comments on the Reservation Extras lines.

Demo Data update for Deposits

A new Consume Prepayment button and Deposit Available tag have been added in Demo Data.

Derived Rate Code to support rate attributes

Derived rate code can now add new rate attributes.

DRE: Procedure to check if changes are allowed

When an invoice or receipt has been done for a revenue line (DRE), it cannot be changed unless a Credit Memo or a Void and Copy receipt is done first. Previously, the invoice or receipt was reversed with negative quantity.

A Revenue line is not changed if there is an unposted invoice or receipt connected to it. The invoice or receipt has to be deleted first. Also, a "Room Charge" revenue line cannot be changed (except the folio) or deleted, the POS Transaction has to be returned.

Finalizing folio on POS while another folio is still open

A new field, LSCHT Hotel Res Folio No., has been added to the LSC POS Transaction and LSC Transaction Header tables to link transactions from folio payment to the corresponding folio number. Error message concerning unposted POS transactions was removed and the functionality changed in order to always get a corresponding transaction linked to folio. This message would display only for unposted transactions unrelated to folios.

Folio rules when changing Routing rules

For consistency's sake, when a routing rule is changed from the Invoice Management page, folios with any invoiced line are now moved to last order(re-numbered) in case the new routing rule folios match in Folio No.

GetImageURL deprecated

GetImageURL is now deprecated so picture data for Web Templates have been adapted to base64. Also, some minor CSS adjustments were made to fit the member picture in the Reservation and Group Reservation cards.

GetMemberViewData procedure refactored

The GetMemberViewData procedure, in Hotel Web API codeunit, has been refactored.

Group reservation with different room types, number of adults, and rate codes

A new Group Reservation that can create reservations with different room types, rate codes, and number of adults has been added.

Hide Sales Quote Statistics button

The Sales Quote Statistics link is now hidden so the SalesHeader.OpenDocumentStatistics() page is not opened (applies only to North-America).

Hotel Item Summary

Hotel Item Summary has been added for an overview of all Item reservations during a specific period.

Hotel Rate Discounts page: Member Club and Scheme options added

Member Club and Member Scheme options have been added to Source Types in the Hotel Rate Discounts page.

Hotel Room Summary

Hotel Room Summary has been added for an overview of all Item reservations by room on a specific day.

Improvements to Hotel Reservation history

The Hotel Reservation history page has been enhanced with improved captions and tooltips.

Member club and scheme added for Hotel use

Member FastTab has been added to the Hotel Setup page with fields Default Member Club and Default Scheme Code to use as default when you create Member Contacts in Hotels.

Nationality Report changed

The Nationality Report now only presents countries that have data.

New feature: Room ranking for automatic room allocation

The new Room Ranking feature sets a priority system when auto-allocation is used. Rooms with a lower ranking are allocated first. The feature requires that "Reset Rankings" are run to initialize the rankings. Also, a new field, Priority, was added to the Room Card to manually set up a priority in ranking.

New fields for Ready to clean and Not ready to clean filters

New fields and counter for Ready to clean and Not ready to clean filters have been added in Housekeeping WT data.

New Group Reservation page: FactBox added

The FactBox that exists on the Group Reservation Page has been added to the New Group Reservation page to provide more information.

Occupancy Report refactored

The Occupancy Report has been refactored. Additional changes: The Number of days field now saves the last value used (instead of always being set to 30 every time the page is opened). The Property field now allows Filters (for example H0001|H0002).

Procedures and eventscribers moved or deleted from DRE table to codeunits

Procedures moved from Detailed Revenue Entry.table into various codeunits:

  • ActivitySave() -> Hotel Activity Mgmt.codeunit
  • DreExists() -> Hotel Activity Mgmt.codeunit
  • ActivityDelete() -> Hotel Activity Mgmt.codeunit
  • AdditionalItemSave() -> Additional Reservation Mgt.codeunit
  • AdditionalItemDelete() -> Additional Reservation Mgt.codeunit

Procedures deleted from Detailed Revenue Entry.table:

  • Procedure ​SetInvoiceTypeAndDiscount(IsInsert: Boolean) DELETED - not used anywhere
  • ​Procedure IsOccupancyBasedPricing(var DailyRate: Decimal) IsOBP: Boolean DELETED - not used anywhere
  • Procedure CheckDiscountNotAllowed(DRE: Record "LSCHT Detailed Revenue Entry."; xDRE: Record "LSCHT Detailed Revenue Entry.") DELETED - not used anywhere
    • Contained one Integration Event : OnBeforeCheckDiscountNotAllowed - deleted.

EventSubscribers from Hotel Activity Mgmt.codeunit moved to Hotel Subscriber.codeunit

Copy
[EventSubscriber(ObjectType::Table, Database::"LSC Activity Reservation", 'OnAfterValidateEvent', 'Client No.', false, false)]local procedure ActivityReservationValidationClientNo(CurrFieldNo: Integer; var Rec: Record "LSC Activity Reservation"; var xRec: Record "LSC Activity Reservation")
Copy
[EventSubscriber(ObjectType::Table, Database::"LSC Activity Reservation", 'OnAfterInsertEvent', '', false, false)]local procedure ActivityReservationOnAfterInsertEvent(var Rec: Record "LSC Activity Reservation"; RunTrigger: Boolean)
Copy
[EventSubscriber(ObjectType::Table, Database::"LSC Activity Reservation", 'OnAfterModifyEvent', '', false, false)]local procedure ActivityReservationOnAfterModifyEvent(var Rec: Record "LSC Activity Reservation"; var xRec: Record "LSC Activity Reservation"; RunTrigger: Boolean)
Copy
[EventSubscriber(ObjectType::Table, Database::"LSC Activity Reservation", 'OnAfterDeleteEvent', '', false, false)]local procedure ActivityReservationOnAfterDeleteEvent(var Rec: Record "LSC Activity Reservation"; RunTrigger: Boolean)
Copy
[EventSubscriber(ObjectType::Codeunit, Codeunit::"LSC Activities Functions", 'OnBeforeActivityStatusChange', '', false, false)]local procedure OnBeforeActivityStatusChange(ActivityRec: Record "LSC Activity Reservation"; var NewStatusCode: Code[20]; var EndExecution: Boolean; var ErrorText: Text)
Copy
[EventSubscriber(ObjectType::Codeunit, Codeunit::"LSC Activities Functions", 'OnAfterActivityStatusChange', '', false, false)]local procedure OnAfterActivityStatusChange(ActivityRec: Record "LSC Activity Reservation"; NewStatusCode: Code[20])

Eventsubscriber added to Hotel Subscriber.codeunit

Copy
 [EventSubscriber(ObjectType::Table, Database::"LSC Activity Reservation", 'OnBeforeModifyEvent', '', false, false)]
    local procedure ActivityReservationOnBeforeModified(var Rec: Record "LSC Activity Reservation"; var xRec: Record "LSC Activity Reservation"; RunTrigger: Boolean)

Bugs fixed:

  • When adding an adult to a reservation that includes activity, the DRE for the activities came in with folio nr. set to 0.
  • Obsolete Tag added to already obsoleted keys in hotel res entry table and hotel reservation table.

Rate Info page:  update Room Type and Rate Code filter

By clicking the Room Type or Rate Code from the list part, the filters and prices are updated. Note that it is not enough to click the line, you must click the room type or rate code name.

Registration Modules page not displayed in Hotel Initialization

The Register Module procedure has been refactored to not show run modal page in Hotel Initialization. UpdateImageLinks has been removed from the process.

Reservation No. field drill-down modified

The drill-down in the Reservation No. field in the Deposit Due List has been modified. Now, it opens Reservation Deposits directly when you click the Reservation No.

Role Centers updated to present key hotel information in charts

Day Plan Chart (BO, FD, HK)

Shows columns for Arrivals (Arriving and Arrived reservations), Stayovers, and Departures (Departing, and Departed reservations) for the workdate. You can filter the chart on these statuses.
Click a column to open a filtered list of reservations for the respective status.

Group Day Plan Chart (BO, FD, HK)

Shows columns for Arrivals (Arriving and Arrived group reservations), Stayovers, and Departures (Departing, and Departed group reservations) for the workdate. You can filter the chart on these statuses.
Click a column to open a filtered list of group reservations for the respective status.

Room Availability Chart(BO)

Shows available rooms for the next 30 days from the work date for the property and the room types (stacked columns) in the property. You can filter on specific room types.
Click the chart to open the Room Type Avail. Info page for more detailed information.

Occupancy Rate Chart (BO)

Shows the occupancy rate for the next 7 days from the work date for the property and the room types (column). You can filter on specific room types.
Click the chart to open the Occupancy Report for more details.

Back Office Role Center

  • Overviews for No Show and Open Balance Overview were hidden (visible = false).
  • Added Day Plan Chart, Group Day Plan Chart, Room Availability Chart, and Occupancy Rate Chart.

Back Office Cues

  • Changed Attention Group to be normal - not wide (makes better use of space).
  • Deposit group hidden (visible = false).

Front Desk Role Center

  • Old ArrDep Chart hidden
  • Added Day Plan Chart, Group Day Plan Chart, Room Availability Chart, and Occupancy Rate Chart.

Back Office Cues

  • Arrivals, In House, Departures fields hidden (visible = false) - information visible in the chart.
  • Group Reservations group hidden (visible = false) - information visible in the chart.

Housekeeping Role Center

  • Old ArrDep Chart hidden.
  • Added Day Plan Chart, Group Day Plan Chart, Room Availability Chart, and Occupancy Rate Chart.

Split Detailed Revenue Entry Lines in BO

A new functionality to split revenue lines has been implemented. From line actions, there are now two new actions: 

  • Split Line Into... opens a dialog window where users can enter the number of lines to split and then split the quantity between those lines.
  • Undo Split Line is used to undo the split lines and reset the original line and price.

Additional improvements:

  • A new field Split Link, has been created to link all the split lines.
  • A new filter, Split Filter, was added to the Filter group, to see all the related split lines.
  • A new field, Sorting Line No. was created to sort the lines easier. Here it is used to show split lines together.

Token support in Hotel Back Office

A link has been added to member tokens from the Hotel Reservation page.

UOM on Rate Attribute line in a Rate Code

It is now possible to set a specific unit of measure (UOM) for Rate Attributes Items. If the field is blank, the reservation extra is created with the default unit of measure as before.

LS Central for pharmacies

LS Central pharmacies for is a separate app extending LS Central.

Customer's age displayed

The age of Pharmacy customers is now displayed on the Prescription line page and on the Final Control page. Icons for customers (male, female, child) are also displayed.

Empty list when filtering by Exchange Group

The Item Replacement / Substitution page now shows an empty list when filtering by Exchange Group and the issued item has a blank Exchange Group. You can see possible replacements by filtering on ATC or Substance using the buttons on the Replacement page.

Final Control page enhancements

Information has been added to the Final Control page. Now order line amounts are displayed and comparison on ATC code between issued and delivered Pharmacy Items is now enabled. Pharmacy notes are now editable from the Final Control page.

Issuer comments visible in Dispense Order Line for e-prescriptions

Issuer notes retrieved from e-prescriptions are now visible in the Dispense Order FactBox area.

Limitations in Customer Orders

LS Central for pharmacies only supports the earlier versions of the Customer Orders module.

Medicine verification now a separate extension

Medicine verification is now a separate app that can be installed on top of LS Central for pharmacies W1.

Pharmacy W1 SaaS ready

LS Central for pharmacies W1 can now be published to the cloud.

Prescription order lines: style for split lines

Prescription order lines that have been split are now shown in the Ambiguous font and style.

Serial number and prescription assembly cleanup

All Pharmacy specific assembly mechanism has been obsoleted, since it is no longer used. Localized compounds or standard BOM and assembly are available. Serial and Lot number tracking is also provided by Standard Business Central and LS Central.

Updated dose text editor

The dose text editor has been improved, and non-English characters for dose text in AL have been fixed.

Supporting Functionality

Hardware Station for LS Central

New operation: CreateToken

A new operation, CreateToken has been added. CreateToken accepts EFTRequest with the additional TokenData section with detailed information about the Token. Other card functions, such as Purchase, Refund, and so on were also updated to accept this new TokenData information.

Mapping for TokenData to and from LS Pay functionality has been added.

Other

POS Commands

The following POS commands are new in LS Central 24.0:

CO_EDIT Supports editing and changing Customer Orders on the POS.
HOTELCONSDEPOSIT Used to consume a specific amount of reservation deposit.

The following POS command has been updated in LS Central 24.0:

SEARCHCONTACT The command has been updated and now uses a Web Service, GetMemberContactList, to get Member Contact, depending on the search criteria.

See POS Commands in the LS Central Help and the corresponding Excel list with filters for a complete list of POS commands.

Fixed Issues

Links to quickly navigate this section:

LS Central Replenishment Hotels
Fashion Restaurants Pharmacies
POS Bookings  

LS Central

LS Central

Automatic start of LS Scheduler on Job Queue restart

A background session can be configured to start when the POS is started and it will run a process to change the status of job entries in the Job Queue to Ready. This background session will run during the POS session. The jobs that are affected are jobs running the LSC Scheduler Service (codeunit 99001469).
Enable the Keep LSC Scheduler Service Job Queue Entries Ready switch in the General FastTab in the POS Functionality Profile to start this functionality for each POS.

Azure Storage read encoding

Reading from Azure Storage has been enhanced to use stream instead of texted reading.

Basket calculation issue when combining two promotions

Basket calculation has been enhanced to better handle combinations of multiple offers.

Batch stuck on HHU016 device

When processing a transaction through Mobile POS, a "POS Transaction Header" record was left in the database if any of the item lines resulted in an error. This has now been fixed.

Bug in function DiscountGreaterThanX in LSC Fraud Mgmt Handler

A bug in function DiscountGreaterThanX in LSC Fraud Mgmt Handler has been fixed.

Central suspension is deleting all suspended transactions from multiple POSs when one of the POS is doing EOD and Z-Report print

Deletion of suspended POS Transactions now takes "Statement Method" into consideration. If Statement Method is set to Staff, only transactions suspended by that staff are deleted. The same applies if Statement Method is set to POS Terminal.

Cannot print receipt with Staff ID longer than 10

New field, Staff ID Session code 20, has been added to the POS Print Line table. The field Session Staff ID has been obsoleted.

Changing price of non-inventory item in CO causes an issue with items

Items with zero price in POS Trans lines cannot be added to a Customer Order.

Collection location not correctly saved after pop-up

Collection Location in Customer Order is limited to 20 characters.

Coupon max uses per member not implemented for eCommerce

Validation has been added on Coupons Member Value and Max per Member in WebStore orders.

Customer Order: incorrect prepayment message

An incorrect value being displayed on the POS and an incorrect pop-up message being displayed has been fixed.

Customer signature receipt when POS terminal is set o "No receipts"

Customer signature receipt is now printed when Sales Slip" set to None.

Deadlocks

Changed the MaintainSiftIndex = false on the sift index for key key(Key17; "Transaction Type", "Entry Status", Date).

Discount Offers enhancement

Offer calculation has been enhanced to support also amount to trigger based on offer lines instead of the whole transaction.

Email Slip fails for POS Data Entry with Remaining Balance

Printing remaining Data Entry Amount on a slip failed when sending the slip with email. This has now been fixed.

Ensure Price Group is populated before No validated

An issue which occurred when retrieving the price on a Mix & Match discount offer has been fixed.

Get CO only if CO ID exists

A fix has been applied to avoid timeout in CustomerOrderGet web service.

Incorrect dimensions when using Transfer in Store Inventory Worksheet

When posting a Transfer journal through Store Inventory, "New Store" did not get the correct dimension values applied to the Ledger Entries. This has now been fixed.

Increase DSTR1 as "Document ID" is Code[20]

Customer Order numbers with up to 20 characters can now be printed.

Issues on events

Code has been updated to inherit values from the Transaction Header, instead of using the setup table multiple times.

PDA

A new field has been added to Store Inventory lines and to web services importing data to them to enable a timestamp per scanned transaction.

POS command Add_Coupon

POS command Add_Coupon is now available in POS Menus.

POS Data Entry one-time redemption does not write off voucher balance

Write-off amount when using vouchers with one time redemption has been updated.

Refund lookup

A LookupID variable has been added to the event publisher, allowing partners to use a different POS Lookup record on the Refund command.

Subscribe function not backward compatible

Subscriber action has been updated to only create the web service mapping for fields that exist on the environment.

Text element on XML port

Text elements inside table elements on XML ports are now skipped when processing the web service response. A new event, OnProcessWebResponseXMLTableTextElement, was added. The event can be subscribed to retrieve the value inside these text elements, if needed.

Trigger Function field in "LSC Information Subcode" table

"Entry Trigger Functions" has been moved from Option data type to Extendable Enum Object.

Validate Mobile POS transcation

Mobile POS cannot create new POS transactions, if transactions with the same Receipt number, Store, POS Terminal, and Date already exist in the Store database.

Web request: SalesEntry Get functions for SaaS

A new web request, GetSalesInfoByOrderId, is now available.

When creating Transfer Order inventory is not available later in transferring store, but it is in stock

The functionality to automatically make positive adjustment has been removed to enable Transfer Order posting, when inventory level is too low for Transfer in Customer Order. This functionality can be created through event OnBeforePostTransferShip in codeunit "LSC CO Web Service Functions".

Z-Reports

Z-Reports IDs assigned per Staff

A new field, Last Z-Report has been added to the Store table. The field contains the number of the last Z-Report printed in the Store when Statement MethodTotal is used.

Printing Z-report when connection with Hardware Station is lost

A question is now raised when starting a POS, whether a Z-Report should be printed if it failed to print in Automatic Z-Report printing when doing tender declaration.

Fashion

Item Variant Code not created according to Dimension order

When the Included in Variant No. option is used in a Variant Framework, an issue where the Variant Codes were not created according to the correct Variant Dimension order, has now been fixed.

POS

Clear(PaymentCount) in ClearGlobs for Error Reset

An issue, where a variable was not being cleared, has been fixed.

Disable scanner function for POS Commands not working

Fixed an issue that caused the scanner to continue as enabled when using a POS command that should disable the scanner.

POS Debug Log causes Stale Record errors

An issue has been fixed that caused the log to be purged at every single flush of the log.

Replenishment

Importing Items without Vendor Item No. in Item Import Journal

When importing lines without Vendor Item No. using the Item Import Journal, new items will always be created.

Restaurants

Current availability fixes

When Compress when scanned is set in the functionality profile, there was an issue with current availability, and it did not update. This has now been fixed.

For eCommerce orders coming in from the Commerce Service, it was not possible to update the order because the current availability was not updated. The current availability is now only updated when the basket is sent, not on calculate basket.

New member comments missing on New/Edit Member panel

A button with COMM_SHOW and parameter #COMM-COMMENTS can now be added to the member contact edit/new panels. This makes it possible to add comments to members in the POS. They will then appear as related comments for tables, such as dining reservations, activity reservations, and hotel reservations.

Scrollbar not working in Self-Service Kiosk

A scrollbar had stopped working in the Self-Service Kiosk. This has now been fixed.

Shopify

FlowField bug fix

Support for Central Flow fields has been implemented in Shopify Meta Data.

Limitation errors

Shopify has a limitation on how many requests can be sent within a time frame. LS Central has now added a retry loop with delay, if a limitation is reached and an error occurs.

LS Central Modules

Bookings for LS Central

Group member reservations do not inherit Event No on the Group header

When an event number is assigned on a group reservation, all related reservations are now assigned the same event number.

Incorrect Groups and Open Balance counters

Groups counter in the Activity POS has been fixed.

Item Reservation Summary view: display two digits after the decimal point

Decimals in the Reservation Item Summary view have been fixed.

LS Central for hotels

Activity packages in POS

The presentation of Activity packages in POS has been improved.

Changes on Sales Invoice are not in sync with changes allowed from POS Transaction

There are new restrictions to sales invoices coming from a folio:

  • Only lines of type item be changed: discount, quantity, or price.
  • Only possible to delete lines of type.
  • Only possible to add item lines. When the invoice is posted, item lines are created as reservation extras.
  • Possible to modify sales invoice line, change line discount % and quantity.

Changing customer on Group Invoice Management page does not work

When a customer was changed in the Group Invoice Management page, the Customer was not updated correctly. This has been fixed.

"Check in all" reservations in a group requires manual auto- allocation

On running "Check in all" for a Group Reservation, if any reservations are missing a Room No., the system now asks if the user wants to auto-allocate rooms and then do a check-in for them.

Departures on day plan graphs not shown correctly

Day Plan and Group Day Plan in the Role Center have been fixed, and now show the correct number of departing reservations.

Deposit issues

Issues related to deposit assignments (percentage calculation and amount validation) have been fixed, as well as an issue with cleaning folio in deposit schedule.

Deposit Used field not updating when deposit is assigned to folios

The Deposit Used field in the Reservation FactBox was not updated with consumption of deposit assigned to folios. This has been fixed, and now the field shows the deposit used through deposit assignments.

Deposit schedule: rounding issue

A rounding issue on updating the deposit schedule amount has been fixed. Also fixed is a refresh issue after adding new extras in the Reservation Card.

Divided by zero error on opening BO Role Center

"Attempt to divide by zero" error on opening BackOffice Role Center when Hotel Availability had not been previously updated has been fixed.

DRE 

Changing locked (blue) lines

Blue lines in DRE are locked lines, and users should not be able to change them, since they exist in a POS transaction or Sales invoice. Users must void the transaction or invoice to be able to edit in BackOffice. If customer or routing rule is changed in BO, when lines are in blue, they will not be updated since they are locked. If a transaction is then voided, information in the BO must be updated manually.
Also fixed, using the Line -> move to folio action on revenue lines should not allow moving to different folios on green or blue lines.

Reservation Extras with daily pattern all go on the same date and lines that are outside of reservation days are not removed

When a Reservation Extra with a Posting Pattern = Daily was created, the corresponding Revenue Entries all had the same date. They are now assigned all of the different dates between arrival and departure.
In a reservation, when the Arrival or Departure Dates are changed, the Reservation Extra lines are now updated in accordance to the new dates.

Issue with POS Trans Lines linked to DRE lines

Fixed and changed how we get the DRE line from the "POS Trans Line" record, to use the "LSCHT DRE Res No." field instead of "LSCHT Hotel Reservation No.", because this last one can sometimes be the group.

Error on auto-allocating group reservation because of room availability

Allocating rooms issue was fixed.

Error with ObsoleteTags in removed objects

The key elements without Obsolete Tags have been fixed.

Functionality to automatically make positive adjustment to enable Transfer Order posting when inventory level is too low for Transfer in Customer Order removed

When Same changes in Incl. in Rate was disabled in the Hotel Setup, the Accommodation Tax line did not follow the Accommodation Item on changing Routing Rule. This issue is now fixed.

Group Reservation page: not possible to set a routing rule

"Paymaster" reservation (Hotel Reservation with reservation number as group res) was not updated with the rate code which resulted in an error in Get(). This has been fixed, a new group reservation now adds the rate code to the paymaster reservation, and then sets around the get() to prevent future errors.

Hotel Sales invoices: calculating loyalty points

Calculation of Member points for hotel reservation invoices and for deposit entries has been fixed. A Member Points Issued field was added to the Reservation FactBox, and the Hotel Res No. of Trans Header for group reservations was fixed.

Issue with demo data regarding payment setup in POS

Solve the issue by setting POS Status to PAYMENT when you are paying in currency.

Loading error in tape chart after moving a reservation to occupied room

A function that was not being used and caused this error has been removed from Reservation.vue. A small bug on the AL side was fixed.

Night Audit and Deposit enhancements

Deposit posting changed to handle the new Deposit Assignment and folio handling in Invoice Management:

  • Get Deposit assigned to folio and post.
  • If Deposit assigned is zero, then check for Deposit collected assigned directly to folio.
  • If Deposit collected is zero, then check for Deposit unassigned and use that for posting.
  • The Group "Night Audit Customers" in Hotel Setup has been removed. The posting is done to Night Audit Customer, if the guest is paying or the customer is on the Hotel Reservation.
  • Event OnAfterTotalDepositConsumed processed when all deposit has been consumed.

No Folio filter in CreateDREPOSTransGuestInfoFolio procedure

Folio filtering in CreateDREPOSTransGuestInfoFolio procedure has been fixed.

Not directly accessible pages in Hotels removed from Search

The following pages, which are unused or with restricted access, are no longer accessible:

  • "LSCHT Detailed Rev. Entry List"
  • "LSCHT Group Invoice Mgt Header"
  • "LSCHT Hotel Res.Entry List"
  • "LSCHT Hotel Reservation Log"
  • "LSCHT Hotel Restriction Code" - Also made obsolete
  • "LSCHT Hotel Restrict Validate"
  • "LSCHT Hotel Routing Code List"
  • "LSCHT New Group Reservation"
  • "LSCHT Open Deposits"
  • "LSCHT Pax & Breakfast Info" - Also made obsolete
  • "LSCHT Res. Invoice Info List" - Also made obsolete
  • "LSCHT Res. Payment Entry List"
  • "LSCHT Room Allocation List"
  • "LSCHT Room Change"
  • "LSCHT Select Mail Adress"

Occupancy-based pricing

Fixed occupancy-base pricing when changing adults.

POS table behind Open Balance button shows reservations with 0 balance

Canceled and checked-out reservations that have a total balance of zero are now marked as Fully Paid in the Hotel Role Center, so they will not show up in Open Balance.

Possible to enter over 100 percent hotel discount

A validation has been added, so that the Discount Percentage Value cannot be greater than 100.

Previewing an invoice fails after being created but before posting

An error that occurred when previewing an invoice after the invoice is created has been fixed. The Invoice report now only shows activity products with status Confirmed.

Rate code: using without daily room rate

You can use a rate code without publishing prices for that rate code. This fixed displays an error when prices do not exist for a rate code.

Remove code with obsolete tags v20.0 and earlier

All objects and elements with ObsoleteTags v20.0 and earlier were removed from the code, except table fields (just updated ObsoleteState to Removed).

Reservation Folios window

Now, if there is nothing to invoice in a reservation, the system does not open the Reservation Folio List and an error message is displayed.
Additionally, if there is only one folio to create or edit in an invoice, the system skips the Reservation Folio List as well and that folio is automatically selected.

Room number not in hotel reservation

Enforced setting the room number on hotel reservation when inhouse.

Room number not showing on Charge to room POS button

The Room number was not displayed on the Charge to room POS button, because it was using the Index field from the POS transaction. Demo data was changed to use the "LSCHT Hotel Reservation No." field instead.

Unpaid Deposit Lines deleted upon re-issuing deposit schedule

There was an issue with recalculating the Deposit Schedule lines when re-issuing lines. This is now fixed. When issuing the deposit schedule, the system recalculates all lines based on the last Confirmation Date saved in the History log of the reservation and on the arrival date.

Voiding member or customer on POS transaction or changing customer on Sales Invoice not allowed

Voiding a member in the POS or changing a customer in a Sales Invoice is not allowed. This is only possible from the Folio Card in BackOffice. Also, a payer can only be changed, if the folio does not have posted lines or lines in the transaction or invoice.

Web Services

PaymentDeposit and PaymentRefund

PaymentDeposit and PaymentRefund web services now check the reservation balance and the Deposit Amount Over Reservation Amount field in the Hotel Setup, with the same validation as exists in BackOffice.

ActivityPromotionsGet failed

All data and time returning values from Activity OData web services have been updated to XML format to avoid formatting issues.

When Group Res No. is removed from the field in an individual reservation, the number of adults goes to 0

This has been fixed, so now you can remove a reservation from a group by clearing Group Res. No. without trouble.

  • When canceling, the guest list used to be deleted. This has been changed, so that now the guest list is still available after canceling.
  • CancelGuestlist() procedure in the guestlist codeunit has been marked as obsolete.
  • All event subscribers have been moved from the Group Reservation management codeunit to the Hotel subscriber codeunit.

LS Central for pharmacies

Changing the First Dispense date in a Dispense Order line

Editing the First Dispense date in a Dispense Order line that is defined with a pattern, now results in the pattern being shifted accordingly. This is to prevent an incorrect pattern to be executed, if the First Dispense date is changed. The user is notified and can reject the change.

Hotfixes

See the LS Central Help for information about hotfixes that have been released since the previous release.