diff --git a/InvenTree/company/templates/company/partdetail.html b/InvenTree/company/templates/company/partdetail.html index ba336fa3c5..5d0eee89a9 100644 --- a/InvenTree/company/templates/company/partdetail.html +++ b/InvenTree/company/templates/company/partdetail.html @@ -85,7 +85,12 @@ InvenTree | {{ company.name }} - Parts {% for pb in part.price_breaks.all %} {{ pb.quantity }} - {{ pb.cost }} + {{ pb.cost }} +
+ + +
+ {% endfor %} {% else %} @@ -138,4 +143,24 @@ InvenTree | {{ company.name }} - Parts ); }); + $('.pb-edit-button').click(function() { + var button = $(this); + + launchModalForm(button.attr('url'), + { + reload: true, + } + ); + }); + + $('.pb-delete-button').click(function() { + var button = $(this); + + launchModalForm(button.attr('url'), + { + reload: true, + } + ); + }); + {% endblock %} \ No newline at end of file diff --git a/InvenTree/part/migrations/0031_auto_20190518_1650.py b/InvenTree/part/migrations/0031_auto_20190518_1650.py new file mode 100644 index 0000000000..67c6d6124f --- /dev/null +++ b/InvenTree/part/migrations/0031_auto_20190518_1650.py @@ -0,0 +1,19 @@ +# Generated by Django 2.2 on 2019-05-18 06:50 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0030_auto_20190518_1641'), + ] + + operations = [ + migrations.AlterField( + model_name='supplierpricebreak', + name='quantity', + field=models.PositiveIntegerField(default=1, validators=[django.core.validators.MinValueValidator(1)]), + ), + ] diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 9c5476674a..ad210c7330 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -892,6 +892,12 @@ class SupplierPart(models.Model): - If order multiples are to be observed, then we need to calculate based on that, too """ + price_breaks = self.price_breaks.all() + + # No price break information available? + if len(price_breaks) == 0: + return None + # Minimum ordering requirement if moq and self.minimum > quantity: quantity = self.minimum @@ -946,7 +952,7 @@ class SupplierPriceBreak(models.Model): part = models.ForeignKey(SupplierPart, on_delete=models.CASCADE, related_name='pricebreaks') - quantity = models.PositiveIntegerField(validators=[MinValueValidator(1)]) + quantity = models.PositiveIntegerField(default=1, validators=[MinValueValidator(1)]) cost = models.DecimalField(max_digits=10, decimal_places=3, validators=[MinValueValidator(0)]) diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 7fa693ecdc..61dffe986b 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -834,7 +834,6 @@ class PriceBreakCreate(AjaxCreateView): def get_form(self): form = super(AjaxCreateView, self).get_form() - form.fields['part'].widget = HiddenInput() return form @@ -858,6 +857,13 @@ class PriceBreakEdit(AjaxUpdateView): ajax_form_title = 'Edit Price Break' ajax_template_name = 'modal_form.html' + def get_form(self): + + form = super(AjaxUpdateView, self).get_form() + form.fields['part'].widget = HiddenInput() + + return form + class PriceBreakDelete(AjaxDeleteView): """ View for deleting a supplier price break """ diff --git a/InvenTree/static/css/inventree.css b/InvenTree/static/css/inventree.css index 59e7899891..4ef4f8789c 100644 --- a/InvenTree/static/css/inventree.css +++ b/InvenTree/static/css/inventree.css @@ -3,11 +3,11 @@ } .glyphicon { - font-size: 20px; + font-size: 18px; } .glyphicon-small { - font-size: 14px; + font-size: 12px; } .starred-part {