2.5 销售前台管理

2.51  销售控制

房源生成完毕后,系统自动传递至销售模块,此时房间的销售状态为未售状态。在开盘前用户可通过【销售控制】模块,进行保留单位的设置,从而达到辅助销售的目的,如图2.5.1(图1)所示。另,该模块提供换退房查询、更名查询和变更查询功能,用户可更方便的查询各种销售变更信息。

                                                                                                            2.5.1(图1)

从界面上可以看到我们这里用到的控件有

控件名称

说明

下拉框(easyui-combobox)

第一要设置每个控件的id,第二设置大小不设置也有默认,第三(data-options)是数据操作:可以设置控件的一些属性和事件

文本框(easyui-textbox)

按钮(easyui-linkbutton)

表格(easyui-datagrid)

查询功能实现:

第一步:数据库

1、表与表的关系:

2.5,1(图2)

表1:SYS_销售变更表(SYS_StatusChangeTable)

列名

类型

主键/外键

说明

StatusChangeID

int - Identity

主键

销售变更ID

RoomDatumID

int

外键

房间资料ID

SellStatusDetailID

int

外键

销售状态明细ID

DeleteNot

bit

删除否

表2:SYS_销售状态表(SYS_SellStatusTable)

列名

类型

主键/外键

说明

SellStatusID

int - Identity

主键

销售状态ID

SellStatusName

nchar (100)

销售状态名称

表3:SYS销售状态明细表(SYS_SellStatusDetailID)

列名

类别

主键/外键

说明

SellStatusDetailID

int - Identity

主键

销售状态明细ID

SellStatusID

int

外键

销售状态

SellStatusTime

date

销售状态时间

SellStatusCause

nchar (50)

销售状态原因

LawfulDay

date

有效日期

SubscribeHandsel

money

预订定金

SubscribeNumber

nchar (30)

预订编号

CurrencyID

int

外键

币种ID

Operator

nchar (30)

经办人

ClientDatumID

int

外键

客户资料ID

表4:SYS_房间资料表(SYS_RoomDataTable)

列名

类别

主键/外键

说明

RoomDataID

int - Identity

主键

房间资料ID

HouseID

int

外键

楼栋ID

RoomCode

nchar (50)

房间代码

RoomUnit

nchar (10)

房间单元

RoomNumber

nchar (20)

房号

natureNumber

nchar (20)

自然层号

Floor

nchar (20)

楼层号

ColumnNumber

nchar (20)

列号

CoveredArea

decimal (18, 3)

建筑面积

BuilDingExceptArea

decimal (18, 3)

套内面积

AreaShare

decimal (18, 3)

分摊面积

BalconyArea

decimal (18, 3)

阳台面积

RoomFaceDirectionID

int

外键

朝     向

LandscapeID

int

外键

景观ID

HouseTypeID

int

外键

户型ID

RoomTypeID

int

外键

房间类型ID

RoomRanking

nchar (20)

房间排号

OnbuildingExceptAreaCountNot

bit

按套内面积计算否

LockNot

bit

是否锁定

CountWayID

int

外键

计算方式ID

RoomDescribeID

int

外键

SellStatusID

int

外键

销售状态ID

AffiliatedHousePropertyNot

bit

BuildingPropertiesID

int

BuildingNot

bit

ZhuangTaiWeiZhenFou

bit

状态为真否

表3:SYS_HouseTable(SYS 楼栋表)

列名

类型

主键/外键

说明

HouseID

int - Identity

主键

楼栋ID

HouseCode

nchar (40)

楼栋代码

HouseName

nchar (40)

楼栋名称

RoomNumberModelTypeID

int

外键

房间编号模式类型ID

ContractHouseName

nchar (40)

合同栋号名称

GiveHouseStandardID

int

外键

交屋标准ID

ShouldGiveHouseDate

date

应交房日期

BriefRemarks

nchar (80)

简要备注

NumberOfPlies

int

层数

BuildingPropertyID

int

外键

建筑性质ID

SupervisionInstitutionID

int

外键

监理机构ID

EstateNumber

nchar (80)

楼栋房地产证号

MassifNumber

nchar (80)

楼栋地块编号

LandArea

decimal (18, 3)

楼栋土地面积

LandSellAgreementNumber

nchar (80)

楼栋土地出让合同号

LandUserBeginDate

date

楼栋土地使用开始时间

LandUserEndDate

date

楼栋土地使用结束时间

HouseLandUse

nchar (80)

楼栋土地用途

HouseAreaTypeID

int

外键

楼栋面积类型ID

ProjectSubregionID

int

外键

项目所属ID

StructureID

int

外键

架构ID

控件使用方法:

1、下拉框(easyui-combobox)

作用:绑定数据

下拉框控件截图:

创建下拉框控件界面代码:

<pre name="code" class="html"> <tr><td>项目名称</td><td><input class="easyui-combobox" id="comXiangMuMC" data-options="onChange:onChangeProject" style="width:150px" /></td><td style="width:20px"></td><td>项目分区名称</td><td><input class="easyui-combobox" id="comXiaoMuFenQuMC" data-options="onChange:onChangeProjectSubregion" style="width:150px"/></td><td style="width:20px"></td><td>楼栋名称</td><td><input class="easyui-combobox" id="comLouDongMC"data-options="onSelect:onChangeHouseID" style="width:150px" /></td></tr>

第一步:数据库

储存过程代码:

