Добавлена Производственная таблица. Переход на таблицу по ссылке из Таблицы выхода заказов
This commit is contained in:
@@ -57,7 +57,7 @@ class ThumbnailColumn(tables.TemplateColumn):
|
||||
class OrdersTable(tables.Table):
|
||||
date = tables.DateColumn('d/m/Y', verbose_name = 'Дата')
|
||||
deadline = tables.DateColumn('d/m/Y', verbose_name = 'Срок сдачи')
|
||||
product = tables.Column(verbose_name = 'Наименование')
|
||||
product = tables.LinkColumn('asuzr.views.production_table', verbose_name = 'Наименование', args=[tables.utils.A('pk')])
|
||||
delivery = EditableColumn('delivery', verbose_name = 'Доставка')
|
||||
lifting = EditableColumn('lifting', verbose_name = 'Подъем')
|
||||
address = tables.Column(verbose_name = 'Адрес')
|
||||
@@ -200,3 +200,23 @@ class ProdPlanTable(tables.Table):
|
||||
|
||||
class Meta:
|
||||
attrs = {'class': 'paleblue'}
|
||||
|
||||
class ProductionTable(tables.Table):
|
||||
cost_item = tables.Column(verbose_name = 'Комплектующие')
|
||||
value = tables.Column(verbose_name = 'Стоимость')
|
||||
|
||||
summary = ['Итого затрат', 0]
|
||||
balance = ['Прибыль', 0]
|
||||
|
||||
def render_value(self, value):
|
||||
return '%0.2f' % value
|
||||
|
||||
def set_summary(self, value):
|
||||
self.summary[1] = value
|
||||
|
||||
def set_balance(self, value):
|
||||
self.balance[1] = value
|
||||
|
||||
class Meta:
|
||||
attrs = {'class': 'paleblue'}
|
||||
template = 'asuzr/totals_table.html'
|
||||
|
||||
@@ -238,16 +238,17 @@ def desreport(request):
|
||||
|
||||
@login_required
|
||||
def production_table(request, order_id):
|
||||
order_list = Order.objects.filter(is_done=False).order_by('-id')
|
||||
sel_order = Order.objects.filter(id=order_id)
|
||||
cost_items = sel_order.values('cost_items')
|
||||
t=loader.get_template('asuzr/order_costs.html')
|
||||
c=RequestContext(request,{
|
||||
'order_list' : order_list,
|
||||
'sel_order' : sel_order,
|
||||
'cost_items' : cost_items,
|
||||
})
|
||||
return HttpResponse(t.render(c))
|
||||
order_costs = OrderCosts.objects.filter(order=order_id)
|
||||
table = ProductionTable(order_costs)
|
||||
curr_order = Order.objects.get(pk = order_id)
|
||||
title = u'Производственная таблица'
|
||||
table.verbose_name = u'Заказ: %s' % (', '.join((curr_order.product.name, curr_order.address)))
|
||||
table.verbose_name2 = u'Стоимость: %s' % str(curr_order.price)
|
||||
costs_sum = order_costs.aggregate(Sum('value'))
|
||||
table.set_summary(costs_sum['value__sum'] or 0)
|
||||
table.set_balance(curr_order.price - costs_sum['value__sum'] or 0)
|
||||
RequestConfig(request).configure(table)
|
||||
return render(request, 'asuzr/table.html', {'table': table, 'title': title})
|
||||
|
||||
@login_required
|
||||
def prod_plan_view(request):
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
{% load render_table from django_tables2 %}
|
||||
|
||||
{% block page %}
|
||||
<h3>{{ table.verbose_name }}</h3>
|
||||
<h3>{{ table.verbose_name2 }}</h3>
|
||||
{% block table %}
|
||||
{% render_table table %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -10,6 +10,13 @@
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if table.balance %}
|
||||
<tr>
|
||||
{% for balance in table.balance %}
|
||||
<td> {{ balance }} </td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tfoot>
|
||||
{% endblock table.tfoot %}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user