mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-18 13:05:42 +00:00
Build Order Updates (#4855)
* Add new BuildLine model - Represents an instance of a BOM item against a BuildOrder * Create BuildLine instances automatically When a new Build is created, automatically generate new BuildLine items * Improve logic for handling exchange rate backends * logic fixes * Adds API endpoints Add list and detail API endpoints for new BuildLine model * update users/models.py - Add new model to roles definition * bulk-create on auto_allocate Save database hits by performing a bulk-create * Add skeleton data migration * Create BuildLines for existing orders * Working on building out BuildLine table * Adds link for "BuildLine" to "BuildItem" - A "BuildItem" will now be tracked against a BuildLine - Not tracked directly against a build - Not tracked directly against a BomItem - Add schema migration - Add data migration to update links * Adjust migration 0045 - bom_item and build fields are about to be removed - Set them to "nullable" so the data doesn't get removed * Remove old fields from BuildItem model - build fk - bom_item fk - A lot of other required changes too * Update BuildLine.bom_item field - Delete the BuildLine if the BomItem is removed - This is closer to current behaviour * Cleanup for Build model - tracked_bom_items -> tracked_line_items - untracked_bom_items -> tracked_bom_items - remove build.can_complete - move bom_item specific methods to the BuildLine model - Cleanup / consolidation * front-end work - Update javascript - Cleanup HTML templates * Add serializer annotation and filtering - Annotate 'allocated' quantity - Filter by allocated / trackable / optional / consumable * Make table sortable * Add buttons * Add callback for building new stock * Fix Part annotation * Adds callback to order parts * Allocation works again * template cleanup * Fix allocate / unallocate actions - Also turns out "unallocate" is not a word.. * auto-allocate works again * Fix call to build.is_over_allocated * Refactoring updates * Bump API version * Cleaner implementation of allocation sub-table * Fix rendering in build output table * Improvements to StockItem list API - Refactor very old code - Add option to include test results to queryset * Add TODO for later me * Fix for serializers.py * Working on cleaner implementation of build output table * Add function to determine if a single output is fully allocated * Updates to build.js - Button callbacks - Table rendering * Revert previous changes to build.serializers.py * Fix for forms.js * Rearrange code in build.js * Rebuild "allocated lines" for output table * Fix allocation calculation * Show or hide column for tracked parts * Improve debug messages * Refactor "loadBuildLineTable" - Allow it to also be used as output sub-table * Refactor "completed tests" column * Remove old javascript - Cleans up a *lot* of crusty old code * Annotate the available stock quantity to BuildLine serializer - Similar pattern to BomItem serializer - Needs refactoring in the future * Update available column * Fix build allocation table - Bug fix - Make pretty * linting fixes * Allow sorting by available stock * Tweak for "required tests" column * Bug fix for completing a build output * Fix for consumable stock * Fix for trim_allocated_stock * Fix for creating new build * Migration fix - Ensure initial django_q migrations are applied - Why on earth is this failing now? * Catch exception * Update for exception handling * Update migrations - Ensure inventreesetting is added * Catch all exceptions when getting default currency code * Bug fix for currency exchange rates update * Working on unit tests * Unit test fixes * More work on unit tests * Use bulk_create in unit test * Update required quantity when a BuildOrder is saved * Tweak overage display in BOM table * Fix icon in BOM table * Fix spelling error * More unit test fixes * Build reports - Add line_items - Update docs - Cleanup * Reimplement is_partially_allocated method * Update docs about overage * Unit testing for data migration * Add "required_for_build_orders" annotation - Makes API query *much* faster now - remove old "required_parts_to_complete_build" method - Cleanup part API filter code * Adjust order of fixture loading * Fix unit test * Prevent "schedule_pricing_update" in unit tests - Should cut down on DB hits significantly * Unit test updates * Improvements for unit test - Don't hard-code pk values - postgresql no likey * Better unit test
This commit is contained in:
@ -972,7 +972,7 @@ function loadBomTable(table, options={}) {
|
||||
}
|
||||
|
||||
if (row.overage) {
|
||||
text += `<small> (${row.overage}) </small>`;
|
||||
text += `<small> (+${row.overage})</small>`;
|
||||
}
|
||||
|
||||
return text;
|
||||
@ -1161,6 +1161,8 @@ function loadBomTable(table, options={}) {
|
||||
}
|
||||
}
|
||||
|
||||
text = renderLink(text, url);
|
||||
|
||||
if (row.on_order && row.on_order > 0) {
|
||||
text += makeIconBadge(
|
||||
'fa-shopping-cart',
|
||||
@ -1168,7 +1170,7 @@ function loadBomTable(table, options={}) {
|
||||
);
|
||||
}
|
||||
|
||||
return renderLink(text, url);
|
||||
return text;
|
||||
}
|
||||
});
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1727,12 +1727,12 @@ function loadSalesOrderLineItemTable(table, options={}) {
|
||||
options.params = options.params || {};
|
||||
|
||||
if (!options.order) {
|
||||
console.error('function called without order ID');
|
||||
console.error('loadSalesOrderLineItemTable called without order ID');
|
||||
return;
|
||||
}
|
||||
|
||||
if (!options.status) {
|
||||
console.error('function called without order status');
|
||||
console.error('loadSalesOrderLineItemTable called without order status');
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -480,8 +480,8 @@ function getBuildTableFilters() {
|
||||
}
|
||||
|
||||
|
||||
// Return a dictionary of filters for the "build item" table
|
||||
function getBuildItemTableFilters() {
|
||||
// Return a dictionary of filters for the "build lines" table
|
||||
function getBuildLineTableFilters() {
|
||||
return {
|
||||
allocated: {
|
||||
type: 'bool',
|
||||
@ -491,6 +491,10 @@ function getBuildItemTableFilters() {
|
||||
type: 'bool',
|
||||
title: '{% trans "Available" %}',
|
||||
},
|
||||
tracked: {
|
||||
type: 'bool',
|
||||
title: '{% trans "Tracked" %}',
|
||||
},
|
||||
consumable: {
|
||||
type: 'bool',
|
||||
title: '{% trans "Consumable" %}',
|
||||
@ -771,8 +775,8 @@ function getAvailableTableFilters(tableKey) {
|
||||
return getBOMTableFilters();
|
||||
case 'build':
|
||||
return getBuildTableFilters();
|
||||
case 'builditems':
|
||||
return getBuildItemTableFilters();
|
||||
case 'buildlines':
|
||||
return getBuildLineTableFilters();
|
||||
case 'location':
|
||||
return getStockLocationFilters();
|
||||
case 'parameters':
|
||||
|
Reference in New Issue
Block a user