mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 21:25:42 +00:00 
			
		
		
		
	merge master in
This commit is contained in:
		| @@ -181,10 +181,10 @@ | ||||
| <script type='text/javascript' src="{% i18n_static 'tables.js' %}"></script> | ||||
| <script type='text/javascript' src="{% i18n_static 'table_filters.js' %}"></script> | ||||
|  | ||||
| <script type='text/javascript' src="{% static 'fontawesome/js/solid.js' %}"></script> | ||||
| <script type='text/javascript' src="{% static 'fontawesome/js/regular.js' %}"></script> | ||||
| <script type='text/javascript' src="{% static 'fontawesome/js/brands.js' %}"></script> | ||||
| <script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.js' %}"></script> | ||||
| <script type='text/javascript' src="{% static 'fontawesome/js/solid.min.js' %}"></script> | ||||
| <script type='text/javascript' src="{% static 'fontawesome/js/regular.min.js' %}"></script> | ||||
| <script type='text/javascript' src="{% static 'fontawesome/js/brands.min.js' %}"></script> | ||||
| <script type='text/javascript' src="{% static 'fontawesome/js/fontawesome.min.js' %}"></script> | ||||
|  | ||||
| {% block js_load %} | ||||
| {% endblock %} | ||||
|   | ||||
| @@ -44,6 +44,7 @@ | ||||
|     editStockItem, | ||||
|     editStockLocation, | ||||
|     exportStock, | ||||
|     findStockItemBySerialNumber, | ||||
|     loadInstalledInTable, | ||||
|     loadStockLocationTable, | ||||
|     loadStockTable, | ||||
| @@ -394,6 +395,87 @@ function createNewStockItem(options={}) { | ||||
|     constructForm(url, options); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Launch a modal form to find a particular stock item by serial number. | ||||
|  * Arguments: | ||||
|  * - part: ID (PK) of the part in question | ||||
|  */ | ||||
|  | ||||
| function findStockItemBySerialNumber(part_id) { | ||||
|  | ||||
|     constructFormBody({}, { | ||||
|         title: '{% trans "Find Serial Number" %}', | ||||
|         fields: { | ||||
|             serial: { | ||||
|                 label: '{% trans "Serial Number" %}', | ||||
|                 help_text: '{% trans "Enter serial number" %}', | ||||
|                 placeholder: '{% trans "Enter serial number" %}', | ||||
|                 required: true, | ||||
|                 type: 'string', | ||||
|                 value: '', | ||||
|             } | ||||
|         }, | ||||
|         onSubmit: function(fields, opts) { | ||||
|  | ||||
|             var serial = getFormFieldValue('serial', fields['serial'], opts); | ||||
|          | ||||
|             serial = serial.toString().trim(); | ||||
|  | ||||
|             if (!serial) { | ||||
|                 handleFormErrors( | ||||
|                     { | ||||
|                         'serial': [ | ||||
|                             '{% trans "Enter a serial number" %}', | ||||
|                         ] | ||||
|                     }, fields, opts | ||||
|                 ); | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             inventreeGet( | ||||
|                 '{% url "api-stock-list" %}', | ||||
|                 { | ||||
|                     part_tree: part_id, | ||||
|                     serial: serial, | ||||
|                 }, | ||||
|                 { | ||||
|                     success: function(response) { | ||||
|                         if (response.length == 0) { | ||||
|                             // No results! | ||||
|                             handleFormErrors( | ||||
|                                 { | ||||
|                                     'serial': [ | ||||
|                                         '{% trans "No matching serial number" %}', | ||||
|                                     ] | ||||
|                                 }, fields, opts | ||||
|                             ); | ||||
|                         } else if (response.length > 1) { | ||||
|                             // Too many results! | ||||
|                             handleFormErrors( | ||||
|                                 { | ||||
|                                     'serial': [ | ||||
|                                         '{% trans "More than one matching result found" %}', | ||||
|                                     ] | ||||
|                                 }, fields, opts | ||||
|                             ); | ||||
|                         } else { | ||||
|                             $(opts.modal).modal('hide'); | ||||
|  | ||||
|                             // Redirect | ||||
|                             var pk = response[0].pk; | ||||
|                             location.href = `/stock/item/${pk}/`; | ||||
|                         } | ||||
|                     }, | ||||
|                     error: function(xhr) { | ||||
|                         showApiError(xhr, opts.url); | ||||
|                         $(opts.modal).modal('hide'); | ||||
|                     } | ||||
|                 } | ||||
|             ); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
|  | ||||
|  | ||||
| /* Stock API functions | ||||
|  * Requires api.js to be loaded first | ||||
|   | ||||
		Reference in New Issue
	
	Block a user