Таблица детализации заказов. Расчет выполнения плана

This commit is contained in:
Anastasia
2015-05-07 16:42:03 +05:00
parent f0a9db1c86
commit e62be89b3d
11 changed files with 84 additions and 14 deletions

View File

@@ -23,7 +23,11 @@ class Attendance(models.Model):
@property @property
def date_dd_mm_yy(self): def date_dd_mm_yy(self):
return self.date.strftime("%d/%m/%y") return self.date.strftime("%d/%m/%Y")
@property
def date_as_tuple(self):
return tuple(self.date_dd_mm_yy().split("/"))
@property @property
def week_day(self): def week_day(self):
@@ -69,13 +73,12 @@ class Order(models.Model):
@property @property
def deadline_dmy(self): def deadline_dmy(self):
return self.deadline.strftime("%d/%m/%y") return self.deadline.strftime("%d/%m/%Y")
#Эскизы #Эскизы
class Sketch(models.Model): class Sketch(models.Model):
file_name = models.CharField(max_length=150) #имя файла sketch_file = models.FileField(upload_to = 'sketches') #путь к файу
file_path = models.CharField(max_length=150) #путь к файу order = models.ForeignKey(Order) #id заказа
order = models.ForeignKey(Order) #id заказа
#Действия #Действия
class Action(models.Model): class Action(models.Model):
@@ -97,5 +100,5 @@ class AccessProtocol(models.Model):
#План заказов #План заказов
class OrderPlan(models.Model): class OrderPlan(models.Model):
month = models.DateField() date = models.DateField()
plan = models.IntegerField() plan = models.IntegerField()

Binary file not shown.

View File

@@ -4,6 +4,7 @@ from django.template import Context, loader
from asuzr.models import Product from asuzr.models import Product
from asuzr.models import Attendance from asuzr.models import Attendance
from asuzr.models import Order from asuzr.models import Order
from asuzr.models import OrderPlan
from datetime import datetime, date, time from datetime import datetime, date, time
# Create your views here. # Create your views here.
@@ -56,7 +57,7 @@ def get_filtered_list(p_list, year, month):
filtered_list=[] filtered_list=[]
for a in p_list: for a in p_list:
a_date = a.date a_date = a.date
if a_date.strftime('%m/%Y') == month+'/'+year: if a_date.strftime('%m/%Y').lstrip('0') == '/'.join((month,year)).lstrip('0'):
filtered_list.append(a) filtered_list.append(a)
return filtered_list return filtered_list
@@ -72,13 +73,16 @@ def attend_order_table(request, year, month):
order_list = Order.objects.all().order_by('id') order_list = Order.objects.all().order_by('id')
filtered_order_list = get_filtered_list(order_list, year, month) filtered_order_list = get_filtered_list(order_list, year, month)
plan = OrderPlan.objects.all()
filtered_plan = get_filtered_list(plan, year, month)
sum_calls = sum(l.calls for l in filtered_attend_list) sum_calls = sum(l.calls for l in filtered_attend_list)
sum_visits = sum(l.visits for l in filtered_attend_list) sum_visits = sum(l.visits for l in filtered_attend_list)
sum_orders = sum(l.order_count for l in filtered_attend_list) sum_orders = sum(l.order_count for l in filtered_attend_list)
sum_price = sum(l.orders_price for l in filtered_attend_list) sum_price = sum(l.orders_price for l in filtered_attend_list)
sum_order_price = sum(l.price for l in filtered_order_list) sum_order_price = sum(l.price for l in filtered_order_list)
t = loader.get_template('asuzr/attend_order.html') t = loader.get_template('asuzr/attend_order.html')
c = Context({ c = Context({
'attend_list': filtered_attend_list, 'attend_list': filtered_attend_list,
@@ -88,9 +92,44 @@ def attend_order_table(request, year, month):
'sum_orders': sum_orders, 'sum_orders': sum_orders,
'sum_price': sum_price, 'sum_price': sum_price,
'sum_order_price': sum_order_price, 'sum_order_price': sum_order_price,
'plan': filtered_plan[0],
})
return HttpResponse(t.render(c))
def main(request, day, month, year):
attend_list = Attendance.objects.all().order_by('date')
filtered_attend_list=get_filtered_list(attend_list, year, month)
p_date = datetime.strptime(day+'/'+month+'/'+year, '%d/%m/%Y')
order_list = Order.objects.filter(date=p_date).order_by('id')
plan = OrderPlan.objects.all()
filtered_plan = get_filtered_list(plan, year, month)
sum_calls = sum(l.calls for l in filtered_attend_list)
sum_visits = sum(l.visits for l in filtered_attend_list)
sum_orders = sum(l.order_count for l in filtered_attend_list)
sum_price = sum(l.orders_price for l in filtered_attend_list)
sum_order_price = sum(l.price for l in order_list)
plan_balance = filtered_plan[0].plan-sum_price
d_date = p_date.strftime("%d/%m/%Y")
t = loader.get_template('asuzr/attend_order.html')
c = Context({
'attend_list': filtered_attend_list,
'order_list': order_list,
'sum_calls': sum_calls,
'sum_visits': sum_visits,
'sum_orders': sum_orders,
'sum_price': sum_price,
'sum_order_price': sum_order_price,
'plan': filtered_plan[0],
'balance': plan_balance,
'd_date': d_date,
}) })
return HttpResponse(t.render(c)) return HttpResponse(t.render(c))

