《佳期酒店管理系统》项目研发阶段性总结

                    《佳期酒店管理系统》项目研发阶段性总结

作者:曾国喜

本次任务完成时间:2017年8月15日~2017年11月27日

语言:.NET MVC

数据库:sql

完成模块功能:财务列表、房态管理、前台账务、财务审核、夜间稽核、营业总表、拾物报告、客房吧库存管理、房客叫醒设置、邮件(内部、外部:qq邮箱)

 

1、项目概述这只是我负责一部分系统连接性不好,虚拟实训项目

  1. 宾客列表:主要对宾客进行入店登记、及对宾客进行保存。
  2. 团队处理:包括对团队成员与团号进行关联,给出优惠,或结账处理方式等。
  3. 财务列表:对应收账户进行添加或修改账户信息。
  4. 房态管理:对所有房间进行查询、获取信息、设置房间状态及设置维修房等等。
  5. 拾物报告:一个对遗失物品和拾取物品进行登记、领取操作。

财务列表:包含收帐管理。(增、删、查、改、打印)

财务列表—新增、修改、查询、打印

(1)新增

当进入新增界面是自定生成“应收账号”,余额输入框进行输入的限制“限制为两位小数输入,不符合自动清空”,名称:“限制只能输入中文”,邮政:“限制只能输入数字”,电话输入框“限制11位数以1开头3 5 8为第二为数的手机号码”等,以上不符合的都会自动清空。单击保存按钮后隐藏modol刷新当前tab数据。还有一个地址,这种填充地址可以上网搜。

 

经典代码(单号生成)

  简单说下:单号格式一般由:

    单头(如:DD)+时间(一般都是获取当前时间)+序号(001)

 

(2)修改

选择tab行 获取ID进行数据回填 “应收账号、状态不能修改”限制同上 修改完进行保存。

单击保存按钮后隐藏modol刷新当前tab数据。

 

(3)查询和打印

输入对应收账名称,进行模糊查询

  对当前(带条件)tab数据进行打印

房态管理

房态管理—分为查询、显示信息、房态变更、设置维修房、打印

查询

客根据点击分类中的某项进行查询、也可以根据输入查询条件点击查询按钮进行查询

显示信息

点击tab项获取ID,根据ID查询房间是否有宾客,有宾客即反回宾客提示信息

房态

获取所选项ID 对该房间进行状态更改

设置维修房

获取所选项ID 查询维修单号 弹出如下界面

主要功能修改、新增

新增

自定生成维修单号

修改

通过点击维修tab项弹出修改界面

对数据回填 保存

打印

对当前查询tab条件进行打印

(三)前台账务

主要功能查询、自动更新(刷新)tab

进入界面默认为自动更新tab 可根据左边选框进行条件更新

鼠标移动到“说明提示”会弹出说明类型的mod

财务审核

1.财务审核主要围绕查询和打印。

财务审核_1

其中点击对用的选择报表类型,上面的报表统计条件输入条件框也跟着变化。输入对应的查询条件点击打开打印出条件报表。

财务审核_2

简单的打印对应数据表

夜间稽核

对财务明细进一步入账

选取table行进行入账处理,填写完成入账资料。

如果所选明细已入账则会提示无法操作。

点击入账选卡弹出且点击项修改则会弹出密码验证

验证完则会弹出与新增框一样的修改mod框

 

预定房未到取消

对预定未到的宾客进行手动取消预定信息

 

预审房租报表

对已经审核数据打印

 

营业总表

一个统计酒店所有收入的表格

主要分为查询、统计、明细信息提示

查询通过下图左上角时间查询

当单击tab行会弹当日收入财务明细

及打印当前tab

 

拾物报告

主要对“拾物”和 “失物”进行登记

登记有三张表:登记表、失物表、无效表

失物、拾物登记

失物、拾物表其实都是保存到一张表中的、而判断依据为下图顶头的复选框

点击另一个下面输入框中文解说会跟着变、其中也有很多的输入限制,不符合则清空当前输入数字符

 

修改和新增差不多

删除则根据所选当期行数据进行删除

而修改 拾物和遗物两表修改需要输入密码才能修改 而无效数据无法修改数据

表更则是将拾物和遗物表数据表更为无效数据

 

客房吧库存管理

点击右边上角选项tab查询出对应数据