</pre><p></p><p>第二步:BLL层</p>代码<p align="left"></p><pre name="code" class="csharp">  #region 销控查询public DataTable SelectProject(){SqlParameter[] SQLCMpas = {new SqlParameter("@type",SqlDbType.Char)};SQLCMpas[0].Value = "SelectProject";DataTable dt = myDALMethod.DAL_SelectDB_Par("PW_MortgageManage", SQLCMpas);return dt;}public DataTable SelectProjectPartition(int ProjectID){SqlParameter[] SQLCMpas = {new SqlParameter("@type",SqlDbType.Char),new SqlParameter("@ProjectID",SqlDbType.Int)};SQLCMpas[0].Value = "SelectProjectPartition";SQLCMpas[1].Value = ProjectID;DataTable dt = myDALMethod.DAL_SelectDB_Par("PW_MortgageManage", SQLCMpas);return dt;}public DataTable SelectHouseOfID(int ProjectSubregionID){SqlParameter[] SQLCMpas = {new SqlParameter("@type",SqlDbType.Char),new SqlParameter("@ProjectSubregionID",SqlDbType.Int)};SQLCMpas[0].Value = "SelectHouseOfID";SQLCMpas[1].Value = ProjectSubregionID;DataTable dt = myDALMethod.DAL_SelectDB_Par("PW_MortgageManage", SQLCMpas);return dt;}#endregion

第三步:控制器
代码

 #region 销控管理public ActionResult SelectProject()//查询项目{DataTable dt = myAnJieGuanLi.SelectProject();List<Dictionary<string, object>> ListRetrun = ConvertHelper.DtToList(dt);return Json(ListRetrun, JsonRequestBehavior.AllowGet);}public ActionResult SelectProjectPartition(int ProjectID)//查询项目分区{DataTable dt = myAnJieGuanLi.SelectProjectPartition(ProjectID);List<Dictionary<string, object>> ListRetrun = ConvertHelper.DtToList(dt);return Json(ListRetrun, JsonRequestBehavior.AllowGet);}public ActionResult SelectHouseOfID(int ProjectPartitionID)//查询楼栋{DataTable dt = myAnJieGuanLi.SelectHouseOfID(ProjectPartitionID);List<Dictionary<string, object>> ListRetrun = ConvertHelper.DtToList(dt);return Json(ListRetrun, JsonRequestBehavior.AllowGet);}#endregion

第四步:界面

代码:
function SelectProject() {$.getJSON("/XiaoShouHouTai/SelectProject", function (data) {$('#comXiangMuMC').combobox({ data: data, valueField: 'ProjectID', textField: 'ProjectName' });});}function onChangeProject() {$.getJSON("/XiaoShouHouTai/SelectProjectPartition?ProjectID=" + $('#comXiangMuMC').combobox('getValue'), function (data) {$('#comXiaoMuFenQuMC').combobox({ data: data, valueField: 'ProjectSubregionID', textField: 'ProjectSubregionName' });});}function onChangeProjectSubregion() {$.getJSON("/XiaoShouHouTai/SelectHouseOfID?ProjectPartitionID=" + $('#comXiaoMuFenQuMC').combobox('getValue'), function (data) {$('#comLouDongMC').combobox({ data: data, valueField: 'HouseID', textField: 'HouseName' });});}

2、表格(easyui-datagrid)

作用:动态生成房号排序

表格控件截图:

创建表格控件界面代码:

 <table class="easyui-datagrid" id="tbFangJianZiLiao" style="width:648px;height:442px" data-options="singleSelect:true,onClickCell:we,rowStyler:function(index,row) {return 'background:#FFFFFF';}"></table>

第一步:数据库

代码:

if @Type='ConditionSelectRoom'beginSELECT     RoomDataID, HouseID, RoomNumber, Floor,ZhuangTaiWeiZhenFouFROM         SYS_RoomDataTablewhere SYS_RoomDataTable.HouseID=@HouseID and SYS_RoomDataTable.Floor=@Floororder by RoomNumberendif @Type='ConditionSelect'beginSELECT     RoomDescribeID, HouseID, ZhuiDaChengShu = NatureStoreyFinishNumber-NatureStoreyActionNumber+1FROM         [SYS_ RoomDescribeTable]where [SYS_ RoomDescribeTable].HouseID=@HouseIDend

第二步:BLL层

代码:

#region 动态生成列public DataTable TiaoJianChaXunFangJian(int LouDongID, int LouCengHao){SqlParameter[] SQLCMDpas ={new SqlParameter("@Type",SqlDbType.Char),new SqlParameter("@HouseID",SqlDbType.Char),new SqlParameter("@Floor",SqlDbType.Char),};SQLCMDpas[0].Value = "ConditionSelectRoom";SQLCMDpas[1].Value = LouDongID;SQLCMDpas[2].Value = LouCengHao;DataTable dt = myDALMethod.DAL_SelectDB_Par("SYS_PublicTool", SQLCMDpas);return dt;}public DataTable TiaoJianChaXunFangJianMiaoShu(int LouDongID){SqlParameter[] SQLCMDpas ={new SqlParameter("@Type",SqlDbType.Char),new SqlParameter("@HouseID",SqlDbType.Char),};SQLCMDpas[0].Value = "ConditionSelect";SQLCMDpas[1].Value = LouDongID;DataTable dt = myDALMethod.DAL_SelectDB_Par("SYS_PublicTool", SQLCMDpas);return dt;}#endregion

第三步:控制器

