-
Fix Subcontractor Invoice and Subcontractor Application Variation Allocations so the correct Item Type is recorded.
-
Fix Sales Invoices so that when the "Issue Stock to Job On Sales Invoices" is active, the system ensures that stock quantities cannot go negative by reserving the item quantity when the invoice is approved.
-
Fix Subcontractor Invoice and Subcontractor Application Variation Allocations so the correct Item Type is recorded.
-
Fix Sales Invoices so that when the "Issue Stock to Job On Sales Invoices" is active, the system ensures that stock quantities cannot go negative by reserving the item quantity when the invoice is approved.
-
Fix Stock import so the number of decimal places cannot exceed 6.
-
Fix Stock screen so that when duplicating an existing record, the Cost Price is not reset to zero.
-
Update Direct Costs and Bank Expenditure Import routine to automatically calculate the VAT Value when a VAT Code is specified in the import file but the VAT Value is not.
-
Fix Purchase Invoice GRN & PO tagging lists so that when tagging External Plant Hire items the number of days outstanding is calculated instead of the number of items on hire.
-
Fix sending of emails via SMTP so that invalid base-64 encoded embedded images do not cause the email to fail to send.
-
Fix Subcontractor SMS text message sending to prevent a NullReferenceException after the message has been sent, causing Subcontractor Payment Batch posting routine to fail after the first text message.
-
Update to store the path to the server in a XML Client Configuration file instead of an INI file.
-
Update automatic client upgrade to pass the path to the server into the installer so it does not need to reply on the Working Directory to determine this (as this can be unreliable).
-
Fix calculated default values on new records when no records exist in the list when it is loaded.
-
When posting Purchase Invoices, the system now only marks a Purchase Order Item as closed if the Quantity Invoiced is greater than or equal to the Quantity Ordered (less Quantity Cancelled) AND there is no Quantity on GRN, no Quantity Allocated and no Goods Received Pending Invoice.
-
Change the "Import Goods Received Note Items" routine to replicate the functionality of the "Goods Received Notes" option in the application, preventing an item from being imported when the Quantity Outstanding on the Purchase Order is zero.
-
Fix Subcontractor Timesheets import routine to pick up the Default Labour Rate from the Subcontractor Order or from the Subcontractor if the rate on the Order is zero. Pick up the Deduct CITB Levy, Deduct Insurance and Payment Terms settings from the Order instead of from the Subcontractor record. Also pick up the Discount Percent, Retention Percent and Retention Due Date settings from the Order or from the Subcontractor record if there is no order.
-
Fix Auto Create Subcontractor Payment Batch routine so that the default Cash Book account is picked up from the Subcontractors record if one is specified.
-
Update Job Sales Phase Period Forecasts to automatically populate new records created when a transaction is posted with the forecast values from the previous period.
-
Fix the Subcontractor Invoices/Timesheets/Timesheet Opening Balances import routines to correctly populate the Discount and Retention Percentage fields from the Subcontractor record when creating new default Subcontractor Order.
-
Fix Purchase Orders import routine so that if imported orders are set to be Auto-Approved, the Authorised flag is also set.
-
Include MaximumUserCountReachedException and ModuleNotLicencedException in the list of exceptions where option to drill down into the exception detail/stack trace is hidden from the user interface.
-
Fix Employees import to limit the length of the Forename and Surname fields to 30 characters, not 50.
-
Fix importing of Nominal Ledger codes from the back office so that when creating the Nominal Account, the description used is the description of the nominal code without any cost centre or department defined (where possible).
-
Fix Subcontractor Order & Purchase Order Authorisation so that if a group does not have permission to authorise an order and it does not have a Supervisor Group setup, an appropriate message is displayed to the user instead of raising an error saying that a record with a ID of zero does not exist.
-
Fix spelling of "Warehouse" on the "Stock -> Enquiries -> Warehouses" screen.
-
Update properly handle validation exceptions raised by operations so they are logged as messages (not critical errors) and are displayed as message boxes instead of using the full messages dialog.
-
Update Exporting to Excel from List Views to limit the number of rows to the maximum number of rows supported by Excel. Also significantly improve the performance of Exporting to Excel, especially for grouped exports, by loading all data using one query instead of utilising the dynamic paging mechanism of List Views.
-
Update printing of Crystal Reports so that if the Crystal Reports API fails to access the available printer bins, it just prints to the default bin instead of failing to print at all.
-
Fix sending email messages with body text using Outlook where a users signature starts with a <table> tag immediately below the <body>
and <div class="WordSection1"> tags, as Outlook ends up inserting the signature identifier tag <a name="_MailAutoSig"> within the first row & column of the table, causing the body text to be inserted there instead of above the table.
-
Fix Consolidated Contract Applications & Certificates so that the Application/Certificate Date, Payment Term Code, Payment Term Length and Due Date on the individual Contract Applications/Certificates are updated to be the same as the values entered on the Consolidated Contract Application/Certificate when the applications/certificates are tagged or the Consolidated Contract Application/Certificate header is modified. This ensures that the correct values are posted to the Job Sales Transactions table (like they already are to the Sales Ledger).
-
Fix list view “is blank”, ”is not blank” and True/False filters so that when they are passed into Crystal Reports they work properly.
-
Fix Messaging Service so that polling intervals of zero can be set, so that day gets skipped.
-
Fix Contract Internal Valuations Import Routine so that it is aligned with the live data entry validation and warns on negative cumulative totals (instead of preventing them). Also automatically populate the "Entered By" field if none was specified.
-
Fix "Are you sure you want to post to this week?" prompt when running the "Post Monthly Timesheets to Payroll" routine so that it says "month" instead of "week".
-
Make sure the Payroll Group is defaulted to the group selected when loading the Employees list.
-
Prevent services (i.e. Importer and Messaging) loading the menu structure, bespoke reports/dashboards, permissions, etc. when logging in as this is not required. This improves performance but also prevents occasional "System.ComponentModel.Win32Exception (0x80004005)" exceptions when the system tries to subscribe to unavailable user interface events (to track changes to menu item visibility) which ultimately cause these services to hang.
-
Fix Direct Costs and Bank Expenditure import routine validation so that if a VAT Value is specified, a VAT Code must also be specified.
-
Fix list view Export button for screens with multiple items drill down lists so that when the grid is grouped, the drop-down export options execute on the correct list.
-
Update CIS Subcontractor Monthly Returns to remove references to the obsolete 'Monthly Return History' menu option and update the 'Create Revision' operation to take you directly to the new revision once complete.
-
Fix messaging service to handle attachment file names containing apostrophes when more than one attachment exists (e.g. when a terms and conditions document is also included in the template).
-
Fix Purchase Order Items import routine so that the default nominal account is only picked up from the stock code when the purchase is for stock. Also updated to pick up the nominal account from the Supplier record for overhead purchases when one has not been specified on the import file.
-
Make sure the primary key is contained in all sort order expressions picked up from list views to fix exporting error where an empty SQL ORDER BY statement could be generated.
-
Update Job Items and Bil of Requirements to default the Sales Phase if the Job is not setup to use Sales Phases.
-
Remove Stock Category lookup from Job Items - this is the only place this is done and is an obsolete way of working.
-
Fix the 'Customise Menu' screen in the admin program so that when editing reports, dashboards and folders the title on the popup dialog says "Edit" instead of "Add". Also ensure that when editing custom reports, the name of report is displayed.
-
Fix lookup validation on parameter screens to prevent the drop-down list appearing on lookup fields when a valid enter is manually entered.
-
Fix Stock Issues so that stock issued to a Bill of Requirement record created from a Job Item has the quantity removed from the Quantity Allocated field on the Stock record when posted.
-
Fix Stock Issues so that when issuing a Bill of Materials to a Job and there is enough quantity in stock to partially meet the issue quantity, the "Quantity Issued As Components" field is updated with the correct value.
-
Fix Stock Recalculate routine to include Bill of Requirement records created from Job Items.
-
Fix Copy Job routine so that it respects the "Link to Bill of Requirements" flag when copying Job Items, resulting in the new Job Items being automatically linked to the corresponding new Bill of Requirement records.
-
Fix Contract Certificates import routine to prevent the "The sum of the VAT Split does not match the value on the header" error when approving the imported certificate.
-
Fix parameter screens so that if a default parameter type is defined for optional parameters it is correctly selected when the parameter is enabled.
-
Fix parameter screens so that when the lookup filter expression for a parameter is dependant on the value of another parameter, the filter expression is updated on the second value field when a "between" parameter type is selected.
-
Fix parameter screens to be more uniform in the widths used with what is visible when a parameter is disabled.
-
Fix information labels on detail screens so that they wrap when the text is too long to fit the width assigned to the field.
-
Update Messaging Service and Importer Service to use the latest version of Microsoft SQL Server database drivers to fix the bug in .NET 6 where new records are added to the sys.conversation_endpoints database table every 30 seconds when query notifications are turned on. Also update query notifications for these services to specifically make use of timeouts to help prevent databases from getting filled up with expired notification/conversation records.
-
Fix Administrator program licence check after data upgrade of configuration database so that if no licence details exist and new licence is not downloaded.
-
Fix Administrator program so if an error is returned after manually checking for an updated licence, it is displayed in a message box instead of inside the toolbar to ensure longer messages display properly and don't collapse the toolbar down to an overflow button.
-
Fix Subcontractor Payment Certificate layout to add missing bracket from reverse charge VAT information line and to change format of these lines to italic.
-
Fix the "Adjust Assembly Allocations" tagging list on both "Issues To Jobs" and "Receive Finished Goods" so that when tagging an item that has enough stock to fully meet the requirements, the cost of the item is properly assigned, instead of ending up as zero and causing a "Nominal split does not sum to zero" error when posting the batch.
-
Fix import routines to warn when a value exceeds the number of allowed decimal places, preventing rounding and posting errors when transactions are ultimately created.
-
Fix Purchase Order and Subcontractor Order authorisation request notification emails so that the staff who have permission to authorise the order are not also copied in on the same email.
-
Fix "The calling thread cannot access this object because a different thread owns it" error when changing system settings screens that change the visibility of main menu options, like the Back Office or Payroll Type, the "Show Cost Prices On GRNs" flag in GRN Settings, etc.
-
Fix updating the back office so that if a posting routine is locked by another user, the log is updated with errors instead of messages, making them easier to report on.
-
Fix logging of messages so that if there is only one message, the first line of the message is logged as the description instead of a meaningless generic message that requires the user to also view the Additional Description notes field.
-
Update Administrator program so that when creating a new company, the next available number is used instead of always the highest number plus one.
-
Fix saving header records so that if a field that affects what records are returned on child lists (particularly tagging lists) is changed, those child lists are automatically refreshed after saving the header record. This ensures the data is always up to date and prevents users tagging records that should no longer apply. A specific example of this is when changing the Subcontractor/Job/Order Number on a Subcontractor Invoice/Timesheet which results in different records being returned in the "Certify Subcontractor Order/Variation Items" tagging lists.
-
Update changing Job or Job Sales Phase status so that if a valid period does not exist for the closed date an exception is thrown (instead of the error job being returned as part of a messages collection). This prevents routines that automatically change the status (like generating Sales Invoices) from continuing until the periods are corrected.
-
Prevent right click on Most Recently/Frequently Used groups on the Home screen so they can't be renamed/removed.
-
Fix Sales Invoice postings so that zero value invoice lines do not end up as outstanding and therefore require allocation to a receipt (which is then not possible as there is nothing outstanding).
-
Fix Stock Take so historical batches can be viewed without being in the middle of a Stock Take.
-
Fix the following import routines so that Job Headings are validated as being a cost or revenue heading accordingly: Direct Costs, Job Journals, Bank/Cash Expenditure and Internal Invoices.
-
Update Goods Received/Returned Note transaction references so information is not duplicated and also includes the Job Number and/or Stock Code.
-
Fix the error reporting for the Back Office Update Pending Posting routines so that missing Customers/Suppliers/Bank Accounts are properly reported to the user instead of generating a KeyNotFoundException error.
-
Fix 'Jobs -> Excel Analysis -> Job Cost Period Analysis' so that the 'Include Summary of Transactions Outwith Range' flag does not result in an argument error.
-
Fix Purchase Invoice Header import routine to ensure that text in the Narrative field does not exceed the maximum database field length of 30 characters.
-
Fix Site Requisition Bill of Requirement tagging so that the To Follow quantity is correctly calculated based on the quantity currently available in stock.
-
Fix Site Requisitions 'Add Items from Bill of Requirements' tagging list so that un-tagging a record does not prompt for the quantity and instead just removes the item from the requisition without prompting.
-
Fix the 'Update Nominal Ledger Pending Postings' routine when linked to Pegasus Opera so that a Journal Number is only generated when the journal actually has values to post to the Nominal Ledger resulting in a valid journal. This number will now be stored in the URN field, making this an independent sequence to the Nominal Ledger Export ID field. This ensures that journal numbers in Opera are always in sequence for improved auditability.
-
Fix Purchase Orders so that the 'Requires Authorisation' flag is not reset when the order is on hold and is then modified.
-
Fix Subcontractor Orders so that the 'Requires Authorisation' flag is re-evaluated when the Variation Total on the header is modified without also changing the Contract Value.
-
Fix Purchase and Subcontractor Orders so that the current user's authorisation permissions are re-evaluated before approving an order. This ensures that the approver always has the correct permissions, regardless of who last modified the order (as this is what determines the state of the 'Requires Authorisation' flag) and that any permission changes made since the flag was set are applied.
-
Fix updating Pegasus Opera Nominal Ledger so that zero value journal lines are not exported to the Opera Importer.
-
Fix Subcontractors import to allow up to 60 characters in the AccountName field (instead of 30).
-
Fix Purchase Invoice GRN Accrual Reversal bug whereby a GRN that is partially invoiced does not reverse any accrued value, or reverses a seemingly random value (which is based on the unit cost of the previously posted GRN Accrual Reversal in the same batch). The problem ultimately resolves itself when the GRN is fully invoiced, but can lead to wrong accrual values in the interim.
-
Fix Document Management so that when saving Email's with attachments that are also emails, the attached emails are not empty.
-
Fix installers so that when logging the EventSource name, the path to the EventLogMessages.dll file is picked up properly. This resolves the problem where entries logged in the Event Viewer have the message "The description for Event ID 0 from source [Service Name] cannot be found", cluttering up the actual useful information.
-
Fix Sales Invoice, Direct Sales and Sales Journal posting routines to pick up the Nominal Cost Centre & Department from the Job Sales Phase if one is specified.
-
Update Messaging Service to send error emails to the 'Administrator Email Address' using the same 'From Email Address' the original email was to be sent from to prevent the 'Send As' permission needing to be assigned to the Administrator account.
-
Fix Subcontractor Payment Certificate report layout to properly split any Payment Contra value over multiple Subcontractor Invoice/Timesheet items so the correct value is output on the report.
-
Update Messaging Service to allow emails to be set that just have a Cc or Bcc field, so the To field is not enforced.
-
Fix Warehouses so that descriptions need to be unique.
-
Fix Stock Locations so that descriptions need to be unique within each Warehouse.
-
Add missing parent table relations to the Nominal Ledger and Nominal Accounts tables from the Job Cost Transactions table, to allow Nominal Account Descriptions to be pulled into list views.
-
Fix the occasional and seemingly random "Cannot Make Record Pointer - no record object" exception when a column filter has been applied to the filter row of a child list view and the parent record changes. This was caused by a race condition between the grid getting the unfiltered list record count and then trying to load the data with the filter applied.
-
Tagging GRN Items on Purchase Invoice gets unit cost from Purchase Order Item rather that the PO Item cost at the time the GRN was received