打印

 

明细信息

单击当前行可查询出食物密明细信息

 

入库

自动生成单号

而要保存还需要选中下面tab项获取ID 当已入库的会提示已入库

入库明细(可对之前的入库信息进行数量修改)

 

单位管理

主要分为查询 新增 修改 删除

点击查询会在tab头显示查询框

还有选卡查询根据选卡选中进行查询对应数据

 

新增 修改

新增时 会自动生成编号和协议号(可修改)

同时输入框也进行了如 “中文限制”“电话号码限制”“数字限制”等

修改时 进行数据回填 保存大致和新增一样

 

销售员设置

一个简单版的新增、删除、查找、修改、打印

 

房价码类别设置

分为新增、查询、修改、打印、删除

删除格局所选项进行删除

新增

对中文描述输入框进行只能中文输入限制和英文描述输入框只能输入英文进行限制

打印

(跟着tab数据进行打印)

 

 

房价码类别设置

主要部分在于新增 和修改

 

 

新增

新增界面分为连个数据表新增:一个是房价码新增,另一种是房类新增,而房价码新增必须要有房类ID

房价码简称必填,否则无法执行 添加房类和 保存

房类添加必须要有房价码简称 而房价码明细保存又必须要有房类ID(两表互围包含)

当编辑完房价码简称后会初步保存明细信息

最后保存则为对修改保存

序号根据上一单号进行数据绑定

也可房类进行删除处理

 

修改

数据回填

修改里面数据进行修改保存

房类新增

 

 

房客叫醒设置

新增 修改 删除 更改状态

 

新增

编号的自动生成

保存是保存两个时间 而酒店系统提前XX分 只是一个辅助计算框

根据叫醒时间减去数字分 经过复杂的 “切割”“计算”“判断”算出提前提醒时间值

当离开提前框会提示获取的提前时间显示出来。

同时也限制了提前框输入

 

修改

数据回填

大体和新增一样

查询 更改状态

点击选项卡进行不同tab查询 更改选项为取消状态

 

房价码设置

  1. 房价码明细:上部份为主体,下部份是上部分必要获取的一条数据,

而下部份的保存必须要上部分保存的房价码简称  他们两者互相关联。所以有了

输入房价码简称就进行初步保存,之后才能执行下面的房类添加,而最后的保存只

需要对应房类中的一项作为明细中的数据。

 

房间叫醒设置:

(1)新增 叫醒时间 和 提前叫醒时间

如图的提前分数 输入框不是时间 只是一个计算所需要的值

提前叫醒时间:对叫醒时间进行分割 再进行减法运算 外加判断 后获得已计算好的“时”

 “分”字段 进行合并转换为时间类型。

邮件

 