代码:

 #region  动态生成列public ActionResult LouDongBiaoMoXing(int LouDongID, int LouCengHao){DataTable dt2 = new DataTable();//新建DataTable DataTable dt = myAnJieGuanLi.TiaoJianChaXunFangJian(LouDongID, 1);//通过楼栋ID查询有多少房间DataTable MiaoShuDt = myAnJieGuanLi.TiaoJianChaXunFangJianMiaoShu(LouDongID);//查询最大楼层数dt2.Columns.Add("LouChen", typeof(string));//新增一列for (int i = 0; i < dt.Rows.Count; i++)//循环房号数{string DtLie = "F" + i;//拼接字符串dt2.Columns.Add(DtLie, typeof(string));//把拼接的字符串加入新增的那列中}int ZongLouChengShu = Convert.ToInt32(MiaoShuDt.Rows[0]["ZhuiDaChengShu"].ToString());//获取最大楼层for (int i = 0; i < ZongLouChengShu; i++)//循环最大楼层{dt2.Rows.Add();//在新建的DataTable里面新增一行string LouChen = "";//定义一个字符串if (ZongLouChengShu - i > 9){LouChen = (ZongLouChengShu - i).ToString();}else{LouChen = "0" + (ZongLouChengShu - i);}dt2.Rows[i]["LouChen"] = LouChen;//从大到小排列楼层号DataTable dt3 = myAnJieGuanLi.TiaoJianChaXunFangJian(LouDongID, ZongLouChengShu - i);//查询房号for (int j = 0; j < dt.Rows.Count; j++)//循环把房号加入DataTable里面{string A = "F" + j;//再次定义房号数string F1 =  dt3.Rows[j]["RoomNumber"].ToString().Trim();//获取房号DataTable bt = myXiaoShouKongZhi.Select_SellStatusRoom(Convert.ToInt32(dt3.Rows[j]["RoomDataID"]));//通过房间ID查询销售状态int BaoLiuID = Convert.ToInt32(bt.Rows[0]["SellStatusDetailID"].ToString());//获取销售状态if(BaoLiuID == 4){//判断销售状态的ID为4时拼接字符串dt2.Rows[i][A] = F1+"留";}else{dt2.Rows[i][A] = F1;}}}List<Dictionary<string, object>> ListReturn = ConvertHelper.DtToList(dt2);//转换成list列表格式return Json(ListReturn, JsonRequestBehavior.AllowGet);//将list列表转换成Json数据返回界面}public ActionResult TiaoJianChaXunFangJianMiaoShu(int LouDongID){DataTable dt = myAnJieGuanLi.TiaoJianChaXunFangJianMiaoShu(LouDongID);//查询最大楼层数DataTable dt2 = myAnJieGuanLi.TiaoJianChaXunFangJian(LouDongID, 1);//通过楼栋ID查询有多少房间try//出错处理{string ZhuiDaChengShu = dt.Rows[0]["ZhuiDaChengShu"].ToString();}catch{}string FangHuiZhi = dt2.Rows.Count.ToString();return Content(FangHuiZhi);//返回数据}#endregion

第四步:界面

代码:

var y;var options = {};var String1 = "[[{ field:'LouChen', title: '楼层', width: 40},";//创建datagrid表格格式function onChangeHouseID() {Select_SellStatus();//查询销售状态$.getJSON("/XiaoShouHouTai/TiaoJianChaXunFangJianMiaoShu?LouDongID=" + $('#cboLouDongMingCheng').combobox('getValue'),//获取最大房号function (data) {//alert(data);if (data > 0) {for (var i = 0; i < data; i++) {//循环最大房号y = i + 1;if (i < data - 1) {var s = "{ field:'F" + i + "', title: '0" + y + "', width: 80,styler:cellStyler},"//拼接datagrid的列String1 = String1 + s;} else {var s = "{ field:'F" + i + "', title: '0" + y + "', width: 80,styler:cellStyler}"String1 = String1 + s + "]]";}}//alert(String1);options.columns = eval(String1);//将字符串转换为html格式//alert(options);$('#tbYeWuXiaoKong').datagrid(options);//加入到datagrid里面$.getJSON("/XiaoShouHouTai/LouDongBiaoMoXing?LouDongID=" + $('#cboLouDongMingCheng').combobox('getValue') + "&" + "LouCengHao=1",//查询datagrid的数据function (data) {$('#tbYeWuXiaoKong').datagrid("loadData", data);//把房号绑定到datagrid里面String1 = "[[{ field:'LouChen', title: '楼层', width: 40},";//重新定义字符串String1});} else {Kong();//清空datagrid}});}function Kong() {var String1 = "[[{}]]";//创建空的datagridoptions.columns = eval(String1);$('#tbYeWuXiaoKong').datagrid(options);$('#tbYeWuXiaoKong').datagrid('loadData', { total: 0, rows: [] });//清空datagrid的数据}var RoomNumber = '';var FangJianZhuangTaiID = 0;//声明一个变量function cellStyler(value, row, index) {var row = $('#wZT').datagrid("getData");//获取数据for (var i = 0; i < row.rows.length; i++) {FangJianZhuangTaiID = (row.rows[i].SellStatusID).toString().trim();//将datagrid中的SellStatusID赋值给变量RoomNumber = (row.rows[i].we).toString().trim(); //将datagrid中的SellStatusID赋值给RoomNumberif (FangJianZhuangTaiID == 5) {//判断FangJianZhuangTaiIDif (value == RoomNumber) {//判断房间房号是否相同return 'background-color:#FF0000;color:#000000;';//将单元格变为红色}}if (FangJianZhuangTaiID == 6) {if (value == RoomNumber) {return 'background-color:#00FF00;color:#000000;';}} }}

完成图:

3、按钮(easyui-linkbutton)

作用:单击事件

按钮截图:

界面按钮创建代码:

<div data-options="region:'east'" style="width:550px;height:432px"><table style="padding:20px;"><tr><td colspan=4 style="width:60px">操作提示:</td></tr><tr><td style="height:5px"></td></tr><tr><td style="width:30px"></td> <td colspan=3>鼠标左键点击 -- 选择需要变更的房间</td></tr><tr><td style="height:5px"></td></tr><tr><td style="width:30px"></td> <td colspan=3>单击"确定"键 -- 对选中的房间的状态进行变更!></td></tr><tr><td style="height:5px"></td></tr><tr><td colspan=4 style="width:60px">说明:</td></tr><tr><td style="height:5px"></td></tr><tr><td style="width:30px"></td> <td colspan=3>左图中"灰色"背景的房间为已经开始销售的房间,></td></tr><tr><td style="height:5px"></td></tr><tr><td style="width:30px"></td> <td colspan=3>不能进行保留或放盘操作。</td></tr><tr><td style="height:5px"></td></tr><tr><td colspan=4 style="width:60px">操作:(将选中的房间的状态变更为)</td></tr><tr><td style="height:5px"></td></tr><tr><td><input οnclick="BaoLiuLeiXing()" type="radio" name="LeiXing" id="KeShou" /></td><td>可售</td><td><input οnclick="BaoLiuLeiXing()" type="radio" name="LeiXing" id="BaoLiu" /></td><td>保留</td></tr><tr><td style="height:5px"></td></tr><tr><td style="width:60px" >保留原因:</td><td colspan=3><input id="BaoLiuYuanYin" style="width:150px" /></td></tr><tr><td style="height:5px"></td></tr><tr><td colspan=4><a id="确定操作类型" class="easyui-linkbutton" οnclick="QueDing()">确定</a></td></tr></table></div></div></div>

