Quellcode durchsuchen

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

Anastasia vor 10 Jahren
Ursprung
Commit
e62be89b3d

+ 9 - 6
asuzr/models.py

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

BIN
asuzr/models.pyc


+ 41 - 2
asuzr/views.py

@@ -4,6 +4,7 @@ from django.template import Context, loader
 from asuzr.models import Product
 from asuzr.models import Attendance
 from asuzr.models import Order
+from asuzr.models import OrderPlan
 from datetime import datetime, date, time
 # Create your views here.
 
@@ -56,7 +57,7 @@ def get_filtered_list(p_list, year, month):
   filtered_list=[]
   for a in p_list:
     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)
       
   return filtered_list
@@ -72,13 +73,16 @@ def attend_order_table(request, year, month):
   order_list = Order.objects.all().order_by('id')
   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_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 filtered_order_list)
-    
+   
   t = loader.get_template('asuzr/attend_order.html')
   c = Context({
     'attend_list': filtered_attend_list,
@@ -88,9 +92,44 @@ def attend_order_table(request, year, month):
     'sum_orders': sum_orders,
     'sum_price': sum_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))
   
 
 

BIN
asuzr/views.pyc


BIN
db.sqlite3


+ 1 - 0
record/urls.py

@@ -10,6 +10,7 @@ urlpatterns = patterns('',
     url(r'^product/$', 'asuzr.views.prod_list'),
     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'^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'^attend_order/(?P<year>\d+)/(?P<month>\d+)/$', 'asuzr.views.attend_order_table'),
     url(r'^admin/', include(admin.site.urls)),

BIN
record/urls.pyc


+ 8 - 2
templates/asuzr/attend_order.html

@@ -1,2 +1,8 @@
-{% include 'asuzr/attendance.html' %}
-{% include 'asuzr/orders.html' %}
+<table WIDTH="100%">
+  <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' %}

+ 2 - 2
templates/asuzr/attendance.html

@@ -17,13 +17,13 @@
       <TH>Заказы</TH>
       <TH>Стоимость</TH>
     </TR>
-    {% for attend in attend_list %}
+    {% for attend in attend_list %}	
         <TR bgcolor={{attend.day_color}}>
 	  <TD>{{ attend.date_dd_mm_yy}}</TD>
 	  <TD>{{ attend.week_day}}</TD>
 	  <TD>{{ attend.calls }}</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>
         </TR>
     {% endfor %}

+ 1 - 1
templates/asuzr/orders.html

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

+ 21 - 0
templates/asuzr/plan_balance.html

@@ -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>