# docker一键安装
```
docker run -itd --name dbserver --restart=always -p 3306:3306 registry.cn-shanghai.aliyuncs.com/liu008/dbserver:1.1
docker run --link=dbserver:db --env DBIP=db --env DBPORT=3306 -p 8080:8080 -p 8022:22 -itd --name app --restart=always registry.cn-shanghai.aliyuncs.com/liu008/hetong:2.1
```
**记得对外开放8080端口**
# 一、软件系统构成:
## 1.1 功能介绍
本系统是一个针对于中小企业的**合同管理**与**员工出差费用报销管理**。其中以项目为主线,针对项目进行出货合同(收款),和进货合同(付款)的记录管理。合同其中还包含资金和发票的计划管理,让管理人员一目标了然。另外,报销管理模块也可以与项目进行挂钩,方便管理人员核算出整体项目的成本与利润。总之这是一个不求功能复杂,界面简洁的公司合同帐务管理软件。
## 1.2 架构
系统采用BS架构,前后端分离构建,前端WEB服务器(VUECLI架构),后端采用DJANGO;数据库采用MYSQL
## 1.3 WEB服务器环境:
nodeJS --version v14.13.1
npm -version 6.14.8
## 1.4 API服务器环境:
PYTHON:3.7
```
# pip list
Package Version
------------------- -------
asgiref 3.2.10
Cython 0.29.21
Django 3.1.2
django-filter 2.4.0
djangorestframework 3.12.1
pip 20.2.3
PyMySQL 0.10.1
pytz 2020.1
setuptools 50.3.0
sqlparse 0.4.1
wheel 0.35.1
```
## 1.5 数据库环境:
数据库安装MYSQL 版本 > 5.7
默认以下配置为和API服务器安装在同一台机器,可以自行改动,只需求在API服务中更改配置文件
数据库名:zw
用户名:zw
用户密码:zw123
```
ApiServer/settings.py 文件中
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME': 'zw',
'USER': 'zw',
'PASSWORD': 'zw123',
'HOST': '127.0.0.1',
'PORT':'3306',
}
}
```
## 1.6 访问过程
用户浏览器--------->WEB服务器------>API服务器---------->MYSQL数据库
# 二、系统注册:
1.安装部署成功后,用户通过浏览器(不支持IE)输入http://web服务器IP:8080 自动跳转到注册页面。将hostid复制下来,用来获取license注册
![](https://i.loli.net/2020/12/08/wDX1RSC5pcVb2E6.png)
2.注册成功后,自动跳转至登录页面。
# 三、用户登录
1. **初始管理员 登录用户名:admin 密码:123456**
![](https://i.loli.net/2020/12/08/OJfRQgKFkuteqNb.png)
**2.登录成功后进入主页面**
![](https://i.loli.net/2020/12/08/7i2TFUVcnHuyAgv.png)
# 四、信息管理
## 4.1 用户信息
![](https://i.loli.net/2020/12/09/UXQdiEbzNDCOLeP.png)
用户信息即本系统使用人员(公司员工)的帐号管理,用户默认包含首次登录的admin帐户,默认密码:123456 登录后建议立即更改密码。
**帐号:**
建议使用手机号作为帐号。
**部门:**
公司内部的部门信息,方便对不同用户进行分类。需要预先在部门信息里进行新建部门。
**角色:**
角色即权限,分为管理员和普通用户
普通用户:不能增加、修改、删除用户,在只在页面右上角个人中心修改自己的密码。
管理员:可以做一切操作。同时管理员也是可以更改自己或其它用户为普通用户,**所以必须保证系统内至少有一个管理员帐号**。
**状态:**
当状态为非激活状态时该用户将不能再进行登录。
**删除:**
只有管理员才可以操作,但是如果该用户存在其它关联数据:比如报销内容,在这种情况下是不允许删除的(会有报错提示,阻止该行为)。因为一旦删除会造成帐务混乱对不上人员。人员离职正确的做法应该是在点击状态条目使之处理非激活状态即可。
## 4.2 部门信息
![](https://i.loli.net/2020/12/09/2UIMkYJe3gL79ay.png)
## 4.3 单位信息
![](https://i.loli.net/2020/12/09/oyU4ajqIvfGkYhO.png)
单位实体用于记录合同系统中所涉及的单位或公司信息,只有单位名称是必写项(因此如果合同涉及是个人的话可以写对对方姓名)。
## 4.4 项目信息
项目信息就是针对某个工程项目先新立项目名称,后期可以与合同、报销相关联。
**客户对象:**指些项目的客户是哪个单位实体
**主体公司:**是指该项目是哪个公司的盈利项项目(这里主要考虑使用本系统的公司,名下可能会注册有多家公司的情况)。一般就是指使用本全合同系统的公司。
# 五、合同管理
## 5.1 项目合同
![](https://i.loli.net/2020/12/09/FwYZUSfEi6cWyCq.png)
### 5.1.1 添加合同
点击此页面中点击添加合同即可新增。
- **合同类型**
类型分为:收款、付款 收款合同是指卖东西出去,付款合同是指针对项目买入的成本。
- **项目名称**
点击下拉可选择此合同对应的项目。
- **合同名称**
可以自行定义合同的名称
- **合同金额**
合同上涉及的总金额
- **合同本方**
指是谁在收款/付款
- **合同对方**
指是在向谁收款/付款
- 签订日期
- 到期日期
合同的整体截至日期,一般指合同的最后履约时间。
- 税金成本
此项不是必选项,如有必要可以记录此合同执行后,我方要缴纳多少税款。
- 备注
此项不是必选项
## 5.2 修改合同
![](https://i.loli.net/2020/12/09/pZiTCh7N6Oqv3te.png)
在合同列表中点击即可展开合同的详细信息,在详细信息中可以修改、删除合同。同进在修改合同的弹出页中可以进行:发票计划、资金计划、合同附件的操作。
### 5.2.1 发票计划
**介绍:**发票计划是指合同涉及的发票何时开具并收到。合同金额所涉及的发票是一次性全部开具出去或收票,还是分阶段。做了计划之后,点击完成状态开关按键即可设置此计划是否已完成。所有已经完成的计划,都会被显示到计划进度条中。
- **新增发票计划:**
点击发票计划按键即可新增发票计划。可以直接写入总金额的百分比和日期,先点击生成计划。生成计划之后才能点击提交。也可以在生成时不按照总金额的百分比,而是具体金额生成,只需要点击切换即可。
![](https://i.loli.net/2020/12/09/rPNKTQH2fnbwh6z.png)
- **完成情况**
提交计划后,默认是处于未完成状态。未完成的计划是不会显示到进度条中去的。点击旁边的切换开关即可使之变成完成情况。还可以从完成切换回未完成。
- **删除**
- **发票进度**
所有已经完成的计划会合并显示到发票进度。
### 5.2.2 资金计划
操作和显示与发票计划一样。但是其代表的是真实的资金收付款情况。已经到账的应被视为已经完成,如果是项目尾款还未收到或付出,则应该被设置为未完成。
### 5.2.3 合同附件
用户可以上传该合同相关的文件到服务器,后期方便下载查阅。
## 5.3 合同查询
![](https://i.loli.net/2020/12/09/9KaNh6BU8t1TCWj.png)
可以针对合同名称、项目名称、备注 进行关键字查询合同条目。也可以点击展开隐藏查询框进行,基于行合同签订时处于的年份、下拉选择具体项目(一个项目一般有进货出货多个关联合同)、合同类型