查询保留房间与对房间进行保留操作的代码:

查询保留房间:

第一步:数据库

--查询销售状态if @type='Select_SellStatus'beginSELECT     SYS_StatusChangeTable.StatusChangeID, SYS_StatusChangeTable.RoomDatumID, SYS_StatusChangeTable.SellStatusDetailID, SYS_SellStatusDetailTable.SellStatusID, SYS_SellStatusDetailTable.SellStatusCause, SYS_SellStatusTable.SellStatusName, SYS_RoomDataTable.RoomNumber, SYS_RoomDataTable.HouseIDFROM         SYS_StatusChangeTable INNER JOINSYS_SellStatusDetailTable ON SYS_StatusChangeTable.SellStatusDetailID = SYS_SellStatusDetailTable.SellStatusDetailID INNER JOINSYS_SellStatusTable ON SYS_SellStatusDetailTable.SellStatusID = SYS_SellStatusTable.SellStatusID INNER JOINSYS_RoomDataTable ON SYS_StatusChangeTable.RoomDatumID = SYS_RoomDataTable.RoomDataID   where DeleteNot='False' and SYS_RoomDataTable.HouseID=@HouseIDend

第二步:BLL层

代码:

#region 查询销售状态房间public DataTable Select_SellStatusRoom(int RoomDatumID){SqlParameter[] SQL = {new SqlParameter("@type",SqlDbType.Char),new SqlParameter("@RoomDatumID",SqlDbType.Int)};SQL[0].Value = "Select_SellStatusRoom";SQL[1].Value = RoomDatumID;DataTable dt = myDALMethod.DAL_SelectDB_Par("SYS_MarketingControl", SQL);return dt;} #endregion

第三步:控制器

代码:

 #region 销售状态public ActionResult Select_SellStatus(int HouseID) {DataTable dt = myXiaoShouKongZhi.Select_SellStatus(HouseID);dt.Columns.Add("we",typeof(string));for (int i = 0; i < dt.Rows.Count; i++){if (Convert.ToInt32(dt.Rows[i]["SellStatusID"]) == 4)//如果销售状态ID等于4{dt.Rows[i]["we"] = dt.Rows[i]["RoomNumber"].ToString().Trim()+"留";//拼接字符串}else {dt.Rows[i]["we"] = dt.Rows[i]["RoomNumber"];}}List<Dictionary<string, object>> ListReturn = ConvertHelper.DtToList(dt);return Json(ListReturn, JsonRequestBehavior.AllowGet);}#endregion

第四步:界面

代码:

 var XiaoShouZhuangTai;//声明变量var FangJianID;//声明变量function we(rowIndex, field, value) {//方法名var ShiFouBaoLiu = "留";//声明变量alert(value);                   if (value.indexOf(ShiFouBaoLiu) < 0) {//字符窜截取$.getJSON("/XiaoShouQianTai/Select_SellStatusRoomNumber?RoomNumber=" + value + "&"+ "HouseID=" + $('#comLouDongMC').combobox('getValue'),function (data) {if (data != null) {XiaoShouZhuangTai = data[0].SellStatusID;//将变量赋值FangJianID = data[0].RoomDatumID;                                                                 }});} else {$.getJSON("/XiaoShouQianTai/Select_SellStatusRoomNumber?RoomNumber=" + value.substring(0, value.indexOf(ShiFouBaoLiu,0)) + "&"//截取房号最后的字+ "HouseID=" + $('#comLouDongMC').combobox('getValue'),function (data) {if (data != null) {XiaoShouZhuangTai = data[0].SellStatusID; //将变量赋值FangJianID = data[0].RoomDatumID;}});}}

房间保留操作

第一步:数据库

代码:

--修改销售状态if @type='Update_SellStatus'begin    SELECT     StatusChangeID, RoomDatumID, SellStatusDetailIDFROM         SYS_StatusChangeTable    update SYS_StatusChangeTableset DeleteNot='true'where RoomDatumID=@RoomDatumIDendif @type='Insert_SellStatus'begin    insert into SYS_StatusChangeTable(RoomDatumID, SellStatusDetailID, DeleteNot,XiaoShouJiaID)values (@RoomDatumID, @SellStatusDetailID, 'false','4')select @@IDENTITY end

第二步:BLL层

代码:

#region 修改销控状态public int Update_SellStatus(int RoomDatumID) {SqlParameter[] SQL = {new SqlParameter("@type",SqlDbType.Char),new SqlParameter("@RoomDatumID",SqlDbType.Int)};SQL[0].Value = "Update_SellStatus";SQL[1].Value = RoomDatumID;int i = myDALMethod.DAL_OPTableDB_Par("PW_SignAContractManage",SQL);return i;}public DataTable Insert_SellStatus(int RoomDatumID,int SellStatusDetailID) {SqlParameter[] SQL = {new SqlParameter("@type",SqlDbType.Char),new SqlParameter("@RoomDatumID",SqlDbType.Int),new SqlParameter("@SellStatusDetailID",SqlDbType.Int),};SQL[0].Value = "Insert_SellStatus";SQL[1].Value = RoomDatumID;SQL[2].Value = SellStatusDetailID;DataTable i = myDALMethod.DAL_SelectDB_Par("PW_SignAContractManage", SQL);return i;}#endregion

第三步:控制器

代码:

#region 修改销售状态public ActionResult Update_SellStatus(int RoomDatumID) {int i = myQianYueGuanLi.Update_SellStatus(RoomDatumID);return Content(i.ToString());}public ActionResult Insert_SellStatus(int RoomDatumID, int SellStatusDetailID) {DataTable i = myQianYueGuanLi.Insert_SellStatus(RoomDatumID,SellStatusDetailID);string XiaoShouBianGengID = i.Rows[0][0].ToString();return Content(XiaoShouBianGengID);}#endregion