Binary file not shown.

Binary file not shown.

View File

@@ -10,6 +10,7 @@ urlpatterns = patterns('',
url(r'^product/$', 'asuzr.views.prod_list'), url(r'^product/$', 'asuzr.views.prod_list'),
url(r'^product/(?P<prod_id>\d+)/$', 'asuzr.views.prod_detail'), url(r'^product/(?P<prod_id>\d+)/$', 'asuzr.views.prod_detail'),
url(r'^attendance/(?P<year>\d+)/(?P<month>\d+)/$', 'asuzr.views.attend_table'), url(r'^attendance/(?P<year>\d+)/(?P<month>\d+)/$', 'asuzr.views.attend_table'),
url(r'^main/(?P<day>\d+)/(?P<month>\d+)/(?P<year>\d+)/$', 'asuzr.views.main', name='asuzr-main'),
url(r'^orders/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/$', 'asuzr.views.orders_table'), url(r'^orders/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/$', 'asuzr.views.orders_table'),
url(r'^attend_order/(?P<year>\d+)/(?P<month>\d+)/$', 'asuzr.views.attend_order_table'), url(r'^attend_order/(?P<year>\d+)/(?P<month>\d+)/$', 'asuzr.views.attend_order_table'),
url(r'^admin/', include(admin.site.urls)), url(r'^admin/', include(admin.site.urls)),

Binary file not shown.

View File

@@ -1,2 +1,8 @@
{% include 'asuzr/attendance.html' %} <table WIDTH="100%">
{% include 'asuzr/orders.html' %} <TR VALIGN=top>
<TD WIDTH="40%">{% include 'asuzr/attendance.html' %}</TD>
<TD WIDTH="5%"></TD>
<TD WIDTH="55%">{% include 'asuzr/orders.html' %}</TD>
</TR>
</table>
{% include 'asuzr/plan_balance.html' %}

View File

@@ -17,13 +17,13 @@
<TH>Заказы</TH> <TH>Заказы</TH>
<TH>Стоимость</TH> <TH>Стоимость</TH>
</TR> </TR>
{% for attend in attend_list %} {% for attend in attend_list %}
<TR bgcolor={{attend.day_color}}> <TR bgcolor={{attend.day_color}}>
<TD>{{ attend.date_dd_mm_yy}}</TD> <TD>{{ attend.date_dd_mm_yy}}</TD>
<TD>{{ attend.week_day}}</TD> <TD>{{ attend.week_day}}</TD>
<TD>{{ attend.calls }}</TD> <TD>{{ attend.calls }}</TD>
<TD>{{ attend.visits }}</TD> <TD>{{ attend.visits }}</TD>
<TD>{{ attend.order_count}}</TD> <TD><a href="{% url 'asuzr-main' attend.date.day attend.date.month attend.date.year %}">{{ attend.order_count}}</a></TD>
<TD>{{ attend.orders_price}}</TD> <TD>{{ attend.orders_price}}</TD>
</TR> </TR>
{% endfor %} {% endfor %}

View File

@@ -5,7 +5,7 @@
<style></style> <style></style>
</head> </head>
<body> <body>
<H1>Заказы</H1> <H1>Заказы на {{ d_date }} </H1>
<TABLE BORDER WIDTH="100%"> <TABLE BORDER WIDTH="100%">
{% if order_list %} {% if order_list %}
<ul> <ul>

View File

@@ -0,0 +1,21 @@
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<body>
<H4>Справочно:</H4>
<TABLE BORDER WIDTH="20%">
<ul>
<TR>
<TD>ПЛАН</TD>
<TD>{{ plan.plan }}</TD>
</TR>
<TR>
<TD>Осталось до выполнения</TD>
<TD>{{ balance }}</TD>
</TR>
</ul>
</body>
</html>