BTHAB-184: Link Invoice to Quotations/Case using custom fields #972
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR updates the linking of contributions with quotations by making use of custom fields instead of a pivot table.
Before
No bulk actions on the Invoice view
After
Bulk actions on the Invoice view
Shows invoice is displayed when linked to quotation using Opportunity detail custom group
Single Quotation
Bulk Quotation
Technical Details
In the past, contributions were associated with quotations using a pivot table called
civicase_sales_order_contribution
. However, in this pull request, we have implemented a new approach by utilizing custom fields calledCase_Opportunity
andQuotation
on the contribution. This allows for more flexibility in linking contributions to either a case or a quotation as needed.The new custom fields belong to a new custom group
CustomGroup_Opportunity_Details
that extends the Contribution entity and will be added on the extension install or cache clear if it doesn't already exist.Also, we have recreated the Quotation invoice screen so it is generated from the Contribution entity instead of
CaseSalesOrderContribution
entityComment
CaseSalesOrderContribution
entity will be removed in a subsequent PR.