Description of version 2022.4.3 beta
197668. Adding settings to the stale goods analysis form
Analysis → Stale Goods Analysis
A menu item "Settings" has been added to the "Stale Goods Analysis" form, allowing users to:
- Add columns with dynamic characteristics to the table.
- Disable the display of all data at once (summary is not displayed).
This expands the ability to view product characteristics and speeds up work with large amounts of data.
197740. Adding support for the Newland N950 (PrivatBank) payment terminal
Settings → Parameters → Additional Features → Payment Terminal → "Payment Terminal" Table
- Added Newland N950 (PrivatBank) to the list of payment terminal types.
- Refined the algorithm for deleting "extra" terminal settings, which previously did not always work correctly.
These changes ensure correct compatibility of the Newland N950 (PrivatBank) payment terminal with the Torgsoft software.
198001. Adding support for the Verifone Х990 (Monobank) payment terminal
Settings → Parameters → Additional Features → Payment Terminal → "Payment Terminal" Table
-
Added Verifone Х990 (Monobank) to the payment terminal types directory.
- The default protocol type is set to "SSIAxECR".
- The "Acquirer Name" field is automatically populated with "Universal Bank JSC".
-
The name of all terminal types has been updated, replacing "PrivatBank" with "PRIVATBANK".
These changes ensure the support of the Verifone Х990 (Monobank) payment terminal in the Torgsoft system.
197822. Resizing the column settings window
Business Panel → Tables
Added the ability to resize the column settings window vertically. This allows users to:
- Increase the size of the component displaying the list of columns.
- View more items in the list.
Similar changes have been applied to the "Product Parameter Columns" form (action "Add Columns").
This improves usability when working with a large number of columns and saves users time.
197616. Adding product photo printing in internal transfer
Document → Internal Transfer → "Print Invoice" Action Group → "Document Print Settings" Action
-
In the print settings form for documents of type "Internal Transfer", access to the "Print Product Photo" switch has been enabled.
- If the setting is enabled, product photos will be loaded into the print data set.
-
A "Photo" field has been added to the internal transfer invoice print data set, which can be used when configuring templates.
- This feature can only be used if the "Print Product Photo" setting is enabled.
This improves informativeness and speeds up the process of gathering products for transfer between stores.
197637. Printing a wholesale-retail invoice with purchase prices
Document → Internal Transfer → "Print Invoice" Action Group → "Print Wholesale-Retail Invoice with Purchase Prices" Action
A new action "Print Wholesale-Retail Invoice with Purchase Prices" has been added to the "Print Invoice" group on the "Internal Transfer" form.
This action generates a report in which the following attributes are displayed for each product by default:
- Name,
- Barcode,
- Purchase price,
- Retail price,
- Wholesale price.
This function allows printing an internal transfer invoice that simultaneously displays retail, wholesale, and purchase prices.
197805. Opening multiple profitability analysis windows
Analysis → Profitability of Sales for a Period
Added the ability to open multiple windows of the "Analysis → Profitability of Sales for a Period" form.
This feature allows users to work with multiple analytical forms simultaneously, improving usability and efficiency in analysis.
Now, users can compare data for different periods or with different parameters without having to close and reopen the form repeatedly.
197628. Adding columns to the "Product Movement" tab
Document → Customer Order for a Product
Two new columns have been added to the "Product Movement" tab in the "Customer Order for a Product" form:
- "Document Number"
- "Document Date"
This improves convenience and speeds up the process of matching customer orders with relevant warehouse documents.
197478. Adding "Date of Birth" Column
Marketing → Clients
A new column "Date of Birth" has been added to the "Clients" form, with the ability to sort by this field.
This allows users to quickly find and sort clients by date of birth, significantly simplifying work with large client databases.
197646. Sorting by Sales Amount
Marketing → Clients
A new sorting feature has been added to the "Clients" form, allowing sorting by total sales amount in ascending order.
This improves the convenience of viewing the client list, enabling quick analysis and identification of clients with the lowest sales volumes.
197836. Multi-Row Cancellation of Assemblies
Document → Assembly
In the "Assembly" form, the "List of Assemblies" and "List of Disassemblies" tabs now support multi-row cancellation of assemblies and disassemblies.
This feature significantly simplifies working with large data volumes, allowing users to quickly cancel multiple assemblies or disassemblies simultaneously. As a result, routine operations are performed faster, reducing the number of required actions.
189267. Icon Replacement for Transliteration
Marketing → Bulk Mailing → Bulk Mailing Template
The icon for the transliteration action in the bulk mailing template for the Russian language has been replaced.
This update visually refreshes the interface and removes the previous graphical element.
197427. Adding Data Export Settings
Payment → Unpaid VIP Sales
A new action "Report" → "Data Export Settings" has been added to the "Payment" → "Unpaid VIP Sales" form.
This feature enables exporting data to a tabular document for further processing and analysis.
197724. Adding Columns to Piecework Payment
Document → Finished Goods Production → Piecework Payment
Two new columns have been added to the "Finished Goods Production" form in the "Piecework Payment" tab:
- "Total Time, s" – Displays the total time spent on operations.
- "Registered By" – Shows the full name of the employee who registered the completed operations.
This update allows users to track the total number of seconds worked in production and monitor the registration of operations.
197651. Barcode Settings for Batch Accounting
Merchandising → Product Type → "Edit" Action → Product Type Card → Batch Accounting
A new setting "Generate unique barcodes for new batch accounting products" (enabled by default) has been added to "Settings" → "Parameters" → "Barcodes".
If this setting is enabled, when an existing product is added to an incoming shipment (provided batch accounting is active for it), a unique internal barcode will be generated for each new batch.
If the setting is disabled, instead of generating a new barcode, the barcode of the original product will be used.
The ability to disable this option gives users flexibility:
- Generate unique barcodes for each new product batch.
- Use the original product's barcode, which may be more convenient in certain inventory scenarios.
197599. Bulk Update of Wholesale Prices
Marketing → Wholesale Pricing Policy
- In the "Marketing" → "Wholesale Pricing Policy" section, the "Wholesale Pricing Policy" tab now includes the action "Generate wholesale prices using multi-row selection".
- Fixed an issue where printing the wholesale price list caused problems if the product type name or product name contained square brackets.
The bulk update of wholesale prices in the "Wholesale Pricing Policy" mode allows users to quickly update wholesale prices for a large number of products at once, without the need for manual edits.
197101. Fiscal Receipt Update for ECR
Settings → Electronic Cash Register
- Added a mac field in the QR code link for the offline ECR receipt, populated with the SHA256 hash of the receipt.
- Added change display in the rounding block for cash payments and currency name in the total amount payable.
- The total cash payment now displays the entered amount instead of the entered amount minus change.
- Updated the label before the fiscal number in receipts from "CHECK FN" to "CHECK №".
- Removed the "Bank Card" payment form for ECR. Now, all non-cash payments are categorized under "Non-Cash".
- Two new payment methods have been added under "Non-Cash":
- "Bank Card" (for payments made via a bank terminal).
- "Transfer to Settlement Account".
- These payment methods are now displayed after the "Non-Cash" label in the receipt.
- Two new payment methods have been added under "Non-Cash":
- In "ECR Analytics", added a new column "Payment Method" in the "Payment Types" table.
These receipt updates will be applied to all templates, except for legacy ones that do not include the rounding block.
The changes comply with Ministry of Finance orders dated 22.11.2024 №601 and 11.12.2024 №632, ensuring alignment with the latest legal requirements.
198279. ACQUIREID Transmission in ECR
Document → Sales → "Pay" Action (F6)
During transactions using a bank terminal, the "ACQUIREID" parameter will now be transmitted to the ECR.
The MerchantID value will be used for this parameter.
Ensures the correct transmission of all required parameters to the tax authorities when using the ECR and a bank terminal.
198345. Added Return Data for ECR
Settings → Electronic Cash Register
When sending a receipt to the ECR server, the following data is now included:
- Receipt date
- Fiscal registrar number from which the return is processed
These details, along with the receipt number for the return, are now displayed in the QR code link for return information.
Additionally, restrictions have been implemented to prevent adding items from multiple ECR receipts into a single return.
Purpose of the Update:
Prevents errors and enhances control over the return process within the ECR system.
197612. Sorting of Outgoing Invoices by Recipient
Document → Trade with Invoice Issuance → Outgoing Invoice
In the "Outgoing Invoice" tab, sorting by recipient in ascending order has been added.
Purpose of the Update:
- Simplifies document search
- Facilitates processing of outgoing invoices in large databases
- Reduces the time required to find invoices for specific recipients
- Improves user efficiency
197436. Adding "Closed" Status to Internal Transfers Filter
Warehouse → Internal Transfers Register
In the "Internal Transfers Register" form, a new value "Closed" has been added to the "Status" filter.
Purpose of the Update:
- Expands sorting capabilities
- Simplifies search for closed internal transfers
- Enhances usability of the register
197577. Enterprise Selection for Warranty Item Exchange
Document → Repair → "Repair" Tab
-
Enterprise Selection Added
- In the "Warranty Item Exchange" editing form, the ability to select an enterprise associated with the documents created during the exchange (customer return, supplier return, and customer sale) has been added.
- By default, the enterprise linked to the sale from which the return is processed is pre-filled.
- If specifying an enterprise is mandatory, the exchange cannot be completed without it.
-
Access to "Create Supplier Return" Function
- Added the ability to configure role-based access for users with restricted permissions (default access is granted).
Benefits of the Update:
- Enhances accuracy and control in warranty item exchanges.
- Saves time by automatically pre-filling the enterprise.
- Ensures correct processing by requiring enterprise selection when necessary.
- Provides flexible access control, restricting supplier returns to authorized users only.
197492. Correction of Application Server Parameter Reading
Application Server
-
Correction of the "port" parameter
- When reading the port parameter from the AdminServer.ini file, all characters except digits are now ignored.
-
Correction of the "Lang" parameter
- When reading the Lang parameter from the AdminServer.ini file, spaces and tab characters are now ignored.
Benefits of the Update:
- Increased stability of the application server by eliminating the impact of accidentally entered characters.
- Prevention of configuration errors that could occur due to extraneous characters in the settings file.
157585. Improved Distribution of Goods for Remote Client Orders
Document → Remote Client Order
-
New Form "Distribution of Goods for Remote Client Orders"
- Displays when invoicing a remote client order.
- Allows selecting the accounting center for invoicing and the accounting centers for writing off goods from the order.
- The "Settings" tab enables configuring the display parameters of distribution accounting centers.
- Distribution form settings are saved for the synchronization object, not for a specific user.
-
New "Invoice Issuance for Orders" Settings Block in the "Accounting Centers" Tab
- "Suggest selecting an invoicing accounting center" – displays the "Select Accounting Centers" form.
- "Suggest selecting goods from other accounting centers" – displays the "Distribution of Goods for Remote Client Orders" form.
- "Only if goods are insufficient in stock" – the "Distribution of Goods for Remote Client Orders" form will open only if at least one item in the order is out of stock.
Benefits of the Update:
- Precise distribution of goods across different accounting centers, which is especially important for orders where goods are stored in different warehouses or stores.
- Optimization of the order processing workflow, reducing the risk of errors and improving the speed of invoice issuance.
- Flexible distribution settings tailored to business needs.
197712. Displaying Product Photos in Remote Client Orders
Document → Remote Client Order
The "Document" → "Remote Client Order" form now displays product photos in orders.
- Improved order control – allows verification of products not only by name, article number, or other data but also visually.
- Reduced likelihood of errors in order processing, as managers can verify products by their photos.
- Convenience for users – quick recognition of products in the order list.
197783. Adding Document Number to Survey Analysis
Marketing → Customer Survey System → Survey Analysis → Customer Responses
The "Survey Analysis" → "Customer Responses" tab now includes the "Document Number" column to display the sales document number associated with the survey.
- Simplified analysis – enables quick linking of customer feedback to specific purchases.
- Faster data retrieval – managers can easily find customer responses based on the sales document number.
- Increased analysis efficiency – helps assess service quality and sales effectiveness.
197592. Fixing Supplier Revenue Display
Analysis → Supplier Revenue Analysis
Fixed an issue where the "Supplier Revenue Analysis" section did not display information about the supplier "Product Receipt from Production".
193734. Fixing Product List in Consignment Sales Report
Analysis → Consignment Sales Analysis
Fixed an issue where, when opening multiple analysis forms and multiple consignment sales product list forms (with the ability to print a report), the product list for the report sometimes displayed from another form.
Now, regardless of the number of open analysis forms, the product list form opened via the "Details" button will be unique. Its data will update according to the analysis form from which it was opened.
196211. Fixing Setting Name Display in Banking Terminal
Settings → Parameters → Additional Options → Banking Terminal → "Banking Terminal" Table → "Banking Terminal Operations" Action
Fixed an issue where the setting name "Use CommandLineTool" did not fit completely in the settings form "Banking Terminal Operations" in the Ukrainian localization of the program.
196293. Fixing Operation Type Display in Banking Terminal
Settings → Additional Functions → Banking Terminal → "Merchant (Operation) Banking Terminal" Table
Fixed an issue where the operation type selection field in the merchant settings of the banking terminal, when the operation type selection was restricted, appeared available for selection.
Now, if the operation selection is restricted, the list of operation types will be displayed in gray (read-only).
196389. Fixing Slip Receipt Display in Fiscal Analytics
Settings → Fiscal POS → "Fiscal POS Analytics" Tab
Fixed an issue where, in the slip receipt preview field on the "Fiscal POS" form in the "Fiscal POS Analytics" tab, in the "Payment Type" table, the slip receipt text displayed unlabelled lines "Transaction Date/Time" and "Receipt Number".
Now, instead of #001# and #002#, the text "TRANSACTION DATE/TIME" and "RECEIPT NUMBER" will be displayed accordingly.
196472. Fixing Banking Terminal Addition
Settings → Parameters → Additional Options → Banking Terminal
Fixed an issue where adding a banking terminal (if such a terminal did not exist) resulted in an error:
[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server] UNIQUE KEY constraint 'uqsBankTerminal' violation. Cannot insert duplicate key in object 'dbo.BankTerminal'. Duplicate key value: (WIN-422IRM01TJK\TSAdmin, <NULL>, ...).
Now, adding a terminal occurs correctly without errors.
196479. Fixing Additional Operation for SSIAxECR Terminal
Settings → Parameters → Additional Options → Banking Terminal
Fixed an issue where adding an additional operation for a terminal using the SSIAxECR protocol resulted in an error that the record already exists.
The issue occurred if the "Host Connection Test" operation was added while the "End of Day" operation was already added.
Now, adding operations for the terminal works correctly without conflicts with already added operations.
197135. Fixing Payment on "Empty" Merchant and BPOS Timeout
Settings → Additional Functions → Banking Terminal
- Fixed an issue where a payment to an "empty" merchant using a BPOS protocol terminal resulted in a Variant and Integer type mismatch error.
- The default timeout for BPOS protocol terminals has been changed from 1000 sec to 60 sec.
- For the PosAPI protocol, a mechanism has been implemented to transfer the COM port number with the "\.\" prefix if its number exceeds 9.
197337. Fixing "AvaliableValue not found" Error During Payment
Settings → Parameters → Additional Options → Banking Terminal → Merchant (Operation) Banking Terminal → Payment Test via Terminal
Fixed an issue where an error "Parameter 'AvaliableValue' not found" could occur when making a payment using a banking terminal.
The error occurred in cases of incorrect configuration of the banking terminal merchant.
197948. Fixing Error Message When Terminal is Busy
Settings → Parameters → Banking Terminal
For terminals operating on the JSON COM/TCP protocol, the text of the error message has been changed when the banking terminal was "busy" during the execution of the current operation.
Additionally, an issue was fixed where the error message did not display information about exceeding the response timeout from the device.
The error occurred when, after the timeout expired, the program attempted to send a command to the terminal, but the connection to the device was already lost. In this case, an error message appeared regarding the write failure to the port.
196499. Fixing Product Name Truncation During Return
Document → Returns
Fixed an issue where the product name was truncated on the product selection form for a return if the product name contained a line break character.
The error occurred in cases where the product name contained a line break (the % symbol in this case did not affect the issue).
197879. Fixing Enterprise in Financial Document During Order Processing
Torgsoft → Customer Order
Fixed an issue where, during customer order processing in realization, the financial document "Prepayment Refund to Customer for Purchased Product" was created with an enterprise different from the realization enterprise (additional payments for realization) if it did not match the default enterprise.
197410. Optimization of Inventory Statement Closure
Document → Inventory Statement
Fixed an issue where, upon closing the inventory statement, during the retrieval of the last purchase prices, the product tables were locked.
Removing this lock will reduce the impact of closing the inventory statement on other users' work.
197721. Optimization of Data Processing in Inventory and Trade
Document → Inventory Statement
- Accelerated closing of the inventory statement (retrieving the latest purchase prices) in cases where the statement contained few products.
- Removed locking of tables related to dynamic characteristics when used in tables.
Trade with Invoice
Data Update Acceleration
- Removed locking of main tables in tabs:
"Invoice", "Waybill", "Returns", "Customer Payments", "Analysis", "Product in Invoice", "Reserve".
This accelerated data updates by 1.5 times and eliminated delays in other users' work. - Significantly accelerated data updates in tabs "Returns" and "Reserve" when applying filters (sender, recipient, currency, enterprise, period, contractor).
Fixing Filtering Issues
- Fixed an issue with the "Contractor" filter when searching for strings containing characters
[ _^ % ]. - Fixed standard filter functionality in the business panel when searching for strings containing
_ ^ %.
Product Accounting Corrections
- Fixed an issue where products with quotation marks or square brackets in the name were not found in the system during posting.
Now, the product is correctly identified in the system, and if it already exists in the database, the program adds it to the incoming invoice or increases its quantity.
Data Update and Synchronization
- Removed table locks when updating data in "Customer List" and "Marketing - Customers" (simplified display mode).
This eliminated the impact of data updates on other users. - Removed locking during synchronization with the online store, improving database interaction for users.
- Added query parameterization for:
- Scanning products into the inventory statement
- Determining if a product is a kit
- Processing empty warehouse documents
- Handling customer orders
- Limiting product types in internal transfers
This should improve database performance.
196327. Fixing Collective Notification Text Display
Settings → Collective Notification
Fixed an issue where the notification text was displayed incorrectly during preview.
The text was not properly positioned and could overlap other elements.
196341. Fixing Counterparty Merge Error
Counterparties → Merge with Selected
Fixed an issue where an error occurred when merging clients:
"[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server] The previous period was closed. Changes in a closed period are prohibited."
The error occurred if the deleted counterparty had documents in a closed period.
197334. Fixing Unpaid VIP Customer Products Display Error
Torgsoft → Unpaid VIP Customer Products
Fixed an error:
"Could not convert variant of type (UnicodeString) into type (Date)"
The error could occur on the "Unpaid Products" form in the following cases:
- Realization → Selecting a VIP customer (3rd VIP mode)
- The customer has unpaid products
- Action "Pay" was executed
The cause of the error was the use of the "Sales Date" filter if the Windows short date format differed from the standard (e.g., the day was encoded as ddd or dddd).
197753. Fixing Error When Creating TTN with "Payment Control" Service
Nova Poshta
Fixed an error:
"Could not convert variant of type (UnicodeString) into type (Double)"
The error could occur when creating a TTN with the "Payment Control" service.
197943. Controlling Sender API Key Replacement
Nova Poshta
Changes have been made to the "API Key Replacement" mechanism:
- The system now strictly controls the sender's API key replacement process.
- Replacing the API key with another sender's key is prohibited.
197994. Fixing Expense Invoice Print Error
Expense Invoice
Fixed an error "Variable length column [PaymentForm] overflow. Value length - [4], column maximum length - [3]", which could occur when printing an expense invoice by account.
The error appeared when the Windows regional settings option "Beta version: Use Unicode UTF-8 for worldwide language support" was enabled.
197877. Fixing User Deletion Error
Settings → Users
Fixed an error "[SQL Server]DELETE statement conflict with the SAME TABLE REFERENCE constraint 'fk_M4L160'. The conflict occurred in database 'TorgSoftDB', table 'dbo.ArrivalLog', column 'ArrivalLogID'", which could occur when deleting a user.
197976. Fixing the Display of the "Cancel Control" Action
Document → Goods Receipt
Fixed an error where the "Cancel Control" action could be displayed for a document that had not passed control on the receipt form.
The error occurred due to incorrect operation of the method for determining whether the invoice had passed control.
197679. Automatic Offline Mode for Software ECR
Software ECR
Software ECR will now automatically switch to offline mode if server errors with codes 502 and 504 occur.
182266. Fixing Salary Calculation Amount Editing
Salary Calculation → Work → Accruals and Deductions
Fixed an error where, when changing the accrual category to "Bonus", if the category "Fine" had been previously selected, the "Amount" field remained unavailable for editing.
Now, if the category is changed under these conditions:
- The "Amount" field will be available for editing.
- The amount value will not be cleared.
- The "Name" field value will also not be cleared.
193849. Fixing Employee Work Journal Deletion Error
Salary Calculation → Planning → Employee Work Journal
Fixed an error [SQL Server] The DELETE statement conflicted with the SAME TABLE REFERENCE constraint "fk_M4L160".
The error could occur when executing the "Delete all records for the day" action on the "Employee Work Journal" tab.
198018. Fixing Access to Payment List for Sales
Document → Item Accounting → Wholesale and Retail Sales List
Fixed an error where, in role settings for a restricted user, it was not possible to grant access to the "Sales Payment List" form.
196252. Fixing Employee Rating Update Error
Salary Calculation → Employee Rating → Employees
Fixed an error "Error updating the Employee Rating class manager (mnSellerRating): "[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 10.0][SQL Server] The DATE type is not a defined system type," which occurred when opening or updating data on the "Employee Rating" form, "Employees" tab.
The error occurred when using MSSQL Server 2005.
197758. Fixing Barcode Search for Storage Boxes
Torgsoft → Seasonal Storage Boxes
Fixed an error where, when adding a box to the inventory statement, in the "Temporary Storage Box Selection" window, the "Barcode" field did not trigger a search for boxes by barcode after entering the barcode and pressing Enter.
197794. Fixing Cash Submission Error
Torgsoft → Cash Submission
Fixed an error "[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server] Incorrect syntax near 'XXX'." which occurred during cash submission if the selected employee had a single quote in their name.
197158. Fixing Error in E-Shop Synchronization
E-Shop Synchronization
Fixed an error "[SQL Server] Violation of UNIQUE KEY constraint 'uqsPartner'.", which could occur during order downloads.
The error resulted from recent changes in the order customer search algorithm.
197379. Fixing File Creation Error
System Tasks and Objects
Fixed an error "Cannot create file", which could occur if Windows returned a temporary directory path that did not exist.
The error could occur, particularly during e-shop synchronization.
197245. Fixing Product Image Link Generation
Marketplace Synchronization with ROZETKA
Fixed an error where product image links were generated incorrectly in the product file when the program used the built-in (non-configurable) product image naming algorithm.
197667. Displaying API Errors During ROZETKA Synchronization
Warehouse → E-Shop Synchronization → ROZETKA Synchronization
In the ROZETKA marketplace setup wizard, error messages from API interactions will now be displayed to the user.
Previously, error messages were only recorded in the program's error log, making diagnosis more difficult.
197365. "Width" Field Now Required for TTN Creation
Synchronization with Ukrposhta
According to the updated requirements of Ukrposhta, the "Width" field is now mandatory when creating a waybill (TTN).
196208. Fixing Freezing Issue When Accepting Goods in Transit
Warehouse → Goods in Transit
Fixed an error where, when accepting an internal transfer invoice under "Goods in Transit," if the parameter "Ask user for price if missing" was enabled, a price adjustment dialog appeared, which could cause the program to freeze.
Now, when accepting an internal transfer invoice under "Goods in Transit," the price adjustment dialog will not appear at the destination accounting center.
193642. Fixing Pop-Up Notification Error
Torgsoft → Notifications
Fixed an error "[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server] Violation of UNIQUE KEY constraint 'uqsShowingUserNotification'. Cannot insert duplicate key in object 'dbo.ShowingUserNotification'." which could occur during pop-up notifications.
197702. Fixing Blocking Issue Due to Stock Shortage
Analysis → Assortment Management Center
Torgsoft – Assortment Management Center
Fixed an error where a stock shortage message during internal transfers in Analysis → Assortment Management Center blocked the work of other users until it was closed.
If the setting "Prompt when stock is insufficient" is enabled, this message will now be considered a transfer restriction.

Go back to the previous step