From 29335fa665ae3d7b5c0d7aa5ddd6ee4282ff1d03 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 3 May 2020 09:09:17 +1000 Subject: [PATCH 1/4] Add "rejected" status code for StockItem --- InvenTree/InvenTree/status_codes.py | 4 ++++ .../migrations/0035_auto_20200502_2308.py | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 InvenTree/stock/migrations/0035_auto_20200502_2308.py diff --git a/InvenTree/InvenTree/status_codes.py b/InvenTree/InvenTree/status_codes.py index efb76b86fa..1b6d77b57d 100644 --- a/InvenTree/InvenTree/status_codes.py +++ b/InvenTree/InvenTree/status_codes.py @@ -150,6 +150,7 @@ class StockStatus(StatusCode): ATTENTION = 50 # Item requires attention DAMAGED = 55 # Item is damaged DESTROYED = 60 # Item is destroyed + REJECTED = 65 # Item is rejected LOST = 70 # Item has been lost RETURNED = 85 # Item has been returned from a customer @@ -167,6 +168,7 @@ class StockStatus(StatusCode): DAMAGED: _("Damaged"), DESTROYED: _("Destroyed"), LOST: _("Lost"), + REJECTED: _("Rejected"), RETURNED: _("Returned"), SHIPPED: _('Shipped'), ASSIGNED_TO_BUILD: _("Used for Build"), @@ -178,6 +180,7 @@ class StockStatus(StatusCode): ATTENTION: 'yellow', DAMAGED: 'red', DESTROYED: 'red', + REJECTED: 'red', SHIPPED: 'green', ASSIGNED_TO_BUILD: 'blue', ASSIGNED_TO_OTHER_ITEM: 'blue', @@ -195,6 +198,7 @@ class StockStatus(StatusCode): UNAVAILABLE_CODES = [ DESTROYED, LOST, + REJECTED, SHIPPED, ASSIGNED_TO_BUILD, ASSIGNED_TO_OTHER_ITEM, diff --git a/InvenTree/stock/migrations/0035_auto_20200502_2308.py b/InvenTree/stock/migrations/0035_auto_20200502_2308.py new file mode 100644 index 0000000000..8cf02481e5 --- /dev/null +++ b/InvenTree/stock/migrations/0035_auto_20200502_2308.py @@ -0,0 +1,19 @@ +# Generated by Django 3.0.5 on 2020-05-02 23:08 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0034_auto_20200426_0602'), + ] + + operations = [ + migrations.AlterField( + model_name='stockitem', + name='status', + field=models.PositiveIntegerField(choices=[(10, 'OK'), (50, 'Attention needed'), (55, 'Damaged'), (60, 'Destroyed'), (70, 'Lost'), (65, 'Rejected'), (85, 'Returned'), (110, 'Shipped'), (120, 'Used for Build'), (130, 'Installed in Stock Item')], default=10, validators=[django.core.validators.MinValueValidator(0)]), + ), + ] From fe87bba577fbbdb54d07881853cfeee3dcded3b8 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 3 May 2020 09:46:42 +1000 Subject: [PATCH 2/4] Link fix for purchase order table --- InvenTree/order/templates/order/purchase_order_detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html index 73c794126c..eb796b2ec1 100644 --- a/InvenTree/order/templates/order/purchase_order_detail.html +++ b/InvenTree/order/templates/order/purchase_order_detail.html @@ -145,7 +145,7 @@ $("#po-table").inventreeTable({ title: '{% trans "Part" %}', formatter: function(value, row, index, field) { if (row.part) { - return imageHoverIcon(row.part_detail.thumbnail) + renderLink(row.part_detail.full_name, `/part/${value}/`); + return imageHoverIcon(row.part_detail.thumbnail) + renderLink(row.part_detail.full_name, `/part/${row.part_detail.pk}/`); } else { return '-'; } From 7430abc237c63b0435666131e9a3245e284ede4a Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 3 May 2020 09:50:00 +1000 Subject: [PATCH 3/4] Add ability to set stock status when receiving goods --- InvenTree/InvenTree/status_codes.py | 13 ++++++ InvenTree/order/models.py | 6 ++- .../order/templates/order/receive_parts.html | 40 +++++++++++++------ InvenTree/order/views.py | 24 ++++++++++- InvenTree/part/templatetags/status_codes.py | 5 +++ 5 files changed, 71 insertions(+), 17 deletions(-) diff --git a/InvenTree/InvenTree/status_codes.py b/InvenTree/InvenTree/status_codes.py index 1b6d77b57d..2082eac70b 100644 --- a/InvenTree/InvenTree/status_codes.py +++ b/InvenTree/InvenTree/status_codes.py @@ -54,6 +54,10 @@ class StatusCode: return codes + @classmethod + def text(cls, key): + return cls.options.get(key, None) + @classmethod def items(cls): return cls.options.items() @@ -204,6 +208,15 @@ class StockStatus(StatusCode): ASSIGNED_TO_OTHER_ITEM, ] + # The following codes are available for receiving goods + RECEIVING_CODES = [ + OK, + ATTENTION, + DAMAGED, + DESTROYED, + REJECTED + ] + class BuildStatus(StatusCode): diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 6198eb16bc..56da6c783d 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -209,7 +209,7 @@ class PurchaseOrder(Order): return self.pending_line_items().count() == 0 @transaction.atomic - def receive_line_item(self, line, location, quantity, user): + def receive_line_item(self, line, location, quantity, user, status=StockStatus.OK): """ Receive a line item (or partial line item) against this PO """ @@ -230,7 +230,9 @@ class PurchaseOrder(Order): supplier_part=line.part, location=location, quantity=quantity, - purchase_order=self) + purchase_order=self, + status=status + ) stock.save() diff --git a/InvenTree/order/templates/order/receive_parts.html b/InvenTree/order/templates/order/receive_parts.html index f71959cdc0..082fe083b9 100644 --- a/InvenTree/order/templates/order/receive_parts.html +++ b/InvenTree/order/templates/order/receive_parts.html @@ -1,23 +1,28 @@ {% extends "modal_form.html" %} +{% load i18n %} +{% load inventree_extras %} +{% load status_codes %} {% block form %} -Receive outstanding parts for {{ order }} - {{ order.description }} +{% trans "Receive outstanding parts for" %} {{ order }} - {{ order.description }}
{% csrf_token %} {% load crispy_forms_tags %} - -

