明源售樓系統技術解析 銷售控制(三)
建立表格控制元件介面程式碼:
<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'
begin
SELECT RoomDataID, HouseID, RoomNumber, Floor,ZhuangTaiWeiZhenFou
FROM SYS_RoomDataTable
where [email protected] and [email protected]
order by RoomNumber
end
if @Type='ConditionSelect'
begin
SELECT RoomDescribeID, HouseID, ZhuiDaChengShu = NatureStoreyFinishNumber-NatureStoreyActionNumber+1
FROM [SYS_ RoomDescribeTable]
where [SYS_ RoomDescribeTable][email protected]
end
第二步: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 = "[[{}]]";//建立空的datagrid
options.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賦值給RoomNumber
if (FangJianZhuangTaiID == 5) {//判斷FangJianZhuangTaiID
if (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 onclick="BaoLiuLeiXing()" type="radio" name="LeiXing" id="KeShou" /></td><td>可售</td>
<td><input onclick="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" onclick="QueDing()">確定</a></td></tr>
</table>
</div>
</div>
</div>
查詢保留房間與對房間進行保留操作的程式碼:
查詢保留房間:
第一步:資料庫
--查詢銷售狀態
if @type='Select_SellStatus'
begin
SELECT SYS_StatusChangeTable.StatusChangeID, SYS_StatusChangeTable.RoomDatumID, SYS_StatusChangeTable.SellStatusDetailID, SYS_SellStatusDetailTable.SellStatusID,
SYS_SellStatusDetailTable.SellStatusCause, SYS_SellStatusTable.SellStatusName, SYS_RoomDataTable.RoomNumber, SYS_RoomDataTable.HouseID
FROM SYS_StatusChangeTable INNER JOIN
SYS_SellStatusDetailTable ON SYS_StatusChangeTable.SellStatusDetailID = SYS_SellStatusDetailTable.SellStatusDetailID INNER JOIN
SYS_SellStatusTable ON SYS_SellStatusDetailTable.SellStatusID = SYS_SellStatusTable.SellStatusID INNER JOIN
SYS_RoomDataTable ON SYS_StatusChangeTable.RoomDatumID = SYS_RoomDataTable.RoomDataID
where DeleteNot='False' and [email protected]
end
第二步: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, SellStatusDetailID
FROM SYS_StatusChangeTable
update SYS_StatusChangeTable
set DeleteNot='true'
where [email protected]
end
if @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'
begin
SELECT 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 JOIN
SYS_ClientDatumTable ON SYS_RoomBelongTable.CustomerDatumID = SYS_ClientDatumTable.ClientDatumID INNER JOIN
SYS_RoomDataTable ON SYS_RoomBelongTable.RoomDatumID = SYS_RoomDataTable.RoomDataID INNER JOIN
SYS_HouseTable ON SYS_RoomDataTable.HouseID = SYS_HouseTable.HouseID INNER JOIN
SYS_ProjectSubregionTable ON SYS_HouseTable.ProjectSubregionID = SYS_ProjectSubregionTable.ProjectSubregionID INNER JOIN
SYS_ProjectTable ON SYS_ProjectSubregionTable.ProjectID = SYS_ProjectTable.ProjectID INNER JOIN
SYS_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'
begin
update SYS_RoomBelongTable
set [email protected], [email protected],
[email protected],[email protected],
[email protected], [email protected],
[email protected], [email protected]
where [email protected]
end
第二步: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("修改失敗!");
}
}
);
}
}
僅用於學習,禁用於商業用途
相關推薦
明源售樓系統技術解析 銷售控制(三)
建立表格控制元件介面程式碼: <table class="easyui-datagrid" id="tbFangJianZiLiao" style="width:648px;height:442px" data-options="singleSelect:true,onClickCell:we,ro
明源售樓系統技術解析 銷售控制(更名查詢與變更查詢)
#region 刪除更名資料 public ActionResult Delete_Rename(int RenameID) { int i = myXiaoShouKongZhi.Delete_Rename(RenameID);//需要刪除的那
明源售樓系統技術解析 簽約管理(二)
控制元件使用方法: 1、下拉樹: 作用:顯示的資料有層次 下拉樹控制元件截圖: 第一步:資料庫 程式碼: if @type='SelectBusinessStatus' begin SELECT BusinessStatusID AS YeWuZhuan
分布式緩存技術redis學習系列(三)——redis高級應用(主從、事務與鎖、持久化)
master ica not ood www working can 出了 owin 上文《詳細講解redis數據結構(內存模型)以及常用命令》介紹了redis的數據類型以及常用命令,本文我們來學習下redis的一些高級特性。 回到頂部 安全性設置 設置客戶端操作秘密
threejs繞軸轉,粒子系統,控制器操作等(三)
教程 mage speedy ima lar 鼠標 更新 end asc 前言:threejs系列的第三篇文章,也是一邊學習一邊總結; 1,一個物體繞著另一個物體轉動 第二篇文中主要是物體自轉,為了描述一個一個物體繞另一個物體轉,這裏我描述了一個月球繞地球公轉,並且自轉的場
Linux系統管理----存儲管理(三)
網絡 運維 Linux系統中常用的壓縮和解壓縮工具: 壓縮:以時間換空間的一種操作; 壓縮的實現:標記 + 替換 壓縮比:某個文件在壓縮操作之前與壓縮操作之後的文件大小的比值;(比值越大,壓縮結果越小) 通常來說,純文本文件的壓縮比比較大;Linux中常用的壓縮工具: c
流媒體技術學習筆記之(三)Nginx-Rtmp-Module統計某頻道在線觀看流的客戶數
sele lec rest uri class origin 客戶 擴展 raw 獲得訂閱者人數,可以方便地顯示觀看流的客戶數。 查看已經安裝好的模塊 /usr/local/nginx/sbin/nginx -V 安裝從源編譯Nginx和Nginx-RTMP所
Houdini技術體系 基礎管線(三) :UE4以選擇區域的方式對地形做生成和更新 上篇
class 通過 例如 tex 總結 對比 RM span 裏的 背景 前一節裏,解決了Houdini地形無縫導入到UE4的流程問題。但這種方法也有它的局限性,在實際遊戲項目裏,LA和LD還是偏向在遊戲引擎編輯器裏工作,他們的一些設計也會影響到地形的信息,那麽就需要
Houdini技術體系 基礎管線(三) :UE4 Landscape Component的多選支持 下篇
基本上 idt python obj als arr 合並 bsp c++ 背景 上篇中,我們介紹了如何修改Houdini Enigne來設置單個Landscape Compnent的Height和Layer的數據,但原生Houdini Engine並不支持多選Compon
Linux文件系統--LInix系類隨筆(三)
負載 pro 系統命令 保存文件 配置文件 檢查 系統啟動 技術分享 found ①註意事項 linux不靠擴展名區分文件 默認:壓縮包 .gz .bz2 .tar.bz2 .tgz 二進制壓縮包 .rpm 所有設備包括硬盤、u盤、光盤必須分配掛載之
Linux 檔案系統呼叫open七日遊(三)
接著上回,當對“.”和“..”處理完成後就直接返回進入下一個子路徑迴圈了,但如果當前子路徑不是“.”或“..”呢? 【fs/namei.c】 sys_open > do_sys_open > do_filp_open >&
充值系列——充值系統業務邏輯層實現(三)
上一篇文章主要說明充值的執行邏輯和控制層的設計,這篇文章主要討論充值業務層的具體實現。 正如上一篇文章所說到的,生成訂單需要如下幾個步驟: (1)例項化操作人 (操作人) (2)例項化產品模型 (獲取產品的詳細資訊) (3)例項化訂單模型 (生成一筆狀態為“交易中”的訂單)
mybatis原始碼-解析配置檔案(三)之配置檔案Configuration解析(超詳細, 值得收藏)
1. 簡介 1.1 系列內容 本系列文章講解的是mybatis解析配置檔案內部的邏輯, 即 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); SqlSessionFact
支付系統設計:銀行卡支付(三)
這一期,回到支付系統的核心業務,即支付。每個電商公司的支付系統都已經或多或少的實現了交易核心功能,可也都是一直在改進,總是不斷的有新的需求冒出來。所以這一期開始,我們梳理一下:到底有哪些支付方式?每種支付方式都是怎麼運作的? 支付和交易 說到支付就不得不提交易。這
SpringBoot實現Java高併發秒殺系統之Web層開發(三)
接著上一篇文章:SpringBoot實現Java高併發之Service層開發,今天我們開始講SpringBoot實現Java高併發秒殺系統之Web層開發。 Web層即Controller層,當然我們所說的都是在基於Spring框架的系統上而言的,傳統的SSH專案
推送系統從0到1(三):推送任務的建立
如何保證把內容準確無誤地投遞給想要投遞的人,這將會是推送系統通訊層面的難點。 上一篇文章已經講述瞭如何選擇推送服務,並梳理了使用者與裝置、Token之間的關係,用裝置號才能精準的標識使用者。如果還無法清晰的瞭解這三者的關係,可以回顧上一篇文章:推送系統從0到1(二)
阿里巴巴開發手冊解析個人筆記(三)集合處理
文章目錄 1. 【強制】 關於 hashCode 和 equals 的處理,遵循如下規則: 1) 只要重寫 equals,就必須重寫 hashCode。 2) 因為 Set 儲存的是不重複的物件,依據 hashCode 和 equals 進行判斷,所以 Set 儲存
基於谷歌開源的TensorFlow Object Detection API視訊物體識別系統搭建自己的應用(三)
下載opencv的cv2包在Python官網即可下載opencv相關庫,點選此處直接進入。 pip install opencv-python安裝完成後,進入IDLE輸入命令import cv2若未報錯,則opencv-python庫成功匯入,環境搭配成功。基於上篇新建Cam
基於FBX SDK的FBX模型解析與載入 -(三)
6. 載入Camera和Light 在FBX模型中除了幾何資料外較為常用的資訊可能就是Camera和Light,雖然在遊戲中一般不直接從模型中得到這兩部分資訊,而是由引擎來提供,但是FBX中提供了對這些資訊儲存的支援。其實單純載入這兩部分的資訊很簡單,就像之前介紹的在整
關於大型網站技術演進的思考(三)--儲存的瓶頸(3)
儲存的瓶頸寫到現在就要進入到深水區了,如果我們所做的網站已經到了做資料庫垂直拆分和水平拆分的階段,那麼此時我們所面臨的技術難度的挑戰也會大大增強。 這裡我們先回顧下資料庫的垂直拆分和水平拆分的定義: 垂直拆分:把一個數據庫中不同業務單元的資料分到不同的資料庫裡。 水平拆分:是根據一定的規