Таблица детализации заказов. Расчет выполнения плана
This commit is contained in:
@@ -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()
|
||||||
BIN
asuzr/models.pyc
BIN
asuzr/models.pyc
Binary file not shown.
@@ -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,6 +73,9 @@ 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)
|
||||||
@@ -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))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
asuzr/views.pyc
BIN
asuzr/views.pyc
Binary file not shown.
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
@@ -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)),
|
||||||
|
|||||||
BIN
record/urls.pyc
BIN
record/urls.pyc
Binary file not shown.
@@ -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' %}
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
<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 %}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
21
templates/asuzr/plan_balance.html
Normal file
21
templates/asuzr/plan_balance.html
Normal 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>
|
||||||
Reference in New Issue
Block a user