新建邮件(内部和qq邮箱

   内部邮件就是管理员之间的信息交流;

    外部就是QQ邮箱。

 

2、数据表

表名

说明

类型

业务表编号

B_Alerts

Alerts表

基础表

 

B_BDRRemind

钟点房提醒表

基础表

 

B_BeLaidUp

入库表

业务表

 

B_CreditCard

信用卡授权表

基础表

 

B_FinanceDetail

财务明细表

业务表

 

B_FITReserve

散客团预订表

业务表

 

B_GuestRegister

宾客登记表

业务表

 

B_LostArticle

拾物表

业务表

 

B_Raternity

同行房表

基础表

 

B_Remind

客服提醒表

基础表

 

B_Service

维修单表

基础表

 

B_SettleAccounts

结账表

业务表

 

B_TeamReserve

团队预订表

业务表

表1

B_TeamRoom

团队房间表

业务表

表2

D_Nationality

国籍表

基础表

 

D_Occupation

职业表

基础表

 

S_AgoraCode

市场码表

基础表

 

S_ARStatus

AR账状态表

基础表

 

S_Classes

班次表

基础表

 

S_ContractPrice

包价码表

基础表

 

S_CredentialsType

证件类型表

基础表

 

S_ExpensesCode

费用码

基础表

 

S_GuestArchives

宾客档案表

业务表

 

S_GuestSort

宾客类别表

      基础表

 

S_GuestStatus

宾客状态表

基础表

 

S_HourRoomAlgorithm

宾客状态表

基础表

 

S_LodgingsStatus

宾客入住状态表

业务表

 

S_Operator

操作员表

基础表

 

S_Package

Package表

基础表

 

S_Postbox

邮件表

基础表

 

S_PostboxStatus

邮件状态表

基础表

 

S_Receivable

应收账号表

基础表

 

S_RegisterType

登记类型表

基础表

 

S_ReserveType

预订类型表

基础表

 

S_Room

房间表

业务表

 

S_RoomRateCode

房价码表

基础表

 

S_RoomRateSort

房价码类别表

基础表

 

S_RoomStatus

房间状态表

基础表

 

S_RoomType

房间类型表

基础表

 

S_RRC_Detail

房价码明细表

业务表

 

S_Salesperson

销售员表

基础表

 

S_SourceCode

来源码表

基础表

 

S_Storehouse

仓库表

业务表

 

S_SysLog

系统日志表

业务表

 

S_TeamExpenseDefine

团队付费定义表

业务表

 

S_Unit

单位表

基础表

 

S_UnitRelatedPersonnel

单位相关人表

基础表

 

S_UnitSort

单位类别表

基础表

 

 

 

 

 

业务表及其字段

表1:入库表(B_BeLaidUp

主要包含如下字段信息:入库ID、食物ID、电脑号、状态bit、单据号、供货商、入库时间

資料表名稱

B_BeLaidUp

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

BeLaidUpID

int identity

(10, 0)

NO

PK

入库ID

2

GoodsID

int

(10, 0)

YES

 

食物ID

3

SysNumber

ntext

1073741823

YES

 

电脑号

4

StatusBit

bit

1

YES

 

状态bit

5

BillDocument

ntext

1073741823

YES

 

单据号

6

Supplier

ntext

1073741823

YES

 

供货商

7

BeLaidUpTime

date

10

YES

 

入库时间

               

 

表2:财务明细表(B_FinanceDetail

主要包含如下字段信息:财务明细ID、宾客ID、费用码ID、消费金额、消费时间、原账单宾客ID、转账时间、结账时间、AR账状态表、单号、电脑操作员ID、班级ID

資料表名稱

B_FinanceDetail

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

FinanceDetailID

int identity

(10, 0)

NO

PK

财务明细ID

2

GuestID

int

(10, 0)

YES

 

宾客ID

3

ExpensesCodeID

int

(10, 0)

YES

 

费用码ID

4

ConsumeMoney

decimal

(18, 2)

YES

 

消费金额

5

ConsumeTime

datetime

(23, 3)

YES

 

消费时间

7

OriginalGuestID

int

(10, 0)

YES

 

原账单宾客ID

8

BringForwardTime

datetime

(23, 3)

YES

 

转账时间

9

SettleAccountsTime

datetime

(23, 3)

YES

 

结账时间

10

ARStatusID

int

(10, 0)

YES

 

AR账状态表

11

OddNumber

ntext

1073741823

YES

 

单号

12

OperatorID

int

(10, 0)

YES

 

电脑操作员ID

13

ClassesID

int

(10, 0)

YES

 

班次ID

               

 

表3:宾客登记表(B_GuestRegister

主要包含如下字段信息:宾客ID、登记类型ID、宾客状态ID、宾客档案ID、班次ID、预订类型ID、单位ID、操作员ID、班次ID、房价码ID、宾客账号、预订号、押金金额、押金付款方式、预订人员、预订方式、备注、房价折扣、折扣理由、房间价格、到达时间、离开时间、团队账号、特殊要求、付款码、房间数、人数、卡号、允许POS账转入bit、允许共享房同住bit

資料表名稱

B_GuestRegister

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

GuestID

int identity

(10, 0)

NO

PK

宾客ID

2

RegisterTypeID

int

(10, 0)

YES

 

登记类型ID

3

GuestStatusID

int

(10, 0)

YES

 

宾客状态ID

4

GuestArchivesID

int

(10, 0)

YES

 

宾客档案ID

5

RoomID

int

(10, 0)

YES

 

班次ID

6

ReserveTypeID

int

(10, 0)

YES

 

预订类型ID

7

UnitID

int

(10, 0)

YES

 

单位ID

8

OperatorID

int

(10, 0)

YES

 

操作员ID

9

ClassesID

int

(10, 0)

YES

 

班次ID

10

RoomRateCodeID

int

(10, 0)

YES

 

房价码ID

11

GuestNumber

ntext

1073741823

YES

 

宾客账号

12

ReserveNumber

ntext

1073741823

YES

 

预订号

13

Foregift

decimal

(18, 2)

YES

 

押金金额

14

ModePayment

ntext

1073741823

YES

 

押金付款方式

16

ReserveStaff

ntext

1073741823

YES

 

预订人员

17

ReserveWay

ntext

1073741823

YES

 

预订方式

18

Remarks

ntext

1073741823

YES

 

备注

19

RoomRateaAllowance

decimal

(18, 2)

YES

 

房价折扣

20

AgioAccount

ntext

1073741823

YES

 

折扣理由

21

RoomRate

decimal

(18, 2)

YES

 

房间价格

22

ArrivalTime

datetime

(23, 3)

YES

 

到达时间

23

LeaveTime

datetime

(23, 3)

YES

 

离开时间

24

TeamNumber

int

(10, 0)

YES

 

团队账号

25

SpecialClaim

ntext

1073741823

YES

 

特殊要求

26

PaymentCode

ntext

1073741823

YES

 

付款码

27

RoomQuantity

ntext

1073741823

YES

 

房间数

28

PeopleQuantity

ntext

1073741823

YES

 

人数

29

CardNumber

ntext

1073741823

YES

 

卡号

30

PermitPOSBit

bit

1

YES

 

允许POS账转入bit

31

EnjoyTogetherBit

bit

1

YES

 

允许共享房同住bit

               

 

表4:拾物表(B_LostArticle

主要包含如下字段信息:拾失物ID、操作员ID、AR账状态ID、系统编号、遗失关联、手工单号、品类别、等级、物品名称、价值、物品描述、描述人、拾失物地点、拾失取时间、备注信息、领取人、联系电话、领取时间、地址、备注

資料表名稱

B_LostArticle

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

LostArticleID

int identity

(10, 0)

NO

PK

拾失物ID

2

OperatorID

int

(10, 0)

YES

 

操作员ID

3

ARStatusID

int

(10, 0)

YES

 

AR账状态ID

4

SysNumber

ntext

1073741823

YES

 

系统编号

5

LoseRelevance

ntext

1073741823

YES

 

遗失关联

6

ManualNumber

ntext

1073741823

YES

 

手工单号

7

ArticleType

ntext

1073741823

YES

 

物品类别

8

Grade

ntext

1073741823

YES

 

等级

9

ArticleName

ntext

1073741823

YES

 

物品名称

10

Value

ntext

1073741823

YES

 

价值

11

ArticleDescribe

ntext

1073741823

YES

 

物品描述

12

PickUpPeople

ntext

1073741823

YES

 

描述人

13

PickUpPlace

ntext

1073741823

YES

 

拾失物地点

14

PickUpTime

datetime

(23, 3)

YES

 

拾失取时间

15

Remarks

ntext

1073741823

YES

 

备注信息

16

ReceivePeople

ntext

1073741823

YES

 

领取人

17

ContactNumber

ntext

1073741823

YES

 

联系电话

18

ReceiveTime

datetime

(23, 3)

YES

 

领取时间

19

Address

ntext

1073741823

YES

 

地址

20

Remark

ntext

1073741823

YES

 

备注

               

 

表5:结账表(B_SettleAccounts

主要包含如下字段信息: 结账ID、财务明细ID、宾客ID、结账时间、支付方式、支付金额

、结账单号、备注

資料表名稱

B_SettleAccounts

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

SettleAccountsID

int identity

(10, 0)

NO

PK

结账ID

2

FinanceDetailID

int

(10, 0)

YES

 

财务明细ID

3

GuestID

int

(10, 0)

YES

 

宾客ID

4

DefrayTime

datetime

(23, 3)

YES

 

结账时间

5

ModePayment

ntext

1073741823

YES

 

支付方式

6

DefrayMoney

decimal

(18, 2)

YES

 

支付金额

7

OddNumber

ntext

1073741823

YES

 

结账单号

8

Remarks

ntext

1073741823

YES

 

备注

               

 

表5:房间表(S_Room

主要包含如下字段信息: 房间ID、房间类型、宾客入住状态ID、房间状态ID、房间号码、楼栋、房间特征

資料表名稱

S_Room

資料表描述

 

SN

欄位

資料型態

長度

null

PK

描述

1

RoomID

int identity

(10, 0)

NO

PK

房间ID

2

RoomTypeID

int

(10, 0)

YES

 

房间类型

3

LodgingsStatusID

int

(10, 0)

YES

 

宾客入住状态ID

4

RoomStatusID

int

(10, 0)

YES

 

房间状态ID

5

RoomNumber

ntext

1073741823

YES

 

房间号码

6

Ridgepole

ntext

1073741823

YES

 

楼栋

8

RoomCharacteristic

ntext

1073741823

YES

 

房间特征

               

3、总结: 

       一开始碰到选项卡问题:选项卡组成是用tab表和对应的几个<div></div>,点击选项卡组跳转到对应的<div></div>中,这样就要多写几个js==》 tab方法,而我所用到的只是类似查询条件,表数据来源只是一张表,于是我想到了同过选项卡顶部tab点击获取对应查询的条件,进而在一个tab上进行类似选项卡一样的跳转查询。

        当我做到自动刷新时,以为用定时器就简单完成了。当用时(var intTime = setInterval(kaishi, 30000);)才发现停止定时器(clearInterval(intTime);)后重启不了定时器,于是就到网上搜,才发现定时器没有重启一说法,也就是没有重启对应的代码,那时我还以为做不出了,但我还是不死心(我就会这一种更新啊),接着差才发现setInterval()虽然没有重启代码,但有(再次)启动类似重启效果,既定时器停止后可以再次开启,从而达到重启效果。

        每当我看到时间是,都不禁回想起“type="datetime-local"”输入框时间详细输入问题,它与type="datetime"用法有相同处也有不同处,这都是老师没讲到的。datetime-local保存没问题,但当你回填数据到有时间类型的输入框时,你会发现回填数据失败,原因就在于回填数据时时间格式:“2017-11-25T08:38”而你从数据库提取出来的是“2017-11-25 08:38”,而且回填也是以string类型回填。

当我快完成是,突然想起老师说输入的数据要有限制,一提到限制我就懵逼了。对于输入框限制大多数要用到“正则表达式”,正则当然学过,但只是学了基础的符号运用也基本没讲,相信很多人也和我一样都不会正则运用。正则其实无非就是书写出了,但当你用到某些“var reg=new RegExp ("\[^0]\\d*");”中,你又发现正则有问题了,对,是有问题。正则运用到特定的单词里往往需要对“元字符”进行转义“\”。还有就是如何书写正则,如何实现正则里的某些书写规则如{n}匹配n位、“/g”意思是全局性(匹配)、{2,4}匹配24位数等。

       最后正则限制完成了,其实大多数是之前班长给的文档里复制的,onKeyUp="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"onafterpaste="value=value.replace(/[^\u4E00-\u9FA5]/g)" 在输入框标签书写,这样限制有个小问题,问题应该在于输入法当你限制只能输入数字是你用英文输入是不可能输入的 但当你用输入法输入是你会发现你打出的中文拼音时,按下回车键,英文竟然能输入去?这时不得不再用类似鼠标离开事件了$("#Contacts1 ").on('blur', function () { var $asdfg = $(this);var QZM = $asdfg.val(($asdfg.val().replace(/[a-zA-z]/g, ''))) })进行清除。最后我又发现这个方法有 “缺陷”就是当你要用HTML去写某输入框 在输入框上一层点击弹出包含 $("#Contacts1 ").on(”的中Contacts1输入框  mod  事件中提前用HTML去改变输入框,id不变但  $("#Contacts1 ").on()方法失效了。

         还有关于类型写在<script>里都是以类型var 代替所有类型,问题来了,当你切割“20170808”获得 08”那我们如何去变更类型?在切割时已经定义var string类型了,如果你想改为decimal,发现这个类型写不出 只能写var,我上网搜也搜不出,后来发现可以这样写 var dd=01 dd++dd就会默认为decimal类型。

       相信下拉框很好写,但每打开一次包含下拉框的mod,你会发现form表单重置不了下拉框,而下拉框数据也会随之(之前数据)叠加。这时你不得不用上$("#SourceCode").empty();来清空下拉框。

 

 

 

 

 

    

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_44540005/article/details/86545516