第四步:界面

代码:

          function QueDing() {if (XiaoShouZhuangTai == 5) {//判断状态alert("该房间已销售!!!");}if (XiaoShouZhuangTai == 6) {alert("该房间已销售!!!");}if (XiaoShouZhuangTai == 3) {alert("该房间已销售!!!");}if (ZhuangTai == 5) {if (XiaoShouZhuangTai == 1) {if (confirm('是否对该房间进行保留?')) {$.getJSON("/XiaoShouHouTai/Update_SellStatus?RoomDatumID=" + FangJianID,function (data) {if (data != null) {$.getJSON("/XiaoShouHouTai/Insert_SellStatus?RoomDatumID=" + FangJianID + "&"+ "SellStatusDetailID=4");alert("保留成功!");}});}}}if (ZhuangTai == 2) { if (XiaoShouZhuangTai == 4) {if (confirm('是否对该房间取消保留?')) {$.getJSON("/XiaoShouHouTai/Update_SellStatus?RoomDatumID=" + FangJianID,function (data) {if (data != null) {$.getJSON("/XiaoShouHouTai/Insert_SellStatus?RoomDatumID=" + FangJianID + "&"+ "SellStatusDetailID=1");alert("取消成功!");}});}}}}

4、选项卡(easyui-tabs)

作用:用于区分模块。

选项卡控件截图:

界面控件代码:

<div id="tt" class="easyui-tabs" data-options="maxminzed:true"><div title="销售控制"></div><div title="换退房查询"></div><div title="更名查询"></div><div title="变更查询"></div></div></div>

点击选项卡换退房查询打开换退房界面:

查询功能实现:

第一步:数据库

1、表与表的关系:

表1、SYS_房间描述表(SYS_ RoomDescribeTable)

列名

类别

主键/外键

说明

RoomBelongID

int - Identity

主键

房间所属ID

CustomerDatumID

int

外键

客户资料ID

RoomDatumID

int

外键

房间资料ID

RetreatRoomNot

nchar (100)

退房否

RetreatRoomDate

date

换退房日期

RetreatRoomCommission

nchar (100)

退房手续费

commissionCurrencyID

int

外键

手续费币种ID

RetreatRoomReason

nchar (100)

退房原因

ShouldDrawback

nchar (100)

应退款

RetreatRoomOperator

nchar (100)

退房经办人

RetreatRoomApprover

nchar (100)

退房批准人

ApproveDate

date

批准日期

ExchangeRoomNot

bit

换房否

ExchangeRoomNewRoomNumberID

int

外键

换房后房ID

ExchangeRoomOldRoomNumberID

int

外键

换房前房ID

AgreementDatumID

int

外键

合同资料ID

ChangeNameNot

bit

更名否

DeleteNot

bit

作废否

ProfessionalWorkStatusID

int

外键

业务状态ID

表2:SYS_ProjectTable(SYS_项目表)

用于存放项目录入的消息

列名

类型

主键/外键

说明

ProjectID

int - Identity

主键

项目ID

PremisesName

nchar (100)

楼盘名称

ProjectCode

nchar (100)

项目代码

ProjectName

nchar (100)

项目名称

BuildingPropertyID

int

外键

建筑性质ID

StructureID

int

外键

结构ID

PlotRatio

decimal (18, 3)

容积率

RealEstateNumber

nchar (100)

项目房地产证号

DomesticLicence

nchar (100)

内销许可证

ExportLicence

nchar (100)

外销许可证

SupervisionInstitutionID

int

外键

监理机构ID

ProjectRowNumber

int

项目排号

MassifNumber

nchar (100)

项目地块编号

LandArea

nchar (100)

项目土地面积

LandSellContractNumber

nchar (100)

项目土地出让合同号

LandUserBeginTime

nchar (100)

项目土地使用开始时间

LandUserEndTime

nchar (100)

项目土地使用结束时间

LandPurpose

nchar (100)

项目土地用途

AreaTypeID

int

外键

项目面积类型ID

表3:SYS_AttributeAssembleDetailTable(SYS属性集合明细表)

用于记录简单的数据

列名

类型

主键/外键

说明

AttributeAssembleDetailID

int - Identity

主键

属性集合明细ID

AttributeAssembleDetailName

nchar (100)

属性集合ID

AttributeAssembleID

int

外键

属性集合明细名称

AttributeAssembleDetailFar_ID

int

属性集合明细Far_ID

表4:SYS_HouseTable(SYS楼栋表)

列名

类型

主键/外键

说明

HouseID

int - Identity

主键

楼栋ID

HouseCode

nchar (40)

楼栋代码

HouseName

nchar (40)

楼栋名称

RoomNumberModelTypeID

int

外键

房间编号模式类型ID

ContractHouseName

nchar (40)

合同栋号名称

GiveHouseStandardID

int

外键

交屋标准ID

ShouldGiveHouseDate

date

应交房日期

BriefRemarks

nchar (80)

简要备注

NumberOfPlies

int

层数

BuildingPropertyID

int

外键

建筑性质ID

SupervisionInstitutionID

int

外键

监理机构ID

EstateNumber

nchar (80)

楼栋房地产证号

MassifNumber

nchar (80)

楼栋地块编号

LandArea

decimal (18, 3)

楼栋土地面积

LandSellAgreementNumber

nchar (80)

楼栋土地出让合同号

LandUserBeginDate

date

楼栋土地使用开始时间

LandUserEndDate

date

楼栋土地使用结束时间

HouseLandUse

nchar (80)

楼栋土地用途

HouseAreaTypeID

int

外键

楼栋面积类型ID

ProjectSubregionID

int

外键

项目所属ID

StructureID

int

外键

架构ID

表5:SYS_房间资料表(SYS_RoomData)

列名

类别

主键/外键

说明

RoomDataID

int - Identity

主键

房间资料ID

HouseID

int

外键

楼栋ID

RoomCode

nchar (50)

房间代码

RoomUnit

nchar (10)

房间单元

RoomNumber

nchar (20)

房号

natureNumber

nchar (20)

自然层号

Floor

nchar (20)

楼层号

ColumnNumber

nchar (20)

列号

CoveredArea

decimal (18, 3)

建筑面积

BuilDingExceptArea

decimal (18, 3)

套内面积

AreaShare

decimal (18, 3)

分摊面积

BalconyArea

decimal (18, 3)

阳台面积

RoomFaceDirectionID

int

外键

朝     向

LandscapeID

int

外键

景观ID

HouseTypeID

int

外键

户型ID

RoomTypeID

int

外键

房间类型ID

RoomRanking

nchar (20)

房间排号

OnbuildingExceptAreaCountNot

bit

按套内面积计算否

LockNot

bit

是否锁定

CountWayID

int

外键

计算方式ID

RoomDescribeID

int

外键

SellStatusID

int

外键

销售状态ID

AffiliatedHousePropertyNot

bit

BuildingPropertiesID

int

BuildingNot

bit

ZhuangTaiWeiZhenFou

bit

状态为真否

表6:SYS_ClientDatumTable(客户资料表)

Field

Type

主键/外键

说明

ClientDatumID

int - Identity

主键

客户资料ID

ClientCode

nchar (30)

客户代码

ClientTypeID

int

外键

客户类型ID

SalesmanID

int

外键

业务员ID

ClientName

nchar (20)

客户名称

Nationality

nchar (20)

国籍

Sex

nchar (10)

性别

ClientContactNumber

int

客户联系电话

ClientMobilePhone

int

客户手机

ClientPortraiture

nchar (30)

客户传真

ClientAddress

nchar (80)

客户地址

ClientZipCode

nchar (50)

客户邮编

ClientcredentialsNumber

nchar (70)

客户证件号码

ClientcredentialsName

nchar (30)

客户证件名称

ClientVisitDate

date

客户到访日期

ClientBirthday

date

客户出生日期

ClientEmail

nchar (40)

客户电子邮件

ClientJobUnit

nchar (40)

客户工作单位

ClientDuties

nchar (40)

客户职务

ClientDatumRemarks

nchar (80)

客户资料备注

LiveArea

nchar (50)

居住区域

JobArea

nchar (50)

工作区域

Education

nchar (40)

教育程度

AgeGroup

nchar (40)

年龄段

FamilyStructure

nchar (40)

家庭结构

MaritalStatus

nchar (10)

婚姻状况

FamilyIncome

nchar (80)

家庭收入

Occupation

nchar (50)

职业

KnowRoad

nchar (50)

认识途径

ManagerSuggestion

nchar (80)

经理意见

DuplicateMarkingNot

bit

重复标识否

CorporationName

nchar (50)

公司名称

CorporationJuridicalPerson

nchar (40)

公司法人

JuridicalPersonCD

nchar (80)

法人证件

CorporationPhone

int

公司电话

CorporationAddress

nchar (80)

公司地址

ClientDatumDiscardNot

bit

表7:SYS_ProjectSubregionTable(项目分区)

Field

Type

主键/外键

说明

ProjectSubregionID

int - Identity

主键

项目分区ID

ProjectSubregionName

nchar (100)

外键

项目分区名称

ProjectID

int

外键

项目ID

第一步:储存过程

if @type='Select_ChangeRetreatRoomData'beginSELECT     SYS_RoomBelongTable.CustomerDatumID, SYS_RoomBelongTable.RoomDatumID, SYS_RoomBelongTable.RetreatRoomNot, SYS_RoomBelongTable.RetreatRoomDate, SYS_RoomBelongTable.RetreatRoomOperator, SYS_RoomBelongTable.RetreatRoomApprover, SYS_RoomBelongTable.ApproveDate, SYS_RoomBelongTable.ExchangeRoomNot, SYS_ClientDatumTable.ClientName, SYS_RoomDataTable.HouseID, SYS_RoomDataTable.RoomCode, SYS_HouseTable.HouseName, SYS_HouseTable.ProjectSubregionID, SYS_ProjectSubregionTable.ProjectID, SYS_ProjectSubregionTable.ProjectSubregionName, SYS_ProjectTable.ProjectName, SYS_RoomBelongTable.RoomBelongID, SYS_RoomBelongTable.RetreatRoomCommission, SYS_RoomBelongTable.commissionCurrencyID, SYS_RoomBelongTable.RetreatRoomReason, SYS_RoomBelongTable.ShouldDrawback, SYS_AttributeAssembleDetailTable.AttributeAssembleDetailName AS CommissionCurrencyName, SYS_RoomBelongTable.DeleteNot
FROM         SYS_RoomBelongTable INNER JOINSYS_ClientDatumTable ON SYS_RoomBelongTable.CustomerDatumID = SYS_ClientDatumTable.ClientDatumID INNER JOINSYS_RoomDataTable ON SYS_RoomBelongTable.RoomDatumID = SYS_RoomDataTable.RoomDataID INNER JOINSYS_HouseTable ON SYS_RoomDataTable.HouseID = SYS_HouseTable.HouseID INNER JOINSYS_ProjectSubregionTable ON SYS_HouseTable.ProjectSubregionID = SYS_ProjectSubregionTable.ProjectSubregionID INNER JOINSYS_ProjectTable ON SYS_ProjectSubregionTable.ProjectID = SYS_ProjectTable.ProjectID INNER JOINSYS_AttributeAssembleDetailTable ON SYS_RoomBelongTable.commissionCurrencyID = SYS_AttributeAssembleDetailTable.AttributeAssembleDetailID  where DeleteNot='False'  and RetreatRoomNot='true' or ExchangeRoomNot='true'
end

第二步:BLL层

代码:

#region 查询换退房资料public DataTable Select_ChangeRetreatRoomData() {SqlParameter[] SQL = {new SqlParameter("@type",SqlDbType.Char)};SQL[0].Value = "Select_ChangeRetreatRoomData";DataTable dt = myDALMethod.DAL_SelectDB_Par("SYS_MarketingControl",SQL);return dt;}#endregion

第四步:控制器

代码:

 #region 查询换退房资料public ActionResult Select_ChangeRetreatRoomData() {DataTable dt = myXiaoShouKongZhi.Select_ChangeRetreatRoomData();dt.Columns.Add("HuanTuiRiQi", typeof(string));dt.Columns.Add("PiZhunRiQi", typeof(string));for (int i = 0; i < dt.Rows.Count; i++){DateTime HuanTuiRiQi = Convert.ToDateTime(dt.Rows[i]["RetreatRoomDate"].ToString());DateTime PiZhunRiQi = Convert.ToDateTime(dt.Rows[i]["ApproveDate"].ToString());               dt.Rows[i]["HuanTuiRiQi"] = HuanTuiRiQi.Year + "-" + HuanTuiRiQi.Month + "-" + HuanTuiRiQi.Day;dt.Rows[i]["PiZhunRiQi"] = PiZhunRiQi.Year + "-" + PiZhunRiQi.Month + "-" + PiZhunRiQi.Day; }List<Dictionary<string, object>> ListReturn = ConvertHelper.DtToList(dt);return Json(ListReturn, JsonRequestBehavior.AllowGet);}#endregion

第五步:界面

代码:

//查询function HuanTuiFangChaXun() {$.getJSON("/XiaoShouQianTai/Select_ChangeRetreatRoomData",function (data) {$('#w换退房查询').datagrid('loadData', data);});}

打开换退房界面界面

打开界面代码:

//打开换退房修改界面function UpdateChangeRetreatRoom() {var row = $('#w换退房查询').datagrid('getSelected');//选中datagrid中的一项if (row) {if (row.RetreatRoomNot == true) {//判断退房否是否为真$('#txtChange').val("退房原因:")//重写按钮显示内容}if (row.ExchangeRoomNot == true) {//判断换房否是否为真$('#txtChange').val("换房原因:")//重写按钮显示内容}BandHuanTuuiFang();//绑定界面数据$('#w修改退房资料').window("open");//} else {alert("请选择修改的资料!");}                  }

可以对换房与退房的房间进行调整:

第一步:数据库

代码:

--修改换退房资料if @type='Update_ChangeRetreatRoomData'beginupdate SYS_RoomBelongTableset    RetreatRoomDate=@RetreatRoomDate, RetreatRoomCommission=@RetreatRoomCommission, commissionCurrencyID=@commissionCurrencyID,RetreatRoomReason=@RetreatRoomReason,ShouldDrawback=@ShouldDrawback, RetreatRoomOperator=@RetreatRoomOperator,RetreatRoomApprover=@RetreatRoomApprover, ApproveDate=@ApproveDatewhere RoomBelongID=@RoomBelongIDend

第二步:BLL层

代码:

#region 修改换退房资料public int Update_ChangeRetreatRoomData(DateTime RetreatRoomDate, string RetreatRoomCommission, int commissionCurrencyID, string RetreatRoomReason,string ShouldDrawback, string RetreatRoomOperator,string RetreatRoomApprover, DateTime ApproveDate, int RoomBelongID) {SqlParameter[] SQL = {new SqlParameter("@type",SqlDbType.Char),new SqlParameter("@RetreatRoomDate",SqlDbType.DateTime),new SqlParameter("@RetreatRoomCommission",SqlDbType.Char),new SqlParameter("@commissionCurrencyID",SqlDbType.Int),new SqlParameter("@RetreatRoomReason",SqlDbType.Char),new SqlParameter("@ShouldDrawback",SqlDbType.Char),new SqlParameter("@RetreatRoomOperator",SqlDbType.Char),new SqlParameter("@RetreatRoomApprover",SqlDbType.Char),new SqlParameter("@ApproveDate",SqlDbType.DateTime),new SqlParameter("@RoomBelongID",SqlDbType.Int)};SQL[0].Value = "Update_ChangeRetreatRoomData";SQL[1].Value = RetreatRoomDate;SQL[2].Value = RetreatRoomCommission;SQL[3].Value = commissionCurrencyID;SQL[4].Value = RetreatRoomReason;SQL[5].Value = ShouldDrawback;SQL[6].Value = RetreatRoomOperator;SQL[7].Value = RetreatRoomApprover;SQL[8].Value = ApproveDate;SQL[9].Value = RoomBelongID;int i = myDALMethod.DAL_OPTableDB_Par("SYS_MarketingControl", SQL);return i;}#endregion

第三步:控制器

代码:

#region 修改换退房资料public ActionResult Update_ChangeRetreatRoomData(string RetreatRoomDate, string RetreatRoomCommission,string commissionCurrencyID, string RetreatRoomReason,string ShouldDrawback, string RetreatRoomOperator,string RetreatRoomApprover, string ApproveDate, string RoomBelongID) {int i = myXiaoShouKongZhi.Update_ChangeRetreatRoomData(Convert.ToDateTime(RetreatRoomDate),RetreatRoomCommission,Convert.ToInt32(commissionCurrencyID),RetreatRoomReason,ShouldDrawback,RetreatRoomOperator,RetreatRoomApprover,Convert.ToDateTime(ApproveDate),Convert.ToInt32(RoomBelongID));return Content(i.ToString());}#endregion

第四步:界面

代码:

绑定界面数据代码:

//绑定换退房数据function BandHuanTuuiFang(){var row = $('#w换退房查询').datagrid('getSelected');$('#dtFaShengRiQi').datebox('setValue', row.HuanTuiRiQi);$('#txtShouXuFei').attr('Value', row.RetreatRoomCommission);$('#cboShouXuFeiBiZhong').combobox('setValue', row.commissionCurrencyID);$('#txtRetreatRoomReason').attr('Value', row.RetreatRoomReason);$('#txtYingTuiKuan').attr('Value', row.ShouldDrawback);$('#txtJingBanRen').attr('Value', row.RetreatRoomOperator);$('#txtPiZhunRen').attr('Value', row.RetreatRoomApprover);$('#dtPiZhunRenRiQi').datebox('setValue', row.PiZhunRiQi);}

点击修改代码:

//修改换退房资料function Update_ChangeRetreatRoomData() {var row = $('#w换退房查询').datagrid('getSelected');           if (confirm('是否修改?')) {$.getJSON("/XiaoShouQianTai/Update_ChangeRetreatRoomData?RetreatRoomDate=" + ($('#dtFaShengRiQi').datebox('getValue')).toString().trim() + "&"+ "RetreatRoomCommission=" + ($('#txtShouXuFei').val()).toString().trim() + "&"+ "commissionCurrencyID=" + ($('#cboShouXuFeiBiZhong').combobox('getValue')).toString().trim() + "&"+ "RetreatRoomReason=" + ($('#txtRetreatRoomReason').val()).toString().trim() + "&"+ "ShouldDrawback=" + ($('#txtYingTuiKuan').val()).toString().trim() + "&"+ "RetreatRoomOperator=" + ($('#txtJingBanRen').val()).toString().trim() + "&"+ "RetreatRoomApprover=" + ($('#txtPiZhunRen').val()).toString().trim() + "&"+ "ApproveDate=" + ($('#dtPiZhunRenRiQi').datebox('getValue')).toString().trim() + "&"+ "RoomBelongID=" + row.RoomBelongID,function (data) {if (data != null) {alert("修改成功!");$('#w修改退房资料').window("close");HuanTuiFangChaXun();} else {alert("修改失败!");}});} }

仅用于学习,禁用于商业用途

明源售楼系统技术解析 销售控制(三)相关推荐

  1. 明源售楼系统技术解析 销售控制(更名查询与变更查询)

    在销售控制模块里 点击更名查询打开更名查询界面: 查询功能实现: 第一步:数据库 1.表与表的关系 表1.SYS_RenameTable(SYS_更名表) 用于存放更名信息 列名 数据类型 主键/外键 ...

  2. 明源售楼系统技术解析 MVC架构与房源生成(一)

    第1章 使用Vs2010 版本搭建MVC3框架 1.1 新建项目 第一步:打开Vs界面,点击左上角文件,点击新建,选择项目                                       ...

  3. 明源售楼系统技术解析(二)付款方式定义——查询

    付款方式定义--查询篇   1.1主界面效果图如下                                   从界面上可以看到我们这里用到的控件有 查询功能实现: 第一步:数据库 1.表与关 ...

  4. MVC北京络捷斯特第三方物流系统技术解析(三)订单运输管理

    MVC北京络捷斯特第三方物流系统技术解析(三)订单运输管理 在"运输订单信息"页面用户可以编辑此订单的基本信息,如下图所示.在此页面用户选择[新增]按钮,此时系统会显示选择订单类型 ...

  5. C# MVC售楼系统开发

    作者:ゞ瀟灑亾眚ゞ 前序:售楼前台就是客户可以来到这个网页进行查看楼栋房间信息,如果是初次来此网页可以进行注册,如果客户已经在卖楼人员的推荐下,而且已经在后台登记过了,可以直接选择登录再选择用手机验证 ...

  6. java计算机毕业设计售楼系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计售楼系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计售楼系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  7. [附源码]Nodejs计算机毕业设计基于售楼系统Express(程序+LW)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: Node.js+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vue ...

  8. java售楼系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署

    java售楼系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 java售楼系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  9. (附源码)计算机毕业设计SSM基于售楼系统

    (附源码)计算机毕业设计SSM基于售楼系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intelli ...

  10. (附源码)计算机毕业设计SSM综合售楼系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. 利用bigpipe机制实现页面模块的异步渲染 chunked技术
  2. Tensorflow tf.placeholder函数
  3. linux下面的时间设置
  4. SAP UI5 如何通过 manifest.json 文件定义第三方库依赖关系
  5. 博客园的BLOG也申请了
  6. doctrine find的对象转换成数组_「ES6基础」Array数组的新方法(上)
  7. Java中正数与负数操作、的区别
  8. mysql拼接数组_Mysql合并结果接横向拼接字段的实现步骤
  9. 怎样调整input框背景颜色_还在用百度搜索PPT背景图?7个高大上的图片网站,个个都是高清免费无版权!...
  10. 分享一款思维导图工具-幕布(附在线工具合集、Android进阶知识体系)
  11. dtft性质及证明_FFT , DTFT, DFT 的区别和联系?
  12. python的就业方向有哪些城市_【行业分析|听说你选择python后就业迷茫?Python就业方向都有哪些】- 环球网校...
  13. 随机密聊 匿名聊天室程序源码
  14. Material Design系列,自定义Behavior实现Android知乎首页
  15. 参加网络安全培训班学习,就业有哪些方向?
  16. Pandas-时间(二)-数据类型:DatetimeIndex(其中每个元素的类型为:Timestamp)【创建方式:①pd.DatetimeIndex([]);②pd.to_datetime()】
  17. html5 audio样式修改,HTML5中 audio的样式设置
  18. 新款H3C服务器图形化界面配置raid
  19. 什么是AJAX?如何实现AJAX异步请求?
  20. 苹果id账号密码忘记了怎么办?分享官方教程,快速重置!

热门文章

  1. OpenGL ES 2.0 for Android教程(三):编译着色器并绘制到屏幕
  2. python统计字符串中大写英文、小写英文、汉字、数字等个数
  3. 用Python计算北京地铁的两站间最短换乘路线
  4. 安卓手机虚拟键盘定位position:fixed问题
  5. 百家讲坛之易中天品三国MP3全集
  6. windows dhcp服务器使用脚本批量创建作用域
  7. [web-css] 白天/黑夜场景切换案例
  8. Android NFC识别CPU卡和m1卡
  9. 简单的微信使用技巧,你需要掌握的技巧
  10. 关于视频编码I P B帧存储,编码,解码,显示顺序的理解