Fixes
[VA-10031] - GL account allowed in another entry
[VA-10074] - Invoice payments showing 0 outstanding
Release Notes
[VA-8199] - Expense Feature Enhancements
-
Versa has improved the expense feature
1. New model Expense Report and other changes:
-Versa has created a new model Expense Group which is used by users to group a list of expense for approval or payment. Also, one expense report has many expenses listed. Versa will scope the Expense Report by internal organization and it will belongs to a user. The report will have a description field, a user id, an internal organization id, a firm id and the timestamp fields.
-Versa has also added a new field to expense category called "Expense GL Account". This filed is added to the expense category edit view and the listing view. User can choose from a list of GL accounts that have the account type of Revenue or Expenses.
2. New filters in the expense listing page and permission changes:
-Expense is currently only accessible to users with Firm Admin or Timesheet Only User.
-Change it to be accessible to users with Expense or Timesheet only permission.
-If the current user has the firm admin permission, they can see all the expenses in the system created by all users.
-If the current user is not a firm admin, he can only see the expenses he created.
-Versa has also added filters to search expenses by user (if the user is a firm admin).
- In addition, Versa has also added a Date Range to the current filters.
3. The user can submit a list of expense reports for approval using the existing workflows:
- Versa has added to our workflow approval feature. The user can choose to have the expense approved on a new model Expense Report.
-The UI changes below is only effective if the user has the expense permission and the internal organization has workflow setup for expense group.
-From the expense listing page, a user can choose to submit a list of expense (expenses associated to his user id).
-User will choose from a list of expenses, and then click on a new button "Create Expense Report". Once clicked, we will group the expenses using a new model.
-We will default the expense report description to "Expense Report yyyy-mm-dd" . User has the option of changing the description. On this page, there is a button for user to submit the expense report for approval.
The workflow approval will be on the new model for submitted expenses. The approver will either approve or disapprove the submitted expenses.
4. Approved Expense Reports can be paid via bills
-Once an expense report is approved, it can be paid . We have added a new button to the show page of Expense Report model called "Pay" . Once clicked, a modal asking user to select from a list of existing suppliers to pay this to.
-Once the supplier is selected, we create a new bill with the supplier selected. List each expense in the expense group as a new bill item, the GL account to use for each line would be coming from the Expense Category the expense belongs to . If an expense has tax 1, tax2, tax3 entered, add tax1 to tax3 to the total amount for the new bill item.
-Once a bill has been created for an expense report, the button to create Pay will disappear unless the associated bills are voided or deleted.
[VA-9863] - HubSpot integration
HubSpot Integration Technical Specification
- The goal of this project was to integrate HubSpot with the Versa application, enabling seamless data flow for contacts and sales deals. The architecture will be modeled on the existing Salesforce integration to ensure consistency and reuse of established patterns.
The core features are:
- Contact Sync for Won Deals: When a deal is won, automatically create or update the associated contact in Versa.
- "Won" Deal-to-Order Sync: Automatically create an Order in Versa when a Deal is marked as "won" in HubSpot.
- Deal Note Sync: Import all notes associated with a "won" HubSpot Deal into the CommunicationEvent records of the corresponding Versa Order.
[VA-9378] - Ship Station Integration
- Versa has added ShipStation to the list of integrations we have under /webstores and created ShipStation as a webstore model. User can create a new webstore record for ship station and enter the API credentials. (required data is listed here) https://www.shipstation.com/docs/api/requirements/) Please contact Versa for access to this module.
Tech Specs-API details
https://www.shipstation.com/docs/api/orders/create-update-order/
orderId => nil
order_number => versa order number
orderKey => order id in Versa
orderDate => order date
paymentDate => payment receipt date if order has a payment receipt
shipByDate => the earliest ship date on all order items
orderStatus => awaiting_shipment
customerEmail => email from the party record linked to the customer bill to
billTo => customer bill to party record
shipTo => ship_to_party on order if present
items => order items
amountPaid => total of payment receipts
taxAmount => total tax on order
customerNotes => message on order
paymentMethod => payment method name if there is payment reciept on order
requestedShippingService => shipping_preference.shipping_services
tagIds => ids of Ship station tags that is synced with versa quick_tags.
For order items. mapping is below
lineItemKey => versa order item id
sku => order_item.product.part.part_number if there is a part , otherwise, product.name
name => order_item.product.part.description if thers is part otherwise, product.product_comment
imageUlr
quantity => quantity
unitPrice => per_unit_cost
taxAmount => line item tax total
warehouseLocation => product.containers_at_facility.first.identifier
product_id => external resource id of the versa product mapped to Ship station. See mapping of product below
upc => product.product_identifications.first.id_value
- Update synced orders
User can changes orders in versa (update lines, remove, add lines), we will need to send the updated order to ship station. We need to store the last sync time with the shipment station integration record and look for any orders that have changed since last sync and send updates to ship station. If an order is shipped in ship station , then the update will fail and we will log it. Dev needs to check if an order items is added/updated/removed, the timestamp on the order is changed . If not, we will need to fix it in order for sync based on order updated_at timestamp to work.
- Linking of tags and products
To support the creation of orders, we will sync the product and tag data between Versa and Ship Station.
-
Order updates
Once an order is pushed from Versa to ship station, the order can be changed in Versa. We will need to push the changes using the create/update order API. - Handle API Rate Limits
Similar to Shopify, ShipStation has api rate limit. We need to read the response when the limit is hit and handle it (retry or delay additional API calls).
[VA-10049] - Shipping Notification Email
- Versa has now added the shipper details in the Shipment confirmation mail.
[VA-10053] - Apply payment discount when paying individual bills
Versa will allow apply early payment discounts to bill according to the payment terms for bills when creating a payment disbursement batch. But this is not an option when posting payment for individual bills on the make a payment page.
- Versa has added a checkbox for each bill listed in the open bills listing of the payment disbursement page when a bill is eligible to be discounted according to the payment terms.
- When posting, we will look at the checked state to determine if to apply early payment discounts to the bills so if a bill is eligible for discount but user choose not to apply, we will not take the discount.
- When the discount is posted to the accounting transaction, it is posted as a debit to accounts payable and a credit to the system GL account discount taken .
[VA-10075] - Add a new column, amt to be paid, to the Purchase Backorder by Supplier report
- Versa has added a new column amt to be paid to Purchase Backorder by Supplier report
[VA-10076] - Adjust Shopify inventory sync
Shopify Inventory Push - deduct quantity on SO option
Summary
Enhanced the Shopify inventory push feature to properly deduct unshipped Sales Order quantities
When pushing inventory to Shopify, the system was not correctly deducting quantities for orders that were:
- Placed on Shopify and synced to Versa
- Fulfilled on Shopify but fulfillment not yet synced back to Versa
Root Cause: The allocation calculation intentionally excludes allocations from Shopify-imported orders to prevent double-counting (since Shopify already reduced inventory when the order was placed). However, when an order is fulfilled on Shopify but the fulfillment hasn't synced to Versa yet:
- Shopify has reduced its actual inventory (from fulfillment)
- Versa's qty_on_hand hasn't been reduced (no invoice created yet)
- Versa sends the inflated qty_on_hand to Shopify, overwriting the correct lower value
Example:
- Qty on Hand in Versa: 100
- Shopify order for 10 units, fulfilled on Shopify
- Shopify inventory: 90 (correctly reduced)
- Versa pushes: 100 (wrong - overwrites correct value)
The sync of stores with a lot of orders can be slow and cause fulfilled data to be delayed synced.
When to Use
Enable deduct_quantity_on_so when:
- Fulfillments happen on Shopify before syncing to Versa
- You want to ensure Shopify inventory reflects all pending/unshipped orders
- You're experiencing inflated inventory being pushed to Shopify
[VA-10079] - Purchase Backorders reports Dimension filters
- Versa has added dimension based filter on the Purchase Backorder Reports Change to only show the filters if a dimension is assigned to PO or sales order.
[VA-10080] - Auto-adjust bin location counts based on the quantity on hand of products
- Bin location counts often get disconnected from the quantity on hand due to various issues. (user transfer inventory, adjusting inventory) and even though there is a way for user to reconcile the difference between QOH and bin location counts.
- So Versa will add an auto-reconcile feature. And added a new setting to setup>feature settings>Inventory management. "Auto. Adjust Bin Location Counts Based On Inventory," and the Default value is on.
- This setting is only visible for firms with the feature Warehouse Management.
- Any parts with bin location counts (zero or not). we will check against the quantity on hand in the same facility as the bin location. If there is on qty in in bin location, the adjustment is easy, just adjust to same as QOH.
- If the parts has qty in multiple bin locations , we will do adjustment based on % of the counts in the bin location. If bin location 1 has qty of 1 and bin location 2 has qty of 2. We will take the qty on hand and adjust bin location 1 to have 1/3 of the count and adjust bin location 2 to have 2/3 of the count. We will assume the qty is discreet so round to whole number. make sure total qty from bin location counts do not exceed total QOH . For audit purpose, log the changes and create a new event with event details (being the adjustment of each part and each bin location) .
- Created a new event type so we can filter by these events.
[VA-10081] - Shopify: Let the user import refund/return using the product's revenue account
- There is a setting Account To Record Return Expense In for Shopify. This is used to book the refunds in GL.
- Typically, Versa will debit this account and credit the payment account. But for some users, they do not want to set this account but use the product's revenue account, which is inherited from the revenue account of the product's category.
- User can leave this setting blank. When blank, we will use the product category's revenue account.
[VA-9915] - Add 2 fields, Sales by Product and Services reports
Versa has added 2 new fields to the default report, Sales by Products and Services.
- The Total payment is the total payment_receipts linked to the invoice items and the total adjustment is the total of invoice_item_adjustments
[VA-9944] - Automatic reference number for BOMs
- For production build, Versa requires users to enter an internal ref number, but users often do not know what to put in there.
- Versa will set up a document counter, like a sales order or sales invoice, to auto increment the internal ref number after a new build is created.
- In tools, getting started, document counter, Versa will allow the user to reset the starting number.
[VA-10062] - Create the ability to CC on outgoing emails
- Versa has added a new setting to setup>feature setting>emails> always CC in outgoing emails.
- When this field is set (can be comma separated email addresses) , Versa will make sure all the emails that we create in versa (send invoice, sales order, sales quotes, purchase order, sales quotes, opportunities, RFQ, Requisition) will default to use the cc addresses entered.
- As best practice, users need to make sure we validate the email addresses entered as valid. (
Comments and Suggestions
0 comments
Please sign in to leave a comment.
Related articles