initial commit
This commit is contained in:
101
asuzr/models.py
Normal file
101
asuzr/models.py
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
# Create your models here.
|
||||
#Соответствие названий и номеров дней недели
|
||||
class Common:
|
||||
day_names = ("Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье")
|
||||
day_colors = ("FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF","#FFE4E1", "#FFE4E1")
|
||||
|
||||
#Изделия
|
||||
class Product(models.Model):
|
||||
name = models.CharField(max_length=150)
|
||||
prod_period = models.IntegerField()#трудоемкость, дней
|
||||
|
||||
#Таблица посещаемости
|
||||
class Attendance(models.Model):
|
||||
date = models.DateField()
|
||||
calls = models.IntegerField()
|
||||
visits = models.IntegerField()
|
||||
|
||||
@property
|
||||
def date_dd_mm_yy(self):
|
||||
return self.date.strftime("%d/%m/%y")
|
||||
|
||||
@property
|
||||
def week_day(self):
|
||||
day_number = self.date.weekday()
|
||||
day_name = Common.day_names[day_number]
|
||||
return day_name
|
||||
|
||||
@property
|
||||
def day_color(self):
|
||||
day_number = self.date.weekday()
|
||||
color = Common.day_colors[day_number]
|
||||
return color
|
||||
|
||||
@property
|
||||
def order_count(self):
|
||||
return Order.objects.filter(date=self.date).count()
|
||||
|
||||
@property
|
||||
def orders_price(self):
|
||||
orders = Order.objects.filter(date=self.date)
|
||||
day_price = sum(o.price for o in orders)
|
||||
return day_price
|
||||
|
||||
|
||||
#Заказы
|
||||
class Order(models.Model):
|
||||
date = models.DateField() #дата
|
||||
product = models.ForeignKey(Product) #id изделия
|
||||
price = models.DecimalField(max_digits=12, decimal_places=2) #стоимость
|
||||
address = models.CharField(max_length=150) #адрес
|
||||
designer = models.ForeignKey(User, related_name='+') #id дизайнера
|
||||
deadline = models.DateField() #срок сдачи
|
||||
delivery = models.BooleanField(default=False) #доставка
|
||||
lifting = models.BooleanField(default=False) #подъем
|
||||
paid = models.DecimalField(max_digits=12, decimal_places=2) #оплачено
|
||||
approved = models.DateTimeField(null=True, blank = True) #согласовано
|
||||
executor = models.ForeignKey(User, related_name='+') #id исполнителя
|
||||
is_done = models.BooleanField(default=False) #сдан
|
||||
calls = models.TextField(null=True, blank = True) #обзвон
|
||||
contact = models.CharField(max_length=150, null=True, blank = True) #контактное лицо
|
||||
phone_num = models.CharField(max_length=150,null=True, blank = True) #контактный телефон
|
||||
cancelled = models.BooleanField(default=False) #отменен
|
||||
|
||||
@property
|
||||
def deadline_dmy(self):
|
||||
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 заказа
|
||||
|
||||
#Действия
|
||||
class Action(models.Model):
|
||||
name = models.CharField(max_length=150) #наименование действия
|
||||
|
||||
#Производственный план
|
||||
class ProdPlan(models.Model):
|
||||
start_date = models.DateField() #дата начала
|
||||
end_date = models.DateField() #дата окончания
|
||||
order = models.ForeignKey(Order) #id заказа
|
||||
executor = models.ForeignKey(User) #id исполнителя
|
||||
action = models.ForeignKey(Action) #id действия
|
||||
|
||||
#Протокол доступа
|
||||
class AccessProtocol(models.Model):
|
||||
time = models.DateTimeField() #время
|
||||
user = models.ForeignKey(User) #id пользователя
|
||||
event = models.CharField(max_length=150) #действие
|
||||
|
||||
#План заказов
|
||||
class OrderPlan(models.Model):
|
||||
month = models.DateField()
|
||||
plan = models.IntegerField()
|
||||
Reference in New Issue
Block a user