mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Merge remote-tracking branch 'inventree/master'
This commit is contained in:
commit
07de23f120
Binary file not shown.
@ -7,41 +7,41 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-12-09 11:16+0000\n"
|
||||
"POT-Creation-Date: 2020-01-05 22:23+0000\n"
|
||||
"PO-Revision-Date: 2019-12-19 17:48+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.2.4\n"
|
||||
|
||||
#: InvenTree/helpers.py:175 order/models.py:159 order/models.py:210
|
||||
#: InvenTree/helpers.py:186 order/models.py:159 order/models.py:210
|
||||
msgid "Invalid quantity provided"
|
||||
msgstr "Keine gültige Menge"
|
||||
|
||||
#: InvenTree/helpers.py:178
|
||||
#: InvenTree/helpers.py:189
|
||||
msgid "Empty serial number string"
|
||||
msgstr "Keine Seriennummer angegeben"
|
||||
|
||||
#: InvenTree/helpers.py:199 InvenTree/helpers.py:216
|
||||
#: InvenTree/helpers.py:210 InvenTree/helpers.py:227
|
||||
#, python-brace-format
|
||||
msgid "Duplicate serial: {n}"
|
||||
msgstr "Doppelte Seriennummer: {n}"
|
||||
|
||||
#: InvenTree/helpers.py:203 InvenTree/helpers.py:206 InvenTree/helpers.py:209
|
||||
#: InvenTree/helpers.py:220
|
||||
#: InvenTree/helpers.py:214 InvenTree/helpers.py:217 InvenTree/helpers.py:220
|
||||
#: InvenTree/helpers.py:231
|
||||
#, python-brace-format
|
||||
msgid "Invalid group: {g}"
|
||||
msgstr "Ungültige Gruppe: {g}"
|
||||
|
||||
#: InvenTree/helpers.py:226
|
||||
#: InvenTree/helpers.py:237
|
||||
msgid "No serial numbers found"
|
||||
msgstr "Keine Seriennummern gefunden"
|
||||
|
||||
#: InvenTree/helpers.py:230
|
||||
#: InvenTree/helpers.py:241
|
||||
#, python-brace-format
|
||||
msgid "Number of unique serial number ({s}) must match quantity ({q})"
|
||||
msgstr ""
|
||||
@ -188,8 +188,7 @@ msgstr "Ausgewähltes Lagerobjekt nicht in BOM für Teil '{p}' gefunden"
|
||||
#, python-brace-format
|
||||
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
|
||||
msgstr ""
|
||||
"zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl "
|
||||
"überschreiten"
|
||||
"zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
|
||||
|
||||
#: build/models.py:401
|
||||
msgid "Build to allocate parts"
|
||||
@ -263,8 +262,8 @@ msgstr "Die folgende Seriennummer existiert bereits: ({sn})"
|
||||
#: common/models.py:65
|
||||
msgid "Settings key (must be unique - case insensitive"
|
||||
msgstr ""
|
||||
"Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung "
|
||||
"wird nicht beachtet)"
|
||||
"Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird "
|
||||
"nicht beachtet)"
|
||||
|
||||
#: common/models.py:67
|
||||
msgid "Settings value"
|
||||
@ -417,7 +416,7 @@ msgstr "Referenz"
|
||||
|
||||
#: order/templates/order/purchase_order_detail.html:111
|
||||
#: stock/templates/stock/item.html:89
|
||||
#: stock/templates/stock/stock_adjust.html:20
|
||||
#: stock/templates/stock/stock_adjust.html:18
|
||||
msgid "Quantity"
|
||||
msgstr "Anzahl"
|
||||
|
||||
@ -430,24 +429,42 @@ msgstr "Notiz"
|
||||
msgid "Notes"
|
||||
msgstr "Notizen"
|
||||
|
||||
#: order/views.py:140
|
||||
#: order/views.py:141
|
||||
msgid "Confirm order cancellation"
|
||||
msgstr "Bestell-Stornierung bestätigen"
|
||||
|
||||
#: order/views.py:173
|
||||
#: order/views.py:174
|
||||
msgid "Confirm order placement"
|
||||
msgstr "Bestellungstätigung bestätigen"
|
||||
|
||||
#: order/views.py:731
|
||||
#: order/views.py:328
|
||||
#, fuzzy
|
||||
#| msgid "Number of items received"
|
||||
msgid "Items received"
|
||||
msgstr "Empfangene Objekt-Anzahl"
|
||||
|
||||
#: order/views.py:342
|
||||
msgid "No destination set"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:373
|
||||
msgid "Error converting quantity to number"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:379
|
||||
msgid "Receive quantity less than zero"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:740
|
||||
msgid "Invalid Purchase Order"
|
||||
msgstr "Ungültige Bestellung"
|
||||
|
||||
#: order/views.py:739
|
||||
#: order/views.py:748
|
||||
#, fuzzy
|
||||
msgid "Supplier must match for Part and Order"
|
||||
msgstr "Zulieferer muss zum Teil und zur Bestellung passen"
|
||||
|
||||
#: order/views.py:744
|
||||
#: order/views.py:753
|
||||
msgid "Invalid SupplierPart selection"
|
||||
msgstr "Ungültige Wahl des Zulieferer-Teils"
|
||||
|
||||
@ -479,8 +496,8 @@ msgstr "Teilekategorie wählen"
|
||||
#: part/forms.py:81
|
||||
msgid "Perform 'deep copy' which will duplicate all BOM data for this part"
|
||||
msgstr ""
|
||||
"Tiefe Kopie ausführen. Dies wird alle Daten der Stückliste für dieses "
|
||||
"Teil duplizieren"
|
||||
"Tiefe Kopie ausführen. Dies wird alle Daten der Stückliste für dieses Teil "
|
||||
"duplizieren"
|
||||
|
||||
#: part/forms.py:86
|
||||
msgid "Confirm part creation"
|
||||
@ -1073,8 +1090,8 @@ msgid ""
|
||||
"This stock item is serialized - it has a unique serial number and the "
|
||||
"quantity cannot be adjusted."
|
||||
msgstr ""
|
||||
"Dieses Lagerobjekt ist serialisiert. Es hat eine eindeutige Seriennummer "
|
||||
"und die Anzahl kann nicht angepasst werden."
|
||||
"Dieses Lagerobjekt ist serialisiert. Es hat eine eindeutige Seriennummer und "
|
||||
"die Anzahl kann nicht angepasst werden."
|
||||
|
||||
#: stock/templates/stock/item.html:56
|
||||
msgid ""
|
||||
@ -1088,7 +1105,7 @@ msgid "Belongs To"
|
||||
msgstr "Gehört zu"
|
||||
|
||||
#: stock/templates/stock/item.html:78
|
||||
#: stock/templates/stock/stock_adjust.html:16
|
||||
#: stock/templates/stock/stock_adjust.html:17
|
||||
msgid "Location"
|
||||
msgstr "Standort"
|
||||
|
||||
@ -1153,7 +1170,7 @@ msgstr "Objekt-Details"
|
||||
msgid "Stock Locations"
|
||||
msgstr "Lagerobjekt-Standorte"
|
||||
|
||||
#: stock/templates/stock/stock_adjust.html:15
|
||||
#: stock/templates/stock/stock_adjust.html:16
|
||||
msgid "Stock Item"
|
||||
msgstr "Lagerobjekt"
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-12-09 11:16+0000\n"
|
||||
"POT-Creation-Date: 2020-01-05 22:23+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -18,30 +18,30 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: InvenTree/helpers.py:175 order/models.py:159 order/models.py:210
|
||||
#: InvenTree/helpers.py:186 order/models.py:159 order/models.py:210
|
||||
msgid "Invalid quantity provided"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:178
|
||||
#: InvenTree/helpers.py:189
|
||||
msgid "Empty serial number string"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:199 InvenTree/helpers.py:216
|
||||
#: InvenTree/helpers.py:210 InvenTree/helpers.py:227
|
||||
#, python-brace-format
|
||||
msgid "Duplicate serial: {n}"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:203 InvenTree/helpers.py:206 InvenTree/helpers.py:209
|
||||
#: InvenTree/helpers.py:220
|
||||
#: InvenTree/helpers.py:214 InvenTree/helpers.py:217 InvenTree/helpers.py:220
|
||||
#: InvenTree/helpers.py:231
|
||||
#, python-brace-format
|
||||
msgid "Invalid group: {g}"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:226
|
||||
#: InvenTree/helpers.py:237
|
||||
msgid "No serial numbers found"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:230
|
||||
#: InvenTree/helpers.py:241
|
||||
#, python-brace-format
|
||||
msgid "Number of unique serial number ({s}) must match quantity ({q})"
|
||||
msgstr ""
|
||||
@ -407,7 +407,7 @@ msgstr ""
|
||||
|
||||
#: order/templates/order/purchase_order_detail.html:111
|
||||
#: stock/templates/stock/item.html:89
|
||||
#: stock/templates/stock/stock_adjust.html:20
|
||||
#: stock/templates/stock/stock_adjust.html:18
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
@ -420,23 +420,39 @@ msgstr ""
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:140
|
||||
#: order/views.py:141
|
||||
msgid "Confirm order cancellation"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:173
|
||||
#: order/views.py:174
|
||||
msgid "Confirm order placement"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:731
|
||||
#: order/views.py:328
|
||||
msgid "Items received"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:342
|
||||
msgid "No destination set"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:373
|
||||
msgid "Error converting quantity to number"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:379
|
||||
msgid "Receive quantity less than zero"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:740
|
||||
msgid "Invalid Purchase Order"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:739
|
||||
#: order/views.py:748
|
||||
msgid "Supplier must match for Part and Order"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:744
|
||||
#: order/views.py:753
|
||||
msgid "Invalid SupplierPart selection"
|
||||
msgstr ""
|
||||
|
||||
@ -1065,7 +1081,7 @@ msgid "Belongs To"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item.html:78
|
||||
#: stock/templates/stock/stock_adjust.html:16
|
||||
#: stock/templates/stock/stock_adjust.html:17
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
@ -1130,7 +1146,7 @@ msgstr ""
|
||||
msgid "Stock Locations"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/stock_adjust.html:15
|
||||
#: stock/templates/stock/stock_adjust.html:16
|
||||
msgid "Stock Item"
|
||||
msgstr ""
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-12-09 11:16+0000\n"
|
||||
"POT-Creation-Date: 2020-01-05 22:23+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -18,30 +18,30 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: InvenTree/helpers.py:175 order/models.py:159 order/models.py:210
|
||||
#: InvenTree/helpers.py:186 order/models.py:159 order/models.py:210
|
||||
msgid "Invalid quantity provided"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:178
|
||||
#: InvenTree/helpers.py:189
|
||||
msgid "Empty serial number string"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:199 InvenTree/helpers.py:216
|
||||
#: InvenTree/helpers.py:210 InvenTree/helpers.py:227
|
||||
#, python-brace-format
|
||||
msgid "Duplicate serial: {n}"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:203 InvenTree/helpers.py:206 InvenTree/helpers.py:209
|
||||
#: InvenTree/helpers.py:220
|
||||
#: InvenTree/helpers.py:214 InvenTree/helpers.py:217 InvenTree/helpers.py:220
|
||||
#: InvenTree/helpers.py:231
|
||||
#, python-brace-format
|
||||
msgid "Invalid group: {g}"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:226
|
||||
#: InvenTree/helpers.py:237
|
||||
msgid "No serial numbers found"
|
||||
msgstr ""
|
||||
|
||||
#: InvenTree/helpers.py:230
|
||||
#: InvenTree/helpers.py:241
|
||||
#, python-brace-format
|
||||
msgid "Number of unique serial number ({s}) must match quantity ({q})"
|
||||
msgstr ""
|
||||
@ -407,7 +407,7 @@ msgstr ""
|
||||
|
||||
#: order/templates/order/purchase_order_detail.html:111
|
||||
#: stock/templates/stock/item.html:89
|
||||
#: stock/templates/stock/stock_adjust.html:20
|
||||
#: stock/templates/stock/stock_adjust.html:18
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
@ -420,23 +420,39 @@ msgstr ""
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:140
|
||||
#: order/views.py:141
|
||||
msgid "Confirm order cancellation"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:173
|
||||
#: order/views.py:174
|
||||
msgid "Confirm order placement"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:731
|
||||
#: order/views.py:328
|
||||
msgid "Items received"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:342
|
||||
msgid "No destination set"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:373
|
||||
msgid "Error converting quantity to number"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:379
|
||||
msgid "Receive quantity less than zero"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:740
|
||||
msgid "Invalid Purchase Order"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:739
|
||||
#: order/views.py:748
|
||||
msgid "Supplier must match for Part and Order"
|
||||
msgstr ""
|
||||
|
||||
#: order/views.py:744
|
||||
#: order/views.py:753
|
||||
msgid "Invalid SupplierPart selection"
|
||||
msgstr ""
|
||||
|
||||
@ -1065,7 +1081,7 @@ msgid "Belongs To"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/item.html:78
|
||||
#: stock/templates/stock/stock_adjust.html:16
|
||||
#: stock/templates/stock/stock_adjust.html:17
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
@ -1130,7 +1146,7 @@ msgstr ""
|
||||
msgid "Stock Locations"
|
||||
msgstr ""
|
||||
|
||||
#: stock/templates/stock/stock_adjust.html:15
|
||||
#: stock/templates/stock/stock_adjust.html:16
|
||||
msgid "Stock Item"
|
||||
msgstr ""
|
||||
|
||||
|
@ -12,6 +12,7 @@ from django.views.generic import DetailView, ListView
|
||||
from django.forms import HiddenInput
|
||||
|
||||
import logging
|
||||
from decimal import Decimal, InvalidOperation
|
||||
|
||||
from .models import PurchaseOrder, PurchaseOrderLineItem
|
||||
from .admin import POLineItemResource
|
||||
@ -324,6 +325,8 @@ class PurchaseOrderReceive(AjaxUpdateView):
|
||||
self.lines = []
|
||||
self.destination = None
|
||||
|
||||
msg = _("Items received")
|
||||
|
||||
# Extract the destination for received parts
|
||||
if 'location' in request.POST:
|
||||
pk = request.POST['location']
|
||||
@ -332,7 +335,11 @@ class PurchaseOrderReceive(AjaxUpdateView):
|
||||
except (StockLocation.DoesNotExist, ValueError):
|
||||
pass
|
||||
|
||||
errors = self.destination is None
|
||||
errors = False
|
||||
|
||||
if self.destination is None:
|
||||
errors = True
|
||||
msg = _("No destination set")
|
||||
|
||||
# Extract information on all submitted line items
|
||||
for item in request.POST:
|
||||
@ -359,15 +366,17 @@ class PurchaseOrderReceive(AjaxUpdateView):
|
||||
receive = self.request.POST[item]
|
||||
|
||||
try:
|
||||
receive = int(receive)
|
||||
except ValueError:
|
||||
receive = Decimal(receive)
|
||||
except InvalidOperation:
|
||||
# In the case on an invalid input, reset to default
|
||||
receive = line.remaining()
|
||||
msg = _("Error converting quantity to number")
|
||||
errors = True
|
||||
|
||||
if receive < 0:
|
||||
receive = 0
|
||||
errors = True
|
||||
msg = _("Receive quantity less than zero")
|
||||
|
||||
line.receive_quantity = receive
|
||||
self.lines.append(line)
|
||||
@ -378,7 +387,7 @@ class PurchaseOrderReceive(AjaxUpdateView):
|
||||
|
||||
data = {
|
||||
'form_valid': errors is False,
|
||||
'success': 'Items marked as received',
|
||||
'success': msg,
|
||||
}
|
||||
|
||||
return self.renderJsonResponse(request, data=data, form=self.get_form())
|
||||
|
@ -1,4 +1,5 @@
|
||||
{% load i18n %}
|
||||
{% load inventree_extras %}
|
||||
|
||||
{% block pre_form_content %}
|
||||
|
||||
@ -14,10 +15,9 @@
|
||||
<tr>
|
||||
<th>{% trans "Stock Item" %}</th>
|
||||
<th>{% trans "Location" %}</th>
|
||||
<th>{% trans "Quantity" %}</th>
|
||||
{% if edit_quantity %}
|
||||
<th>{{ stock_action_title }}</th>
|
||||
{% else %}
|
||||
<th>{% trans "Quantity" %}</th>
|
||||
{% endif %}
|
||||
<th></th>
|
||||
</tr>
|
||||
@ -26,6 +26,7 @@
|
||||
<td>{% include "hover_image.html" with image=item.part.image hover=True %}
|
||||
{{ item.part.full_name }} <small><i>{{ item.part.description }}</i></small></td>
|
||||
<td>{{ item.location.pathstring }}</td>
|
||||
<td>{% decimal item.quantity %}</td>
|
||||
<td>
|
||||
{% if edit_quantity %}
|
||||
<input class='numberinput'
|
||||
@ -36,7 +37,6 @@
|
||||
<br><span class='help-inline'>{{ item.error }}</span>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{ item.new_quantity }}
|
||||
<input type='hidden' name='stock-id-{{ item.id }}' value='{{ item.new_quantity }}'/>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
Loading…
Reference in New Issue
Block a user