From 57dc16f67a2ff3ef378cec76c4fd147bf9980f82 Mon Sep 17 00:00:00 2001
From: haze on hillside <2428349829@qq.com>
Date: Sat, 3 Jun 2023 16:48:47 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BA=91=E5=9B=BE=E7=94=9F=E6=88=90=E4=B8=8D?=
=?UTF-8?q?=E5=87=BA=E6=9D=A5=EF=BC=8Ccnm=EF=BC=8C=E7=94=A8=E4=BA=86?=
=?UTF-8?q?=E6=9F=B1=E5=BD=A2=E5=9B=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/encodings.xml | 1 +
system/LiveStream/settings.py | 4 +-
system/login/urls.py | 1 +
system/login/views.py | 42 +-
system/login/virtual.py | 3 +-
system/proc/models.py | 465 ++++++++++++++++--
system/proc/views.py | 4 +-
system/sales/views.py | 4 +-
.../Pye_chart/sales_index_movement.html | 303 ++++--------
system/templates/WareHouse/in_out_return.html | 10 +-
system/templates/WareHouse/print_bar.html | 54 +-
system/templates/graph/test_graph_1.html | 2 +-
system/templates/graph/test_graph_2.html | 2 +-
system/templates/graph/test_graph_3.html | 2 +-
system/templates/graph/test_graph_4.html | 2 +-
system/templates/graph/test_graph_5.html | 2 +-
system/templates/graph/wwww.html | 279 +++++++++++
system/templates/index.html | 4 -
system/templates/live-info.html | 21 +-
system/warehouse/models.py | 10 +-
system/warehouse/views.py | 23 +-
21 files changed, 917 insertions(+), 321 deletions(-)
create mode 100644 system/templates/graph/wwww.html
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 234d9e3..d526881 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -3,6 +3,7 @@
+
\ No newline at end of file
diff --git a/system/LiveStream/settings.py b/system/LiveStream/settings.py
index 4d4f1a0..18200a1 100644
--- a/system/LiveStream/settings.py
+++ b/system/LiveStream/settings.py
@@ -39,8 +39,6 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
- 'django_htmx',
- 'django_htmx_refresh',
'login',#注册APP
'proc',#采购
'sales',#销售
@@ -89,7 +87,7 @@ WSGI_APPLICATION = 'LiveStream.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
- 'NAME': 'live',
+ 'NAME': 'livestream',
'USER': 'root',
'PASSWORD': '123123',
'HOST': 'localhost',
diff --git a/system/login/urls.py b/system/login/urls.py
index bc9d835..0e73e4a 100644
--- a/system/login/urls.py
+++ b/system/login/urls.py
@@ -10,6 +10,7 @@ urlpatterns = [
path('index1/', views.index_1, name='index1'),
path('register/', views.register, name='register'),
path('create/', views.create, name='create'),
+ path('index1/Proc_index/', include("proc.urls"), name='proc_index'),
path('index1/Proc_index/', views.proc_index, name='proc_index'),
path('index1/Warehouse_index/', include('warehouse.urls')),
path('index1/live_info', views.Stream_info, name='stream_info'),
diff --git a/system/login/views.py b/system/login/views.py
index eff0583..b7f9b39 100644
--- a/system/login/views.py
+++ b/system/login/views.py
@@ -215,7 +215,6 @@ class live:
ren8=[]
self.d = danmu8
self.ren = ren8
- self.mod1=mod1
self.record=record# 直播记录号
self.live_nu=live_nu#直播间号
self.host=host#主播号
@@ -425,10 +424,13 @@ class ChartView5(APIView):##生成一个展示数据的,用于交互的json文
class ChartUpdateView5(APIView):#通过该函数进行动态输入
def get(self, request, *args, **kwargs):
- s4=ren5.get()
- #print(s)
- return JsonResponse({"name": s4["时间"], "value": s4["人数"]})
-
+ try:
+ s=ren5.pop(-1)
+ print(s)
+ return JsonResponse({"name": s["时间"], "value": s["人数"]})
+ except:
+ s={"时间":0,"人数":0}
+ return JsonResponse({"name": s["时间"], "value": s["人数"]})
def home_page5(request):#返回展示数据的模板
return render(request,'../templates/Pye_chart/test5.html',{})
@@ -454,9 +456,13 @@ class ChartView6(APIView):##生成一个展示数据的,用于交互的json文
class ChartUpdateView6(APIView):#通过该函数进行动态输入
def get(self, request, *args, **kwargs):
- s4=ren6.get()
- #print(s)
- return JsonResponse({"name": s4["时间"], "value": s4["人数"]})
+ try:
+ s=ren6.pop(-1)
+ print(s)
+ return JsonResponse({"name": s["时间"], "value": s["人数"]})
+ except:
+ s={"时间":0,"人数":0}
+ return JsonResponse({"name": s["时间"], "value": s["人数"]})
def home_page6(request):#返回展示数据的模板
return render(request,'../templates/Pye_chart/test6.html',{})
@@ -483,9 +489,13 @@ class ChartView7(APIView):##生成一个展示数据的,用于交互的json文
class ChartUpdateView7(APIView):#通过该函数进行动态输入
def get(self, request, *args, **kwargs):
- s4=ren7.get()
- #print(s)
- return JsonResponse({"name": s4["时间"], "value": s4["人数"]})
+ try:
+ s=ren7.pop(-1)
+ print(s)
+ return JsonResponse({"name": s["时间"], "value": s["人数"]})
+ except:
+ s={"时间":0,"人数":0}
+ return JsonResponse({"name": s["时间"], "value": s["人数"]})
def home_page7(request):#返回展示数据的模板
return render(request,'../templates/Pye_chart/test7.html',{})
@@ -512,9 +522,13 @@ class ChartView8(APIView):##生成一个展示数据的,用于交互的json文
class ChartUpdateView8(APIView):#通过该函数进行动态输入
def get(self, request, *args, **kwargs):
- s4=ren8.get()
- #print(s)
- return JsonResponse({"name": s4["时间"], "value": s4["人数"]})
+ try:
+ s=ren8.pop(-1)
+ print(s)
+ return JsonResponse({"name": s["时间"], "value": s["人数"]})
+ except:
+ s={"时间":0,"人数":0}
+ return JsonResponse({"name": s["时间"], "value": s["人数"]})
def home_page8(request):#返回展示数据的模板
return render(request,'../templates/Pye_chart/test8.html',{})
diff --git a/system/login/virtual.py b/system/login/virtual.py
index 7c2b5df..74afef8 100644
--- a/system/login/virtual.py
+++ b/system/login/virtual.py
@@ -21,8 +21,7 @@ from .models import LiveroomInfo
from .models import SalesInfo
from django.db import connection
import asyncio
-import aiomysql
-from dbutils.pooled_db import PooledDB#使用这个可以增加连接数
+
import pymysql
diff --git a/system/proc/models.py b/system/proc/models.py
index def1d9b..80e01fb 100644
--- a/system/proc/models.py
+++ b/system/proc/models.py
@@ -1,7 +1,160 @@
+# This is an auto-generated Django model module.
+# You'll have to do the following manually to clean this up:
+# * Rearrange models' order
+# * Make sure each model has one field with primary_key=True
+# * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior
+# * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
+# Feel free to rename the models, but don't rename db_table values or field names.
from django.db import models
-# Create your models here.
+class AuthGroup(models.Model):
+ name = models.CharField(unique=True, max_length=150)
+
+ class Meta:
+ managed = False
+ db_table = 'auth_group'
+
+
+class AuthGroupPermissions(models.Model):
+ id = models.BigAutoField(primary_key=True)
+ group = models.ForeignKey(AuthGroup, models.DO_NOTHING)
+ permission = models.ForeignKey('AuthPermission', models.DO_NOTHING)
+
+ class Meta:
+ managed = False
+ db_table = 'auth_group_permissions'
+ unique_together = (('group', 'permission'),)
+
+
+class AuthPermission(models.Model):
+ name = models.CharField(max_length=255)
+ content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING)
+ codename = models.CharField(max_length=100)
+
+ class Meta:
+ managed = False
+ db_table = 'auth_permission'
+ unique_together = (('content_type', 'codename'),)
+
+
+class AuthUser(models.Model):
+ password = models.CharField(max_length=128)
+ last_login = models.DateTimeField(blank=True, null=True)
+ is_superuser = models.IntegerField()
+ username = models.CharField(unique=True, max_length=150)
+ first_name = models.CharField(max_length=150)
+ last_name = models.CharField(max_length=150)
+ email = models.CharField(max_length=254)
+ is_staff = models.IntegerField()
+ is_active = models.IntegerField()
+ date_joined = models.DateTimeField()
+
+ class Meta:
+ managed = False
+ db_table = 'auth_user'
+
+
+class AuthUserGroups(models.Model):
+ id = models.BigAutoField(primary_key=True)
+ user = models.ForeignKey(AuthUser, models.DO_NOTHING)
+ group = models.ForeignKey(AuthGroup, models.DO_NOTHING)
+
+ class Meta:
+ managed = False
+ db_table = 'auth_user_groups'
+ unique_together = (('user', 'group'),)
+
+
+class AuthUserUserPermissions(models.Model):
+ id = models.BigAutoField(primary_key=True)
+ user = models.ForeignKey(AuthUser, models.DO_NOTHING)
+ permission = models.ForeignKey(AuthPermission, models.DO_NOTHING)
+
+ class Meta:
+ managed = False
+ db_table = 'auth_user_user_permissions'
+ unique_together = (('user', 'permission'),)
+
+
+class BackgroundEmp(models.Model):
+ eid = models.OneToOneField('EmployeeInfo', models.DO_NOTHING, db_column='eid', primary_key=True)
+ bge_name = models.CharField(max_length=10, blank=True, null=True)
+ bge_duty = models.CharField(max_length=10, blank=True, null=True)
+ login_status = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'background_emp'
+
+
+class CollectingNotes(models.Model):
+ collect_id = models.CharField(primary_key=True, max_length=20)
+ recv = models.ForeignKey('Receivables', models.DO_NOTHING)
+ collect_name = models.CharField(max_length=20, blank=True, null=True)
+ collect_way = models.CharField(max_length=20, blank=True, null=True)
+ collect_num = models.FloatField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'collecting_notes'
+
+
+class Danmu(models.Model):
+ dm_id = models.CharField(primary_key=True, max_length=25)
+ live_record_id = models.CharField(max_length=20)
+ user_name = models.CharField(max_length=50, blank=True, null=True)
+ send_time = models.DateTimeField(blank=True, null=True)
+ send_text = models.CharField(max_length=256, blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'danmu'
+
+
+class DjangoAdminLog(models.Model):
+ action_time = models.DateTimeField()
+ object_id = models.TextField(blank=True, null=True)
+ object_repr = models.CharField(max_length=200)
+ action_flag = models.PositiveSmallIntegerField()
+ change_message = models.TextField()
+ content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING, blank=True, null=True)
+ user = models.ForeignKey(AuthUser, models.DO_NOTHING)
+
+ class Meta:
+ managed = False
+ db_table = 'django_admin_log'
+
+
+class DjangoContentType(models.Model):
+ app_label = models.CharField(max_length=100)
+ model = models.CharField(max_length=100)
+
+ class Meta:
+ managed = False
+ db_table = 'django_content_type'
+ unique_together = (('app_label', 'model'),)
+
+
+class DjangoMigrations(models.Model):
+ id = models.BigAutoField(primary_key=True)
+ app = models.CharField(max_length=255)
+ name = models.CharField(max_length=255)
+ applied = models.DateTimeField()
+
+ class Meta:
+ managed = False
+ db_table = 'django_migrations'
+
+
+class DjangoSession(models.Model):
+ session_key = models.CharField(primary_key=True, max_length=40)
+ session_data = models.TextField()
+ expire_date = models.DateTimeField()
+
+ class Meta:
+ managed = False
+ db_table = 'django_session'
class EmployeeInfo(models.Model):
@@ -15,6 +168,158 @@ class EmployeeInfo(models.Model):
db_table = 'employee_info'
+class GoodsInfo(models.Model):
+ goods_id = models.CharField(primary_key=True, max_length=10)
+ goods_name = models.CharField(max_length=20, blank=True, null=True)
+ goods_type = models.CharField(max_length=20, blank=True, null=True)
+ gprice = models.FloatField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'goods_info'
+
+
+class GoodsInv(models.Model):
+ inv_id = models.CharField(primary_key=True, max_length=10)
+ eid = models.ForeignKey('StockAdmin', models.DO_NOTHING, db_column='eid')
+ inv_time = models.DateTimeField()
+
+ class Meta:
+ managed = False
+ db_table = 'goods_inv'
+
+
+class Inventory(models.Model):
+ inv = models.OneToOneField(GoodsInv, models.DO_NOTHING, primary_key=True)
+ goods = models.ForeignKey('StockInfo', models.DO_NOTHING)
+
+ class Meta:
+ managed = False
+ db_table = 'inventory'
+ unique_together = (('inv', 'goods'),)
+
+
+class Jbj4Renqi(models.Model):
+ tim = models.DateTimeField(blank=True, null=True)
+ peo = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'jbj4_renqi'
+
+
+class Jbj5Renqi(models.Model):
+ tim = models.DateTimeField(blank=True, null=True)
+ peo = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'jbj5_renqi'
+
+
+class Jbj6Renqi(models.Model):
+ tim = models.DateTimeField(blank=True, null=True)
+ peo = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'jbj6_renqi'
+
+
+class Jbj7Renqi(models.Model):
+ tim = models.DateTimeField(blank=True, null=True)
+ peo = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'jbj7_renqi'
+
+
+class Jbj8Renqi(models.Model):
+ tim = models.DateTimeField(blank=True, null=True)
+ peo = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'jbj8_renqi'
+
+
+class LiveRecord(models.Model):
+ live_record_id = models.CharField(primary_key=True, max_length=20)
+ liveroom = models.ForeignKey('LiveroomInfo', models.DO_NOTHING)
+ eid = models.ForeignKey('ZbInfo', models.DO_NOTHING, db_column='eid')
+ live_starttime = models.DateTimeField(blank=True, null=True)
+ live_endtime = models.DateTimeField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'live_record'
+
+
+class LiveroomInfo(models.Model):
+ liveroom_id = models.CharField(primary_key=True, max_length=10)
+ liveroom_status = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'liveroom_info'
+
+
+class LogisticsInfo(models.Model):
+ logi_id = models.CharField(max_length=60, primary_key=True)
+ sup = models.OneToOneField('SupplyInfo', models.DO_NOTHING, related_name='order_logi_sup')
+ procure = models.ForeignKey('ProcureOrder', models.DO_NOTHING, to_field='procure',
+ related_name="order_logi_procure")
+ start_time = models.DateTimeField()
+ logi_status = models.CharField(max_length=10)
+ arrival_time = models.DateTimeField(blank=True, null=True)
+ over = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'logistics_info'
+ unique_together = (('sup', 'logi_id', 'procure'),)
+
+
+class OrderDetails(models.Model):
+ order_id = models.CharField(primary_key=True, max_length=25)
+ goods = models.ForeignKey(GoodsInfo, models.DO_NOTHING)
+ goods_num = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'order_details'
+ unique_together = (('order_id', 'goods'),)
+
+
+class OrderInfo(models.Model):
+ order_id = models.CharField(primary_key=True, max_length=25)
+ live_record_id = models.CharField(max_length=20)
+ cid = models.CharField(max_length=20)
+ eid = models.ForeignKey('SalesInfo', models.DO_NOTHING, db_column='eid')
+ order_time = models.DateTimeField(blank=True, null=True)
+ address = models.CharField(max_length=100, blank=True, null=True)
+ sum_price = models.FloatField(blank=True, null=True)
+ process_status = models.CharField(max_length=10, blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'order_info'
+
+
+class PredictNum(models.Model):
+ goods_id = models.CharField(primary_key=True, max_length=25)
+ goods_name = models.CharField(max_length=45)
+ stock_num = models.IntegerField()
+ predict_num = models.IntegerField()
+ kucun_num = models.IntegerField()
+ caigou_num = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'predict_num'
+
+
class ProcureAdmin(models.Model):
eid = models.OneToOneField(EmployeeInfo, models.DO_NOTHING, db_column='eid', primary_key=True)
pro_name = models.CharField(max_length=10, blank=True, null=True)
@@ -38,102 +343,108 @@ class ProcureOrder(models.Model): # 采购订单
unique_together = (('sup', 'procure'),)
-class ProcurePlan(models.Model): # 采购计划
+class ProcurePlan(models.Model):
procure = models.OneToOneField('ReplenishRequest', models.DO_NOTHING, primary_key=True)
check_status = models.CharField(max_length=8)
project_intro = models.CharField(max_length=1024, blank=True, null=True)
procure_rule = models.CharField(max_length=1024, blank=True, null=True)
procure_content = models.CharField(max_length=1024, blank=True, null=True)
- over = models.IntegerField()
+ over = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'procure_plan'
+class Receivables(models.Model):
+ recv_id = models.CharField(primary_key=True, max_length=20)
+ order = models.ForeignKey(OrderInfo, models.DO_NOTHING)
+ invoice_id = models.CharField(max_length=20, blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'receivables'
+
+
class ReplenishRequest(models.Model):
request_num = models.IntegerField()
request_time = models.DateTimeField()
- procure_id = models.CharField(primary_key=True, max_length=10)
- eid = models.ForeignKey(ProcureAdmin, models.DO_NOTHING, db_column='eid')
+ procure_id = models.CharField(primary_key=True, max_length=50)
goods = models.ForeignKey('StockInfo', models.DO_NOTHING, blank=True, null=True)
- over = models.IntegerField()
+ over = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'replenish_request'
-class SupplyInfo(models.Model):
- sup_id = models.CharField(primary_key=True, max_length=10)
- sup_name = models.CharField(max_length=20)
- sup_contact = models.CharField(max_length=15)
- sup_serve = models.CharField(max_length=1024)
- sup_level = models.CharField(max_length=10)
+class ReturnInfo(models.Model):
+ return_id = models.CharField(primary_key=True, max_length=20)
+ order = models.ForeignKey(OrderInfo, models.DO_NOTHING)
+ apply_time = models.DateTimeField(blank=True, null=True)
+ process_time = models.DateTimeField(blank=True, null=True)
+ process_way = models.CharField(max_length=20, blank=True, null=True)
+ retrun_status = models.CharField(max_length=20, blank=True, null=True)
class Meta:
managed = False
- db_table = 'supply_info'
+ db_table = 'return_info'
-class StockInfo(models.Model):
- goods = models.OneToOneField('GoodsInfo', models.DO_NOTHING, primary_key=True)
- goods_details = models.CharField(max_length=1024, blank=True, null=True)
- stock_num = models.IntegerField()
+class SalesIndex(models.Model):
+ goods = models.OneToOneField(GoodsInfo, models.DO_NOTHING, primary_key=True)
+ profit_rate = models.FloatField(blank=True, null=True)
+ sales_num = models.IntegerField(blank=True, null=True)
+ return_rate = models.FloatField(blank=True, null=True)
+ kpi_rate = models.FloatField(blank=True, null=True)
+ index_month = models.IntegerField()
class Meta:
managed = False
- db_table = 'stock_info'
+ db_table = 'sales_index'
+ unique_together = (('goods', 'index_month'),)
-class GoodsInfo(models.Model):
- goods_id = models.CharField(primary_key=True, max_length=10)
- goods_name = models.CharField(max_length=20, blank=True, null=True)
- goods_type = models.CharField(max_length=20, blank=True, null=True)
- gprice = models.FloatField(blank=True, null=True)
+class SalesInfo(models.Model):
+ eid = models.OneToOneField(EmployeeInfo, models.DO_NOTHING, db_column='eid', primary_key=True)
+ sales_name = models.CharField(max_length=10, blank=True, null=True)
+ sales_duty = models.CharField(max_length=20, blank=True, null=True)
+ login_status = models.IntegerField(blank=True, null=True)
+ salary = models.FloatField(blank=True, null=True)
class Meta:
managed = False
- db_table = 'goods_info'
+ db_table = 'sales_info'
-class LogisticsInfo(models.Model):
- logi_id = models.CharField(max_length=10, primary_key=True)
- sup = models.OneToOneField('SupplyInfo', models.DO_NOTHING, related_name='order_logi_sup')
- procure = models.ForeignKey('ProcureOrder', models.DO_NOTHING, to_field='procure', related_name="order_logi_procure")
- start_time = models.DateTimeField()
- logi_status = models.CharField(max_length=10)
- arrival_time = models.DateTimeField(blank=True, null=True)
- over = models.IntegerField()
+class SalesPerformance(models.Model):
+ sales_performance = models.IntegerField(blank=True, null=True)
+ performance_rank = models.IntegerField(blank=True, null=True)
+ performance_month = models.IntegerField(primary_key=True)
+ eid = models.ForeignKey(EmployeeInfo, models.DO_NOTHING, db_column='eid')
class Meta:
managed = False
- db_table = 'logistics_info'
- unique_together = (('sup', 'logi_id', 'procure'),)
+ db_table = 'sales_performance'
+ unique_together = (('performance_month', 'eid'),)
-class QualityInfo(models.Model):
- sup = models.OneToOneField(SupplyInfo, models.DO_NOTHING, to_field='sup_id',
- related_name='qualityinfo_sup_set')
- logi = models.ForeignKey(LogisticsInfo, models.DO_NOTHING, to_field='logi_id', related_name='qualityinfo_logi_set')
- procure = models.ForeignKey(ReplenishRequest, models.DO_NOTHING, primary_key=True, )
- quality_status = models.CharField(max_length=10)
- quality_result = models.CharField(max_length=10)
- details_info = models.CharField(max_length=1024, blank=True, null=True)
- over = models.IntegerField()
+class StockAdmin(models.Model):
+ eid = models.OneToOneField(EmployeeInfo, models.DO_NOTHING, db_column='eid', primary_key=True)
+ st_name = models.CharField(max_length=10, blank=True, null=True)
class Meta:
managed = False
- db_table = 'quality_info'
- unique_together = (('sup', 'logi', 'procure'),)
+ db_table = 'stock_admin'
class StockIn(models.Model):
- procure = models.CharField(primary_key=True, max_length=10) # The composite primary key (procure, goods_id) found, that is not supported. The first column is selected.
+ procure = models.CharField(primary_key=True, max_length=25)
goods_id = models.CharField(max_length=45)
goods_name = models.CharField(max_length=45)
in_num = models.IntegerField()
in_time = models.DateTimeField()
+ in_status = models.IntegerField()
class Meta:
managed = False
@@ -141,4 +452,66 @@ class StockIn(models.Model):
unique_together = (('procure', 'goods_id'),)
+class StockInfo(models.Model):
+ goods = models.OneToOneField(GoodsInfo, models.DO_NOTHING, primary_key=True)
+ goods_name = models.CharField(max_length=45, blank=True, null=True)
+ stock_num_system = models.IntegerField()
+ stock_num_true = models.IntegerField(blank=True, null=True)
+ stock_num_diff = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'stock_info'
+
+
+class StockOut(models.Model):
+ order = models.OneToOneField(OrderInfo, models.DO_NOTHING, primary_key=True)
+ goods = models.ForeignKey(StockInfo, models.DO_NOTHING)
+ goods_name = models.CharField(max_length=45)
+ out_time = models.DateTimeField(blank=True, null=True)
+ out_num = models.IntegerField()
+ out_status = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'stock_out'
+ unique_together = (('order', 'goods'),)
+
+
+class SupplyInfo(models.Model):
+ sup_id = models.CharField(primary_key=True, max_length=10)
+ sup_name = models.CharField(max_length=20)
+ sup_contact = models.CharField(max_length=1024)
+ sup_serve = models.CharField(max_length=1024)
+ sup_level = models.CharField(max_length=10)
+
+ class Meta:
+ managed = False
+ db_table = 'supply_info'
+
+
+class ZbInfo(models.Model):
+ eid = models.OneToOneField(EmployeeInfo, models.DO_NOTHING, db_column='eid', primary_key=True)
+ zbname = models.CharField(max_length=10, blank=True, null=True)
+ zblevel = models.CharField(max_length=1024, blank=True, null=True)
+ login_status = models.IntegerField(blank=True, null=True)
+
+ class Meta:
+ managed = False
+ db_table = 'zb_info'
+
+class QualityInfo(models.Model):
+ sup = models.OneToOneField(SupplyInfo, models.DO_NOTHING, to_field='sup_id',
+ related_name='qualityinfo_sup_set')
+ logi = models.ForeignKey(LogisticsInfo, models.DO_NOTHING, to_field='logi_id', related_name='qualityinfo_logi_set')
+ procure = models.ForeignKey(ReplenishRequest, models.DO_NOTHING, primary_key=True, )
+ quality_status = models.CharField(max_length=10)
+ quality_result = models.CharField(max_length=10)
+ details_info = models.CharField(max_length=1024, blank=True, null=True)
+ over = models.IntegerField()
+
+ class Meta:
+ managed = False
+ db_table = 'quality_info'
+ unique_together = (('sup', 'logi', 'procure'),)
diff --git a/system/proc/views.py b/system/proc/views.py
index 17d284a..8d68c6f 100644
--- a/system/proc/views.py
+++ b/system/proc/views.py
@@ -123,7 +123,7 @@ def insert_order(request): # 生成采购计划,并插入数据库
{"replenish": replenish, "plan": plan, "order": order, "quality": quality})
replenish1 = plan.procure
# print(plan)
- sup = SupplyInfo.objects.filter(sup_serve=plan.procure_content).order_by('sup_level').first()
+ sup = SupplyInfo.objects.filter(sup_serve__icontains=plan.procure_content).order_by('sup_level').first()
num = replenish1.request_num
price = replenish1.goods.goods.gprice / 2.5
ProcureOrder.objects.create(procure=plan, sup=sup, procure_price=price, procure_num=num, over=0)
@@ -244,7 +244,7 @@ def good_sub(request):
if quality.quality_result == "合格":
StockIn.objects.create(procure=id, goods_id=good_id, goods_name=good_name,
- in_num=in_num, in_time=in_time)
+ in_num=in_num, in_time=in_time, in_status=0)
replenish1.over = 1
replenish1.save()
plan.over = 1
diff --git a/system/sales/views.py b/system/sales/views.py
index 15f6ded..677f0cb 100644
--- a/system/sales/views.py
+++ b/system/sales/views.py
@@ -55,7 +55,7 @@ def deliver_process(request):
for good in deliver_goods:
StockOut.objects.create(
order_id=order.order_id,
- goods_id=StockInfo.objects.get(goods=good.goods.goods_id).goods_id,
+ goods_id=good.goods.goods_id,
goods_name=good.goods.goods_name,
out_time=datetime.datetime.now(), out_num=good.goods_num)
deliver_list.update(process_status="已发货")
@@ -91,5 +91,5 @@ def sales_movement(request):
bar_sum.set_series_opts(label_opts=opt.LabelOpts(position="right", formatter="{b}:{c}"))
bar_sum.set_global_opts(title_opts=opt.TitleOpts(title="销售额/量对比"),
legend_opts=opt.LegendOpts(type_="scroll", orient="vertical"))
- bar_sum.render("Django_structure/system/templates/Pye_chart/sales_index_movement.html")
+ bar_sum.render("templates/Pye_chart/sales_index_movement.html")
return render(request, "../templates/pye_chart/sales_index_movement.html")
diff --git a/system/templates/Pye_chart/sales_index_movement.html b/system/templates/Pye_chart/sales_index_movement.html
index d2601cd..09a6072 100644
--- a/system/templates/Pye_chart/sales_index_movement.html
+++ b/system/templates/Pye_chart/sales_index_movement.html
@@ -3,18 +3,16 @@
Awesome-pyecharts
-
-
+
+
-
-
-
-
diff --git a/system/templates/WareHouse/in_out_return.html b/system/templates/WareHouse/in_out_return.html
index a37a59e..ed81d2b 100644
--- a/system/templates/WareHouse/in_out_return.html
+++ b/system/templates/WareHouse/in_out_return.html
@@ -45,7 +45,7 @@
{{item.goods_name}} |
{{item.in_num}} |
{{item.in_time}} |
- 入 |
+ {{item.in_status_cn}} |
{% endfor %}
@@ -78,12 +78,12 @@
{% for item in stock_out_list%}
| {{forloop.counter}} |
- {{item.oder.order_id}} |
+ {{item.order.order_id}} |
{{item.goods.goods_id}} |
{{item.goods_name}} |
{{item.out_num}} |
{{item.out_time}} |
- 出 |
+ {{item.out_status_cn}} |
{% endfor %}
@@ -116,12 +116,12 @@
{% for item in stock_return_list%}
| {{forloop.counter}} |
- {{item.order.order_id}} |
+ {{item.order_id}} |
{{item.goods.goods_id}} |
{{item.goods_name}} |
{{item.goods_num}} |
{{item.return_time}} |
- 退 |
+ {{item.return_status_cn}} |
{% endfor %}
diff --git a/system/templates/WareHouse/print_bar.html b/system/templates/WareHouse/print_bar.html
index 43e60d4..42eb2c7 100644
--- a/system/templates/WareHouse/print_bar.html
+++ b/system/templates/WareHouse/print_bar.html
@@ -7,11 +7,11 @@
-
+