2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-23 05:06:32 +00:00

Merge branch 'master' of https://github.com/inventree/InvenTree into issue1425

This commit is contained in:
2021-05-06 00:14:33 +02:00
21 changed files with 4385 additions and 3759 deletions
InvenTree
locale
de
en
LC_MESSAGES
es
fr
it
ja
pl
ru
tr
LC_MESSAGES
zh
order
tasks.py

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

@@ -223,7 +223,7 @@ class PurchaseOrder(Order):
return reverse('po-detail', kwargs={'pk': self.id})
@transaction.atomic
def add_line_item(self, supplier_part, quantity, group=True, reference=''):
def add_line_item(self, supplier_part, quantity, group=True, reference='', purchase_price=None):
""" Add a new line item to this purchase order.
This function will check that:
@@ -254,7 +254,12 @@ class PurchaseOrder(Order):
if matches.count() > 0:
line = matches.first()
line.quantity += quantity
# update quantity and price
quantity_new = line.quantity + quantity
line.quantity = quantity_new
supplier_price = supplier_part.get_price(quantity_new)
if line.purchase_price and supplier_price:
line.purchase_price = supplier_price / quantity_new
line.save()
return
@@ -263,7 +268,9 @@ class PurchaseOrder(Order):
order=self,
part=supplier_part,
quantity=quantity,
reference=reference)
reference=reference,
purchase_price=purchase_price,
)
line.save()
@@ -329,7 +336,7 @@ class PurchaseOrder(Order):
return self.pending_line_items().count() == 0
@transaction.atomic
def receive_line_item(self, line, location, quantity, user, status=StockStatus.OK):
def receive_line_item(self, line, location, quantity, user, status=StockStatus.OK, purchase_price=None):
""" Receive a line item (or partial line item) against this PO
"""
@@ -353,7 +360,8 @@ class PurchaseOrder(Order):
location=location,
quantity=quantity,
purchase_order=self,
status=status
status=status,
purchase_price=purchase_price,
)
stock.save()

@@ -777,6 +777,7 @@ class PurchaseOrderReceive(AjaxUpdateView):
line.receive_quantity,
self.request.user,
status=line.status_code,
purchase_price=line.purchase_price,
)
@@ -997,6 +998,14 @@ class OrderParts(AjaxView):
part.order_supplier = supplier_part.id if supplier_part else None
part.order_quantity = quantity
# set supplier-price
if supplier_part:
supplier_price = supplier_part.get_price(quantity)
if supplier_price:
part.purchase_price = supplier_price / quantity
if not hasattr(part, 'purchase_price'):
part.purchase_price = None
self.parts.append(part)
if supplier_part is None:
@@ -1096,7 +1105,10 @@ class OrderParts(AjaxView):
sp=item.order_supplier))
continue
order.add_line_item(supplier_part, quantity)
# get purchase price
purchase_price = item.purchase_price
order.add_line_item(supplier_part, quantity, purchase_price=purchase_price)
class POLineItemCreate(AjaxCreateView):

@@ -65,7 +65,7 @@ def manage(c, cmd, pty=False):
cmd - django command to run
"""
c.run('cd {path} && python3 manage.py {cmd}'.format(
c.run('cd "{path}" && python3 manage.py {cmd}'.format(
path=managePyDir(),
cmd=cmd
), pty=pty)
@@ -185,7 +185,7 @@ def translate(c):
"""
# Translate applicable .py / .html / .js files
manage(c, "makemessages --all -e py,html,js")
manage(c, "makemessages --all -e py,html,js --no-wrap")
manage(c, "compilemessages")
path = os.path.join('InvenTree', 'script', 'translation_stats.py')