Completed
Add last published date to Compensation Events table
Why Users managing NEC projects need visibility into when compensation events were last published to track approval timelines and maintain audit trails for contract variations. What Add a 'Last Published Date' column to the Compensation Events table that displays the most recent publication timestamp for each compensation event. How Add a new column to the Compensation Events table Display the last published date in a readable format (e.g., DD/MM/YYYY) Ensure the date updates automatically when a CE is republished Make the column sortable Include this field in any CE exports/reports Update the prompt that comes up when a user updates the status for a CE: Pending: Updating the status of this payment application to Pending will not publish this to the BOQ and future payment applications. To publish new changes to the BOQ please click on "Publish to BOQ". Sent Updating the status of this payment application to Sent will not publish this to the BOQ and future payment applications. To publish new changes to the BOQ please click on "Publish to BOQ". Approved Once you approve this CE, you'll be prompted to publish this CE to the BOQ will all unpublished changes. Dependencies Access to the old platform codebase Existing CE publishing functionality Acceptance Criteria Last Published Date column appears in the Compensation Events table Date displays correctly for all published CEs Date updates when a CE is republished Column is sortable (ascending/descending) Unpublished CEs show empty or 'Not Published' state Date format is consistent with other date fields in the platform
Linear 3 days ago
Feature Request
Completed
Add last published date to Compensation Events table
Why Users managing NEC projects need visibility into when compensation events were last published to track approval timelines and maintain audit trails for contract variations. What Add a 'Last Published Date' column to the Compensation Events table that displays the most recent publication timestamp for each compensation event. How Add a new column to the Compensation Events table Display the last published date in a readable format (e.g., DD/MM/YYYY) Ensure the date updates automatically when a CE is republished Make the column sortable Include this field in any CE exports/reports Update the prompt that comes up when a user updates the status for a CE: Pending: Updating the status of this payment application to Pending will not publish this to the BOQ and future payment applications. To publish new changes to the BOQ please click on "Publish to BOQ". Sent Updating the status of this payment application to Sent will not publish this to the BOQ and future payment applications. To publish new changes to the BOQ please click on "Publish to BOQ". Approved Once you approve this CE, you'll be prompted to publish this CE to the BOQ will all unpublished changes. Dependencies Access to the old platform codebase Existing CE publishing functionality Acceptance Criteria Last Published Date column appears in the Compensation Events table Date displays correctly for all published CEs Date updates when a CE is republished Column is sortable (ascending/descending) Unpublished CEs show empty or 'Not Published' state Date format is consistent with other date fields in the platform
Linear 3 days ago
Feature Request
In Progress
Match one invoice across multiple purchase orders
Why Subcontractors sometimes submit invoices that contain line items from multiple purchase orders (e.g. 5 line items from the main PO + 1 line item from the variations PO). Currently, the system can only match an invoice to a single PO. Currently, when an invoice is matched to two POs, it takes up the invoice/โ/paid balance on both. What Enable users to match different line items from a single invoice to multiple purchase orders. Only the value of the matched invoice line items should show up as invoiced or paid against the PO. How Update invoice matching UI to support selecting multiple POs Allow users to allocate specific invoice line items to specific POs Only the allocated line item amounts should show against each PO (not the full invoice total) Update breakdown view to correctly show amounts per PO Ensure line item matching works across multiple POs Dependencies COR-1385 Manual Line Item Matching Acceptance Criteria Users can link one invoice to multiple purchase orders Users can allocate invoice line items to specific POs (e.g. lines 1-5 to PO A, line 6 to PO B) Each PO shows only the allocated line item amounts, not the full invoice total Breakdown percentages calculate correctly per PO (not all POs) All line items must be matched when splitting across multiple POs
Linear 5 days ago
Feature Request
In Progress
Match one invoice across multiple purchase orders
Why Subcontractors sometimes submit invoices that contain line items from multiple purchase orders (e.g. 5 line items from the main PO + 1 line item from the variations PO). Currently, the system can only match an invoice to a single PO. Currently, when an invoice is matched to two POs, it takes up the invoice/โ/paid balance on both. What Enable users to match different line items from a single invoice to multiple purchase orders. Only the value of the matched invoice line items should show up as invoiced or paid against the PO. How Update invoice matching UI to support selecting multiple POs Allow users to allocate specific invoice line items to specific POs Only the allocated line item amounts should show against each PO (not the full invoice total) Update breakdown view to correctly show amounts per PO Ensure line item matching works across multiple POs Dependencies COR-1385 Manual Line Item Matching Acceptance Criteria Users can link one invoice to multiple purchase orders Users can allocate invoice line items to specific POs (e.g. lines 1-5 to PO A, line 6 to PO B) Each PO shows only the allocated line item amounts, not the full invoice total Breakdown percentages calculate correctly per PO (not all POs) All line items must be matched when splitting across multiple POs
Linear 5 days ago
Feature Request
Completed
Update Grouping mechanism
Why Update the cost grouping mechanism to include tags in the available grouping options for better cost analysis and reporting flexibility. What Update the cost report grouping options to support the following 8 combinations: | Primary Group | Sub-Group | Rows | | -- | -- | -- | | Cost Groups | Cost Codes | Metrics | | Cost Groups | Tags | Metrics | | Cost Groups | Metrics | Cost Codes | | Cost Groups | Metrics | Tags | | Cost Codes | Tags | Metrics | | Cost Codes | Metrics | Tags | | Tags | Cost Codes | Metrics | | Tags | Metrics | Cost Codes | | Tags | | Metrics | | Cost Codes | | Metrics | | Cost Groups | | Metrics | | Metrics | | Tags | | Metrics | | Cost Codes | | Metrics | | Cost Groups | How Update the grouping selector UI to reflect all 8 grouping options Add Tags as a selectable option for Primary Group, Secondary Group, and Rows Ensure all grouping logic supports the new combinations with Tags Update tests to cover all new grouping scenarios including Tag-based combinations Dependencies Figma design: Cost Report & Analytics/New V1.1 Acceptance Criteria [ ] Users can select from all 8 grouping combinations [ ] Tags are available as Primary Group, Secondary Group, and Rows options [ ] All combinations function correctly with proper data aggregation [ ] Existing cost reports continue to function with the new grouping logic [ ] UI matches the Figma design specifications
Linear 5 days ago
Feature Request
Completed
Update Grouping mechanism
Why Update the cost grouping mechanism to include tags in the available grouping options for better cost analysis and reporting flexibility. What Update the cost report grouping options to support the following 8 combinations: | Primary Group | Sub-Group | Rows | | -- | -- | -- | | Cost Groups | Cost Codes | Metrics | | Cost Groups | Tags | Metrics | | Cost Groups | Metrics | Cost Codes | | Cost Groups | Metrics | Tags | | Cost Codes | Tags | Metrics | | Cost Codes | Metrics | Tags | | Tags | Cost Codes | Metrics | | Tags | Metrics | Cost Codes | | Tags | | Metrics | | Cost Codes | | Metrics | | Cost Groups | | Metrics | | Metrics | | Tags | | Metrics | | Cost Codes | | Metrics | | Cost Groups | How Update the grouping selector UI to reflect all 8 grouping options Add Tags as a selectable option for Primary Group, Secondary Group, and Rows Ensure all grouping logic supports the new combinations with Tags Update tests to cover all new grouping scenarios including Tag-based combinations Dependencies Figma design: Cost Report & Analytics/New V1.1 Acceptance Criteria [ ] Users can select from all 8 grouping combinations [ ] Tags are available as Primary Group, Secondary Group, and Rows options [ ] All combinations function correctly with proper data aggregation [ ] Existing cost reports continue to function with the new grouping logic [ ] UI matches the Figma design specifications
Linear 5 days ago
Feature Request
In Progress
AFP file not importing
Why AFP files are failing to import completely. The import process is not working at all, preventing users from uploading payment application data. Loom recording What Investigate and fix the AFP file import failure. Ensure the import process can successfully parse and load AFP files into the system. How Review the import error logs and identify the root cause of the failure Test with the AFP file from the Loom recording to reproduce the issue Fix the parser/validator logic that's preventing the import Verify the fix works with multiple AFP file formats Dependencies None Acceptance Criteria AFP files import successfully without errors All data from the AFP file is correctly parsed and loaded User receives clear feedback if import fails with specific error messages Import works for both new and existing payment applications
Linear 8 days ago
Bug Reports
In Progress
AFP file not importing
Why AFP files are failing to import completely. The import process is not working at all, preventing users from uploading payment application data. Loom recording What Investigate and fix the AFP file import failure. Ensure the import process can successfully parse and load AFP files into the system. How Review the import error logs and identify the root cause of the failure Test with the AFP file from the Loom recording to reproduce the issue Fix the parser/validator logic that's preventing the import Verify the fix works with multiple AFP file formats Dependencies None Acceptance Criteria AFP files import successfully without errors All data from the AFP file is correctly parsed and loaded User receives clear feedback if import fails with specific error messages Import works for both new and existing payment applications
Linear 8 days ago
Bug Reports
Completed
Comments not working on unassigned documents
Why Comments are essential for collaboration and document review workflow. The feature has regressed and is currently not functioning, which impacted a client demo. What Fix the comments functionality on documents so users can add, view, and interact with comments as expected. How Investigate why comments have stopped working on documents and restore full functionality. Note that COR-795 previously addressed a similar issue and was marked as resolved. Dependencies None identified Acceptance Criteria Users can add comments to documents Comments display correctly on documents Comment notifications work as expected All comment interactions (edit, delete, reply) function properly
Linear 9 days ago
Feature Request
Completed
Comments not working on unassigned documents
Why Comments are essential for collaboration and document review workflow. The feature has regressed and is currently not functioning, which impacted a client demo. What Fix the comments functionality on documents so users can add, view, and interact with comments as expected. How Investigate why comments have stopped working on documents and restore full functionality. Note that COR-795 previously addressed a similar issue and was marked as resolved. Dependencies None identified Acceptance Criteria Users can add comments to documents Comments display correctly on documents Comment notifications work as expected All comment interactions (edit, delete, reply) function properly
Linear 9 days ago
Feature Request
Completed
Route user to new project after creating it
What Automatically route users to the newly created project after they create it, instead of keeping them on the current project. Why Currently, when a user creates a new project, they remain on the current project and have to manually navigate to the new project they just created. This creates unnecessary friction and is poor UX. Users expect to be taken to the new project immediately after creation so they can start working on it. Acceptance Criteria When a user successfully creates a new project, the system automatically navigates them to the new project The project navigation/selector updates to show the newly created project as the active project All page content refreshes to display data for the new project (documents, BOQ, reports, etc.) The URL updates to reflect the new project (e.g., /projects/new-project-id) If project creation fails, the user remains on the current project User sees a success notification confirming the project was created Navigation history is preserved (user can use back button to return to previous project)
Linear 13 days ago
Feature Request
Completed
Route user to new project after creating it
What Automatically route users to the newly created project after they create it, instead of keeping them on the current project. Why Currently, when a user creates a new project, they remain on the current project and have to manually navigate to the new project they just created. This creates unnecessary friction and is poor UX. Users expect to be taken to the new project immediately after creation so they can start working on it. Acceptance Criteria When a user successfully creates a new project, the system automatically navigates them to the new project The project navigation/selector updates to show the newly created project as the active project All page content refreshes to display data for the new project (documents, BOQ, reports, etc.) The URL updates to reflect the new project (e.g., /projects/new-project-id) If project creation fails, the user remains on the current project User sees a success notification confirming the project was created Navigation history is preserved (user can use back button to return to previous project)
Linear 13 days ago
Feature Request
Completed
Change document titles to sentence case
Why Document titles currently use inconsistent capitalisation. Sentence case improves readability and provides a consistent, professional appearance across the platform. What Update all document titles throughout the system to use sentence case formatting (first letter capitalised, rest lowercase except for proper nouns). How Review all document title displays in the UI Update title formatting to sentence case Ensure proper nouns and acronyms remain capitalised Apply consistently across all document types (POs, invoices, delivery notes, etc.) Dependencies None Acceptance Criteria All document titles display in sentence case Proper nouns and acronyms retain correct capitalisation Formatting is consistent across all document types No regression in existing title functionality
Linear 14 days ago
Feature Request
Completed
Change document titles to sentence case
Why Document titles currently use inconsistent capitalisation. Sentence case improves readability and provides a consistent, professional appearance across the platform. What Update all document titles throughout the system to use sentence case formatting (first letter capitalised, rest lowercase except for proper nouns). How Review all document title displays in the UI Update title formatting to sentence case Ensure proper nouns and acronyms remain capitalised Apply consistently across all document types (POs, invoices, delivery notes, etc.) Dependencies None Acceptance Criteria All document titles display in sentence case Proper nouns and acronyms retain correct capitalisation Formatting is consistent across all document types No regression in existing title functionality
Linear 14 days ago
Feature Request
Completed
Run script to seed old POs, delivery notes and invoices for 3-way matching
Why Documents (POs, delivery notes, invoices) created before the recent 3-way matching push are not being automatically matched. The matching system only runs on new documents. Historical documents need to be backfilled to enable matching. What Write and run a script/job to seed historical documents for 3-way matching across all tenants: Match all POs first Match all delivery notes Match all invoices This will enable 3-way matching for documents that were created before the automatic matching was deployed. How Create a script that iterates through all tenants For each tenant, trigger the 3-way match process for existing documents Process in order: POs โ Delivery Notes โ Invoices Log results and any errors Run as a one-time migration job Dependencies Existing 3-way matching logic (COR-1229) Acceptance Criteria Script successfully processes all tenants Historical POs are matched to delivery notes and invoices where applicable Historical delivery notes and invoices are matched to POs No duplicate matches created Script logs progress and completion status Can be run safely multiple times without creating duplicate matches
Linear 14 days ago
Feature Request
Completed
Run script to seed old POs, delivery notes and invoices for 3-way matching
Why Documents (POs, delivery notes, invoices) created before the recent 3-way matching push are not being automatically matched. The matching system only runs on new documents. Historical documents need to be backfilled to enable matching. What Write and run a script/job to seed historical documents for 3-way matching across all tenants: Match all POs first Match all delivery notes Match all invoices This will enable 3-way matching for documents that were created before the automatic matching was deployed. How Create a script that iterates through all tenants For each tenant, trigger the 3-way match process for existing documents Process in order: POs โ Delivery Notes โ Invoices Log results and any errors Run as a one-time migration job Dependencies Existing 3-way matching logic (COR-1229) Acceptance Criteria Script successfully processes all tenants Historical POs are matched to delivery notes and invoices where applicable Historical delivery notes and invoices are matched to POs No duplicate matches created Script logs progress and completion status Can be run safely multiple times without creating duplicate matches
Linear 14 days ago
Feature Request
Xero Contact Payment Terms Integration
Why Enable Xero users to sync contact payment terms, tax types, and tracking categories between Xero and Coreloops Directory. What Implement Xero-specific contact fields with mapping to unified Coreloops schema. Xero Fields โ Coreloops Schema Mapping Payment Terms (Sales & Bills) PaymentTerms.Sales.Day โ sales_payment_days PaymentTerms.Sales.Type โ sales_payment_terms_type (DAYSAFTERBILLDATE, DAYSAFTERBILLMONTH, OFCURRENTMONTH, OFFOLLOWINGMONTH) PaymentTerms.Bills.Day โ purchase_payment_days PaymentTerms.Bills.Type โ purchase_payment_terms_type Tax Configuration AccountsReceivableTaxType โ sales_tax_type AccountsPayableTaxType โ purchase_tax_type TaxNumber โ tax_number Tracking Categories SalesTrackingCategories[].TrackingCategoryName โ sales_tracking_category_name SalesTrackingCategories[].TrackingOptionName โ sales_tracking_option_name PurchasesTrackingCategories[].TrackingCategoryName โ purchase_tracking_category_name PurchasesTrackingCategories[].TrackingOptionName โ purchase_tracking_option_name Credit Management CreditLimit โ credit_limit (UI feature, API support pending) AccountsReceivableTax โ ar_tax_amount (read-only) AccountsPayableTax โ ap_tax_amount (read-only) Contact Classification IsSupplier โ is_supplier IsCustomer โ is_customer ContactStatus โ contact_status (ACTIVE, ARCHIVED) Unified Schema Fields sales_payment_days: integer sales_payment_terms_type: enum [days_after_invoice, days_after_month, current_month, following_month] purchase_payment_days: integer purchase_payment_terms_type: enum [days_after_invoice, days_after_month, current_month, following_month] sales_tax_type: string purchase_tax_type: string tax_number: string sales_tracking_category_name: string sales_tracking_option_name: string purchase_tracking_category_name: string purchase_tracking_option_name: string credit_limit: decimal ar_tax_amount: decimal (read-only) ap_tax_amount: decimal (read-only) is_supplier: boolean is_customer: boolean contact_status: enum [active, archived] Cross-Platform Unified Mapping payment_days: integer (maps from sales_payment_days or purchase_payment_days) payment_terms_type: enum (normalised across all platforms) early_payment_discount_days: integer (not native in Xero) early_payment_discount_percent: decimal (not native in Xero) credit_limit: decimal current_balance: decimal (read-only) account_active: boolean (maps from contact_status) How Extend Directory contact model with unified schema fields Implement Xero Contacts API integration Map Xero payment terms for both Sales and Bills separately Handle tracking categories as multi-value fields Support tax type configuration per contact Prepare for future credit limit API support from Xero Display Xero-specific fields in UI when Xero integration is active Dependencies COR-739: Parent issue Xero API authentication (OAuth 2.0) Directory contact infrastructure Acceptance Criteria Sales payment terms sync from/to Xero Bills payment terms sync from/to Xero (note: API may have limitations on update) Tax types (AR and AP) sync correctly Sales and purchase tracking categories sync bidirectionally Credit limit field prepared for future API support Contact classification (customer/supplier) handled correctly UI shows only relevant Xero fields when Xero integration is active Bidirectional sync maintains data integrity
Linear 19 days ago
Feature Request
Xero Contact Payment Terms Integration
Why Enable Xero users to sync contact payment terms, tax types, and tracking categories between Xero and Coreloops Directory. What Implement Xero-specific contact fields with mapping to unified Coreloops schema. Xero Fields โ Coreloops Schema Mapping Payment Terms (Sales & Bills) PaymentTerms.Sales.Day โ sales_payment_days PaymentTerms.Sales.Type โ sales_payment_terms_type (DAYSAFTERBILLDATE, DAYSAFTERBILLMONTH, OFCURRENTMONTH, OFFOLLOWINGMONTH) PaymentTerms.Bills.Day โ purchase_payment_days PaymentTerms.Bills.Type โ purchase_payment_terms_type Tax Configuration AccountsReceivableTaxType โ sales_tax_type AccountsPayableTaxType โ purchase_tax_type TaxNumber โ tax_number Tracking Categories SalesTrackingCategories[].TrackingCategoryName โ sales_tracking_category_name SalesTrackingCategories[].TrackingOptionName โ sales_tracking_option_name PurchasesTrackingCategories[].TrackingCategoryName โ purchase_tracking_category_name PurchasesTrackingCategories[].TrackingOptionName โ purchase_tracking_option_name Credit Management CreditLimit โ credit_limit (UI feature, API support pending) AccountsReceivableTax โ ar_tax_amount (read-only) AccountsPayableTax โ ap_tax_amount (read-only) Contact Classification IsSupplier โ is_supplier IsCustomer โ is_customer ContactStatus โ contact_status (ACTIVE, ARCHIVED) Unified Schema Fields sales_payment_days: integer sales_payment_terms_type: enum [days_after_invoice, days_after_month, current_month, following_month] purchase_payment_days: integer purchase_payment_terms_type: enum [days_after_invoice, days_after_month, current_month, following_month] sales_tax_type: string purchase_tax_type: string tax_number: string sales_tracking_category_name: string sales_tracking_option_name: string purchase_tracking_category_name: string purchase_tracking_option_name: string credit_limit: decimal ar_tax_amount: decimal (read-only) ap_tax_amount: decimal (read-only) is_supplier: boolean is_customer: boolean contact_status: enum [active, archived] Cross-Platform Unified Mapping payment_days: integer (maps from sales_payment_days or purchase_payment_days) payment_terms_type: enum (normalised across all platforms) early_payment_discount_days: integer (not native in Xero) early_payment_discount_percent: decimal (not native in Xero) credit_limit: decimal current_balance: decimal (read-only) account_active: boolean (maps from contact_status) How Extend Directory contact model with unified schema fields Implement Xero Contacts API integration Map Xero payment terms for both Sales and Bills separately Handle tracking categories as multi-value fields Support tax type configuration per contact Prepare for future credit limit API support from Xero Display Xero-specific fields in UI when Xero integration is active Dependencies COR-739: Parent issue Xero API authentication (OAuth 2.0) Directory contact infrastructure Acceptance Criteria Sales payment terms sync from/to Xero Bills payment terms sync from/to Xero (note: API may have limitations on update) Tax types (AR and AP) sync correctly Sales and purchase tracking categories sync bidirectionally Credit limit field prepared for future API support Contact classification (customer/supplier) handled correctly UI shows only relevant Xero fields when Xero integration is active Bidirectional sync maintains data integrity
Linear 19 days ago
Feature Request
Completed
Issue Date should default to today's date for manually created documents
Why When users manually create documents (quotes, invoices, etc.) in the system, they expect the Issue Date field to be pre-populated with today's date for efficiency and accuracy. Currently, the Issue Date field defaults to a past date rather than the current date, requiring manual adjustment and creating potential for errors. What Set the Issue Date field to automatically default to today's date (current date) when a document is created manually through the UI. How Update the document creation form to initialise the Issue Date field with the current date (new Date() or equivalent) Ensure this applies to all document types where Issue Date is a field (quotes, invoices, purchase orders, etc.) The date should still be editable if users need to change it to a different date Dependencies None Acceptance Criteria When a user creates a new document manually, the Issue Date field is pre-populated with today's date The default date reflects the current date at the time of document creation Users can still manually override the default date if needed This behaviour is consistent across all document types that have an Issue Date field Existing documents are not affected by this change
Linear 23 days ago
Feature Request
Completed
Issue Date should default to today's date for manually created documents
Why When users manually create documents (quotes, invoices, etc.) in the system, they expect the Issue Date field to be pre-populated with today's date for efficiency and accuracy. Currently, the Issue Date field defaults to a past date rather than the current date, requiring manual adjustment and creating potential for errors. What Set the Issue Date field to automatically default to today's date (current date) when a document is created manually through the UI. How Update the document creation form to initialise the Issue Date field with the current date (new Date() or equivalent) Ensure this applies to all document types where Issue Date is a field (quotes, invoices, purchase orders, etc.) The date should still be editable if users need to change it to a different date Dependencies None Acceptance Criteria When a user creates a new document manually, the Issue Date field is pre-populated with today's date The default date reflects the current date at the time of document creation Users can still manually override the default date if needed This behaviour is consistent across all document types that have an Issue Date field Existing documents are not affected by this change
Linear 23 days ago
Feature Request
In Progress
Show PO overbudget as red and alert user
Why Users need immediate visual feedback when a purchase order exceeds its allocated budget to prevent overspending and enable quick corrective action. Currently, overbudget POs may go unnoticed until it's too late. What Display purchase orders that exceed their budget in red throughout the platform and trigger alerts to notify users when a PO goes overbudget. How Add visual indicator (red text/background) for overbudget POs in: PO table/list views PO detail pages Documents table where PO number appears Budget utilisation modals/hovers Implement alert system that triggers when: A PO is created that exceeds budget An invoice approval causes a PO to exceed budget A PO is edited and becomes overbudget Alert should specify: PO number Budget amount Current committed/actual amount Overage amount Consider user notification preferences for alert delivery Dependencies PO budget allocation system PO utilisation tracking (committed vs actual) Notification system (alerts) Access to all views where POs are displayed Acceptance Criteria [ ] Overbudget POs display in red in PO table [ ] Overbudget POs display in red in PO detail view [ ] Overbudget POs display in red in documents table PO column [ ] Alert triggers when PO is created overbudget [ ] Alert triggers when invoice approval causes PO to exceed budget [ ] Alert triggers when PO edit causes overbudget status [ ] Alert includes PO number, budget, current amount, and overage [ ] Visual indicator is consistent across all views [ ] Alert respects user notification preferences [ ] Users can quickly identify overbudget POs at a glance
Linear 23 days ago
Feature Request
In Progress
Show PO overbudget as red and alert user
Why Users need immediate visual feedback when a purchase order exceeds its allocated budget to prevent overspending and enable quick corrective action. Currently, overbudget POs may go unnoticed until it's too late. What Display purchase orders that exceed their budget in red throughout the platform and trigger alerts to notify users when a PO goes overbudget. How Add visual indicator (red text/background) for overbudget POs in: PO table/list views PO detail pages Documents table where PO number appears Budget utilisation modals/hovers Implement alert system that triggers when: A PO is created that exceeds budget An invoice approval causes a PO to exceed budget A PO is edited and becomes overbudget Alert should specify: PO number Budget amount Current committed/actual amount Overage amount Consider user notification preferences for alert delivery Dependencies PO budget allocation system PO utilisation tracking (committed vs actual) Notification system (alerts) Access to all views where POs are displayed Acceptance Criteria [ ] Overbudget POs display in red in PO table [ ] Overbudget POs display in red in PO detail view [ ] Overbudget POs display in red in documents table PO column [ ] Alert triggers when PO is created overbudget [ ] Alert triggers when invoice approval causes PO to exceed budget [ ] Alert triggers when PO edit causes overbudget status [ ] Alert includes PO number, budget, current amount, and overage [ ] Visual indicator is consistent across all views [ ] Alert respects user notification preferences [ ] Users can quickly identify overbudget POs at a glance
Linear 23 days ago
Feature Request
In Progress
Duplicate Document Detection
Why: To prevent data redundancy and double processing (Inflated costs). What: Identify and flag duplicate document uploads based on file hash and extracted data. Supplier Document ID Subtotal No of Line items Gross Total Add a filter do duplicate docs Acceptance Criteria: Unique file hash generated for each document. Duplicate alerts are shown to the user during upload. Option to โView Existing Documentโ when a duplicate is detected. Edge Cases: Same document with minor edits or re-scans. Files renamed but identical in content. User orders 40 bricks. Vendor delivers the first 20, then delivers the second 20. System shouldnโt mark this as a duplicate as while the DN will be identical, itโs not a duplicate
Linear 3 months ago
Feature Request
In Progress
Duplicate Document Detection
Why: To prevent data redundancy and double processing (Inflated costs). What: Identify and flag duplicate document uploads based on file hash and extracted data. Supplier Document ID Subtotal No of Line items Gross Total Add a filter do duplicate docs Acceptance Criteria: Unique file hash generated for each document. Duplicate alerts are shown to the user during upload. Option to โView Existing Documentโ when a duplicate is detected. Edge Cases: Same document with minor edits or re-scans. Files renamed but identical in content. User orders 40 bricks. Vendor delivers the first 20, then delivers the second 20. System shouldnโt mark this as a duplicate as while the DN will be identical, itโs not a duplicate
Linear 3 months ago
Feature Request
Completed
toast notification when moving timesheet line item into new project not showing
Why? Users need to be made aware when changes have been successful in the system, including (but not limited to) the reassignment of a timesheet line item from one project to another. What? When a user clicks into a timesheet for a contact and sees the timesheet line items. If they click the project tag and change the project (e.g. from Project A โ Project B ) it should show a toast notification in the bottom left showing that the assignment to the new project was successful.
Linear 4 months ago
Feature Request
Completed
toast notification when moving timesheet line item into new project not showing
Why? Users need to be made aware when changes have been successful in the system, including (but not limited to) the reassignment of a timesheet line item from one project to another. What? When a user clicks into a timesheet for a contact and sees the timesheet line items. If they click the project tag and change the project (e.g. from Project A โ Project B ) it should show a toast notification in the bottom left showing that the assignment to the new project was successful.
Linear 4 months ago
Feature Request
[UX] Match external invoices to timesheets
Why Companies have different ways that they process the invoices they get from their self-employed subcontractors. Currently, A+C receives an invoice from each subcontractor, which they must match with the timesheet invoice generated in the system. They have tried to replace this flow with the Whatsapp approval but theyโve found it hard to get all workers to respond in time. The workers still send invoices and they do that quite quickly after work is done on a Saturday. Theyโve suggested we create a workflow where they can match an invoice with the value generated from the timesheets (imported in from Fareclock) Control engineering also have a similar flow where they compare timesheets from site to timesheets signed off by site managers. A+C have said they are willing to send a new prescribed format for the invoice to their workers. What This is my suggestion for a way to incorporate this. User can forward the timesheet invoices to Coreloops. They select timesheet invoice from the document type dropdown in review docs. This can also be picked up by the AI. Once they select the timesheet invoice. New fields show up for them to select a week and contact for this timesheet. Once they approve this timesheet invoice it will show up in the timesheet row* for that contact in the timesheets page. In a new column called invoiced amount. We can flag if this amount differs from the amount generated in timesheets. if so, the user can update the timesheet amount in the system. Open to more suggestions on how to do this for A+C effectively.
Linear About 1 year ago
Feature Request
[UX] Match external invoices to timesheets
Why Companies have different ways that they process the invoices they get from their self-employed subcontractors. Currently, A+C receives an invoice from each subcontractor, which they must match with the timesheet invoice generated in the system. They have tried to replace this flow with the Whatsapp approval but theyโve found it hard to get all workers to respond in time. The workers still send invoices and they do that quite quickly after work is done on a Saturday. Theyโve suggested we create a workflow where they can match an invoice with the value generated from the timesheets (imported in from Fareclock) Control engineering also have a similar flow where they compare timesheets from site to timesheets signed off by site managers. A+C have said they are willing to send a new prescribed format for the invoice to their workers. What This is my suggestion for a way to incorporate this. User can forward the timesheet invoices to Coreloops. They select timesheet invoice from the document type dropdown in review docs. This can also be picked up by the AI. Once they select the timesheet invoice. New fields show up for them to select a week and contact for this timesheet. Once they approve this timesheet invoice it will show up in the timesheet row* for that contact in the timesheets page. In a new column called invoiced amount. We can flag if this amount differs from the amount generated in timesheets. if so, the user can update the timesheet amount in the system. Open to more suggestions on how to do this for A+C effectively.
Linear About 1 year ago
Feature Request