mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Add a 'pricing' tab for SupplierPart
This commit is contained in:
parent
63b70614b6
commit
d9d21395d9
@ -1,132 +0,0 @@
|
|||||||
{% extends "company/supplier_part_base.html" %}
|
|
||||||
{% load static %}
|
|
||||||
{% load i18n %}
|
|
||||||
|
|
||||||
{% block page_title %}
|
|
||||||
InvenTree | {{ company.name }} - {% trans "Parts" %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block details %}
|
|
||||||
|
|
||||||
{% include "company/supplier_part_tabs.html" with tab='details' %}
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class='row'>
|
|
||||||
<div class='col-sm-6'>
|
|
||||||
<h4>{% trans "Supplier Part Details" %}</h4>
|
|
||||||
<table class="table table-striped table-condensed">
|
|
||||||
<tr>
|
|
||||||
<td>{% trans "Internal Part" %}</td>
|
|
||||||
<td>
|
|
||||||
{% if part.part %}
|
|
||||||
<a href="{% url 'part-suppliers' part.part.id %}">{{ part.part.full_name }}</a>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr><td>{% trans "Supplier" %}</td><td><a href="{% url 'company-detail-parts' part.supplier.id %}">{{ part.supplier.name }}</a></td></tr>
|
|
||||||
<tr><td>{% trans "SKU" %}</td><td>{{ part.SKU }}</tr></tr>
|
|
||||||
{% if part.URL %}
|
|
||||||
<tr><td>{% trans "URL" %}</td><td><a href="{{ part.URL }}">{{ part.URL }}</a></td></tr>
|
|
||||||
{% endif %}
|
|
||||||
{% if part.description %}
|
|
||||||
<tr><td>{% trans "Description" %}</td><td>{{ part.description }}</td></tr>
|
|
||||||
{% endif %}
|
|
||||||
{% if part.manufacturer %}
|
|
||||||
<tr><td>{% trans "Manufacturer" %}</td><td>{{ part.manufacturer }}</td></tr>
|
|
||||||
<tr><td>{% trans "MPN" %}</td><td>{{ part.MPN }}</td></tr>
|
|
||||||
{% endif %}
|
|
||||||
{% if part.note %}
|
|
||||||
<tr><td>{% trans "Note" %}</td><td>{{ part.note }}</td></tr>
|
|
||||||
{% endif %}
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class='col-sm-6'>
|
|
||||||
<h4>{% trans "Pricing Information" %}</h4>
|
|
||||||
<table class="table table-striped table-condensed">
|
|
||||||
<tr><td>{% trans "Order Multiple" %}</td><td>{{ part.multiple }}</td></tr>
|
|
||||||
{% if part.base_cost > 0 %}
|
|
||||||
<tr><td>{% trans "Base Price (Flat Fee)" %}</td><td>{{ part.base_cost }}</td></tr>
|
|
||||||
{% endif %}
|
|
||||||
<tr>
|
|
||||||
<th>{% trans "Price Breaks" %}</th>
|
|
||||||
<th>
|
|
||||||
<div style='float: right;'>
|
|
||||||
<button class='btn btn-primary' id='new-price-break' type='button'>{% trans "New Price Break" %}</button>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>{% trans "Quantity" %}</th>
|
|
||||||
<th>{% trans "Price" %}</th>
|
|
||||||
</tr>
|
|
||||||
{% if part.price_breaks.all %}
|
|
||||||
{% for pb in part.price_breaks.all %}
|
|
||||||
<tr>
|
|
||||||
<td>{{ pb.quantity }}</td>
|
|
||||||
<td>
|
|
||||||
{% if pb.currency %}{{ pb.currency.symbol }}{% endif %}
|
|
||||||
{{ pb.cost }}
|
|
||||||
{% if pb.currency %}{{ pb.currency.suffix }}{% endif %}
|
|
||||||
<div class='btn-group' style='float: right;'>
|
|
||||||
<button title='Edit Price Break' class='btn btn-default btn-sm pb-edit-button' type='button' url="{% url 'price-break-edit' pb.id %}"><span class='glyphicon glyphicon-edit'></span></button>
|
|
||||||
<button title='Delete Price Break' class='btn btn-default btn-sm pb-delete-button' type='button' url="{% url 'price-break-delete' pb.id %}"><span class='glyphicon glyphicon-trash'></span></button>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
{% else %}
|
|
||||||
<tr>
|
|
||||||
<td colspan='2'>
|
|
||||||
<span class='warning-msg'><i>{% trans "No price breaks have been added for this part" %}</i></span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endif %}
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<h4>{% trans "Purchase Orders" %}</h4>
|
|
||||||
{% include "order/po_table.html" with orders=part.purchase_orders %}
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block js_ready %}
|
|
||||||
{{ block.super }}
|
|
||||||
|
|
||||||
|
|
||||||
$('#new-price-break').click(function() {
|
|
||||||
launchModalForm("{% url 'price-break-create' %}",
|
|
||||||
{
|
|
||||||
reload: true,
|
|
||||||
data: {
|
|
||||||
part: {{ part.id }},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.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 %}
|
|
@ -0,0 +1,47 @@
|
|||||||
|
{% extends "company/supplier_part_base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block details %}
|
||||||
|
|
||||||
|
{% include "company/supplier_part_tabs.html" with tab='details' %}
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h4>{% trans "Supplier Part Details" %}</h4>
|
||||||
|
<table class="table table-striped table-condensed">
|
||||||
|
<tr>
|
||||||
|
<td>{% trans "Internal Part" %}</td>
|
||||||
|
<td>
|
||||||
|
{% if part.part %}
|
||||||
|
<a href="{% url 'part-suppliers' part.part.id %}">{{ part.part.full_name }}</a>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr><td>{% trans "Supplier" %}</td><td><a href="{% url 'company-detail-parts' part.supplier.id %}">{{ part.supplier.name }}</a></td></tr>
|
||||||
|
<tr><td>{% trans "SKU" %}</td><td>{{ part.SKU }}</tr></tr>
|
||||||
|
{% if part.URL %}
|
||||||
|
<tr><td>{% trans "URL" %}</td><td><a href="{{ part.URL }}">{{ part.URL }}</a></td></tr>
|
||||||
|
{% endif %}
|
||||||
|
{% if part.description %}
|
||||||
|
<tr><td>{% trans "Description" %}</td><td>{{ part.description }}</td></tr>
|
||||||
|
{% endif %}
|
||||||
|
{% if part.manufacturer %}
|
||||||
|
<tr><td>{% trans "Manufacturer" %}</td><td>{{ part.manufacturer }}</td></tr>
|
||||||
|
<tr><td>{% trans "MPN" %}</td><td>{{ part.MPN }}</td></tr>
|
||||||
|
{% endif %}
|
||||||
|
{% if part.note %}
|
||||||
|
<tr><td>{% trans "Note" %}</td><td>{{ part.note }}</td></tr>
|
||||||
|
{% endif %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h4>{% trans "Purchase Orders" %}</h4>
|
||||||
|
{% include "order/po_table.html" with orders=part.purchase_orders %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block js_ready %}
|
||||||
|
{{ block.super }}
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock %}
|
@ -0,0 +1,91 @@
|
|||||||
|
{% extends "company/supplier_part_base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% load inventree_extras %}
|
||||||
|
|
||||||
|
{% block details %}
|
||||||
|
|
||||||
|
{% include "company/supplier_part_tabs.html" with tab='pricing' %}
|
||||||
|
|
||||||
|
|
||||||
|
<h4>{% trans "Pricing Information" %}</h4>
|
||||||
|
<table class="table table-striped table-condensed">
|
||||||
|
<tr><td>{% trans "Order Multiple" %}</td><td>{{ part.multiple }}</td></tr>
|
||||||
|
{% if part.base_cost > 0 %}
|
||||||
|
<tr><td>{% trans "Base Price (Flat Fee)" %}</td><td>{{ part.base_cost }}</td></tr>
|
||||||
|
{% endif %}
|
||||||
|
<tr>
|
||||||
|
<th>{% trans "Price Breaks" %}</th>
|
||||||
|
<th>
|
||||||
|
<div style='float: right;'>
|
||||||
|
<button class='btn btn-primary' id='new-price-break' type='button'>{% trans "New Price Break" %}</button>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>{% trans "Quantity" %}</th>
|
||||||
|
<th>{% trans "Price" %}</th>
|
||||||
|
</tr>
|
||||||
|
{% if part.price_breaks.all %}
|
||||||
|
{% for pb in part.price_breaks.all %}
|
||||||
|
<tr>
|
||||||
|
<td>{% decimal pb.quantity %}</td>
|
||||||
|
<td>
|
||||||
|
{% if pb.currency %}{{ pb.currency.symbol }}{% endif %}
|
||||||
|
{% decimal pb.cost %}
|
||||||
|
{% if pb.currency %}{{ pb.currency.suffix }}{% endif %}
|
||||||
|
<div class='btn-group' style='float: right;'>
|
||||||
|
<button title='Edit Price Break' class='btn btn-default btn-sm pb-edit-button' type='button' url="{% url 'price-break-edit' pb.id %}"><span class='glyphicon glyphicon-edit'></span></button>
|
||||||
|
<button title='Delete Price Break' class='btn btn-default btn-sm pb-delete-button' type='button' url="{% url 'price-break-delete' pb.id %}"><span class='glyphicon glyphicon-trash'></span></button>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
<tr>
|
||||||
|
<td colspan='2'>
|
||||||
|
<span class='warning-msg'><i>{% trans "No price breaks have been added for this part" %}</i></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block js_ready %}
|
||||||
|
{{ block.super }}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$('#new-price-break').click(function() {
|
||||||
|
launchModalForm("{% url 'price-break-create' %}",
|
||||||
|
{
|
||||||
|
reload: true,
|
||||||
|
data: {
|
||||||
|
part: {{ part.id }},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.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 %}
|
@ -5,7 +5,7 @@
|
|||||||
<a href="{% url 'supplier-part-detail' part.id %}">{% trans "Details" %}</a>
|
<a href="{% url 'supplier-part-detail' part.id %}">{% trans "Details" %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li{% if tab == 'pricing' %} class='active'{% endif %}>
|
<li{% if tab == 'pricing' %} class='active'{% endif %}>
|
||||||
<a href="{% url 'supplier-part-detail' part.id %}">{% trans "Pricing" %}</a>
|
<a href="{% url 'supplier-part-pricing' part.id %}">{% trans "Pricing" %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li{% if tab == 'stock' %} class='active'{% endif %}>
|
<li{% if tab == 'stock' %} class='active'{% endif %}>
|
||||||
<a href="{% url 'supplier-part-detail' part.id %}">{% trans "Stock" %}</a>
|
<a href="{% url 'supplier-part-detail' part.id %}">{% trans "Stock" %}</a>
|
||||||
|
@ -47,7 +47,9 @@ price_break_urls = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
supplier_part_detail_urls = [
|
supplier_part_detail_urls = [
|
||||||
url(r'edit/?', views.SupplierPartEdit.as_view(), name='supplier-part-edit'),
|
url(r'^edit/?', views.SupplierPartEdit.as_view(), name='supplier-part-edit'),
|
||||||
|
|
||||||
|
url(r'^pricing/', views.SupplierPartDetail.as_view(template_name='company/supplier_part_pricing.html'), name='supplier-part-pricing'),
|
||||||
|
|
||||||
url('^.*$', views.SupplierPartDetail.as_view(), name='supplier-part-detail'),
|
url('^.*$', views.SupplierPartDetail.as_view(), name='supplier-part-detail'),
|
||||||
]
|
]
|
||||||
|
@ -149,7 +149,7 @@ class CompanyDelete(AjaxDeleteView):
|
|||||||
class SupplierPartDetail(DetailView):
|
class SupplierPartDetail(DetailView):
|
||||||
""" Detail view for SupplierPart """
|
""" Detail view for SupplierPart """
|
||||||
model = SupplierPart
|
model = SupplierPart
|
||||||
template_name = 'company/partdetail.html'
|
template_name = 'company/supplier_part_detail.html'
|
||||||
context_object_name = 'part'
|
context_object_name = 'part'
|
||||||
queryset = SupplierPart.objects.all()
|
queryset = SupplierPart.objects.all()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user