在很多企业,在年底总结时,一般都会定好来年的销售任务并分配到销售区域中。销售区域负责人领到任务后,会分解到每个销售人员身上。
任务分解按日、按周太短,按年、按季太长,按月刚刚好,比较符号实际情况。
销售额,在实际系统中是通过汇总销售订单总额后插入到统计表中的。在这套练手的销售管理系统中,没有涉及到订单这一块,咱用手工录入也是可以的。
43.1 界面效果
有关区域任务的界面这里就不提供了,反正都是按模板自动生成的。重点介绍下销售统计这个界面。它是图形化的,令人耳目一新的界面。有了它,老板做梦都会笑被笑醒,如果销售额与日俱增、突飞猛进的话。
43.2 数据字典
区域任务表(Task)
43.3 创建应用
创建task应用并集成到…(你懂得)。有关销售目标功能涉及到的图标,我找到了一些,现提供给你参考。
# 图标设置
SIMPLEUI_ICON = {
……
'销售目标': 'fas fa-chart-bar',
'区域任务': 'fas el-icon-news',
'个人任务': 'fas el-icon-wallet',
'销售统计': 'fas el-icon-s-data',
}
在task/apps.py文件中新增如下内容。
from django.apps import AppConfig
class TaskConfig(AppConfig):
name = 'task'
verbose_name = '销售目标'
在task/__init__.py文件中新增如下内容。
default_app_config = 'task.apps.TaskConfig'
43.4 区域任务
在models.py的内容里,列出了销售统计(SaleSum),主要目的是为了能将它纳入到后台管理中。有了它,才能拥有"销售统计"的二级菜单,否则了无踪迹。
from django.db import models
# 区域任务
class Task(models.Model):
region = models.CharField(max_length=64, verbose_name='区域', null=False, blank=False)
year = models.IntegerField(verbose_name='年份', null=False, blank=False)
# 销售目标
Jan_task = models.DecimalField(verbose_name='1月', decimal_places=2, max_digits=9)
Feb_task = models.DecimalField(verbose_name='2月', decimal_places=2, max_digits=9)
Mar_task = models.DecimalField(verbose_name='3月', decimal_places=2, max_digits=9)
Apr_task = models.DecimalField(verbose_name='4月', decimal_places=2, max_digits=9)
May_task = models.DecimalField(verbose_name='5月', decimal_places=2, max_digits=9)
Jun_task = models.DecimalField(verbose_name='6月', decimal_places=2, max_digits=9)
Jul_task = models.DecimalField(verbose_name='7月', decimal_places=2, max_digits=9)
Aug_task = models.DecimalField(verbose_name='8月', decimal_places=2, max_digits=9)
Sep_task = models.DecimalField(verbose_name='9月', decimal_places=2, max_digits=9)
Oct_task = models.DecimalField(verbose_name='10月', decimal_places=2, max_digits=9)
Nov_task = models.DecimalField(verbose_name='11月', decimal_places=2, max_digits=9)
Dec_task = models.DecimalField(verbose_name='12月', decimal_places=2, max_digits=9)
# 实际销售额
Jan_sale = models.DecimalField(verbose_name='1月', decimal_places=2, max_digits=9, default=0)
Feb_sale = models.DecimalField(verbose_name='2月', decimal_places=2, max_digits=9, default=0)
Mar_sale = models.DecimalField(verbose_name='3月', decimal_places=2, max_digits=9, default=0)
Apr_sale = models.DecimalField(verbose_name='4月', decimal_places=2, max_digits=9, default=0)
May_sale = models.DecimalField(verbose_name='5月', decimal_places=2, max_digits=9, default=0)
Jun_sale = models.DecimalField(verbose_name='6月', decimal_places=2, max_digits=9, default=0)
Jul_sale = models.DecimalField(verbose_name='7月', decimal_places=2, max_digits=9, default=0)
Aug_sale = models.DecimalField(verbose_name='8月', decimal_places=2, max_digits=9, default=0)
Sep_sale = models.DecimalField(verbose_name='9月', decimal_places=2, max_digits=9, default=0)
Oct_sale = models.DecimalField(verbose_name='10月', decimal_places=2, max_digits=9, default=0)
Nov_sale = models.DecimalField(verbose_name='11月', decimal_places=2, max_digits=9, default=0)
Dec_sale = models.DecimalField(verbose_name='12月', decimal_places=2, max_digits=9, default=0)
create_time = models.DateTimeField(verbose_name='创建时间', auto_now=True)
class Meta:
verbose_name = "任务"
verbose_name_plural = "区域任务"
# 个人任务
class MyTask(models.Model):
class Meta:
verbose_name = "任务"
verbose_name_plural = "个人任务"
# 销售统计
class SaleSum(models.Model):
permissions = ('销售统计',)
class Meta:
verbose_name = "销售统计"
verbose_name_plural = "销售统计"
单有model,单有数据。如果想在页面上有一番作为的话,还需要在ModelAdmin中进行注册。有关ModelAdmin的注册内容,请见下一章。