Select parts to receive against this order.

+ +

{% trans "Select parts to receive against this order" %}

- - - - - + + + + + + + {% for line in lines %} @@ -28,20 +33,29 @@ Receive outstanding parts for {{ order }} - {{ order.description }} {% else %} - + {% endif %} - - + + + diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py index 2459f83abf..02132d34cc 100644 --- a/InvenTree/order/views.py +++ b/InvenTree/order/views.py @@ -29,7 +29,7 @@ from . import forms as order_forms from InvenTree.views import AjaxView, AjaxCreateView, AjaxUpdateView, AjaxDeleteView from InvenTree.helpers import DownloadFile, str2bool -from InvenTree.status_codes import PurchaseOrderStatus +from InvenTree.status_codes import PurchaseOrderStatus, StockStatus logger = logging.getLogger(__name__) @@ -669,6 +669,20 @@ class PurchaseOrderReceive(AjaxUpdateView): except (PurchaseOrderLineItem.DoesNotExist, ValueError): continue + # Check that the StockStatus was set + status_key = 'status-{pk}'.format(pk=pk) + status = request.POST.get(status_key, StockStatus.OK) + + try: + status = int(status) + except ValueError: + status = StockStatus.OK + + if status in StockStatus.RECEIVING_CODES: + line.status_code = status + else: + line.status_code = StockStatus.OK + # Check that line matches the order if not line.order == self.order: # TODO - Display a non-field error? @@ -725,7 +739,13 @@ class PurchaseOrderReceive(AjaxUpdateView): if not line.part: continue - self.order.receive_line_item(line, self.destination, line.receive_quantity, self.request.user) + self.order.receive_line_item( + line, + self.destination, + line.receive_quantity, + self.request.user, + status=line.status_code, + ) class OrderParts(AjaxView): diff --git a/InvenTree/part/templatetags/status_codes.py b/InvenTree/part/templatetags/status_codes.py index 2d4dc77113..ea334970c2 100644 --- a/InvenTree/part/templatetags/status_codes.py +++ b/InvenTree/part/templatetags/status_codes.py @@ -28,6 +28,11 @@ def stock_status_label(key, *args, **kwargs): return mark_safe(StockStatus.render(key, large=kwargs.get('large', False))) +@register.simple_tag +def stock_status_text(key, *args, **kwargs): + return mark_safe(StockStatus.text(key)) + + @register.simple_tag def build_status_label(key, *args, **kwargs): """ Render a Build status label """ From 54c903f63756d55e587fbf9ce58308e47c144656 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 3 May 2020 09:51:59 +1000 Subject: [PATCH 4/4] translation updates --- InvenTree/locale/de/LC_MESSAGES/django.po | 200 ++++++++++++++-------- InvenTree/locale/en/LC_MESSAGES/django.po | 190 ++++++++++++-------- InvenTree/locale/es/LC_MESSAGES/django.po | 190 ++++++++++++-------- 3 files changed, 376 insertions(+), 204 deletions(-) diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index f39f917874..fc9e673b1e 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-02 12:11+0000\n" +"POT-Creation-Date: 2020-05-02 23:51+0000\n" "PO-Revision-Date: 2020-02-02 08:07+0100\n" "Last-Translator: Christian Schlüter \n" "Language-Team: C \n" @@ -97,66 +97,70 @@ msgstr "Französisch" msgid "Polish" msgstr "Polnisch" -#: InvenTree/status_codes.py:90 InvenTree/status_codes.py:131 -#: InvenTree/status_codes.py:213 +#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 +#: InvenTree/status_codes.py:230 msgid "Pending" msgstr "Ausstehend" -#: InvenTree/status_codes.py:91 +#: InvenTree/status_codes.py:95 msgid "Placed" msgstr "Platziert" -#: InvenTree/status_codes.py:92 InvenTree/status_codes.py:216 +#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:233 msgid "Complete" msgstr "Fertig" -#: InvenTree/status_codes.py:93 InvenTree/status_codes.py:133 -#: InvenTree/status_codes.py:215 +#: InvenTree/status_codes.py:97 InvenTree/status_codes.py:137 +#: InvenTree/status_codes.py:232 msgid "Cancelled" msgstr "Storniert" -#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:134 -#: InvenTree/status_codes.py:169 +#: InvenTree/status_codes.py:98 InvenTree/status_codes.py:138 +#: InvenTree/status_codes.py:174 msgid "Lost" msgstr "Verloren" -#: InvenTree/status_codes.py:95 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:139 +#: InvenTree/status_codes.py:176 msgid "Returned" msgstr "Zurückgegeben" -#: InvenTree/status_codes.py:132 InvenTree/status_codes.py:171 +#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:177 #: order/templates/order/sales_order_base.html:98 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:165 +#: InvenTree/status_codes.py:170 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:166 +#: InvenTree/status_codes.py:171 msgid "Attention needed" msgstr "erfordert Eingriff" -#: InvenTree/status_codes.py:167 +#: InvenTree/status_codes.py:172 msgid "Damaged" msgstr "Beschädigt" -#: InvenTree/status_codes.py:168 +#: InvenTree/status_codes.py:173 msgid "Destroyed" msgstr "Zerstört" -#: InvenTree/status_codes.py:172 +#: InvenTree/status_codes.py:175 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:178 msgid "Used for Build" msgstr "" -#: InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:179 #, fuzzy #| msgid "Edit Stock Item" msgid "Installed in Stock Item" msgstr "Lagerobjekt bearbeiten" -#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 +#: InvenTree/status_codes.py:231 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 #: part/templates/part/tabs.html:21 templates/js/build.html:120 msgid "Allocated" @@ -226,13 +230,14 @@ msgstr "" #: build/models.py:74 build/templates/build/allocate.html:320 #: build/templates/build/auto_allocate.html:18 #: build/templates/build/build_base.html:70 -#: build/templates/build/detail.html:22 order/models.py:462 +#: build/templates/build/detail.html:22 order/models.py:464 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 +#: order/templates/order/receive_parts.html:19 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/js/bom.html:135 #: templates/js/build.html:41 templates/js/company.html:109 -#: templates/js/part.html:111 +#: templates/js/part.html:111 templates/js/stock.html:206 msgid "Part" msgstr "Teil" @@ -311,7 +316,7 @@ msgstr "Link zu einer externen URL" #: order/templates/order/purchase_order_detail.html:200 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: stock/models.py:439 stock/templates/stock/tabs.html:17 -#: templates/js/bom.html:229 +#: templates/js/bom.html:229 templates/js/stock.html:290 msgid "Notes" msgstr "Notizen" @@ -330,13 +335,13 @@ msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" "zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: build/models.py:460 order/models.py:546 +#: build/models.py:460 order/models.py:548 #, fuzzy #| msgid "Stock Item to allocate to build" msgid "StockItem is over-allocated" msgstr "Lagerobjekt dem Bau zuweisen" -#: build/models.py:463 order/models.py:549 +#: build/models.py:463 order/models.py:551 #, fuzzy #| msgid "Quantity must be greater than zero" msgid "Allocation quantity must be greater than zero" @@ -361,7 +366,7 @@ msgid "Stock quantity to allocate to build" msgstr "Lagerobjekt-Anzahl dem Bau zuweisen" #: build/templates/build/allocate.html:17 -#: company/templates/company/detail_part.html:18 order/views.py:743 +#: company/templates/company/detail_part.html:18 order/views.py:763 msgid "Order Parts" msgstr "Teile bestellen" @@ -407,14 +412,14 @@ msgstr "Seriennummer" #: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:154 #: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 -#: templates/js/build.html:52 +#: templates/js/build.html:52 templates/js/stock.html:437 msgid "Quantity" msgstr "Anzahl" #: build/templates/build/allocate.html:177 #: build/templates/build/auto_allocate.html:20 #: stock/templates/stock/item_base.html:134 -#: stock/templates/stock/stock_adjust.html:17 +#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:277 msgid "Location" msgstr "Standort" @@ -445,7 +450,8 @@ msgstr "Keine Seriennummern gefunden" #: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 #: templates/js/bom.html:157 templates/js/company.html:60 #: templates/js/order.html:157 templates/js/order.html:230 -#: templates/js/part.html:167 +#: templates/js/part.html:167 templates/js/stock.html:227 +#: templates/js/stock.html:418 msgid "Description" msgstr "Beschreibung" @@ -535,12 +541,14 @@ msgstr "Bau-Status" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 +#: order/templates/order/receive_parts.html:24 #: stock/templates/stock/item_base.html:221 templates/js/build.html:57 #: templates/js/order.html:162 templates/js/order.html:235 +#: templates/js/stock.html:264 msgid "Status" msgstr "Status" -#: build/templates/build/build_base.html:93 order/models.py:460 +#: build/templates/build/build_base.html:93 order/models.py:462 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_notes.html:10 @@ -626,7 +634,7 @@ msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." #: build/templates/build/detail.html:48 -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:161 templates/js/stock.html:272 msgid "Batch" msgstr "Los" @@ -1009,7 +1017,7 @@ msgstr "Hersteller" msgid "Supplier" msgstr "Zulieferer" -#: company/templates/company/detail.html:26 order/models.py:275 +#: company/templates/company/detail.html:26 order/models.py:277 #: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 #: templates/js/order.html:217 msgid "Customer" @@ -1275,7 +1283,7 @@ msgstr "Teile-Packaging" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 #: stock/templates/stock/location.html:12 templates/js/part.html:194 -#: templates/navbar.html:11 +#: templates/js/stock.html:235 templates/navbar.html:11 msgid "Stock" msgstr "Lagerbestand" @@ -1285,8 +1293,10 @@ msgstr "Lagerbestand" msgid "Orders" msgstr "bestellt" -#: company/templates/company/tabs.html:9 part/templates/part/category.html:83 -#: templates/navbar.html:10 templates/stats.html:8 templates/stats.html:17 +#: company/templates/company/tabs.html:9 +#: order/templates/order/receive_parts.html:14 +#: part/templates/part/category.html:83 templates/navbar.html:10 +#: templates/stats.html:8 templates/stats.html:17 msgid "Parts" msgstr "Teile" @@ -1465,70 +1475,70 @@ msgstr "Teile-Zulieferer muss dem Zulieferer des Kaufvertrags entsprechen" msgid "Lines can only be received against an order marked as 'Placed'" msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden" -#: order/models.py:281 +#: order/models.py:283 #, fuzzy #| msgid "Order reference" msgid "Customer order reference code" msgstr "Bestell-Referenz" -#: order/models.py:320 +#: order/models.py:322 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:397 +#: order/models.py:399 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:399 +#: order/models.py:401 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:401 +#: order/models.py:403 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:427 order/templates/order/order_base.html:9 +#: order/models.py:429 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 #: stock/templates/stock/item_base.html:175 templates/js/order.html:136 msgid "Purchase Order" msgstr "Kaufvertrag" -#: order/models.py:440 +#: order/models.py:442 msgid "Supplier part" msgstr "Zulieferer-Teil" -#: order/models.py:443 +#: order/models.py:445 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:537 +#: order/models.py:539 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:539 +#: order/models.py:541 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:542 +#: order/models.py:544 #, fuzzy #| msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgid "Allocation quantity cannot exceed stock quantity" msgstr "" "zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: order/models.py:552 +#: order/models.py:554 #, fuzzy #| msgid "Quantity must be 1 for item with a serial number" msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl muss für Objekte mit Seriennummer \"1\" sein" -#: order/models.py:569 +#: order/models.py:571 #, fuzzy #| msgid "Stock Item to allocate to build" msgid "Select stock item to allocate" msgstr "Lagerobjekt dem Bau zuweisen" -#: order/models.py:572 +#: order/models.py:574 #, fuzzy #| msgid "Enter a valid quantity" msgid "Enter stock allocation quantity" @@ -1572,6 +1582,7 @@ msgstr "Aufgegeben" #: order/templates/order/order_base.html:106 #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:105 msgid "Received" msgstr "Empfangen" @@ -1684,8 +1695,8 @@ msgid "Attachments" msgstr "Anhänge" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1051 -#: order/views.py:1165 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1071 +#: order/views.py:1185 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -1716,6 +1727,7 @@ msgid "No line items found" msgstr "Keine Seriennummern gefunden" #: order/templates/order/purchase_order_detail.html:162 +#: order/templates/order/receive_parts.html:20 msgid "Order Code" msgstr "Bestellnummer" @@ -1738,6 +1750,29 @@ msgstr "{n} Teile im Lager gelöscht" msgid "Receive line item" msgstr "{n} Teile im Lager gelöscht" +#: order/templates/order/receive_parts.html:8 +msgid "Receive outstanding parts for" +msgstr "" + +#: order/templates/order/receive_parts.html:15 +msgid "Select parts to receive against this order" +msgstr "" + +#: order/templates/order/receive_parts.html:21 +#: part/templates/part/part_base.html:128 templates/js/part.html:210 +msgid "On Order" +msgstr "bestellt" + +#: order/templates/order/receive_parts.html:23 +#, fuzzy +#| msgid "Received" +msgid "Receive" +msgstr "Empfangen" + +#: order/templates/order/receive_parts.html:36 +msgid "Error: Referenced part has been removed" +msgstr "" + #: order/templates/order/sales_order_base.html:15 msgid "This SalesOrder has not been fully allocated" msgstr "" @@ -1964,61 +1999,61 @@ msgstr "Anzahl empfangener Positionen" msgid "No destination set" msgstr "Kein Ziel gesetzt" -#: order/views.py:691 +#: order/views.py:705 msgid "Error converting quantity to number" msgstr "Fehler beim Konvertieren zu Zahl" -#: order/views.py:697 +#: order/views.py:711 msgid "Receive quantity less than zero" msgstr "Anzahl kleiner null empfangen" -#: order/views.py:703 +#: order/views.py:717 msgid "No lines specified" msgstr "Keine Zeilen angegeben" -#: order/views.py:1071 +#: order/views.py:1091 msgid "Invalid Purchase Order" msgstr "Ungültige Bestellung" -#: order/views.py:1079 +#: order/views.py:1099 msgid "Supplier must match for Part and Order" msgstr "Zulieferer muss zum Teil und zur Bestellung passen" -#: order/views.py:1084 +#: order/views.py:1104 msgid "Invalid SupplierPart selection" msgstr "Ungültige Wahl des Zulieferer-Teils" -#: order/views.py:1216 order/views.py:1234 +#: order/views.py:1236 order/views.py:1254 #, fuzzy #| msgid "Add Line Item" msgid "Edit Line Item" msgstr "Position hinzufügen" -#: order/views.py:1250 order/views.py:1262 +#: order/views.py:1270 order/views.py:1282 #, fuzzy #| msgid "Delete Stock Item" msgid "Delete Line Item" msgstr "Lagerobjekt löschen" -#: order/views.py:1255 order/views.py:1267 +#: order/views.py:1275 order/views.py:1287 #, fuzzy #| msgid "Deleted {n} stock items" msgid "Deleted line item" msgstr "{n} Teile im Lager gelöscht" -#: order/views.py:1276 +#: order/views.py:1296 #, fuzzy #| msgid "Allocate Stock to Build" msgid "Allocate Stock to Order" msgstr "Lagerbestand dem Bau zuweisen" -#: order/views.py:1345 +#: order/views.py:1365 #, fuzzy #| msgid "Edit Stock Location" msgid "Edit Allocation Quantity" msgstr "Lagerobjekt-Standort bearbeiten" -#: order/views.py:1360 +#: order/views.py:1380 #, fuzzy #| msgid "Receive parts to this location" msgid "Remove allocation" @@ -2275,6 +2310,7 @@ msgstr "bestellt" #: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:183 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 +#: templates/js/stock.html:407 msgid "Stock Item" msgstr "Lagerobjekt" @@ -2590,10 +2626,6 @@ msgstr "Lagerbestand dem Bau zuweisen" msgid "Allocated to Sales Orders" msgstr "Lagerbestand dem Bau zuweisen" -#: part/templates/part/part_base.html:128 templates/js/part.html:210 -msgid "On Order" -msgstr "bestellt" - #: part/templates/part/part_base.html:143 msgid "Can Build" msgstr "Herstellbar?" @@ -3563,7 +3595,7 @@ msgstr "" msgid "No purchase orders found" msgstr "Kaufvertrag" -#: templates/js/order.html:170 +#: templates/js/order.html:170 templates/js/stock.html:389 msgid "Date" msgstr "" @@ -3577,7 +3609,7 @@ msgstr "Keine Seriennummern gefunden" msgid "Shipment Date" msgstr "" -#: templates/js/part.html:104 +#: templates/js/part.html:104 templates/js/stock.html:196 #, fuzzy #| msgid "Select part" msgid "Select" @@ -3619,6 +3651,38 @@ msgstr "Bau" msgid "No parts found" msgstr "Keine Seriennummern gefunden" +#: templates/js/stock.html:66 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/stock.html:251 +#, fuzzy +#| msgid "Stock Item to allocate to build" +msgid "StockItem has been allocated" +msgstr "Lagerobjekt dem Bau zuweisen" + +#: templates/js/stock.html:256 +#, fuzzy +#| msgid "Stock Item Details" +msgid "StockItem is lost" +msgstr "Lagerbestands-Details" + +#: templates/js/stock.html:284 +#, fuzzy +#| msgid "Edit Stock Location" +msgid "No stock location set" +msgstr "Lagerobjekt-Standort bearbeiten" + +#: templates/js/stock.html:446 +msgid "User" +msgstr "" + +#: templates/js/stock.html:455 +#, fuzzy +#| msgid "Show pricing information" +msgid "No user information" +msgstr "Kosteninformationen ansehen" + #: templates/navbar.html:14 msgid "Buy" msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 85ebc1e513..a8c2b614aa 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-02 12:11+0000\n" +"POT-Creation-Date: 2020-05-02 23:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -94,64 +94,68 @@ msgstr "" msgid "Polish" msgstr "" -#: InvenTree/status_codes.py:90 InvenTree/status_codes.py:131 -#: InvenTree/status_codes.py:213 +#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 +#: InvenTree/status_codes.py:230 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:91 +#: InvenTree/status_codes.py:95 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:92 InvenTree/status_codes.py:216 +#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:233 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:93 InvenTree/status_codes.py:133 -#: InvenTree/status_codes.py:215 +#: InvenTree/status_codes.py:97 InvenTree/status_codes.py:137 +#: InvenTree/status_codes.py:232 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:134 -#: InvenTree/status_codes.py:169 +#: InvenTree/status_codes.py:98 InvenTree/status_codes.py:138 +#: InvenTree/status_codes.py:174 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:95 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:139 +#: InvenTree/status_codes.py:176 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:132 InvenTree/status_codes.py:171 +#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:177 #: order/templates/order/sales_order_base.html:98 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:165 +#: InvenTree/status_codes.py:170 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:166 +#: InvenTree/status_codes.py:171 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:167 +#: InvenTree/status_codes.py:172 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:168 +#: InvenTree/status_codes.py:173 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:172 +#: InvenTree/status_codes.py:175 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:178 msgid "Used for Build" msgstr "" -#: InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:179 msgid "Installed in Stock Item" msgstr "" -#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 +#: InvenTree/status_codes.py:231 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 #: part/templates/part/tabs.html:21 templates/js/build.html:120 msgid "Allocated" @@ -217,13 +221,14 @@ msgstr "" #: build/models.py:74 build/templates/build/allocate.html:320 #: build/templates/build/auto_allocate.html:18 #: build/templates/build/build_base.html:70 -#: build/templates/build/detail.html:22 order/models.py:462 +#: build/templates/build/detail.html:22 order/models.py:464 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 +#: order/templates/order/receive_parts.html:19 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/js/bom.html:135 #: templates/js/build.html:41 templates/js/company.html:109 -#: templates/js/part.html:111 +#: templates/js/part.html:111 templates/js/stock.html:206 msgid "Part" msgstr "" @@ -290,7 +295,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:200 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: stock/models.py:439 stock/templates/stock/tabs.html:17 -#: templates/js/bom.html:229 +#: templates/js/bom.html:229 templates/js/stock.html:290 msgid "Notes" msgstr "" @@ -308,11 +313,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:460 order/models.py:546 +#: build/models.py:460 order/models.py:548 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:463 order/models.py:549 +#: build/models.py:463 order/models.py:551 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -333,7 +338,7 @@ msgid "Stock quantity to allocate to build" msgstr "" #: build/templates/build/allocate.html:17 -#: company/templates/company/detail_part.html:18 order/views.py:743 +#: company/templates/company/detail_part.html:18 order/views.py:763 msgid "Order Parts" msgstr "" @@ -375,14 +380,14 @@ msgstr "" #: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:154 #: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 -#: templates/js/build.html:52 +#: templates/js/build.html:52 templates/js/stock.html:437 msgid "Quantity" msgstr "" #: build/templates/build/allocate.html:177 #: build/templates/build/auto_allocate.html:20 #: stock/templates/stock/item_base.html:134 -#: stock/templates/stock/stock_adjust.html:17 +#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:277 msgid "Location" msgstr "" @@ -407,7 +412,8 @@ msgstr "" #: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 #: templates/js/bom.html:157 templates/js/company.html:60 #: templates/js/order.html:157 templates/js/order.html:230 -#: templates/js/part.html:167 +#: templates/js/part.html:167 templates/js/stock.html:227 +#: templates/js/stock.html:418 msgid "Description" msgstr "" @@ -479,12 +485,14 @@ msgstr "" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 +#: order/templates/order/receive_parts.html:24 #: stock/templates/stock/item_base.html:221 templates/js/build.html:57 #: templates/js/order.html:162 templates/js/order.html:235 +#: templates/js/stock.html:264 msgid "Status" msgstr "" -#: build/templates/build/build_base.html:93 order/models.py:460 +#: build/templates/build/build_base.html:93 order/models.py:462 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_notes.html:10 @@ -557,7 +565,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:48 -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:161 templates/js/stock.html:272 msgid "Batch" msgstr "" @@ -896,7 +904,7 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/templates/company/detail.html:26 order/models.py:275 +#: company/templates/company/detail.html:26 order/models.py:277 #: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 #: templates/js/order.html:217 msgid "Customer" @@ -1107,7 +1115,7 @@ msgstr "" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 #: stock/templates/stock/location.html:12 templates/js/part.html:194 -#: templates/navbar.html:11 +#: templates/js/stock.html:235 templates/navbar.html:11 msgid "Stock" msgstr "" @@ -1115,8 +1123,10 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/tabs.html:9 part/templates/part/category.html:83 -#: templates/navbar.html:10 templates/stats.html:8 templates/stats.html:17 +#: company/templates/company/tabs.html:9 +#: order/templates/order/receive_parts.html:14 +#: part/templates/part/category.html:83 templates/navbar.html:10 +#: templates/stats.html:8 templates/stats.html:17 msgid "Parts" msgstr "" @@ -1259,61 +1269,61 @@ msgstr "" msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:281 +#: order/models.py:283 msgid "Customer order reference code" msgstr "" -#: order/models.py:320 +#: order/models.py:322 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:397 +#: order/models.py:399 msgid "Item quantity" msgstr "" -#: order/models.py:399 +#: order/models.py:401 msgid "Line item reference" msgstr "" -#: order/models.py:401 +#: order/models.py:403 msgid "Line item notes" msgstr "" -#: order/models.py:427 order/templates/order/order_base.html:9 +#: order/models.py:429 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 #: stock/templates/stock/item_base.html:175 templates/js/order.html:136 msgid "Purchase Order" msgstr "" -#: order/models.py:440 +#: order/models.py:442 msgid "Supplier part" msgstr "" -#: order/models.py:443 +#: order/models.py:445 msgid "Number of items received" msgstr "" -#: order/models.py:537 +#: order/models.py:539 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:539 +#: order/models.py:541 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:542 +#: order/models.py:544 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:552 +#: order/models.py:554 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:569 +#: order/models.py:571 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:572 +#: order/models.py:574 msgid "Enter stock allocation quantity" msgstr "" @@ -1346,6 +1356,7 @@ msgstr "" #: order/templates/order/order_base.html:106 #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:105 msgid "Received" msgstr "" @@ -1444,8 +1455,8 @@ msgid "Attachments" msgstr "" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1051 -#: order/views.py:1165 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1071 +#: order/views.py:1185 msgid "Add Line Item" msgstr "" @@ -1468,6 +1479,7 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:162 +#: order/templates/order/receive_parts.html:20 msgid "Order Code" msgstr "" @@ -1484,6 +1496,27 @@ msgstr "" msgid "Receive line item" msgstr "" +#: order/templates/order/receive_parts.html:8 +msgid "Receive outstanding parts for" +msgstr "" + +#: order/templates/order/receive_parts.html:15 +msgid "Select parts to receive against this order" +msgstr "" + +#: order/templates/order/receive_parts.html:21 +#: part/templates/part/part_base.html:128 templates/js/part.html:210 +msgid "On Order" +msgstr "" + +#: order/templates/order/receive_parts.html:23 +msgid "Receive" +msgstr "" + +#: order/templates/order/receive_parts.html:36 +msgid "Error: Referenced part has been removed" +msgstr "" + #: order/templates/order/sales_order_base.html:15 msgid "This SalesOrder has not been fully allocated" msgstr "" @@ -1655,51 +1688,51 @@ msgstr "" msgid "No destination set" msgstr "" -#: order/views.py:691 +#: order/views.py:705 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:697 +#: order/views.py:711 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:703 +#: order/views.py:717 msgid "No lines specified" msgstr "" -#: order/views.py:1071 +#: order/views.py:1091 msgid "Invalid Purchase Order" msgstr "" -#: order/views.py:1079 +#: order/views.py:1099 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1084 +#: order/views.py:1104 msgid "Invalid SupplierPart selection" msgstr "" -#: order/views.py:1216 order/views.py:1234 +#: order/views.py:1236 order/views.py:1254 msgid "Edit Line Item" msgstr "" -#: order/views.py:1250 order/views.py:1262 +#: order/views.py:1270 order/views.py:1282 msgid "Delete Line Item" msgstr "" -#: order/views.py:1255 order/views.py:1267 +#: order/views.py:1275 order/views.py:1287 msgid "Deleted line item" msgstr "" -#: order/views.py:1276 +#: order/views.py:1296 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1345 +#: order/views.py:1365 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1360 +#: order/views.py:1380 msgid "Remove allocation" msgstr "" @@ -1946,6 +1979,7 @@ msgstr "" #: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:183 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 +#: templates/js/stock.html:407 msgid "Stock Item" msgstr "" @@ -2225,10 +2259,6 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:128 templates/js/part.html:210 -msgid "On Order" -msgstr "" - #: part/templates/part/part_base.html:143 msgid "Can Build" msgstr "" @@ -3038,7 +3068,7 @@ msgstr "" msgid "No purchase orders found" msgstr "" -#: templates/js/order.html:170 +#: templates/js/order.html:170 templates/js/stock.html:389 msgid "Date" msgstr "" @@ -3050,7 +3080,7 @@ msgstr "" msgid "Shipment Date" msgstr "" -#: templates/js/part.html:104 +#: templates/js/part.html:104 templates/js/stock.html:196 msgid "Select" msgstr "" @@ -3078,6 +3108,30 @@ msgstr "" msgid "No parts found" msgstr "" +#: templates/js/stock.html:66 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/stock.html:251 +msgid "StockItem has been allocated" +msgstr "" + +#: templates/js/stock.html:256 +msgid "StockItem is lost" +msgstr "" + +#: templates/js/stock.html:284 +msgid "No stock location set" +msgstr "" + +#: templates/js/stock.html:446 +msgid "User" +msgstr "" + +#: templates/js/stock.html:455 +msgid "No user information" +msgstr "" + #: templates/navbar.html:14 msgid "Buy" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 85ebc1e513..a8c2b614aa 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-02 12:11+0000\n" +"POT-Creation-Date: 2020-05-02 23:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -94,64 +94,68 @@ msgstr "" msgid "Polish" msgstr "" -#: InvenTree/status_codes.py:90 InvenTree/status_codes.py:131 -#: InvenTree/status_codes.py:213 +#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 +#: InvenTree/status_codes.py:230 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:91 +#: InvenTree/status_codes.py:95 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:92 InvenTree/status_codes.py:216 +#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:233 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:93 InvenTree/status_codes.py:133 -#: InvenTree/status_codes.py:215 +#: InvenTree/status_codes.py:97 InvenTree/status_codes.py:137 +#: InvenTree/status_codes.py:232 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:134 -#: InvenTree/status_codes.py:169 +#: InvenTree/status_codes.py:98 InvenTree/status_codes.py:138 +#: InvenTree/status_codes.py:174 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:95 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:139 +#: InvenTree/status_codes.py:176 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:132 InvenTree/status_codes.py:171 +#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:177 #: order/templates/order/sales_order_base.html:98 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:165 +#: InvenTree/status_codes.py:170 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:166 +#: InvenTree/status_codes.py:171 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:167 +#: InvenTree/status_codes.py:172 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:168 +#: InvenTree/status_codes.py:173 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:172 +#: InvenTree/status_codes.py:175 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:178 msgid "Used for Build" msgstr "" -#: InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:179 msgid "Installed in Stock Item" msgstr "" -#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349 +#: InvenTree/status_codes.py:231 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 #: part/templates/part/tabs.html:21 templates/js/build.html:120 msgid "Allocated" @@ -217,13 +221,14 @@ msgstr "" #: build/models.py:74 build/templates/build/allocate.html:320 #: build/templates/build/auto_allocate.html:18 #: build/templates/build/build_base.html:70 -#: build/templates/build/detail.html:22 order/models.py:462 +#: build/templates/build/detail.html:22 order/models.py:464 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 +#: order/templates/order/receive_parts.html:19 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/js/bom.html:135 #: templates/js/build.html:41 templates/js/company.html:109 -#: templates/js/part.html:111 +#: templates/js/part.html:111 templates/js/stock.html:206 msgid "Part" msgstr "" @@ -290,7 +295,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:200 #: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 #: stock/models.py:439 stock/templates/stock/tabs.html:17 -#: templates/js/bom.html:229 +#: templates/js/bom.html:229 templates/js/stock.html:290 msgid "Notes" msgstr "" @@ -308,11 +313,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:460 order/models.py:546 +#: build/models.py:460 order/models.py:548 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:463 order/models.py:549 +#: build/models.py:463 order/models.py:551 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -333,7 +338,7 @@ msgid "Stock quantity to allocate to build" msgstr "" #: build/templates/build/allocate.html:17 -#: company/templates/company/detail_part.html:18 order/views.py:743 +#: company/templates/company/detail_part.html:18 order/views.py:763 msgid "Order Parts" msgstr "" @@ -375,14 +380,14 @@ msgstr "" #: stock/templates/stock/item_base.html:26 #: stock/templates/stock/item_base.html:154 #: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 -#: templates/js/build.html:52 +#: templates/js/build.html:52 templates/js/stock.html:437 msgid "Quantity" msgstr "" #: build/templates/build/allocate.html:177 #: build/templates/build/auto_allocate.html:20 #: stock/templates/stock/item_base.html:134 -#: stock/templates/stock/stock_adjust.html:17 +#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:277 msgid "Location" msgstr "" @@ -407,7 +412,8 @@ msgstr "" #: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 #: templates/js/bom.html:157 templates/js/company.html:60 #: templates/js/order.html:157 templates/js/order.html:230 -#: templates/js/part.html:167 +#: templates/js/part.html:167 templates/js/stock.html:227 +#: templates/js/stock.html:418 msgid "Description" msgstr "" @@ -479,12 +485,14 @@ msgstr "" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 +#: order/templates/order/receive_parts.html:24 #: stock/templates/stock/item_base.html:221 templates/js/build.html:57 #: templates/js/order.html:162 templates/js/order.html:235 +#: templates/js/stock.html:264 msgid "Status" msgstr "" -#: build/templates/build/build_base.html:93 order/models.py:460 +#: build/templates/build/build_base.html:93 order/models.py:462 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_notes.html:10 @@ -557,7 +565,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:48 -#: stock/templates/stock/item_base.html:161 +#: stock/templates/stock/item_base.html:161 templates/js/stock.html:272 msgid "Batch" msgstr "" @@ -896,7 +904,7 @@ msgstr "" msgid "Supplier" msgstr "" -#: company/templates/company/detail.html:26 order/models.py:275 +#: company/templates/company/detail.html:26 order/models.py:277 #: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 #: templates/js/order.html:217 msgid "Customer" @@ -1107,7 +1115,7 @@ msgstr "" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 #: stock/templates/stock/location.html:12 templates/js/part.html:194 -#: templates/navbar.html:11 +#: templates/js/stock.html:235 templates/navbar.html:11 msgid "Stock" msgstr "" @@ -1115,8 +1123,10 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/tabs.html:9 part/templates/part/category.html:83 -#: templates/navbar.html:10 templates/stats.html:8 templates/stats.html:17 +#: company/templates/company/tabs.html:9 +#: order/templates/order/receive_parts.html:14 +#: part/templates/part/category.html:83 templates/navbar.html:10 +#: templates/stats.html:8 templates/stats.html:17 msgid "Parts" msgstr "" @@ -1259,61 +1269,61 @@ msgstr "" msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:281 +#: order/models.py:283 msgid "Customer order reference code" msgstr "" -#: order/models.py:320 +#: order/models.py:322 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:397 +#: order/models.py:399 msgid "Item quantity" msgstr "" -#: order/models.py:399 +#: order/models.py:401 msgid "Line item reference" msgstr "" -#: order/models.py:401 +#: order/models.py:403 msgid "Line item notes" msgstr "" -#: order/models.py:427 order/templates/order/order_base.html:9 +#: order/models.py:429 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 #: stock/templates/stock/item_base.html:175 templates/js/order.html:136 msgid "Purchase Order" msgstr "" -#: order/models.py:440 +#: order/models.py:442 msgid "Supplier part" msgstr "" -#: order/models.py:443 +#: order/models.py:445 msgid "Number of items received" msgstr "" -#: order/models.py:537 +#: order/models.py:539 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:539 +#: order/models.py:541 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:542 +#: order/models.py:544 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:552 +#: order/models.py:554 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:569 +#: order/models.py:571 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:572 +#: order/models.py:574 msgid "Enter stock allocation quantity" msgstr "" @@ -1346,6 +1356,7 @@ msgstr "" #: order/templates/order/order_base.html:106 #: order/templates/order/purchase_order_detail.html:180 +#: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:105 msgid "Received" msgstr "" @@ -1444,8 +1455,8 @@ msgid "Attachments" msgstr "" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1051 -#: order/views.py:1165 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1071 +#: order/views.py:1185 msgid "Add Line Item" msgstr "" @@ -1468,6 +1479,7 @@ msgid "No line items found" msgstr "" #: order/templates/order/purchase_order_detail.html:162 +#: order/templates/order/receive_parts.html:20 msgid "Order Code" msgstr "" @@ -1484,6 +1496,27 @@ msgstr "" msgid "Receive line item" msgstr "" +#: order/templates/order/receive_parts.html:8 +msgid "Receive outstanding parts for" +msgstr "" + +#: order/templates/order/receive_parts.html:15 +msgid "Select parts to receive against this order" +msgstr "" + +#: order/templates/order/receive_parts.html:21 +#: part/templates/part/part_base.html:128 templates/js/part.html:210 +msgid "On Order" +msgstr "" + +#: order/templates/order/receive_parts.html:23 +msgid "Receive" +msgstr "" + +#: order/templates/order/receive_parts.html:36 +msgid "Error: Referenced part has been removed" +msgstr "" + #: order/templates/order/sales_order_base.html:15 msgid "This SalesOrder has not been fully allocated" msgstr "" @@ -1655,51 +1688,51 @@ msgstr "" msgid "No destination set" msgstr "" -#: order/views.py:691 +#: order/views.py:705 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:697 +#: order/views.py:711 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:703 +#: order/views.py:717 msgid "No lines specified" msgstr "" -#: order/views.py:1071 +#: order/views.py:1091 msgid "Invalid Purchase Order" msgstr "" -#: order/views.py:1079 +#: order/views.py:1099 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1084 +#: order/views.py:1104 msgid "Invalid SupplierPart selection" msgstr "" -#: order/views.py:1216 order/views.py:1234 +#: order/views.py:1236 order/views.py:1254 msgid "Edit Line Item" msgstr "" -#: order/views.py:1250 order/views.py:1262 +#: order/views.py:1270 order/views.py:1282 msgid "Delete Line Item" msgstr "" -#: order/views.py:1255 order/views.py:1267 +#: order/views.py:1275 order/views.py:1287 msgid "Deleted line item" msgstr "" -#: order/views.py:1276 +#: order/views.py:1296 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1345 +#: order/views.py:1365 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1360 +#: order/views.py:1380 msgid "Remove allocation" msgstr "" @@ -1946,6 +1979,7 @@ msgstr "" #: stock/templates/stock/item_base.html:52 #: stock/templates/stock/item_base.html:183 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 +#: templates/js/stock.html:407 msgid "Stock Item" msgstr "" @@ -2225,10 +2259,6 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:128 templates/js/part.html:210 -msgid "On Order" -msgstr "" - #: part/templates/part/part_base.html:143 msgid "Can Build" msgstr "" @@ -3038,7 +3068,7 @@ msgstr "" msgid "No purchase orders found" msgstr "" -#: templates/js/order.html:170 +#: templates/js/order.html:170 templates/js/stock.html:389 msgid "Date" msgstr "" @@ -3050,7 +3080,7 @@ msgstr "" msgid "Shipment Date" msgstr "" -#: templates/js/part.html:104 +#: templates/js/part.html:104 templates/js/stock.html:196 msgid "Select" msgstr "" @@ -3078,6 +3108,30 @@ msgstr "" msgid "No parts found" msgstr "" +#: templates/js/stock.html:66 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/stock.html:251 +msgid "StockItem has been allocated" +msgstr "" + +#: templates/js/stock.html:256 +msgid "StockItem is lost" +msgstr "" + +#: templates/js/stock.html:284 +msgid "No stock location set" +msgstr "" + +#: templates/js/stock.html:446 +msgid "User" +msgstr "" + +#: templates/js/stock.html:455 +msgid "No user information" +msgstr "" + #: templates/navbar.html:14 msgid "Buy" msgstr ""
PartOrder CodeOn OrderReceivedReceive{% trans "Part" %}{% trans "Order Code" %}{% trans "On Order" %}{% trans "Received" %}{% trans "Receive" %}{% trans "Status" %}
{{ line.part.SKU }}Referenced part has been removed{% trans "Error: Referenced part has been removed" %}{{ line.quantity }}{{ line.received }}{% decimal line.quantity %}{% decimal line.received %}
- +
+
+ +
+